tungsten 0.5.5 → 0.5.7

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 (578) hide show
  1. package/dist/.build-complete +1 -1
  2. package/dist/AnyComponent.d.ts.map +1 -1
  3. package/dist/AnyComponentType.d.ts +1 -1
  4. package/dist/AnyComponentType.d.ts.map +1 -1
  5. package/dist/AppTypeExtraction.d.ts +2 -0
  6. package/dist/AppTypeExtraction.d.ts.map +1 -0
  7. package/dist/ComponentRenderInfo.type.d.ts +1 -1
  8. package/dist/ComponentRenderInfo.type.d.ts.map +1 -1
  9. package/dist/Components.d.ts +5 -4
  10. package/dist/Components.d.ts.map +1 -1
  11. package/dist/Components.js +28 -40
  12. package/dist/ContentFunction.d.ts.map +1 -1
  13. package/dist/ContentNode.d.ts +4 -4
  14. package/dist/ContentNode.d.ts.map +1 -1
  15. package/dist/DomPointer.d.ts.map +1 -1
  16. package/dist/DomRegion.d.ts.map +1 -1
  17. package/dist/Framework.d.ts +2 -2
  18. package/dist/Framework.d.ts.map +1 -1
  19. package/dist/Framework.js +4 -4
  20. package/dist/FrameworkConfig.d.ts +5 -3
  21. package/dist/FrameworkConfig.d.ts.map +1 -1
  22. package/dist/FunctionComponent.d.ts +1 -1
  23. package/dist/FunctionComponent.d.ts.map +1 -1
  24. package/dist/FunctionComponentStandIn.d.ts +10 -10
  25. package/dist/FunctionComponentStandIn.d.ts.map +1 -1
  26. package/dist/FunctionComponentStandIn.js +3 -6
  27. package/dist/Instance/ClientRuntimeContext.d.ts.map +1 -1
  28. package/dist/Instance/Instance.d.ts +6 -8
  29. package/dist/Instance/Instance.d.ts.map +1 -1
  30. package/dist/Instance/Instance.js +7 -11
  31. package/dist/Instance/InstanceConfig.d.ts +1 -1
  32. package/dist/Instance/InstanceConfig.d.ts.map +1 -1
  33. package/dist/IsDefined.d.ts.map +1 -1
  34. package/dist/IsObject.d.ts +1 -1
  35. package/dist/IsObject.d.ts.map +1 -1
  36. package/dist/RenderFunction.d.ts.map +1 -1
  37. package/dist/RenderedContentNode.d.ts +3 -3
  38. package/dist/RenderedContentNode.d.ts.map +1 -1
  39. package/dist/RenderingNode.d.ts +3 -3
  40. package/dist/RenderingNode.d.ts.map +1 -1
  41. package/dist/Script.d.ts +1 -1
  42. package/dist/Script.d.ts.map +1 -1
  43. package/dist/Servers/DevServer.d.ts +3 -3
  44. package/dist/Servers/DevServer.d.ts.map +1 -1
  45. package/dist/Servers/DevServer.js +15 -11
  46. package/dist/Servers/MatchedRouteInfo.d.ts.map +1 -1
  47. package/dist/Servers/ProdServer.d.ts +6 -5
  48. package/dist/Servers/ProdServer.d.ts.map +1 -1
  49. package/dist/Servers/ProdServer.js +20 -20
  50. package/dist/Servers/ServerMiddleware.d.ts.map +1 -1
  51. package/dist/Servers/StaticSiteServer.d.ts +1 -1
  52. package/dist/Servers/StaticSiteServer.d.ts.map +1 -1
  53. package/dist/Servers/StaticSiteServer.js +1 -1
  54. package/dist/Servers/TungstenServer.d.ts +1 -1
  55. package/dist/Servers/TungstenServer.d.ts.map +1 -1
  56. package/dist/Servers/devErrorPageAutoRetry.d.ts.map +1 -1
  57. package/dist/Servers/initStores.d.ts +3 -3
  58. package/dist/Servers/initStores.d.ts.map +1 -1
  59. package/dist/Servers/listenVerified.d.ts +12 -0
  60. package/dist/Servers/listenVerified.d.ts.map +1 -0
  61. package/dist/Servers/listenVerified.js +116 -0
  62. package/dist/Servers/loadEnvsDev.d.ts.map +1 -1
  63. package/dist/Servers/loadEnvsDev.js +2 -2
  64. package/dist/Servers/routing.d.ts +1 -1
  65. package/dist/Servers/routing.d.ts.map +1 -1
  66. package/dist/Servers/serveStatic.d.ts.map +1 -1
  67. package/dist/Servers/tungstenCorePrivateEnvSchema.d.ts.map +1 -1
  68. package/dist/Servers/tungstenCorePublicEnvSchema.d.ts.map +1 -1
  69. package/dist/Store/InternalStoreSchema.d.ts +1 -0
  70. package/dist/Store/InternalStoreSchema.d.ts.map +1 -1
  71. package/dist/Store/InternalStoreSchema.js +3 -1
  72. package/dist/Store/ServerDataLoading.d.ts.map +1 -1
  73. package/dist/Store/StoreSchemaClass.d.ts.map +1 -1
  74. package/dist/Store/StoreSubscriptions.types.d.ts.map +1 -1
  75. package/dist/Store/createStores.d.ts +2 -2
  76. package/dist/Store/createStores.d.ts.map +1 -1
  77. package/dist/Store/exportStore.d.ts.map +1 -1
  78. package/dist/Store/getInternalStore.d.ts +1 -1
  79. package/dist/Store/getInternalStore.d.ts.map +1 -1
  80. package/dist/Store/makeStore.d.ts +7 -3
  81. package/dist/Store/makeStore.d.ts.map +1 -1
  82. package/dist/Store/makeStore.js +8 -2
  83. package/dist/Store/registerStore.d.ts +2 -2
  84. package/dist/Store/registerStore.d.ts.map +1 -1
  85. package/dist/Store/storeCreators.d.ts.map +1 -1
  86. package/dist/StoreBindVariable.d.ts.map +1 -1
  87. package/dist/StyleProcessor.d.ts.map +1 -1
  88. package/dist/TungstenApp.d.ts +2 -2
  89. package/dist/TungstenApp.d.ts.map +1 -1
  90. package/dist/TungstenApp.js +14 -8
  91. package/dist/TungstenElement.d.ts.map +1 -1
  92. package/dist/__deproxy.d.ts.map +1 -1
  93. package/dist/_client/RootComponent.d.ts.map +1 -1
  94. package/dist/_client/cjsHelpers.d.ts +2 -1
  95. package/dist/_client/cjsHelpers.d.ts.map +1 -1
  96. package/dist/_client/cjsHelpers.js +5 -2
  97. package/dist/_client/client.d.ts +1 -1
  98. package/dist/_client/client.d.ts.map +1 -1
  99. package/dist/_client/liveReloadSource.d.ts.map +1 -1
  100. package/dist/_client/routes.d.ts.map +1 -1
  101. package/dist/_testing/should.d.ts.map +1 -1
  102. package/dist/alive.d.ts.map +1 -1
  103. package/dist/api/ApiEndpoint.d.ts +1 -1
  104. package/dist/api/ApiEndpoint.d.ts.map +1 -1
  105. package/dist/api/ApiRoute.d.ts.map +1 -1
  106. package/dist/api/ApiRoutes.d.ts +1 -1
  107. package/dist/api/ApiRoutes.d.ts.map +1 -1
  108. package/dist/api/getApiRoutes.d.ts +3 -3
  109. package/dist/api/getApiRoutes.d.ts.map +1 -1
  110. package/dist/api/getExport.d.ts +1 -1
  111. package/dist/api/getExport.d.ts.map +1 -1
  112. package/dist/api/getExportDev.d.ts.map +1 -1
  113. package/dist/appOutput.d.ts +1 -0
  114. package/dist/appOutput.d.ts.map +1 -1
  115. package/dist/appOutput.js +4 -0
  116. package/dist/auth/checkPassword.d.ts.map +1 -1
  117. package/dist/babelPlugins/BabelAddDevCacheBust.d.ts.map +1 -1
  118. package/dist/babelPlugins/BabelAddDevCacheBust.js +1 -27
  119. package/dist/babelPlugins/BabelExtractComponentStylesheet.d.ts.map +1 -1
  120. package/dist/babelPlugins/BabelFakeType.d.ts +1 -1
  121. package/dist/babelPlugins/BabelFakeType.d.ts.map +1 -1
  122. package/dist/babelPlugins/BabelState.type.d.ts.map +1 -1
  123. package/dist/babelPlugins/BabelTransformBindDirect.d.ts +2 -2
  124. package/dist/babelPlugins/BabelTransformBindDirect.d.ts.map +1 -1
  125. package/dist/babelPlugins/BabelTransformBindDirect.js +2 -2
  126. package/dist/babelPlugins/BabelTransformBindVar.d.ts +1 -1
  127. package/dist/babelPlugins/BabelTransformBindVar.d.ts.map +1 -1
  128. package/dist/babelPlugins/BabelTransformBindVar.js +6 -4
  129. package/dist/babelPlugins/BabelTransformCjsToEsm.d.ts.map +1 -1
  130. package/dist/babelPlugins/BabelTransformCjsToFunction.d.ts.map +1 -1
  131. package/dist/babelPlugins/BabelTransformCjsToFunction2.d.ts +3 -3
  132. package/dist/babelPlugins/BabelTransformCjsToFunction2.d.ts.map +1 -1
  133. package/dist/babelPlugins/BabelTransformCjsToFunction2.js +1 -1
  134. package/dist/babelPlugins/BabelTransformComponentState.d.ts +2 -2
  135. package/dist/babelPlugins/BabelTransformComponentState.d.ts.map +1 -1
  136. package/dist/babelPlugins/BabelTransformComponentState.js +6 -5
  137. package/dist/babelPlugins/BabelTransformComponentStyles.d.ts +2 -2
  138. package/dist/babelPlugins/BabelTransformComponentStyles.d.ts.map +1 -1
  139. package/dist/babelPlugins/BabelTransformComponentStyles.js +8 -6
  140. package/dist/babelPlugins/BabelTransformCssImports.d.ts +3 -3
  141. package/dist/babelPlugins/BabelTransformCssImports.d.ts.map +1 -1
  142. package/dist/babelPlugins/BabelTransformCssImports.js +1 -1
  143. package/dist/babelPlugins/BabelTransformDependencyImportsOld.d.ts +3 -3
  144. package/dist/babelPlugins/BabelTransformDependencyImportsOld.d.ts.map +1 -1
  145. package/dist/babelPlugins/BabelTransformDependencyImportsOld.js +2 -2
  146. package/dist/babelPlugins/BabelTransformDeproxyState.d.ts +1 -1
  147. package/dist/babelPlugins/BabelTransformDeproxyState.d.ts.map +1 -1
  148. package/dist/babelPlugins/BabelTransformDocInit.d.ts.map +1 -1
  149. package/dist/babelPlugins/BabelTransformPackageImports.d.ts +1 -1
  150. package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
  151. package/dist/babelPlugins/BabelTransformPackageImports.js +4 -2
  152. package/dist/babelPlugins/BabelTransformReactive.d.ts +1 -1
  153. package/dist/babelPlugins/BabelTransformReactive.d.ts.map +1 -1
  154. package/dist/babelPlugins/BabelTransformReactive.js +1 -1
  155. package/dist/babelPlugins/BabelTransformReactiveSvelteStyle.d.ts +1 -1
  156. package/dist/babelPlugins/BabelTransformReactiveSvelteStyle.d.ts.map +1 -1
  157. package/dist/babelPlugins/BabelTransformReactiveSvelteStyle.js +1 -1
  158. package/dist/babelPlugins/BabelTransformRemoveBlocks.d.ts +1 -1
  159. package/dist/babelPlugins/BabelTransformRemoveBlocks.d.ts.map +1 -1
  160. package/dist/babelPlugins/BabelTransformRemoveDevBlocks.d.ts +1 -1
  161. package/dist/babelPlugins/BabelTransformRemoveDevBlocks.d.ts.map +1 -1
  162. package/dist/babelPlugins/BabelTransformRemoveServerBlocks.d.ts +1 -1
  163. package/dist/babelPlugins/BabelTransformRemoveServerBlocks.d.ts.map +1 -1
  164. package/dist/babelPlugins/BabelTransformSxyFrameworkImports.d.ts +1 -1
  165. package/dist/babelPlugins/BabelTransformSxyFrameworkImports.d.ts.map +1 -1
  166. package/dist/babelPlugins/BabelTransformUniqueComponents.d.ts.map +1 -1
  167. package/dist/babelPlugins/BabelTransformUniqueComponents.js +1 -1
  168. package/dist/babelPlugins/BabelTypes.d.ts.map +1 -1
  169. package/dist/babelPlugins/fixImportsInSassErrorMessage.d.ts.map +1 -1
  170. package/dist/babelPlugins/isBareImport.d.ts.map +1 -1
  171. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts +2 -2
  172. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -1
  173. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.js +1 -2
  174. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts +2 -2
  175. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -1
  176. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.js +2 -3
  177. package/dist/babelPlugins/transformPackageImports/getWebLocationOfPackageFile.js +3 -1
  178. package/dist/babelPlugins/transformPackageImports/resolveBareImport.d.ts.map +1 -1
  179. package/dist/bin/args.d.ts.map +1 -1
  180. package/dist/bin/commands/build.d.ts.map +1 -1
  181. package/dist/bin/commands/build.js +3 -1
  182. package/dist/bin/commands/clean.d.ts.map +1 -1
  183. package/dist/bin/commands/compile.d.ts.map +1 -1
  184. package/dist/bin/commands/compile.js +17 -4
  185. package/dist/bin/commands/compileSimplePackage.js +1 -1
  186. package/dist/bin/commands/dev.d.ts.map +1 -1
  187. package/dist/bin/commands/devmon.d.ts.map +1 -1
  188. package/dist/bin/commands/start.d.ts.map +1 -1
  189. package/dist/bin/commands/static.d.ts.map +1 -1
  190. package/dist/bin/index.d.ts.map +1 -1
  191. package/dist/bin/moduleLoadAnalysis.d.ts.map +1 -1
  192. package/dist/bin/vendorHook.d.ts.map +1 -1
  193. package/dist/bin/vendorHook.js +1 -1
  194. package/dist/booleanAttributeValue.d.ts.map +1 -1
  195. package/dist/browserStorage.d.ts +1 -1
  196. package/dist/browserStorage.d.ts.map +1 -1
  197. package/dist/build/CompilationInfo.d.ts.map +1 -1
  198. package/dist/build/Event.type.d.ts.map +1 -1
  199. package/dist/build/ProcessPackageResults.d.ts.map +1 -1
  200. package/dist/build/PromiseSettledResultIsPromiseRejectedResult.d.ts +5 -0
  201. package/dist/build/PromiseSettledResultIsPromiseRejectedResult.d.ts.map +1 -0
  202. package/dist/build/PromiseSettledResultIsPromiseRejectedResult.js +3 -0
  203. package/dist/build/babel.user.common.config.d.ts.map +1 -1
  204. package/dist/build/babel.user.common.config.js +1 -1
  205. package/dist/build/bundle.d.ts.map +1 -1
  206. package/dist/build/bundleBabelOptions.d.ts.map +1 -1
  207. package/dist/build/clientModuleAliases.js +2 -2
  208. package/dist/build/combineComponentCss.d.ts.map +1 -1
  209. package/dist/build/compileJavascript.d.ts.map +1 -1
  210. package/dist/build/compileJavascript.js +16 -9
  211. package/dist/build/compileStyles.d.ts.map +1 -1
  212. package/dist/build/compileStyles.js +10 -8
  213. package/dist/build/compileUserApp.d.ts.map +1 -1
  214. package/dist/build/compileUserApp.js +3 -1
  215. package/dist/build/componentStylesCache.d.ts.map +1 -1
  216. package/dist/build/copyAssets.d.ts.map +1 -1
  217. package/dist/build/copyAssets.js +1 -1
  218. package/dist/build/copyPackageModulesToPackagesFolder.d.ts +1 -1
  219. package/dist/build/copyPackageModulesToPackagesFolder.d.ts.map +1 -1
  220. package/dist/build/copyPackageModulesToPackagesFolder.js +1 -1
  221. package/dist/build/copyPublicFiles.d.ts.map +1 -1
  222. package/dist/build/copyPublicFiles.js +1 -1
  223. package/dist/build/createClientFiles.d.ts +1 -1
  224. package/dist/build/createClientFiles.d.ts.map +1 -1
  225. package/dist/build/createInstanceConfigFile.d.ts +1 -1
  226. package/dist/build/createInstanceConfigFile.d.ts.map +1 -1
  227. package/dist/build/createPackageVirtualFileSystem.d.ts +1 -1
  228. package/dist/build/createPackageVirtualFileSystem.d.ts.map +1 -1
  229. package/dist/build/createPackageVirtualFileSystems.d.ts +1 -1
  230. package/dist/build/createPackageVirtualFileSystems.d.ts.map +1 -1
  231. package/dist/build/devBundle.d.ts.map +1 -1
  232. package/dist/build/devBundle.js +1 -1
  233. package/dist/build/devBundle.rollup.config.d.ts.map +1 -1
  234. package/dist/build/frameworkDestLocation.d.ts.map +1 -1
  235. package/dist/build/frameworkStylesheets.d.ts.map +1 -1
  236. package/dist/build/getAllSxyClientModules.d.ts +1 -1
  237. package/dist/build/getAllSxyClientModules.d.ts.map +1 -1
  238. package/dist/build/getPackageDirForFile.d.ts.map +1 -1
  239. package/dist/build/getSxyClientPackageAliases.d.ts.map +1 -1
  240. package/dist/build/getTempDirForAppCompilation.d.ts.map +1 -1
  241. package/dist/build/makeBabelRawConfig.d.ts.map +1 -1
  242. package/dist/build/makeBabelUserDevConfig.d.ts +1 -1
  243. package/dist/build/makeBabelUserDevConfig.d.ts.map +1 -1
  244. package/dist/build/makeBabelUserDevConfig.js +21 -17
  245. package/dist/build/makeBabelUserProdConfig.d.ts.map +1 -1
  246. package/dist/build/makeEnvJavascriptContent.d.ts.map +1 -1
  247. package/dist/build/modifySassImports.d.ts +1 -1
  248. package/dist/build/modifySassImports.d.ts.map +1 -1
  249. package/dist/build/packageIdentifier.d.ts.map +1 -1
  250. package/dist/build/resolveSassScssImports.d.ts.map +1 -1
  251. package/dist/build/rollup.user.prod.config.d.ts.map +1 -1
  252. package/dist/build/rollupExtractComponentStylesheets.d.ts.map +1 -1
  253. package/dist/build/sassImportParser.d.ts.map +1 -1
  254. package/dist/build/tallyBabel.d.ts.map +1 -1
  255. package/dist/calculateImportedStaticFileLocations.d.ts.map +1 -1
  256. package/dist/clone.d.ts +1 -1
  257. package/dist/clone.d.ts.map +1 -1
  258. package/dist/compat/context.d.ts +2 -2
  259. package/dist/compat/context.d.ts.map +1 -1
  260. package/dist/compat/forwardRef.d.ts.map +1 -1
  261. package/dist/compat/types.d.ts +2 -2
  262. package/dist/compat/types.d.ts.map +1 -1
  263. package/dist/componentClassName.d.ts.map +1 -1
  264. package/dist/componentProxyHandlers.d.ts +3 -3
  265. package/dist/componentProxyHandlers.d.ts.map +1 -1
  266. package/dist/componentProxyHandlers.js +13 -16
  267. package/dist/components/Await.d.ts +1 -1
  268. package/dist/components/Await.d.ts.map +1 -1
  269. package/dist/components/GoToComponent.d.ts +1 -1
  270. package/dist/components/GoToComponent.d.ts.map +1 -1
  271. package/dist/components/Lazy.d.ts +2 -2
  272. package/dist/components/Lazy.d.ts.map +1 -1
  273. package/dist/components/Link.d.ts +1 -1
  274. package/dist/components/Link.d.ts.map +1 -1
  275. package/dist/components/NativeHtml.d.ts +1 -1
  276. package/dist/components/NativeHtml.d.ts.map +1 -1
  277. package/dist/components/PopMessages.d.ts.map +1 -1
  278. package/dist/components/Protected.d.ts.map +1 -1
  279. package/dist/components/RawHtml.d.ts +1 -1
  280. package/dist/components/RawHtml.d.ts.map +1 -1
  281. package/dist/components/RouteRedirectComponent.d.ts +2 -2
  282. package/dist/components/RouteRedirectComponent.d.ts.map +1 -1
  283. package/dist/components/Stylesheet.d.ts.map +1 -1
  284. package/dist/components/WebRedirectComponent.d.ts +1 -1
  285. package/dist/components/WebRedirectComponent.d.ts.map +1 -1
  286. package/dist/components/_GoToComponent.d.ts +1 -1
  287. package/dist/components/_GoToComponent.d.ts.map +1 -1
  288. package/dist/components/bindable/BindVariable.d.ts +1 -1
  289. package/dist/components/bindable/BindVariable.d.ts.map +1 -1
  290. package/dist/components/bindable/BindableCheckbox.d.ts +1 -1
  291. package/dist/components/bindable/BindableCheckbox.d.ts.map +1 -1
  292. package/dist/components/bindable/BindableInput.d.ts +1 -1
  293. package/dist/components/bindable/BindableInput.d.ts.map +1 -1
  294. package/dist/components/bindable/BindableInputNonString.d.ts.map +1 -1
  295. package/dist/components/bindable/BindableInputString.d.ts.map +1 -1
  296. package/dist/components/bindable/BindableInputTypedLegacy.d.ts.map +1 -1
  297. package/dist/components/bindable/BindableRadio.d.ts +1 -1
  298. package/dist/components/bindable/BindableRadio.d.ts.map +1 -1
  299. package/dist/components/bindable/BindableSelect.d.ts +1 -1
  300. package/dist/components/bindable/BindableSelect.d.ts.map +1 -1
  301. package/dist/components/bindable/BindableTextarea.d.ts +1 -1
  302. package/dist/components/bindable/BindableTextarea.d.ts.map +1 -1
  303. package/dist/components/library/RichTextEditor/RichTextEditor.d.ts +1 -1
  304. package/dist/components/library/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  305. package/dist/components/library/RichTextEditor/StoredContentNode.d.ts.map +1 -1
  306. package/dist/components/library/RichTextEditor/contentTree.d.ts.map +1 -1
  307. package/dist/components/library/RichTextEditor/sanitizeAuthoredHtml.d.ts.map +1 -1
  308. package/dist/components/library/__StatefulMessage/StatefulMessage.d.ts +1 -1
  309. package/dist/components/library/__StatefulMessage/StatefulMessage.d.ts.map +1 -1
  310. package/dist/components/library/index.d.ts.map +1 -1
  311. package/dist/copy.d.ts.map +1 -1
  312. package/dist/createRoutes.d.ts +1 -1
  313. package/dist/createRoutes.d.ts.map +1 -1
  314. package/dist/deleteDirs.d.ts.map +1 -1
  315. package/dist/devBanner.d.ts.map +1 -1
  316. package/dist/docInit.d.ts.map +1 -1
  317. package/dist/env/Interfaces.d.ts.map +1 -1
  318. package/dist/env/addToEnv.d.ts.map +1 -1
  319. package/dist/env/getEnvSchemas.d.ts.map +1 -1
  320. package/dist/env/privateEnv.d.ts.map +1 -1
  321. package/dist/env/privateEnvOrThrow.d.ts.map +1 -1
  322. package/dist/env/publicEnv.d.ts.map +1 -1
  323. package/dist/env/publicEnvOrThrow.d.ts.map +1 -1
  324. package/dist/env/registerEnvSchemas.d.ts +1 -1
  325. package/dist/env/registerEnvSchemas.d.ts.map +1 -1
  326. package/dist/env/setPrivateEnvValidator.d.ts.map +1 -1
  327. package/dist/env/setPublicEnvValidator.d.ts.map +1 -1
  328. package/dist/env/windowGlobalEnvStatement.d.ts.map +1 -1
  329. package/dist/filePathFromUrl.d.ts.map +1 -1
  330. package/dist/findProjectDir.d.ts.map +1 -1
  331. package/dist/findUserConfig.d.ts.map +1 -1
  332. package/dist/foreach.d.ts +3 -2
  333. package/dist/foreach.d.ts.map +1 -1
  334. package/dist/frameworkConfigSchema.d.ts +4 -2
  335. package/dist/frameworkConfigSchema.d.ts.map +1 -1
  336. package/dist/frameworkConfigSchema.js +1 -0
  337. package/dist/getComponent.d.ts +1 -1
  338. package/dist/getComponent.d.ts.map +1 -1
  339. package/dist/getComponent.js +4 -2
  340. package/dist/getComponentDev.d.ts.map +1 -1
  341. package/dist/getContentFromFunctionComponent.d.ts +1 -1
  342. package/dist/getContentFromFunctionComponent.d.ts.map +1 -1
  343. package/dist/getFrameworkDir.d.ts.map +1 -1
  344. package/dist/getRoutes.d.ts +2 -2
  345. package/dist/getRoutes.d.ts.map +1 -1
  346. package/dist/getRoutes.js +4 -0
  347. package/dist/getRoutesDevs.d.ts.map +1 -1
  348. package/dist/getStackTrace.d.ts.map +1 -1
  349. package/dist/getStyledContentFromFunctionComponent.d.ts.map +1 -1
  350. package/dist/getUserConfig.d.ts +1 -1
  351. package/dist/getUserConfig.d.ts.map +1 -1
  352. package/dist/getUserConfig.js +2 -1
  353. package/dist/glob.d.ts.map +1 -1
  354. package/dist/hasValidKey.d.ts.map +1 -1
  355. package/dist/helpers/forwardingFetch.d.ts.map +1 -1
  356. package/dist/helpers/getFetchCompatibleHeaders.d.ts.map +1 -1
  357. package/dist/helpers/perRequest.d.ts.map +1 -1
  358. package/dist/hmr/applyHmrModule.d.ts.map +1 -1
  359. package/dist/hmr/componentIdentity.d.ts.map +1 -1
  360. package/dist/hmr/instanceRegistry.d.ts.map +1 -1
  361. package/dist/hmr/refreshStylesheets.d.ts.map +1 -1
  362. package/dist/hooks/clearCurrentComponent.d.ts.map +1 -1
  363. package/dist/hooks/getCurrentComponent.d.ts +1 -1
  364. package/dist/hooks/getCurrentComponent.d.ts.map +1 -1
  365. package/dist/hooks/setCurrentComponent.d.ts.map +1 -1
  366. package/dist/hooks/useCallback.d.ts +1 -1
  367. package/dist/hooks/useCallback.d.ts.map +1 -1
  368. package/dist/hooks/useCallback.js +1 -1
  369. package/dist/hooks/useEffect.d.ts.map +1 -1
  370. package/dist/hooks/useInstance.d.ts.map +1 -1
  371. package/dist/hooks/useMemo.d.ts +1 -1
  372. package/dist/hooks/useMemo.d.ts.map +1 -1
  373. package/dist/hooks/useMemo.js +5 -4
  374. package/dist/hooks/useReducer.d.ts +1 -1
  375. package/dist/hooks/useReducer.d.ts.map +1 -1
  376. package/dist/hooks/useState.d.ts.map +1 -1
  377. package/dist/hooks/useState.js +1 -1
  378. package/dist/htmlEventHandlerKey.d.ts.map +1 -1
  379. package/dist/htmlEvents.d.ts.map +1 -1
  380. package/dist/hydrate/hydrate.d.ts +1 -1
  381. package/dist/hydrate/hydrate.d.ts.map +1 -1
  382. package/dist/hydrate/hydrate.js +5 -3
  383. package/dist/hydrate/hydrateGlobalData.d.ts +1 -1
  384. package/dist/hydrate/hydrateGlobalData.d.ts.map +1 -1
  385. package/dist/hydrate/reconcileHydratedAttributes.d.ts.map +1 -1
  386. package/dist/hydrate/renderHydrationMismatchBanner.d.ts.map +1 -1
  387. package/dist/innerHtmlFromProps.d.ts.map +1 -1
  388. package/dist/isBrowser.d.ts.map +1 -1
  389. package/dist/isClient.d.ts.map +1 -1
  390. package/dist/isDev.d.ts.map +1 -1
  391. package/dist/isProd.d.ts.map +1 -1
  392. package/dist/isServer.d.ts.map +1 -1
  393. package/dist/isServer.js +2 -2
  394. package/dist/jsxRuntime.d.ts +1 -1
  395. package/dist/jsxRuntime.d.ts.map +1 -1
  396. package/dist/jsxRuntimeSignals.d.ts.map +1 -1
  397. package/dist/loadPackageDotJsonFromDir.d.ts.map +1 -1
  398. package/dist/makeFinalConfig.d.ts.map +1 -1
  399. package/dist/makeInstanceConfigFromFrameworkConfig.d.ts.map +1 -1
  400. package/dist/makeServerRpc.d.ts.map +1 -1
  401. package/dist/markOptionSelected.d.ts.map +1 -1
  402. package/dist/mergeConfigs.d.ts.map +1 -1
  403. package/dist/output.d.ts.map +1 -1
  404. package/dist/pop.d.ts.map +1 -1
  405. package/dist/postcssPlugins/TransformCssNames.d.ts.map +1 -1
  406. package/dist/postcssPlugins/TransformCssNames.js +12 -4
  407. package/dist/postcssPlugins/parseSelectors.d.ts.map +1 -1
  408. package/dist/postcssPlugins/parseSelectorsRich.d.ts.map +1 -1
  409. package/dist/postcssPlugins/scopeAnimationValue.d.ts.map +1 -1
  410. package/dist/propsAreEqual.d.ts.map +1 -1
  411. package/dist/rawHtml/filterContentNode.d.ts.map +1 -1
  412. package/dist/rawHtml/parseHtml.d.ts.map +1 -1
  413. package/dist/rawHtml/safeHtmlAllowList.d.ts.map +1 -1
  414. package/dist/rawHtml/sanitizeHtml.d.ts.map +1 -1
  415. package/dist/rawHtml/tokenizeHtml.d.ts.map +1 -1
  416. package/dist/reRouting/importLoader.d.ts.map +1 -1
  417. package/dist/ref.d.ts +1 -1
  418. package/dist/ref.d.ts.map +1 -1
  419. package/dist/ref.js +5 -4
  420. package/dist/removeRecursive.d.ts.map +1 -1
  421. package/dist/render/HeadData.d.ts +1 -1
  422. package/dist/render/HeadData.d.ts.map +1 -1
  423. package/dist/render/SxyFrameworkModules.d.ts.map +1 -1
  424. package/dist/render/addImportMap.d.ts.map +1 -1
  425. package/dist/render/componentNodeToRenderingTree.d.ts +1 -1
  426. package/dist/render/componentNodeToRenderingTree.d.ts.map +1 -1
  427. package/dist/render/contentNodeToHtml.d.ts.map +1 -1
  428. package/dist/render/contentToHtml.d.ts +2 -2
  429. package/dist/render/contentToHtml.d.ts.map +1 -1
  430. package/dist/render/contentToHtml.js +1 -1
  431. package/dist/render/contentToHtmlDev.d.ts +2 -2
  432. package/dist/render/contentToHtmlDev.d.ts.map +1 -1
  433. package/dist/render/contentTreeToRenderingTree.d.ts.map +1 -1
  434. package/dist/render/functionComponentNodeToRenderingTree.d.ts +1 -1
  435. package/dist/render/functionComponentNodeToRenderingTree.d.ts.map +1 -1
  436. package/dist/render/functionComponentNodeToRenderingTree.js +2 -2
  437. package/dist/render/getFunctionBodyAsString.d.ts.map +1 -1
  438. package/dist/render/getFunctionBodyAsString.js +3 -1
  439. package/dist/render/instantiateClassComponent.d.ts.map +1 -1
  440. package/dist/render/instantiateComponent.d.ts +2 -2
  441. package/dist/render/instantiateComponent.d.ts.map +1 -1
  442. package/dist/render/instantiateFunctionComponent.d.ts.map +1 -1
  443. package/dist/render/printComponentNameInSource.d.ts.map +1 -1
  444. package/dist/render/processHead.d.ts +1 -1
  445. package/dist/render/processHead.d.ts.map +1 -1
  446. package/dist/render/processHead.js +1 -1
  447. package/dist/render/processHtmlNode.d.ts.map +1 -1
  448. package/dist/render/processProps.d.ts +1 -1
  449. package/dist/render/processProps.d.ts.map +1 -1
  450. package/dist/render/processRenderingNodeHtml.d.ts +1 -1
  451. package/dist/render/processRenderingNodeHtml.d.ts.map +1 -1
  452. package/dist/render/readDocInitScript.d.ts.map +1 -1
  453. package/dist/render/renderingTreeToHtml.d.ts.map +1 -1
  454. package/dist/render/rootToHtml.d.ts +2 -2
  455. package/dist/render/rootToHtml.d.ts.map +1 -1
  456. package/dist/render/rootToHtmlDev.d.ts.map +1 -1
  457. package/dist/requests/fetch/delete.d.ts.map +1 -1
  458. package/dist/requests/fetch/get.d.ts.map +1 -1
  459. package/dist/requests/fetch/get.js +3 -1
  460. package/dist/requests/fetch/patch.d.ts.map +1 -1
  461. package/dist/requests/fetch/patch.js +3 -1
  462. package/dist/requests/fetch/post.d.ts.map +1 -1
  463. package/dist/requests/fetch/post.js +3 -1
  464. package/dist/requests/fetch/put.d.ts.map +1 -1
  465. package/dist/requests/fetch/put.js +3 -1
  466. package/dist/routing/AppRoutes.d.ts.map +1 -1
  467. package/dist/routing/Default404.d.ts.map +1 -1
  468. package/dist/routing/ErrorRouteType.d.ts.map +1 -1
  469. package/dist/routing/Group.d.ts +2 -2
  470. package/dist/routing/Group.d.ts.map +1 -1
  471. package/dist/routing/MatchedRoute.d.ts +1 -1
  472. package/dist/routing/MatchedRoute.d.ts.map +1 -1
  473. package/dist/routing/ParamsFromPath.d.ts +1 -1
  474. package/dist/routing/ParamsFromPath.d.ts.map +1 -1
  475. package/dist/routing/RouteContent.d.ts.map +1 -1
  476. package/dist/routing/RouteContentFunction.d.ts.map +1 -1
  477. package/dist/routing/RouteDataFunction.type.d.ts +2 -2
  478. package/dist/routing/RouteDataFunction.type.d.ts.map +1 -1
  479. package/dist/routing/RouteDataReturnType.d.ts.map +1 -1
  480. package/dist/routing/RouteProp.d.ts.map +1 -1
  481. package/dist/routing/RouteTypes.d.ts.map +1 -1
  482. package/dist/routing/Routes.d.ts.map +1 -1
  483. package/dist/routing/RoutesFunction.d.ts.map +1 -1
  484. package/dist/routing/RoutingRedirect.d.ts +1 -1
  485. package/dist/routing/RoutingRedirect.d.ts.map +1 -1
  486. package/dist/routing/WebRedirect.d.ts +1 -1
  487. package/dist/routing/WebRedirect.d.ts.map +1 -1
  488. package/dist/routing/__fluentRouteBuilder.d.ts +2 -2
  489. package/dist/routing/__fluentRouteBuilder.d.ts.map +1 -1
  490. package/dist/routing/getPathPriority.d.ts.map +1 -1
  491. package/dist/routing/getPathPriority.js +6 -2
  492. package/dist/routing/matchPath.d.ts.map +1 -1
  493. package/dist/routing/patternToRegex.d.ts.map +1 -1
  494. package/dist/routing/registerGlobalData.d.ts.map +1 -1
  495. package/dist/serverModuleLocation.d.ts.map +1 -1
  496. package/dist/serverRpc.d.ts.map +1 -1
  497. package/dist/serverRpcs.d.ts.map +1 -1
  498. package/dist/settings.d.ts.map +1 -1
  499. package/dist/signals/tracking.d.ts.map +1 -1
  500. package/dist/slash.d.ts.map +1 -1
  501. package/dist/spawnShellCommand.d.ts +1 -1
  502. package/dist/spawnShellCommand.d.ts.map +1 -1
  503. package/dist/standardSchema.d.ts.map +1 -1
  504. package/dist/standardizeWebPath.d.ts.map +1 -1
  505. package/dist/stateTracking.d.ts.map +1 -1
  506. package/dist/staticGen/RouteDefinition.d.ts.map +1 -1
  507. package/dist/staticGen/getAppRoutes.d.ts +2 -2
  508. package/dist/staticGen/getAppRoutes.d.ts.map +1 -1
  509. package/dist/staticGen/getAppRoutes.js +15 -20
  510. package/dist/staticGen/staticGen.d.ts.map +1 -1
  511. package/dist/staticGen/staticGen.js +5 -3
  512. package/dist/staticGen/staticGenFunctions.d.ts +1 -1
  513. package/dist/staticGen/staticGenFunctions.d.ts.map +1 -1
  514. package/dist/style/jssToCss.d.ts.map +1 -1
  515. package/dist/style/styleContent.d.ts.map +1 -1
  516. package/dist/style/styleContentSxy.d.ts.map +1 -1
  517. package/dist/style/styleContentSxy.js +2 -2
  518. package/dist/style/unusedStyles.d.ts.map +1 -1
  519. package/dist/styleProcessors.js +2 -2
  520. package/dist/sync/index.d.ts +1 -1
  521. package/dist/sync/index.d.ts.map +1 -1
  522. package/dist/testing/createTestApp.d.ts +35 -0
  523. package/dist/testing/createTestApp.d.ts.map +1 -0
  524. package/dist/testing/createTestApp.js +159 -0
  525. package/dist/testing/helpers/contentHtmlElements.d.ts.map +1 -0
  526. package/dist/testing/host.d.ts +75 -7
  527. package/dist/testing/host.d.ts.map +1 -1
  528. package/dist/testing/host.js +64 -24
  529. package/dist/testing/hydrateTestApp.d.ts +1 -1
  530. package/dist/testing/hydrateTestApp.d.ts.map +1 -1
  531. package/dist/testing/index.d.ts +5 -37
  532. package/dist/testing/index.d.ts.map +1 -1
  533. package/dist/testing/index.js +4 -161
  534. package/dist/testing/installTestDocInit.d.ts.map +1 -1
  535. package/dist/testing/installTestStyleProcessors.d.ts.map +1 -1
  536. package/dist/testing/loadEnv.d.ts.map +1 -1
  537. package/dist/testing/testEnvIsRequested.d.ts.map +1 -1
  538. package/dist/testing/testingComponentPackage.d.ts +37 -0
  539. package/dist/testing/testingComponentPackage.d.ts.map +1 -0
  540. package/dist/testing/{temp/componentPackageMock.js → testingComponentPackage.js} +13 -13
  541. package/dist/throwError.d.ts.map +1 -1
  542. package/dist/timeProfiler.d.ts.map +1 -1
  543. package/dist/todo.d.ts.map +1 -1
  544. package/dist/update/UpdateResult.d.ts.map +1 -1
  545. package/dist/update/UpdateScheduler.d.ts.map +1 -1
  546. package/dist/update/guardedUpdate.d.ts.map +1 -1
  547. package/dist/update/integrateUpdateVdom.d.ts +9 -9
  548. package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
  549. package/dist/update/integrateUpdateVdom.js +2 -2
  550. package/dist/update/pendingMounts.d.ts.map +1 -1
  551. package/dist/validChildren.d.ts +2 -2
  552. package/dist/validChildren.d.ts.map +1 -1
  553. package/dist/warnOnFrameworkChange.d.ts.map +1 -1
  554. package/dist/watch.d.ts.map +1 -1
  555. package/dist/when.d.ts.map +1 -1
  556. package/dist/zones/react.d.ts +2 -2
  557. package/dist/zones/react.d.ts.map +1 -1
  558. package/package.json +5 -3
  559. package/types/assets.d.ts +1 -0
  560. package/types/babel-plugin-dependencies.d.ts +1 -0
  561. package/types/env.d.ts +0 -4
  562. package/types/helpers.d.ts +2 -2
  563. package/types/index.d.ts +2 -3
  564. package/types/jsx/html.d.ts +14 -12
  565. package/types/jsx/html.events.d.ts +2 -2
  566. package/types/jsx/html.global.d.ts +1 -0
  567. package/types/jsx/jsx.d.ts +3 -4
  568. package/types/modules.d.ts +1 -0
  569. package/types/regexpMatches.d.ts +1 -0
  570. package/vendor/manifest.json +2 -2
  571. package/dist/TypeExtraction.d.ts +0 -2
  572. package/dist/TypeExtraction.d.ts.map +0 -1
  573. package/dist/testing/temp/componentPackageMock.d.ts +0 -29
  574. package/dist/testing/temp/componentPackageMock.d.ts.map +0 -1
  575. package/dist/testing/temp/contentHtmlElements.d.ts.map +0 -1
  576. /package/dist/{TypeExtraction.js → AppTypeExtraction.js} +0 -0
  577. /package/dist/testing/{temp → helpers}/contentHtmlElements.d.ts +0 -0
  578. /package/dist/testing/{temp → helpers}/contentHtmlElements.js +0 -0
@@ -6,28 +6,23 @@ import { cliLog } from '../cliOutput.js';
6
6
  // this file is outdated and may not work correctly
7
7
  // should compare this to the functions used by Servers
8
8
  export async function getAppRoutes(compilationInfo, config, quiet = false) {
9
- //const fullBuildLocation = 'file://' + compilationInfo.location
10
- const routesLocation = config.routesLocation;
11
- //if (routesLocation === null) return routesLocation // hopefully we are validating
9
+ const [routesFile, routeExport] = config.routesLocation;
12
10
  try {
13
- if (Array.isArray(routesLocation)) {
14
- const routesFile = fixExtension(join(compilationInfo.buildCodeLocation, routesLocation[0]));
15
- if (!quiet) {
16
- cliLog('[1] fullBuildLocation', compilationInfo.location);
17
- cliLog('[1] routesLocation[0]', routesLocation[0]);
18
- cliLog('joined', join(compilationInfo.location, routesLocation[0]));
19
- cliLog('[1] routesFile', routesFile);
20
- }
21
- const target = 'file://' + routesFile;
22
- if (!quiet) cliLog('[1] target', target);
23
- return (await import(target))[routesLocation[1]];
24
- } else {
25
- const target = 'file://' + join(compilationInfo.buildCodeLocation, routesLocation);
26
- if (!quiet) cliLog('[2] location', target);
27
- const module = await import(target);
28
- if ('routes' in module) return module.routes;else if ('default' in module) return module.default;else throw new TungstenError(`Err, no 'routes' or 'default' export found in routes file ${routesLocation}`);
11
+ const filePath = fixExtension(join(compilationInfo.buildCodeLocation, routesFile));
12
+ if (!quiet) {
13
+ cliLog('[1] fullBuildLocation', compilationInfo.location);
14
+ cliLog('[1] routesLocation[0]', routesFile);
15
+ cliLog('joined', join(compilationInfo.location, routesFile));
16
+ cliLog('[1] routesFile', filePath);
29
17
  }
18
+ const target = 'file://' + filePath;
19
+ if (!quiet) cliLog('[1] target', target);
20
+ const module = await import(target);
21
+ if (!(routeExport in module)) {
22
+ throw new TungstenError(`Could not find an export named ${routeExport} in routes file ${routesFile}.` + ` These settings are set in config.routesLocation.`);
23
+ }
24
+ return module[routeExport];
30
25
  } catch (e) {
31
- throw new TungstenError(`Error loading app routes. You can specify the location of your routes object in tungsten.config.js,` + ` e.g. routesLocation: ['Routes.jsx', 'routes'] (file, exportName)` + `\n${e}`);
26
+ throw new TungstenError(`Error loading app routes.` + ` You can specify the location of your routes object in tungsten.config.js,` + ` e.g. routesLocation: ['Routes.jsx', 'routes'] (file, exportName)` + `\n${e}`);
32
27
  }
33
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"staticGen.d.ts","sourceRoot":"","sources":["../../src/staticGen/staticGen.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAgBhD,wBAAsB,SAAS,CAAC,SAAS,EAAE,SAAS,iBA+MnD"}
1
+ {"version":3,"file":"staticGen.d.ts","sourceRoot":"","sources":["../../src/staticGen/staticGen.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAehD,wBAAsB,SAAS,CAAC,SAAS,EAAE,SAAS,iBAoNnD"}
@@ -3,6 +3,7 @@ import { join, dirname } from 'path';
3
3
  const copy = (from, to) => fsPromises.cp(from, to, {
4
4
  recursive: true
5
5
  });
6
+ import { filter as objectFilter, count } from 'sxy-lib/objects.js';
6
7
  //import type { SxyFrameworkConfigComplete } from '../FrameworkConfig.js'
7
8
  import { staticSiteFolder, staticFolder, assetsFolder, publicFolder, bundleFolder, componentCssFolder, frameworkCssFolder } from '../settings.js';
8
9
  import { getAppRoutes } from './getAppRoutes.js';
@@ -11,7 +12,6 @@ import { matchPath } from '../routing/matchPath.js';
11
12
  import { throwError } from '../throwError.js';
12
13
  import { RouteKeyIsPath, StringIsPath } from '../routing/RouteTypes.js';
13
14
  import { findLinks, pathToLink, pathToFileName, rewriteLinks } from './staticGenFunctions.js';
14
- import { filter as objectFilter, count } from 'sxy-lib/objects.js';
15
15
  export async function staticGen(framework) {
16
16
  if (framework.compilationInfo === undefined) {
17
17
  throwError('staticGen()', `framework.compilationInfo is undefined`);
@@ -96,7 +96,9 @@ export async function staticGen(framework) {
96
96
  const response = await fetch(url);
97
97
  // fetch, unlike axios, resolves on non-2xx - so check explicitly, or we'd
98
98
  // write error pages out as static HTML
99
- if (!response.ok) throwError('renderPath', `Get request to ${url} returned an invalid status: ${response.status}`);
99
+ if (!response.ok) {
100
+ throwError('renderPath', `Get request to ${url} returned an invalid status: ${response.status}`);
101
+ }
100
102
  let result = await response.text();
101
103
  links = findLinks(result);
102
104
  const newPaths = [];
@@ -142,7 +144,7 @@ export async function staticGen(framework) {
142
144
  }
143
145
  } catch (e) {
144
146
  const stack = typeof e === 'object' && e !== null && 'stack' in e ? e.stack : '';
145
- cliError(`Static site gen - error generating path ${path} (full location ${url}): ${String(e)} ${String(stack)}`);
147
+ cliError(`Static site gen - error generating path ${path} (full location ${url}): ` + `${String(e)} ${String(stack)}`);
146
148
  }
147
149
  };
148
150
  for (const [path, route] of Object.entries(finalRoutes)) {
@@ -1,4 +1,4 @@
1
- import { SiteBasePath as SiteBasePath } from '../render/HeadData.js';
1
+ import type { SiteBasePath as SiteBasePath } from '../render/HeadData.js';
2
2
  export declare function pathToFileName(path: string): string;
3
3
  export declare function pathToLink(path: string, siteBasePath: SiteBasePath): string;
4
4
  export declare function findLinks(content: string): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"staticGenFunctions.d.ts","sourceRoot":"","sources":["../../src/staticGen/staticGenFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAM1C;AACD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,UAMlE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQnD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAM/E"}
1
+ {"version":3,"file":"staticGenFunctions.d.ts","sourceRoot":"","sources":["../../src/staticGen/staticGenFunctions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGzE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAM1C;AACD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,UAMlE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQnD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAM/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"jssToCss.d.ts","sourceRoot":"","sources":["../../src/style/jssToCss.ts"],"names":[],"mappings":"AAoBA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,UAqBpC"}
1
+ {"version":3,"file":"jssToCss.d.ts","sourceRoot":"","sources":["../../src/style/jssToCss.ts"],"names":[],"mappings":"AAqBA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,UAqBpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"styleContent.d.ts","sourceRoot":"","sources":["../../src/style/styleContent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,eAAO,MAAM,YAAY,wBAAkB,CAAA"}
1
+ {"version":3,"file":"styleContent.d.ts","sourceRoot":"","sources":["../../src/style/styleContent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,eAAO,MAAM,YAAY,wBAAkB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"styleContentSxy.d.ts","sourceRoot":"","sources":["../../src/style/styleContentSxy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EACH,KAAK,WAAW,EAEnB,MAAM,mBAAmB,CAAA;AAc1B,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,eAIrE"}
1
+ {"version":3,"file":"styleContentSxy.d.ts","sourceRoot":"","sources":["../../src/style/styleContentSxy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAIH,KAAK,WAAW,EAEnB,MAAM,mBAAmB,CAAA;AAe1B,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,eAIrE"}
@@ -113,7 +113,7 @@ function processItem(element, styles, usage) {
113
113
  //console.log(element.props.className)
114
114
  if (element[$props].className !== undefined && element[$props].className !== null) {
115
115
  if (typeof element[$props].className !== 'string') {
116
- throw new TungstenError(`styleContentSxy() error: ${ContentNodeElementIsHtml(element) ? element[$type] : getComponentName(element)}` + ` className prop should be a string. Received ${typeof element[$props].className}`);
116
+ throw new TungstenError(`styleContentSxy() error: ` + `${ContentNodeElementIsHtml(element) ? element[$type] : getComponentName(element)}` + ` className prop should be a string. Received ${typeof element[$props].className}`);
117
117
  }
118
118
  newClassName += ' ' + element[$props].className;
119
119
  const classNames = element[$props].className.split(' ');
@@ -136,7 +136,7 @@ function processItem(element, styles, usage) {
136
136
  const value = element[$props][key];
137
137
  if (value === undefined || value === null) continue;
138
138
  if (typeof value !== 'string') {
139
- throw new TungstenError(`styleContentSxy() error: ${ContentNodeElementIsHtml(element) ? element[$type] : getComponentName(element)}` + ` ${key} prop should be a string. Received ${typeof value}`);
139
+ throw new TungstenError(`styleContentSxy() error: ` + `${ContentNodeElementIsHtml(element) ? element[$type] : getComponentName(element)}` + ` ${key} prop should be a string. Received ${typeof value}`);
140
140
  }
141
141
  let newValue = value;
142
142
  for (const cn of value.split(' ')) {
@@ -1 +1 @@
1
- {"version":3,"file":"unusedStyles.d.ts","sourceRoot":"","sources":["../../src/style/unusedStyles.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAY9C,MAAM,MAAM,UAAU,GAAG;IACrB,MAAM,EAAE,QAAQ,CAAA;IAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAUD,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,cAQ7C;AA2BD,wBAAsB,kBAAkB,kBAgBvC"}
1
+ {"version":3,"file":"unusedStyles.d.ts","sourceRoot":"","sources":["../../src/style/unusedStyles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAa9C,MAAM,MAAM,UAAU,GAAG;IACrB,MAAM,EAAE,QAAQ,CAAA;IAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAUD,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,cAQ7C;AA2BD,wBAAsB,kBAAkB,kBAgBvC"}
@@ -1,3 +1,4 @@
1
+ export {};
1
2
  /*
2
3
 
3
4
 
@@ -18,5 +19,4 @@ export const Sass: StyleProcessor = ((style) => cssNamesCompleteSample)
18
19
  export const Scss: StyleProcessor = ((style) => cssNamesCompleteSample)
19
20
  //export const Less: StyleProcessor = ((style) => cssNamesCompleteSample)
20
21
 
21
- */
22
- export {};
22
+ */
@@ -1,4 +1,4 @@
1
- import { ExportsVar, ModuleVar, RequireFunc } from '../CjsTypes.js';
1
+ import type { ExportsVar, ModuleVar, RequireFunc } from '../CjsTypes.js';
2
2
  export declare const deps: never[];
3
3
  export default function cjsModule(module: ModuleVar, exports: ExportsVar, require: RequireFunc): void;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGnE,eAAO,MAAM,IAAI,SAAK,CAAA;AAEtB,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,QAM7F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAIxE,eAAO,MAAM,IAAI,SAAK,CAAA;AAEtB,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,QAM7F"}
@@ -0,0 +1,35 @@
1
+ import type { ConstructPackage, TungstenBaseComponent, TungstenBaseComponentType, TungstenComponentPropsBase } from '../Components.jsx';
2
+ import type { TrueStore } from '../Store/makeStore.js';
3
+ export type ComponentProps<ComponentType extends TungstenBaseComponentType<any, any>> = InstanceType<ComponentType>['props'];
4
+ export type TestStoreRegistration<Schema extends object> = {
5
+ getStore: (stores: TrueStore<unknown>[]) => TrueStore<Schema>;
6
+ };
7
+ export type TestStore<Schema extends object> = TrueStore<Schema>;
8
+ export type TestStoreOverride<Schema extends object = object> = {
9
+ registration: TestStoreRegistration<Schema>;
10
+ initialize: (store: TrueStore<Schema>) => void | Promise<void>;
11
+ };
12
+ export declare function testStore<Schema extends object>(registration: TestStoreRegistration<Schema>, initialize: (store: TestStore<Schema>) => void | Promise<void>): TestStoreOverride<Schema>;
13
+ export type TestAppOptions<Props extends object> = {
14
+ document?: Document;
15
+ props?: Props;
16
+ container?: HTMLElement;
17
+ location?: string;
18
+ routeParams?: Record<string, string>;
19
+ routeData?: unknown;
20
+ globalData?: Record<string, unknown>;
21
+ stores?: readonly TestStoreOverride<any>[];
22
+ };
23
+ export type TestApp<Component extends TungstenBaseComponent> = {
24
+ readonly document: Document;
25
+ readonly container: HTMLElement;
26
+ readonly component: Component;
27
+ resolved(): Promise<void>;
28
+ setProps(props: Component['props']): Promise<void>;
29
+ unmount(): Promise<void>;
30
+ };
31
+ export type CreateTestAppArgs<Props extends object> = object extends Props ? [options?: TestAppOptions<Props>] : keyof Props extends never ? [options?: TestAppOptions<Props>] : [options: TestAppOptions<Props> & {
32
+ props: Props;
33
+ }];
34
+ export declare function createTestApp<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>, RouteData = undefined>(RootComponent: new (pkg: ConstructPackage<Props, RouteData>) => Component, ...args: CreateTestAppArgs<Props>): Promise<TestApp<Component>>;
35
+ //# sourceMappingURL=createTestApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTestApp.d.ts","sourceRoot":"","sources":["../../src/testing/createTestApp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
2
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
3
+ 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; }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
+ 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); }
6
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
7
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
8
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
9
+ import { Instance } from '../Instance/Instance.js';
10
+ import { initStores } from '../Servers/initStores.js';
11
+ import { createTungstenRootComponent, deleteTungstenRoot } from '../update/integrateUpdateVdom.js';
12
+ import { UpdateScheduler } from '../update/UpdateScheduler.js';
13
+ import { waitForEnvIfLoading } from './loadEnv.js';
14
+ export function testStore(registration, initialize) {
15
+ return {
16
+ registration,
17
+ initialize
18
+ };
19
+ }
20
+ var _instance = /*#__PURE__*/new WeakMap();
21
+ var _scheduler = /*#__PURE__*/new WeakMap();
22
+ var _root = /*#__PURE__*/new WeakMap();
23
+ var _ownsContainer = /*#__PURE__*/new WeakMap();
24
+ var _unmounted = /*#__PURE__*/new WeakMap();
25
+ class TestAppImplementation {
26
+ constructor(document, container, component, instance, scheduler, root, ownsContainer) {
27
+ _defineProperty(this, "document", void 0);
28
+ _defineProperty(this, "container", void 0);
29
+ _defineProperty(this, "component", void 0);
30
+ _classPrivateFieldInitSpec(this, _instance, void 0);
31
+ _classPrivateFieldInitSpec(this, _scheduler, void 0);
32
+ _classPrivateFieldInitSpec(this, _root, void 0);
33
+ _classPrivateFieldInitSpec(this, _ownsContainer, void 0);
34
+ _classPrivateFieldInitSpec(this, _unmounted, false);
35
+ _defineProperty(this, "resolved", async () => {
36
+ await _classPrivateFieldGet(_scheduler, this).resolved();
37
+ });
38
+ _defineProperty(this, "setProps", async props => {
39
+ if (_classPrivateFieldGet(_unmounted, this)) throw new Error('Cannot set props on an unmounted Tungsten TestApp.');
40
+ this.component.props = props;
41
+ _classPrivateFieldGet(_instance, this).queueUpdate(this.component);
42
+ await this.resolved();
43
+ });
44
+ _defineProperty(this, "unmount", async () => {
45
+ if (_classPrivateFieldGet(_unmounted, this)) return;
46
+ _classPrivateFieldSet(_unmounted, this, true);
47
+ _classPrivateFieldGet(_scheduler, this).cancelPending();
48
+ let cleanupError;
49
+ try {
50
+ deleteTungstenRoot(_classPrivateFieldGet(_root, this));
51
+ _classPrivateFieldGet(_instance, this).disposeRegisteredComponents();
52
+ await _classPrivateFieldGet(_scheduler, this).resolved();
53
+ } catch (error) {
54
+ cleanupError = error;
55
+ try {
56
+ _classPrivateFieldGet(_instance, this).disposeRegisteredComponents();
57
+ } catch {
58
+ // Preserve the first cleanup failure.
59
+ }
60
+ } finally {
61
+ _classPrivateFieldGet(_scheduler, this).dispose();
62
+ if (_classPrivateFieldGet(_ownsContainer, this)) this.container.remove();else while (this.container.firstChild !== null) this.container.removeChild(this.container.firstChild);
63
+ }
64
+ if (cleanupError !== undefined) throw cleanupError;
65
+ });
66
+ this.document = document;
67
+ this.container = container;
68
+ this.component = component;
69
+ _classPrivateFieldSet(_instance, this, instance);
70
+ _classPrivateFieldSet(_scheduler, this, scheduler);
71
+ _classPrivateFieldSet(_root, this, root);
72
+ _classPrivateFieldSet(_ownsContainer, this, ownsContainer);
73
+ }
74
+ }
75
+ export async function createTestApp(
76
+ // Props is inferred from both the class and `props`, so literal props are typed by the component
77
+ RootComponent, ...args) {
78
+ await waitForEnvIfLoading();
79
+ const options = args[0];
80
+ const suppliedDocument = options?.document ?? globalThis.document;
81
+ if (suppliedDocument === undefined) {
82
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition
83
+ throw new Error('createTestApp() requires options.document when no global document is available.');
84
+ }
85
+ const document = suppliedDocument;
86
+ const ownsContainer = options?.container === undefined;
87
+ const container = options?.container ?? document.createElement('div');
88
+ if (container.ownerDocument !== document) {
89
+ throw new Error('The TestApp container must belong to options.document.');
90
+ }
91
+ if (container.childNodes.length > 0) {
92
+ throw new Error('The TestApp container must be empty before mounting.');
93
+ }
94
+ if (ownsContainer) {
95
+ if (document.body === null) {
96
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition
97
+ throw new Error('The supplied document must have a body element.');
98
+ }
99
+ document.body.appendChild(container);
100
+ }
101
+ const location = options?.location ?? '/';
102
+ const globalData = options?.globalData ?? {};
103
+ const matchedRouteInfo = {
104
+ key: null,
105
+ params: options?.routeParams ?? {},
106
+ content: null,
107
+ ...(options !== undefined && 'routeData' in options ? {
108
+ data: options.routeData
109
+ } : {})
110
+ };
111
+ const scheduler = new UpdateScheduler();
112
+ const runtimeContext = {
113
+ document,
114
+ window: document.defaultView,
115
+ scheduler,
116
+ navigation: false
117
+ };
118
+ const {
119
+ internalStore,
120
+ stores,
121
+ storeSubscriptions
122
+ } = initStores(location, null, globalData, matchedRouteInfo);
123
+ const instanceConfig = {
124
+ prod: false,
125
+ useRootComponent: true,
126
+ clientSideNav: false,
127
+ siteBasePath: '/',
128
+ staticSite: false,
129
+ csr: false
130
+ };
131
+ const emptyRoutes = {};
132
+ const instance = new Instance(location, instanceConfig, null, emptyRoutes, emptyRoutes, internalStore, stores, storeSubscriptions, globalData, matchedRouteInfo, runtimeContext);
133
+ try {
134
+ for (const override of options?.stores ?? []) {
135
+ const store = override.registration.getStore(instance.stores);
136
+ await override.initialize(store);
137
+ }
138
+ const props = options?.props ?? {};
139
+ const root = await createTungstenRootComponent(RootComponent, props, options?.routeParams, options?.routeData, instance, container);
140
+ const testApp = new TestAppImplementation(document, container, root.component, instance, scheduler, root, ownsContainer);
141
+ try {
142
+ await testApp.resolved();
143
+ return testApp;
144
+ } catch (error) {
145
+ await testApp.unmount();
146
+ throw error;
147
+ }
148
+ } catch (error) {
149
+ try {
150
+ instance.disposeRegisteredComponents();
151
+ } catch {
152
+ // Preserve the mount failure.
153
+ }
154
+ scheduler.dispose();
155
+ while (container.firstChild !== null) container.removeChild(container.firstChild);
156
+ if (ownsContainer) container.remove();
157
+ throw error;
158
+ }
159
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentHtmlElements.d.ts","sourceRoot":"","sources":["../../../src/testing/helpers/contentHtmlElements.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,WAAW,EAChB,KAAK,eAAe,EACvB,MAAM,sBAAsB,CAAA;AAG7B,eAAO,MAAM,mBAAmB,GAAI,SAAS,WAAW,KAAG,eAAe,EAUzE,CAAA"}
@@ -1,6 +1,10 @@
1
- import { TungstenBaseComponent, TungstenSimpleComponent, type ConstructPackage, type TungstenComponent, type TungstenComponentPropsBase, type TungstenStatefulComponent } from '../Components.jsx';
2
1
  import type { ContentNode } from '../ContentNode.js';
3
- import { type MockEnvironment } from './temp/componentPackageMock.js';
2
+ import type { InternalStoreSchema } from '../Store/InternalStoreSchema.js';
3
+ import type { TrueStore } from '../Store/makeStore.js';
4
+ import type { Routes } from '../routing/Routes.js';
5
+ import type { RoutesFunction } from '../routing/RoutesFunction.js';
6
+ import type { Path, RouteKey } from '../routing/RouteTypes.js';
7
+ import { TungstenBaseComponent, TungstenSimpleComponent, type ComponentStore, type TungstenComponent, type TungstenComponentClass, type TungstenComponentPropsBase, type TungstenStatefulComponent } from '../Components.jsx';
4
8
  type StateOf<Component> = Component extends {
5
9
  state?: infer State;
6
10
  } ? State : never;
@@ -10,10 +14,6 @@ type ReservedMember = keyof HostedCore<TungstenBaseComponent<any, any>>;
10
14
  export type ComponentApi<Component extends TungstenBaseComponent<any, any>> = {
11
15
  [Key in keyof Component as Key extends FrameworkMember | ReservedMember ? never : NonNullable<Component[Key]> extends (...args: any[]) => any ? Key : never]: Component[Key];
12
16
  };
13
- export type HostOptions = {
14
- environment?: MockEnvironment;
15
- };
16
- export type HostArgs<Props extends TungstenComponentPropsBase> = object extends Props ? [props?: Props, options?: HostOptions] : keyof Props extends never ? [props?: Props, options?: HostOptions] : [props: Props, options?: HostOptions];
17
17
  export type Navigation = {
18
18
  kind: 'goto' | 'redirect';
19
19
  to: string;
@@ -30,6 +30,64 @@ type HostedCore<Component extends TungstenBaseComponent<any, any>> = {
30
30
  updateState: (setter: StateSetter<Component>) => Promise<Awaited<ContentOf<Component>>>;
31
31
  };
32
32
  export type Hosted<Component extends TungstenBaseComponent<any, any>> = HostedCore<Component> & ComponentApi<Component>;
33
+ type StoreSchemaOf<Component> = Component extends {
34
+ store: ComponentStore<infer Schema extends object>;
35
+ } ? Schema : never;
36
+ type StoreOf<Component> = [StoreSchemaOf<Component>] extends [never] ? never : [StoreSchemaOf<Component>] extends [InternalStoreSchema] ? never : StoreSchemaOf<Component>;
37
+ export type HostedRoute = {
38
+ key: RouteKey | null;
39
+ params?: Record<string, string>;
40
+ data?: unknown;
41
+ };
42
+ type RouteOptions = {
43
+ routing: true;
44
+ location: Path;
45
+ routes: Routes | RoutesFunction;
46
+ matchedRoute?: never;
47
+ } | {
48
+ routing?: false;
49
+ location?: Path;
50
+ routes?: Routes;
51
+ matchedRoute?: HostedRoute;
52
+ };
53
+ type NoStore = {
54
+ store?: never;
55
+ partialStore?: never;
56
+ storeData?: never;
57
+ partialStoreData?: never;
58
+ };
59
+ type StoreOptionsFor<Schema extends object> = {
60
+ /** A real store (makeStore), used as-is: its cells keep state, so one can be shared between hosts. */
61
+ store: TrueStore<Schema>;
62
+ partialStore?: never;
63
+ storeData?: never;
64
+ partialStoreData?: never;
65
+ } | {
66
+ /** Some real cells. A key not given is missing, not defaulted: reading it throws, naming it. */
67
+ partialStore: Partial<TrueStore<Schema>>;
68
+ store?: never;
69
+ storeData?: never;
70
+ partialStoreData?: never;
71
+ } | {
72
+ /** Values for every key, each wrapped in a cell of its own. */
73
+ storeData: Schema;
74
+ store?: never;
75
+ partialStore?: never;
76
+ partialStoreData?: never;
77
+ } | {
78
+ /** Values for some keys. A key not given is missing, not defaulted: reading it throws, naming it. */
79
+ partialStoreData: Partial<Schema>;
80
+ store?: never;
81
+ partialStore?: never;
82
+ storeData?: never;
83
+ };
84
+ export type HostStoreOptions<Schema extends object> = (RouteOptions & StoreOptionsFor<Schema>) extends infer Options ? Options extends unknown ? {
85
+ [K in keyof Options]: Options[K];
86
+ } : never : never;
87
+ export type HostOptions<Component> = [StoreOf<Component>] extends [never] ? (RouteOptions & NoStore) extends infer Options ? Options extends unknown ? {
88
+ [K in keyof Options]: Options[K];
89
+ } : never : never : HostStoreOptions<StoreOf<Component>>;
90
+ type HostArgs<Props, Component> = [StoreOf<Component>] extends [never] ? object extends Props ? [props?: Props, options?: HostOptions<Component>] : [props: Props, options?: HostOptions<Component>] : object extends Props ? [props: Props | undefined, options: HostOptions<Component>] : [props: Props, options: HostOptions<Component>];
33
91
  /**
34
92
  * Constructs a component outside of any app and drives it the way the framework
35
93
  * does - init, then the mount lifecycles - calling its content function with
@@ -43,7 +101,17 @@ export type Hosted<Component extends TungstenBaseComponent<any, any>> = HostedCo
43
101
  *
44
102
  * State is not proxied (the construct package is marked `hosted`), so nothing
45
103
  * re-renders on its own: updateProps() and updateState() are the renders.
104
+ *
105
+ * Store components have a structural overload: Schema is its own parameter, inferred from
106
+ * the class, so a generic wrapper (`Component extends { store: ComponentStore<S> }`) can
107
+ * call through without a cast. HostArgs is a conditional on Component, and a conditional
108
+ * on a type parameter is deferred, so nothing is assignable to it inside such a wrapper.
46
109
  */
47
- export declare function host<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>>(ComponentType: new (pkg: ConstructPackage<Props, undefined>) => Component, ...args: HostArgs<Props>): Promise<Hosted<Component>>;
110
+ export declare function host<Props extends TungstenComponentPropsBase, Schema extends object, Component extends TungstenBaseComponent<any, any> & {
111
+ store: ComponentStore<Schema>;
112
+ }>(ComponentType: TungstenComponentClass<Props, Component> & (new (...args: any) => {
113
+ store: ComponentStore<Schema>;
114
+ }), props: Props, options: NoInfer<[Schema] extends [InternalStoreSchema] ? never : HostStoreOptions<Schema>>): Promise<Hosted<Component>>;
115
+ export declare function host<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>>(ComponentType: TungstenComponentClass<Props, Component>, ...[props, options]: HostArgs<Props, Component>): Promise<Hosted<Component>>;
48
116
  export {};
49
117
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/testing/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/testing/host.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,58 @@
1
- import { TungstenBaseComponent, TungstenSimpleComponent } from "../Components.js";
2
- import { componentPackageMock } from './temp/componentPackageMock.js';
1
+ import { TungstenBaseComponent, TungstenBaseSimpleStoreComponent, TungstenBaseStatefulStoreComponent, TungstenBaseStoreComponent, TungstenSimpleComponent } from "../Components.js";
2
+ import { objectMap } from '../objectMap.js';
3
+ import { routing } from "../Servers/routing.js";
4
+ import { missingStoreValue, storeValue, testingComponentPackage } from './testingComponentPackage.js';
3
5
  const isPromise = value => value instanceof Promise || typeof value === 'object' && value !== null && 'then' in value;
4
6
  // The same list at runtime. Underscore-prefixed members are excluded by rule
5
7
  // (the framework's naming scheme), so only the plain-named ones are listed, and
6
8
  // frameworkMembersAreComplete below fails to compile if one is ever missed.
7
9
  const frameworkMemberNames = ['props', 'routeParams', 'routeData', 'parentComponent', 'childComponents', 'globalData', 'state', 'storeData', 'style', 'title', 'content', 'render', 'init', 'clientInit', 'serverInit', 'componentDidMount', 'componentDidHydrate', 'componentDidUpdate', 'componentDidRender', 'componentWillUnmount', 'componentDidUnmount', 'shouldStoreComponentUpdate', 'setState', 'triggerUpdate', 'pickProps', 'pickState', 'using', 'reactive', 'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval'];
8
10
  const frameworkMembers = new Set(frameworkMemberNames);
9
- /**
10
- * Constructs a component outside of any app and drives it the way the framework
11
- * does - init, then the mount lifecycles - calling its content function with
12
- * whatever arguments its flavour takes, so tests don't have to match the
13
- * (props) / (props, state) signature themselves.
14
- *
15
- * No DOM: content is returned as a content node tree, unstyled, and never
16
- * reconciled. createTestApp() is the harness for anything that needs a document
17
- * or app state. Lifecycle failures are thrown rather than only reported, so a
18
- * test can't pass over one.
19
- *
20
- * State is not proxied (the construct package is marked `hosted`), so nothing
21
- * re-renders on its own: updateProps() and updateState() are the renders.
22
- */
23
- export async function host(ComponentType, ...args) {
24
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- the conditional tuple isn't destructurable as written
25
- const [props, options] = args;
11
+ const isStoreComponent = component => component instanceof TungstenBaseStoreComponent || component instanceof TungstenBaseSimpleStoreComponent || component instanceof TungstenBaseStatefulStoreComponent;
12
+ // Runs routing only when asked: a unit test otherwise states the route itself.
13
+ async function hostedRouting(options) {
14
+ if (options.routing === true) {
15
+ const routes = typeof options.routes === 'function' ? options.routes(null) : options.routes;
16
+ return {
17
+ routes,
18
+ internalStore: {
19
+ location: options.location,
20
+ matchedRouteInfo: await routing(options.location, routes),
21
+ popMessages: []
22
+ }
23
+ };
24
+ }
25
+ const {
26
+ location,
27
+ matchedRoute
28
+ } = options;
29
+ const matchedRouteInfo = matchedRoute === undefined ? undefined : {
30
+ key: matchedRoute.key,
31
+ params: matchedRoute.params ?? {},
32
+ content: null,
33
+ ...('data' in matchedRoute ? {
34
+ data: matchedRoute.data
35
+ } : {})
36
+ };
37
+ return {
38
+ routes: options.routes,
39
+ internalStore: {
40
+ location: location ?? '/',
41
+ ...(matchedRouteInfo !== undefined ? {
42
+ matchedRouteInfo
43
+ } : {}),
44
+ popMessages: []
45
+ }
46
+ };
47
+ }
48
+ export async function host(ComponentType, props,
49
+ // unknown, not a loose object type: the general overload's rest tuple can't be related to one
50
+ options) {
51
+ const stored = options ?? {};
52
+ const storeData = stored.storeData ?? stored.partialStoreData;
53
+ const store = stored.store ?? stored.partialStore ?? (storeData === undefined ? undefined : objectMap(storeData, (_, value) => storeValue(value)));
54
+ const partial = stored.partialStore !== undefined || stored.partialStoreData !== undefined;
55
+ const route = await hostedRouting(stored);
26
56
  const pending = [];
27
57
  const failures = [];
28
58
  // Instance.trackWork's no-scheduler path, except the work is kept so host
@@ -48,9 +78,16 @@ export async function host(ComponentType, ...args) {
48
78
  };
49
79
  let title;
50
80
  const navigations = [];
51
- const component = new ComponentType(componentPackageMock(
81
+ const component = new ComponentType(testingComponentPackage(
52
82
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- an absent props object is only reachable when Props allows {}
53
83
  props ?? {}, {
84
+ ...(store !== undefined ? {
85
+ store
86
+ } : {}),
87
+ ...(route.routes !== undefined ? {
88
+ routes: route.routes
89
+ } : {}),
90
+ internalStore: route.internalStore,
54
91
  trackWork,
55
92
  // setState's work, run and awaited here rather than left to a timer
56
93
  queueTask: (task, description) => {
@@ -72,11 +109,14 @@ export async function host(ComponentType, ...args) {
72
109
  kind: 'redirect',
73
110
  to
74
111
  });
75
- },
76
- ...(options?.environment !== undefined ? {
77
- environment: options.environment
78
- } : {})
112
+ }
79
113
  }));
114
+ // a partial store only has the keys supplied, so name any other it reads
115
+ if (partial && isStoreComponent(component)) {
116
+ component.store = new Proxy(component.store, {
117
+ get: (target, key) => typeof key === 'symbol' || key in target ? Reflect.get(target, key) : missingStoreValue(`store.${key}`)
118
+ });
119
+ }
80
120
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- state isn't on the base class, see StateOf
81
121
  const stateful = component;
82
122
  const simple = component instanceof TungstenSimpleComponent;
@@ -1,6 +1,6 @@
1
1
  import type { ConstructPackage, TungstenBaseComponent, TungstenComponentPropsBase } from '../Components.jsx';
2
2
  import type { TaggedAttributeMismatch } from '../hydrate/renderHydrationMismatchBanner.js';
3
- import type { TestAppOptions } from './index.js';
3
+ import type { TestAppOptions } from './createTestApp.js';
4
4
  export type HydrateTestAppOptions<Props extends object> = TestAppOptions<Props> & {
5
5
  serverProps?: Props;
6
6
  csr?: boolean;