tungsten 0.6.3 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.build-complete +1 -1
- package/dist/Brands.d.ts +16 -0
- package/dist/Brands.d.ts.map +1 -0
- package/dist/Brands.js +22 -0
- package/dist/Components.d.ts +4 -1
- package/dist/Components.d.ts.map +1 -1
- package/dist/Components.js +24 -6
- package/dist/ContentNode.d.ts +3 -2
- package/dist/ContentNode.d.ts.map +1 -1
- package/dist/ContentNode.js +11 -0
- package/dist/Framework.d.ts.map +1 -1
- package/dist/Framework.js +23 -4
- package/dist/FrameworkConfig.d.ts +9 -1
- package/dist/FrameworkConfig.d.ts.map +1 -1
- package/dist/FrameworkConfig.types.test.d.ts +2 -0
- package/dist/FrameworkConfig.types.test.d.ts.map +1 -0
- package/dist/FrameworkConfig.types.test.js +6 -0
- package/dist/FunctionComponent.d.ts +1 -0
- package/dist/FunctionComponent.d.ts.map +1 -1
- package/dist/FunctionComponentStandIn.d.ts.map +1 -1
- package/dist/Instance/Instance.d.ts +21 -9
- package/dist/Instance/Instance.d.ts.map +1 -1
- package/dist/Instance/Instance.js +42 -38
- package/dist/Instance/InstanceConfig.d.ts +3 -1
- package/dist/Instance/InstanceConfig.d.ts.map +1 -1
- package/dist/RenderedContentNode.d.ts.map +1 -1
- package/dist/RenderingNode.d.ts.map +1 -1
- package/dist/Servers/DevServer.d.ts +4 -2
- package/dist/Servers/DevServer.d.ts.map +1 -1
- package/dist/Servers/DevServer.js +72 -21
- package/dist/Servers/ProdServer.d.ts +5 -2
- package/dist/Servers/ProdServer.d.ts.map +1 -1
- package/dist/Servers/ProdServer.js +95 -19
- package/dist/Servers/StaticSiteServer.d.ts +1 -1
- package/dist/Servers/StaticSiteServer.d.ts.map +1 -1
- package/dist/Servers/TungstenServer.d.ts +2 -1
- package/dist/Servers/TungstenServer.d.ts.map +1 -1
- package/dist/Servers/TungstenServer.js +7 -0
- package/dist/Servers/cacheVersioned.d.ts +3 -0
- package/dist/Servers/cacheVersioned.d.ts.map +1 -0
- package/dist/Servers/cacheVersioned.js +23 -0
- package/dist/Servers/devErrorPageAutoRetry.d.ts.map +1 -1
- package/dist/Servers/devErrorPageAutoRetry.js +1 -0
- package/dist/Servers/initStores.d.ts +4 -4
- package/dist/Servers/initStores.d.ts.map +1 -1
- package/dist/Servers/initStores.js +2 -2
- package/dist/Servers/loadEnvsDev.d.ts.map +1 -1
- package/dist/Servers/loadEnvsDev.js +7 -6
- package/dist/Servers/resetRegistrations.d.ts +2 -0
- package/dist/Servers/resetRegistrations.d.ts.map +1 -0
- package/dist/Servers/resetRegistrations.js +13 -0
- package/dist/Servers/routing.d.ts +3 -2
- package/dist/Servers/routing.d.ts.map +1 -1
- package/dist/Servers/routing.js +12 -7
- package/dist/Servers/stubInstance.d.ts +8 -0
- package/dist/Servers/stubInstance.d.ts.map +1 -0
- package/dist/Servers/stubInstance.js +40 -0
- package/dist/Store/InternalStoreSchema.d.ts +1 -1
- package/dist/Store/Store.js +2 -1
- package/dist/Store/StoreSchemaClass.d.ts +6 -3
- package/dist/Store/StoreSchemaClass.d.ts.map +1 -1
- package/dist/Store/StoreSchemaClass.js +8 -1
- package/dist/Store/TypeSafeStore.js +2 -1
- package/dist/Store/createStores.d.ts +3 -3
- package/dist/Store/createStores.d.ts.map +1 -1
- package/dist/Store/createStores.js +7 -2
- package/dist/Store/getInternalStore.d.ts.map +1 -1
- package/dist/Store/registerStore.d.ts.map +1 -1
- package/dist/Store/registerStore.js +2 -2
- package/dist/Store/storeCreators.d.ts +2 -2
- package/dist/Store/storeCreators.d.ts.map +1 -1
- package/dist/TungstenApp.d.ts +3 -3
- package/dist/TungstenApp.d.ts.map +1 -1
- package/dist/_client/cjsHelpers.d.ts.map +1 -1
- package/dist/_client/cjsHelpers.js +5 -3
- package/dist/_client/client.d.ts +2 -0
- package/dist/_client/client.d.ts.map +1 -1
- package/dist/_client/client.js +10 -3
- package/dist/api/getApiRoutes.d.ts.map +1 -1
- package/dist/api/getExport.d.ts +1 -1
- package/dist/api/getExport.d.ts.map +1 -1
- package/dist/api/getExport.js +2 -1
- package/dist/api/getExportDev.d.ts +1 -1
- package/dist/api/getExportDev.d.ts.map +1 -1
- package/dist/appBuilder.d.ts +69 -0
- package/dist/appBuilder.d.ts.map +1 -0
- package/dist/appBuilder.js +98 -0
- package/dist/appBuilder.types.test.d.ts +110 -0
- package/dist/appBuilder.types.test.d.ts.map +1 -0
- package/dist/appBuilder.types.test.js +240 -0
- package/dist/babelPlugins/BabelTransformBindDirect.js +7 -7
- package/dist/babelPlugins/BabelTransformBindVar.js +7 -7
- package/dist/babelPlugins/BabelTransformComponentState.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformComponentStyles.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformComponentStyles.js +5 -5
- package/dist/babelPlugins/BabelTransformCssImports.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformCssImports.js +2 -2
- package/dist/babelPlugins/BabelTransformDeproxyState.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformPackageImports.js +11 -6
- package/dist/babelPlugins/BabelTransformRemoveDevBlocks.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformRemoveServerBlocks.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTypes.d.ts.map +1 -1
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -1
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.js +1 -1
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -1
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.js +2 -2
- package/dist/bin/commands/compile.d.ts.map +1 -1
- package/dist/bin/commands/compile.js +2 -1
- package/dist/build/CompilationInfo.d.ts +3 -0
- package/dist/build/CompilationInfo.d.ts.map +1 -1
- package/dist/build/assetVersions.d.ts +9 -0
- package/dist/build/assetVersions.d.ts.map +1 -0
- package/dist/build/assetVersions.js +39 -0
- package/dist/build/babel.user.common.config.d.ts.map +1 -1
- package/dist/build/bundle.d.ts.map +1 -1
- package/dist/build/bundle.js +2 -1
- package/dist/build/bundleBabelOptions.d.ts.map +1 -1
- package/dist/build/clientRoutesFile.d.ts +2 -0
- package/dist/build/clientRoutesFile.d.ts.map +1 -0
- package/dist/build/clientRoutesFile.js +13 -0
- package/dist/build/compileJavascript.d.ts.map +1 -1
- package/dist/build/compileJavascript.js +4 -3
- package/dist/build/compileStyles.d.ts +2 -1
- package/dist/build/compileStyles.d.ts.map +1 -1
- package/dist/build/compileStyles.js +38 -83
- package/dist/build/compileUserApp.d.ts.map +1 -1
- package/dist/build/componentStylesCache.d.ts.map +1 -1
- package/dist/build/componentStylesCache.js +3 -2
- package/dist/build/copyAssets.d.ts.map +1 -1
- package/dist/build/copyAssets.js +2 -1
- package/dist/build/copyPackageModulesToPackagesFolder.d.ts.map +1 -1
- package/dist/build/copyPackageModulesToPackagesFolder.js +1 -1
- package/dist/build/copyPublicFiles.d.ts.map +1 -1
- package/dist/build/copyPublicFiles.js +2 -1
- package/dist/build/createClientFiles.d.ts.map +1 -1
- package/dist/build/createClientFiles.js +9 -5
- package/dist/build/createInstanceConfigFile.d.ts +1 -1
- package/dist/build/createInstanceConfigFile.d.ts.map +1 -1
- package/dist/build/createInstanceConfigFile.js +9 -3
- package/dist/build/frameworkDestLocation.d.ts.map +1 -1
- package/dist/build/frameworkDestLocation.js +5 -6
- package/dist/build/frameworkStylesheets.d.ts.map +1 -1
- package/dist/build/frameworkStylesheets.js +1 -1
- package/dist/build/makeBabelRawConfig.d.ts.map +1 -1
- package/dist/build/makeBabelUserDevConfig.d.ts +2 -2
- package/dist/build/makeBabelUserDevConfig.d.ts.map +1 -1
- package/dist/build/makeBabelUserProdConfig.d.ts.map +1 -1
- package/dist/build/rollup.user.prod.config.d.ts.map +1 -1
- package/dist/build/rollup.user.prod.config.js +5 -3
- package/dist/build/rollupProdConstants.d.ts +5 -0
- package/dist/build/rollupProdConstants.d.ts.map +1 -0
- package/dist/build/rollupProdConstants.js +21 -0
- package/dist/cacheControl.d.ts +13 -0
- package/dist/cacheControl.d.ts.map +1 -0
- package/dist/cacheControl.js +22 -0
- package/dist/compat/types.d.ts +1 -1
- package/dist/compat/types.d.ts.map +1 -1
- package/dist/componentHelpers.d.ts +19 -0
- package/dist/componentHelpers.d.ts.map +1 -0
- package/dist/componentHelpers.js +31 -0
- package/dist/componentProxyHandlers.d.ts.map +1 -1
- package/dist/components/Fragment.d.ts +8 -0
- package/dist/components/Fragment.d.ts.map +1 -0
- package/dist/components/Fragment.js +10 -0
- package/dist/components/Link.d.ts +4 -3
- package/dist/components/Link.d.ts.map +1 -1
- package/dist/components/Link.js +1 -0
- package/dist/components/NoEscape.d.ts +8 -0
- package/dist/components/NoEscape.d.ts.map +1 -0
- package/dist/components/NoEscape.js +6 -0
- package/dist/components/RouteRedirectComponent.d.ts.map +1 -1
- package/dist/components/RouteRedirectComponent.js +1 -1
- package/dist/components/WebRedirectComponent.d.ts.map +1 -1
- package/dist/components/WebRedirectComponent.js +1 -1
- package/dist/components/bindable/BindVariable.d.ts +1 -0
- package/dist/components/bindable/BindVariable.d.ts.map +1 -1
- package/dist/components/bindable/BindableCheckbox.d.ts +7 -7
- package/dist/components/bindable/BindableCheckbox.d.ts.map +1 -1
- package/dist/components/bindable/BindableInput.d.ts +7 -7
- package/dist/components/bindable/BindableInput.d.ts.map +1 -1
- package/dist/components/bindable/BindableInputNonString.d.ts +2 -2
- package/dist/components/bindable/BindableInputNonString.d.ts.map +1 -1
- package/dist/components/bindable/BindableInputString.d.ts +2 -2
- package/dist/components/bindable/BindableInputString.d.ts.map +1 -1
- package/dist/components/bindable/BindableInputTyped.d.ts +3 -3
- package/dist/components/bindable/BindableInputTyped.d.ts.map +1 -1
- package/dist/components/bindable/BindableInputTypedLegacy.d.ts +3 -3
- package/dist/components/bindable/BindableInputTypedLegacy.d.ts.map +1 -1
- package/dist/components/bindable/BindableRadio.js +2 -2
- package/dist/components/bindable/BindableSelect.d.ts +13 -10
- package/dist/components/bindable/BindableSelect.d.ts.map +1 -1
- package/dist/components/bindable/BindableSelectNaive.js +3 -3
- package/dist/components/bindable/BindableTextarea.d.ts +7 -7
- package/dist/components/bindable/BindableTextarea.d.ts.map +1 -1
- package/dist/components/bindable/bindableCandidates.comparison.d.ts +136 -0
- package/dist/components/bindable/bindableCandidates.comparison.d.ts.map +1 -0
- package/dist/components/bindable/bindableCandidates.comparison.js +268 -0
- package/dist/components/bindable/bindableProps.types.test.d.ts +50 -0
- package/dist/components/bindable/bindableProps.types.test.d.ts.map +1 -0
- package/dist/components/bindable/bindableProps.types.test.js +252 -0
- package/dist/components/library/RichTextEditor/RichTextEditor.d.ts.map +1 -1
- package/dist/components/library/RichTextEditor/contentTree.d.ts.map +1 -1
- package/dist/components/makeTypedLink.d.ts +9 -0
- package/dist/components/makeTypedLink.d.ts.map +1 -0
- package/dist/components/makeTypedLink.js +15 -0
- package/dist/context/registerContext.d.ts +22 -0
- package/dist/context/registerContext.d.ts.map +1 -0
- package/dist/context/registerContext.js +18 -0
- package/dist/env/getEnvSchemas.d.ts.map +1 -1
- package/dist/env/getEnvSchemas.js +2 -1
- package/dist/fileVersions.d.ts +9 -0
- package/dist/fileVersions.d.ts.map +1 -0
- package/dist/fileVersions.js +28 -0
- package/dist/findUserConfig.d.ts +1 -1
- package/dist/findUserConfig.d.ts.map +1 -1
- package/dist/findUserConfig.js +2 -1
- package/dist/frameworkConfigSchema.d.ts +16 -2
- package/dist/frameworkConfigSchema.d.ts.map +1 -1
- package/dist/frameworkConfigSchema.js +15 -3
- package/dist/getComponent.d.ts.map +1 -1
- package/dist/getComponent.js +4 -3
- package/dist/getRoutes.d.ts.map +1 -1
- package/dist/getRoutes.js +9 -8
- package/dist/getUserConfig.d.ts.map +1 -1
- package/dist/hmr/applyHmrModule.d.ts.map +1 -1
- package/dist/hmr/componentIdentity.js +1 -1
- package/dist/hooks/getCurrentComponent.d.ts +1 -1
- package/dist/hooks/getCurrentComponent.d.ts.map +1 -1
- package/dist/hydrate/hydrate.d.ts +5 -1
- package/dist/hydrate/hydrate.d.ts.map +1 -1
- package/dist/hydrate/hydrate.js +86 -52
- package/dist/hydrate/hydrateGlobalData.d.ts +4 -3
- package/dist/hydrate/hydrateGlobalData.d.ts.map +1 -1
- package/dist/hydrate/reconcileHydratedAttributes.d.ts +2 -1
- package/dist/hydrate/reconcileHydratedAttributes.d.ts.map +1 -1
- package/dist/hydrate/reconcileHydratedAttributes.js +4 -3
- package/dist/hydrate/renderHydrationMismatchBanner.d.ts.map +1 -1
- package/dist/hydrate/renderHydrationMismatchBanner.js +2 -1
- package/dist/hydrate/stubRouting.d.ts +8 -0
- package/dist/hydrate/stubRouting.d.ts.map +1 -0
- package/dist/hydrate/stubRouting.js +25 -0
- package/dist/importDevModuleWithRetry.d.ts +2 -1
- package/dist/importDevModuleWithRetry.d.ts.map +1 -1
- package/dist/importDevModuleWithRetry.js +2 -1
- package/dist/importModule.d.ts +3 -0
- package/dist/importModule.d.ts.map +1 -0
- package/dist/importModule.js +4 -0
- package/dist/index.js +2 -1
- package/dist/indexInner.d.ts +30 -7
- package/dist/indexInner.d.ts.map +1 -1
- package/dist/indexInner.js +37 -2
- package/dist/json.d.ts +12 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +8 -0
- package/dist/jsxHelpers.d.ts +3 -0
- package/dist/jsxHelpers.d.ts.map +1 -0
- package/dist/jsxHelpers.js +6 -0
- package/dist/jsxRuntime.d.ts +1 -0
- package/dist/jsxRuntime.d.ts.map +1 -1
- package/dist/jsxRuntime.js +3 -1
- package/dist/jsxRuntimeSignals.d.ts.map +1 -1
- package/dist/jsxRuntimeSignals.js +1 -0
- package/dist/makeFinalConfig.d.ts.map +1 -1
- package/dist/makeFinalConfig.js +2 -0
- package/dist/makeInstanceConfigFromFrameworkConfig.d.ts.map +1 -1
- package/dist/makeInstanceConfigFromFrameworkConfig.js +2 -0
- package/dist/mergeConfigs.d.ts.map +1 -1
- package/dist/mergeConfigs.js +2 -6
- package/dist/nbsp.d.ts +1 -2
- package/dist/nbsp.d.ts.map +1 -1
- package/dist/nbsp.js +3 -7
- package/dist/objectMap.d.ts +1 -1
- package/dist/objectMap.d.ts.map +1 -1
- package/dist/pipeline/PipelineRequestHandler.d.ts +25 -0
- package/dist/pipeline/PipelineRequestHandler.d.ts.map +1 -0
- package/dist/pipeline/PipelineRequestHandler.js +104 -0
- package/dist/pipeline/contextStore.d.ts +12 -0
- package/dist/pipeline/contextStore.d.ts.map +1 -0
- package/dist/pipeline/contextStore.js +13 -0
- package/dist/pipeline/hydratePipeline.d.ts +4 -0
- package/dist/pipeline/hydratePipeline.d.ts.map +1 -0
- package/dist/pipeline/hydratePipeline.js +83 -0
- package/dist/pipeline/importRoutesModule.d.ts +6 -0
- package/dist/pipeline/importRoutesModule.d.ts.map +1 -0
- package/dist/pipeline/importRoutesModule.js +33 -0
- package/dist/pipeline/networkedTransport.d.ts +11 -0
- package/dist/pipeline/networkedTransport.d.ts.map +1 -0
- package/dist/pipeline/networkedTransport.js +54 -0
- package/dist/pipeline/pipeline.d.ts +107 -0
- package/dist/pipeline/pipeline.d.ts.map +1 -0
- package/dist/pipeline/pipeline.js +113 -0
- package/dist/pipeline/pipeline.types.test.d.ts +760 -0
- package/dist/pipeline/pipeline.types.test.d.ts.map +1 -0
- package/dist/pipeline/pipeline.types.test.js +344 -0
- package/dist/pipeline/pipelineDefinition.d.ts +78 -0
- package/dist/pipeline/pipelineDefinition.d.ts.map +1 -0
- package/dist/pipeline/pipelineDefinition.js +11 -0
- package/dist/pipeline/pipelineSplit.types.test.d.ts +2445 -0
- package/dist/pipeline/pipelineSplit.types.test.d.ts.map +1 -0
- package/dist/pipeline/pipelineSplit.types.test.js +440 -0
- package/dist/pipeline/runPipeline.d.ts +29 -0
- package/dist/pipeline/runPipeline.d.ts.map +1 -0
- package/dist/pipeline/runPipeline.js +71 -0
- package/dist/pipeline/runSplitPipeline.d.ts +10 -0
- package/dist/pipeline/runSplitPipeline.d.ts.map +1 -0
- package/dist/pipeline/runSplitPipeline.js +52 -0
- package/dist/pipeline/splitPipeline.d.ts +62 -0
- package/dist/pipeline/splitPipeline.d.ts.map +1 -0
- package/dist/pipeline/splitPipeline.js +76 -0
- package/dist/pop.js +1 -1
- package/dist/rawHtml/filterContentNode.d.ts.map +1 -1
- package/dist/render/HeadData.d.ts +3 -1
- package/dist/render/HeadData.d.ts.map +1 -1
- package/dist/render/classComponentNodeToRenderingTree.d.ts.map +1 -1
- package/dist/render/componentNodeToRenderingTree.d.ts.map +1 -1
- package/dist/render/contentToHtml.d.ts +2 -2
- package/dist/render/contentToHtml.d.ts.map +1 -1
- package/dist/render/contentToHtml.js +2 -1
- package/dist/render/contentToHtmlDev.d.ts +1 -1
- package/dist/render/contentToHtmlDev.d.ts.map +1 -1
- package/dist/render/contentTreeToRenderingTree.d.ts.map +1 -1
- package/dist/render/contentTreeToRenderingTree.js +6 -2
- package/dist/render/functionComponentNodeToRenderingTree.d.ts.map +1 -1
- package/dist/render/functionComponentNodeToRenderingTree.js +2 -2
- package/dist/render/instantiateComponent.d.ts.map +1 -1
- package/dist/render/processHead.d.ts.map +1 -1
- package/dist/render/processHead.js +12 -18
- package/dist/render/renderingTreeToHtml.d.ts.map +1 -1
- package/dist/render/renderingTreeToHtml.js +6 -3
- package/dist/render/rootToHtml.d.ts +2 -2
- package/dist/render/rootToHtml.d.ts.map +1 -1
- package/dist/requests/fetch/delete.d.ts.map +1 -1
- package/dist/requests/fetch/delete.js +5 -2
- package/dist/requests/fetch/get.js +1 -1
- package/dist/requests/fetch/patch.d.ts.map +1 -1
- package/dist/requests/fetch/patch.js +5 -2
- package/dist/requests/fetch/post.d.ts.map +1 -1
- package/dist/requests/fetch/post.js +5 -2
- package/dist/requests/fetch/put.d.ts.map +1 -1
- package/dist/requests/fetch/put.js +5 -2
- package/dist/routesLocationParts.d.ts +6 -0
- package/dist/routesLocationParts.d.ts.map +1 -0
- package/dist/routesLocationParts.js +10 -0
- package/dist/routing/AppRoutes.d.ts +5 -3
- package/dist/routing/AppRoutes.d.ts.map +1 -1
- package/dist/routing/MatchedRouteInfo.d.ts +13 -0
- package/dist/routing/MatchedRouteInfo.d.ts.map +1 -0
- package/dist/routing/MatchedRouteInfo.js +1 -0
- package/dist/routing/RouteContentFunction.d.ts +1 -2
- package/dist/routing/RouteContentFunction.d.ts.map +1 -1
- package/dist/routing/RouteDataFunction.type.d.ts +4 -2
- package/dist/routing/RouteDataFunction.type.d.ts.map +1 -1
- package/dist/routing/RoutePaths.d.ts +12 -0
- package/dist/routing/RoutePaths.d.ts.map +1 -0
- package/dist/routing/RouteTypes.d.ts +6 -4
- package/dist/routing/RouteTypes.d.ts.map +1 -1
- package/dist/routing/Routes.d.ts +20 -11
- package/dist/routing/Routes.d.ts.map +1 -1
- package/dist/routing/RoutesFunction.d.ts +11 -2
- package/dist/routing/RoutesFunction.d.ts.map +1 -1
- package/dist/routing/Serializable.d.ts +5 -0
- package/dist/routing/Serializable.d.ts.map +1 -0
- package/dist/routing/Serializable.js +1 -0
- package/dist/routing/builder.d.ts +100 -0
- package/dist/routing/builder.d.ts.map +1 -0
- package/dist/routing/builder.js +219 -0
- package/dist/routing/builder.trial.d.ts +2 -0
- package/dist/routing/builder.trial.d.ts.map +1 -0
- package/dist/routing/builder.trial.js +85 -0
- package/dist/routing/defineRoutes.d.ts +8 -0
- package/dist/routing/defineRoutes.d.ts.map +1 -0
- package/dist/routing/defineRoutes.js +3 -0
- package/dist/routing/pyramidRouting.d.ts +2 -0
- package/dist/routing/pyramidRouting.d.ts.map +1 -0
- package/dist/routing/pyramidRouting.js +13 -0
- package/dist/routing/redirectOf.d.ts +11 -0
- package/dist/routing/redirectOf.d.ts.map +1 -0
- package/dist/routing/redirectOf.js +32 -0
- package/dist/routing/registerGlobalData.d.ts +11 -3
- package/dist/routing/registerGlobalData.d.ts.map +1 -1
- package/dist/routing/registerGlobalData.js +6 -0
- package/dist/routing/registerParts.types.test.d.ts +2 -0
- package/dist/routing/registerParts.types.test.d.ts.map +1 -0
- package/dist/routing/registerParts.types.test.js +139 -0
- package/dist/routing/registerRoutes.d.ts +10 -0
- package/dist/routing/registerRoutes.d.ts.map +1 -0
- package/dist/routing/registerRoutes.js +9 -0
- package/dist/routing/registerRouting.d.ts +36 -0
- package/dist/routing/registerRouting.d.ts.map +1 -0
- package/dist/routing/registerRouting.js +34 -0
- package/dist/routing/registerRouting.types.test.d.ts +80 -0
- package/dist/routing/registerRouting.types.test.d.ts.map +1 -0
- package/dist/routing/registerRouting.types.test.js +120 -0
- package/dist/routing/registrationTypes.d.ts +11 -0
- package/dist/routing/registrationTypes.d.ts.map +1 -0
- package/dist/routing/registrationTypes.js +1 -0
- package/dist/routing/resolveAppRoutes.d.ts +5 -0
- package/dist/routing/resolveAppRoutes.d.ts.map +1 -0
- package/dist/routing/resolveAppRoutes.js +25 -0
- package/dist/routing/routesArray.d.ts +23 -0
- package/dist/routing/routesArray.d.ts.map +1 -0
- package/dist/routing/routesArray.js +20 -0
- package/dist/routing/routesArray.types.test.d.ts +2 -0
- package/dist/routing/routesArray.types.test.d.ts.map +1 -0
- package/dist/routing/routesArray.types.test.js +132 -0
- package/dist/routing/routingBuilder.d.ts +34 -0
- package/dist/routing/routingBuilder.d.ts.map +1 -0
- package/dist/routing/routingBuilder.js +32 -0
- package/dist/routing/routingBuilder.types.test.d.ts +2 -0
- package/dist/routing/routingBuilder.types.test.d.ts.map +1 -0
- package/dist/routing/routingBuilder.types.test.js +171 -0
- package/dist/routing/routingRegistry.d.ts +19 -0
- package/dist/routing/routingRegistry.d.ts.map +1 -0
- package/dist/routing/routingRegistry.js +29 -0
- package/dist/staticGen/getAppRoutes.d.ts +2 -2
- package/dist/staticGen/getAppRoutes.d.ts.map +1 -1
- package/dist/staticGen/getAppRoutes.js +9 -6
- package/dist/staticGen/staticGen.d.ts.map +1 -1
- package/dist/staticGen/staticGen.js +8 -2
- package/dist/style/styleContentSxy.d.ts.map +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +2 -0
- package/dist/syncServer/index.cjs +1 -2
- package/dist/syncServer/preload.js +2 -0
- package/dist/testing/contentToString.d.ts +13 -0
- package/dist/testing/contentToString.d.ts.map +1 -0
- package/dist/testing/contentToString.js +105 -0
- package/dist/testing/createTestApp.d.ts +25 -1
- package/dist/testing/createTestApp.d.ts.map +1 -1
- package/dist/testing/createTestApp.js +12 -3
- package/dist/testing/display.d.ts +2 -0
- package/dist/testing/display.d.ts.map +1 -0
- package/dist/testing/display.js +37 -0
- package/dist/testing/ensure.d.ts +119 -0
- package/dist/testing/ensure.d.ts.map +1 -0
- package/dist/testing/ensure.js +664 -0
- package/dist/testing/ensure.trial.d.ts +2 -0
- package/dist/testing/ensure.trial.d.ts.map +1 -0
- package/dist/testing/ensure.trial.js +9 -0
- package/dist/testing/ensure.types.test.d.ts +2 -0
- package/dist/testing/ensure.types.test.d.ts.map +1 -0
- package/dist/testing/ensure.types.test.js +34 -0
- package/dist/testing/helpers/contentHtmlElements.d.ts.map +1 -1
- package/dist/testing/host.d.ts +86 -15
- package/dist/testing/host.d.ts.map +1 -1
- package/dist/testing/host.js +82 -23
- package/dist/testing/host.types.test.d.ts +2 -0
- package/dist/testing/host.types.test.d.ts.map +1 -0
- package/dist/testing/host.types.test.js +81 -0
- package/dist/testing/hydrateTestApp.d.ts +17 -0
- package/dist/testing/hydrateTestApp.d.ts.map +1 -1
- package/dist/testing/hydrateTestApp.js +27 -6
- package/dist/testing/index.d.ts +5 -3
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3 -1
- package/dist/testing/pipeline/createTestPacketApp.d.ts +30 -0
- package/dist/testing/pipeline/createTestPacketApp.d.ts.map +1 -0
- package/dist/testing/pipeline/createTestPacketApp.js +45 -0
- package/dist/testing/pipeline/createTestPacketApp.types.test.d.ts +3 -0
- package/dist/testing/pipeline/createTestPacketApp.types.test.d.ts.map +1 -0
- package/dist/testing/pipeline/createTestPacketApp.types.test.js +101 -0
- package/dist/testing/pipeline/createTestPipelineApp.d.ts +70 -0
- package/dist/testing/pipeline/createTestPipelineApp.d.ts.map +1 -0
- package/dist/testing/pipeline/createTestPipelineApp.js +90 -0
- package/dist/testing/pipeline/createTestPipelineApp.types.test.d.ts +6 -0
- package/dist/testing/pipeline/createTestPipelineApp.types.test.d.ts.map +1 -0
- package/dist/testing/pipeline/createTestPipelineApp.types.test.js +146 -0
- package/dist/testing/pipeline/hostPipeline.d.ts +25 -0
- package/dist/testing/pipeline/hostPipeline.d.ts.map +1 -0
- package/dist/testing/pipeline/hostPipeline.js +18 -0
- package/dist/testing/pipeline/hydrateTestPipelineApp.d.ts +30 -0
- package/dist/testing/pipeline/hydrateTestPipelineApp.d.ts.map +1 -0
- package/dist/testing/pipeline/hydrateTestPipelineApp.js +193 -0
- package/dist/testing/pipeline/hydrateTestPipelineApp.types.test.d.ts +2 -0
- package/dist/testing/pipeline/hydrateTestPipelineApp.types.test.d.ts.map +1 -0
- package/dist/testing/pipeline/hydrateTestPipelineApp.types.test.js +27 -0
- package/dist/testing/pipeline/index.d.ts +5 -0
- package/dist/testing/pipeline/index.d.ts.map +1 -0
- package/dist/testing/pipeline/index.js +4 -0
- package/dist/testing/pipeline/pipelineTestApp.d.ts +34 -0
- package/dist/testing/pipeline/pipelineTestApp.d.ts.map +1 -0
- package/dist/testing/pipeline/pipelineTestApp.js +100 -0
- package/dist/testing/pipeline/testPipelineRoute.d.ts +2 -0
- package/dist/testing/pipeline/testPipelineRoute.d.ts.map +1 -0
- package/dist/testing/pipeline/testPipelineRoute.js +1 -0
- package/dist/testing/resolveContent.d.ts +18 -0
- package/dist/testing/resolveContent.d.ts.map +1 -0
- package/dist/testing/resolveContent.js +73 -0
- package/dist/testing/testingComponentPackage.d.ts +3 -1
- package/dist/testing/testingComponentPackage.d.ts.map +1 -1
- package/dist/testing/testingComponentPackage.js +16 -1
- package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
- package/dist/update/integrateUpdateVdom.js +35 -31
- package/dist/update/integrateUpdateVdomPrebuild.js +20 -20
- package/dist/validChildren.d.ts.map +1 -1
- package/dist/zones/react.d.ts.map +1 -1
- package/package.json +23 -19
- package/types/helpers.d.ts +11 -2
- package/types/jsx/html.d.ts +29 -25
- package/types/jsx/jsx.d.ts +8 -8
- package/types/modules.d.ts +14 -3
- package/types/testing.d.ts +0 -0
- package/vendor/babel-core.js +5 -5
- package/vendor/babel-parser.js +1 -1
- package/vendor/babel-preset-react.js +32 -34
- package/vendor/babel-preset-typescript.js +5 -5
- package/vendor/chalk-extensions.js +3 -146
- package/vendor/chokidar.js +311 -5
- package/vendor/chunk-B34JUlnS.js +169 -0
- package/vendor/{chunk-Bu8ZRE-c.js → chunk-B9ttgKqg.js} +28 -25
- package/vendor/{chunk-D2EnpcLg.js → chunk-BGvapINa.js} +3 -164
- package/vendor/{chunk-Cqrj-Zqr.js → chunk-BmAiqUzD.js} +22 -8
- package/vendor/{chunk-BiUcnLhT.js → chunk-But4T5N_.js} +8 -3
- package/vendor/{chunk-OUnVY4Wm.js → chunk-DuR6SGzI.js} +162 -35
- package/vendor/css-select.js +3383 -0
- package/vendor/dotenv.js +2 -2
- package/vendor/express.js +61 -10
- package/vendor/manifest.json +4 -3
- package/vendor/postcss.js +1 -1
- package/vendor/precinct.js +5914 -3591
- package/vendor/valibot.js +418 -504
- package/dist/Servers/MatchedRouteInfo.d.ts +0 -11
- package/dist/Servers/MatchedRouteInfo.d.ts.map +0 -1
- package/dist/routing/__fluentRouteBuilder.d.ts +0 -80
- package/dist/routing/__fluentRouteBuilder.d.ts.map +0 -1
- package/dist/routing/__fluentRouteBuilder.js +0 -183
- package/dist/routing/__fluentRoutes.d.ts +0 -2
- package/dist/routing/__fluentRoutes.d.ts.map +0 -1
- package/dist/routing/__fluentRoutes.js +0 -59
- package/vendor/chunk-Hy-cCmu-.js +0 -23
- /package/dist/{Servers/MatchedRouteInfo.js → routing/RoutePaths.js} +0 -0
|
@@ -8,6 +8,7 @@ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a),
|
|
|
8
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
9
|
import { $props, $type } from '../contentNodeSymbols.js';
|
|
10
10
|
import { Instance } from '../Instance/Instance.js';
|
|
11
|
+
import { toRoutes } from '../routing/routesArray.js';
|
|
11
12
|
import { hydrateRootComponent, makeDefaultHydrateMeta } from "../hydrate/hydrate.js";
|
|
12
13
|
import { contentTreeToRenderingTree } from '../render/contentTreeToRenderingTree.js';
|
|
13
14
|
import { renderingNodeToHtml } from '../render/renderingTreeToHtml.js';
|
|
@@ -15,13 +16,21 @@ import { initStores } from '../Servers/initStores.js';
|
|
|
15
16
|
import { deleteNodeIfRendered } from '../update/integrateUpdateVdom.js';
|
|
16
17
|
import { UpdateScheduler } from '../update/UpdateScheduler.js';
|
|
17
18
|
import { DomPointer } from '../DomPointer.js';
|
|
19
|
+
import { isClient } from '../isClient.js';
|
|
18
20
|
import { waitForEnvIfLoading } from './loadEnv.js';
|
|
19
21
|
// hydrate.tsx references several DOM globals directly (Node.COMMENT_NODE, `instanceof Text`, the
|
|
20
22
|
// bare `document`) the way real browser code always can - happy-dom only puts these on its own
|
|
21
23
|
// Window, not on Node.js's global scope. Every hand-written hydration test before this harness
|
|
22
24
|
// bridged them manually; a caller of hydrateTestApp() shouldn't need to know that hydrate() was
|
|
23
25
|
// written assuming a real browser to begin with.
|
|
24
|
-
|
|
26
|
+
// Hydration is browser code: isClient decides what tungsten's modules do from the moment they load,
|
|
27
|
+
// so a node-only run would take server paths and fail far from here
|
|
28
|
+
export function requireClient(harness) {
|
|
29
|
+
if (!isClient) {
|
|
30
|
+
throw new Error(`${harness} needs a browser-like environment, and isClient is false: no global window` + ` existed when tungsten loaded. Run it in a DOM test suite whose setup puts happy-dom's` + ` window on the global before the tests are imported.`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export function bridgeHappyDomGlobals(document) {
|
|
25
34
|
const window = document.defaultView;
|
|
26
35
|
if (window === null) return;
|
|
27
36
|
const globals = globalThis; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- bridging happy-dom's globals onto the global scope
|
|
@@ -38,7 +47,7 @@ var _instance = /*#__PURE__*/new WeakMap();
|
|
|
38
47
|
var _scheduler = /*#__PURE__*/new WeakMap();
|
|
39
48
|
var _ownsContainer = /*#__PURE__*/new WeakMap();
|
|
40
49
|
var _unmounted = /*#__PURE__*/new WeakMap();
|
|
41
|
-
class HydrateTestAppImplementation {
|
|
50
|
+
export class HydrateTestAppImplementation {
|
|
42
51
|
constructor(document, container, component, instance, scheduler, ownsContainer, html, mismatches) {
|
|
43
52
|
_defineProperty(this, "document", void 0);
|
|
44
53
|
_defineProperty(this, "container", void 0);
|
|
@@ -111,6 +120,7 @@ class HydrateTestAppImplementation {
|
|
|
111
120
|
* client hydrator does, so a caller reproducing that class of bug should assert on the rejection.
|
|
112
121
|
*/
|
|
113
122
|
export async function hydrateTestApp(RootComponent, ...args) {
|
|
123
|
+
requireClient('hydrateTestApp()');
|
|
114
124
|
await waitForEnvIfLoading();
|
|
115
125
|
const options = args[0];
|
|
116
126
|
const suppliedDocument = options?.document ?? globalThis.document;
|
|
@@ -137,7 +147,8 @@ export async function hydrateTestApp(RootComponent, ...args) {
|
|
|
137
147
|
const clientProps = options?.props ?? {}; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
|
|
138
148
|
const serverProps = options?.serverProps ?? clientProps;
|
|
139
149
|
const location = options?.location ?? '/';
|
|
140
|
-
const globalData = options?.globalData
|
|
150
|
+
const globalData = options?.globalData ? options.globalData // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
|
|
151
|
+
: {}; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
|
|
141
152
|
const matchedRouteInfo = {
|
|
142
153
|
key: null,
|
|
143
154
|
params: options?.routeParams ?? {},
|
|
@@ -157,7 +168,11 @@ export async function hydrateTestApp(RootComponent, ...args) {
|
|
|
157
168
|
// routing() falls back to the built-in 404 when neither '404' nor 'default' is given
|
|
158
169
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
|
|
159
170
|
const appRoutes = options?.routes ?? {};
|
|
160
|
-
const
|
|
171
|
+
const context = options?.context ?? {}; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
|
|
172
|
+
// one object for both passes: the server's is serialized into the page and carried to the client
|
|
173
|
+
const networkedData = options?.networkedData ?? {}; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
|
|
174
|
+
// dev, so a path given twice fails the test
|
|
175
|
+
const routes = toRoutes(typeof appRoutes === 'function' ? appRoutes(null, context, networkedData) : appRoutes, true);
|
|
161
176
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- rootToHtml.ts builds a root content node the same way
|
|
162
177
|
const componentNode = {
|
|
163
178
|
[$type]: RootComponent,
|
|
@@ -172,13 +187,16 @@ export async function hydrateTestApp(RootComponent, ...args) {
|
|
|
172
187
|
internalStore,
|
|
173
188
|
stores,
|
|
174
189
|
storeSubscriptions
|
|
175
|
-
} = initStores(location, null, globalData, matchedRouteInfo);
|
|
190
|
+
} = initStores(location, null, globalData, matchedRouteInfo, null, context, networkedData);
|
|
176
191
|
const ssrInstance = new Instance(location, instanceConfig, null, appRoutes, routes, internalStore, stores, storeSubscriptions, globalData, matchedRouteInfo, {
|
|
177
192
|
document,
|
|
178
193
|
window: document.defaultView,
|
|
179
194
|
scheduler: ssrScheduler,
|
|
180
195
|
navigation: false
|
|
181
196
|
});
|
|
197
|
+
ssrInstance.fileVersions = options?.fileVersions;
|
|
198
|
+
ssrInstance.context = context;
|
|
199
|
+
ssrInstance.networkedData = networkedData;
|
|
182
200
|
for (const override of options?.stores ?? []) {
|
|
183
201
|
const store = override.registration.getStore(ssrInstance.stores);
|
|
184
202
|
await override.initialize(store);
|
|
@@ -210,7 +228,7 @@ export async function hydrateTestApp(RootComponent, ...args) {
|
|
|
210
228
|
internalStore,
|
|
211
229
|
stores,
|
|
212
230
|
storeSubscriptions
|
|
213
|
-
} = initStores(location, null, globalData, matchedRouteInfo);
|
|
231
|
+
} = initStores(location, null, globalData, matchedRouteInfo, null, context, networkedData);
|
|
214
232
|
const runtimeContext = {
|
|
215
233
|
document,
|
|
216
234
|
window: document.defaultView,
|
|
@@ -218,6 +236,9 @@ export async function hydrateTestApp(RootComponent, ...args) {
|
|
|
218
236
|
navigation: false
|
|
219
237
|
};
|
|
220
238
|
const instance = new Instance(location, instanceConfig, null, appRoutes, routes, internalStore, stores, storeSubscriptions, globalData, matchedRouteInfo, runtimeContext);
|
|
239
|
+
instance.fileVersions = options?.fileVersions;
|
|
240
|
+
instance.context = context;
|
|
241
|
+
instance.networkedData = networkedData;
|
|
221
242
|
try {
|
|
222
243
|
for (const override of options?.stores ?? []) {
|
|
223
244
|
const store = override.registration.getStore(instance.stores);
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { loadEnv } from './loadEnv.js';
|
|
2
2
|
export { testEnvVariableName } from './testEnvIsRequested.js';
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
3
|
+
export { type HydrateTestApp, type HydrateTestAppOptions, hydrateTestApp, } from './hydrateTestApp.js';
|
|
4
|
+
export { type ComponentProps, type CreateTestAppArgs, type TestApp, type TestAppOptions, type TestStore, type TestStoreOverride, type TestStoreRegistration, type TestRoutes, createTestApp, testStore, } from './createTestApp.js';
|
|
5
|
+
export { type HostDontResolveOptions, type HostOptions, type HostResolveOptions, type HostStoreDontResolveOptions, type HostStoreOptions, type HostStoreResolveOptions, type Hosted, type HostedResolved, host, hostGeneric, hostJsx, } from './host.js';
|
|
6
6
|
export { testingComponentPackage } from './testingComponentPackage.js';
|
|
7
7
|
export { contentHtmlElements } from './helpers/contentHtmlElements.js';
|
|
8
|
+
export { ensure } from './ensure.js';
|
|
9
|
+
export { contentToString, type ContentToStringOptions } from './contentToString.js';
|
|
8
10
|
export { makeStore, type TrueStore } from '../Store/makeStore.js';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EACH,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAC/C,cAAc,GACjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAC9F,KAAK,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,KAAK,UAAU,EACnE,aAAa,EAAE,SAAS,GAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,KAAK,sBAAsB,EAAE,KAAK,WAAW,EAAE,KAAK,kBAAkB,EACtE,KAAK,2BAA2B,EAAE,KAAK,gBAAgB,EAAE,KAAK,uBAAuB,EACrF,KAAK,MAAM,EAAE,KAAK,cAAc,EAChC,IAAI,EAAE,WAAW,EAAE,OAAO,GAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/testing/index.js
CHANGED
|
@@ -2,7 +2,9 @@ export { loadEnv } from './loadEnv.js';
|
|
|
2
2
|
export { testEnvVariableName } from './testEnvIsRequested.js';
|
|
3
3
|
export { hydrateTestApp } from './hydrateTestApp.js';
|
|
4
4
|
export { createTestApp, testStore } from './createTestApp.js';
|
|
5
|
-
export { host } from './host.js';
|
|
5
|
+
export { host, hostGeneric, hostJsx } from './host.js';
|
|
6
6
|
export { testingComponentPackage } from './testingComponentPackage.js';
|
|
7
7
|
export { contentHtmlElements } from './helpers/contentHtmlElements.js';
|
|
8
|
+
export { ensure } from './ensure.js';
|
|
9
|
+
export { contentToString } from './contentToString.js';
|
|
8
10
|
export { makeStore } from '../Store/makeStore.js';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ConstructPackage, TungstenBaseComponent, TungstenComponentPropsBase } from '../../Components.jsx';
|
|
2
|
+
import type { Nothing } from '../../pipeline/pipeline.js';
|
|
3
|
+
import type { TestApp } from '../createTestApp.js';
|
|
4
|
+
import type { PipelineTestAppOptions } from './pipelineTestApp.js';
|
|
5
|
+
type Field<K extends string, T, Default> = Default extends T ? {
|
|
6
|
+
[_ in K]?: T;
|
|
7
|
+
} : {
|
|
8
|
+
[_ in K]: T;
|
|
9
|
+
};
|
|
10
|
+
export type PacketForComponent<C> = C extends {
|
|
11
|
+
readonly tungsten: {
|
|
12
|
+
readonly context: infer Ctx;
|
|
13
|
+
readonly networked: infer N;
|
|
14
|
+
readonly allRoutesData: infer G;
|
|
15
|
+
};
|
|
16
|
+
} ? Field<'context', Ctx, Nothing> & Field<'networked', N, Nothing> & Field<'allRoutesData', G, undefined> & {
|
|
17
|
+
routes?: never;
|
|
18
|
+
} : 'invalid component';
|
|
19
|
+
export type TestPacketAppOptions<Props extends object> = PipelineTestAppOptions<Props>;
|
|
20
|
+
export type CreateTestPacketAppArgs<Props extends object> = object extends Props ? [options?: TestPacketAppOptions<Props>] : [options: TestPacketAppOptions<Props> & {
|
|
21
|
+
props: Props;
|
|
22
|
+
}];
|
|
23
|
+
/**
|
|
24
|
+
* createTestPipelineApp() with the pipeline's result in place of the pipeline: the component is
|
|
25
|
+
* handed the packet's context, networked data and all-routes data as they are, with no stages run.
|
|
26
|
+
* There are no routes; the location still reaches the instance.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createTestPacketApp<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>, RouteData = undefined>(packet: PacketForComponent<Component>, RootComponent: new (pkg: ConstructPackage<Props, RouteData>) => Component, ...args: CreateTestPacketAppArgs<Props>): Promise<TestApp<Component>>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=createTestPacketApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTestPacketApp.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/createTestPacketApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,gBAAgB,EAAE,qBAAqB,EAAE,0BAA0B,EACtE,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAUlE,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,OAAO,IAAI,OAAO,SAAS,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;CAAE,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,CAAC;CAAE,CAAA;AAIjG,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS;IAC1C,QAAQ,CAAC,QAAQ,EAAE;QACf,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;KAC5F,CAAA;CACJ,GACK,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC,GAC3D,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,SAAS,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,GAC7D,mBAAmB,CAAA;AAIzB,MAAM,MAAM,oBAAoB,CAAC,KAAK,SAAS,MAAM,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAA;AAEtF,MAAM,MAAM,uBAAuB,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GAC1E,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,GACvC,CAAC,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAE/D;;;;GAIG;AACH,wBAAsB,mBAAmB,CACrC,KAAK,SAAS,0BAA0B,EACxC,SAAS,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,EACjD,SAAS,GAAG,SAAS,EAErB,MAAM,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAErC,aAAa,EAAE,KAAK,GAAG,EAAE,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,SAAS,EACzE,GAAG,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC,GACxC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CA8B7B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { isPipelineApp } from '../../pipeline/pipelineDefinition.js';
|
|
2
|
+
import { routingNetworkedData } from '../../pipeline/runPipeline.js';
|
|
3
|
+
import { routing } from "../../Servers/routing.js";
|
|
4
|
+
import { toRoutes } from '../../routing/routesArray.js';
|
|
5
|
+
import { waitForEnvIfLoading } from '../loadEnv.js';
|
|
6
|
+
import { mountPipelineTestApp, pipelineTestTarget } from './pipelineTestApp.js';
|
|
7
|
+
/**
|
|
8
|
+
* createTestPipelineApp() with the pipeline's result in place of the pipeline: the component is
|
|
9
|
+
* handed the packet's context, networked data and all-routes data as they are, with no stages run.
|
|
10
|
+
* There are no routes; the location still reaches the instance.
|
|
11
|
+
*/
|
|
12
|
+
export async function createTestPacketApp(packet,
|
|
13
|
+
// Props is inferred from both the class and `props`, so literal props are typed by the component
|
|
14
|
+
RootComponent, ...args) {
|
|
15
|
+
await waitForEnvIfLoading();
|
|
16
|
+
const options = args[0];
|
|
17
|
+
if (isPipelineApp(packet) || typeof packet === 'object' && 'routes' in packet) {
|
|
18
|
+
throw new Error('createTestPacketApp() takes what a pipeline makes, { context, networked,' + ' allRoutesData }: for a pipeline or app, use createTestPipelineApp().');
|
|
19
|
+
}
|
|
20
|
+
const target = pipelineTestTarget(options, 'createTestPacketApp()');
|
|
21
|
+
const given = packet; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- the constraint above
|
|
22
|
+
const location = options?.location ?? '/';
|
|
23
|
+
const context = given.context ?? {}; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- the framework brands what it builds
|
|
24
|
+
const allRoutesData = given.allRoutesData; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- as above
|
|
25
|
+
const networkedData = routingNetworkedData(undefined);
|
|
26
|
+
const routes = toRoutes([], true);
|
|
27
|
+
const matchedRouteInfo = await routing(location, routes, context, networkedData);
|
|
28
|
+
return mountPipelineTestApp(target, {
|
|
29
|
+
location,
|
|
30
|
+
routes,
|
|
31
|
+
matchedRouteInfo,
|
|
32
|
+
allRoutesData,
|
|
33
|
+
context,
|
|
34
|
+
networkedData,
|
|
35
|
+
appRoutes: () => routes,
|
|
36
|
+
networked: given.networked ?? {},
|
|
37
|
+
// a navigation keeps the packet's all-routes data
|
|
38
|
+
pipeline: {
|
|
39
|
+
routingContext: context,
|
|
40
|
+
routingNetworkedData: networkedData,
|
|
41
|
+
allRoutesData: undefined,
|
|
42
|
+
afterRouting: undefined
|
|
43
|
+
}
|
|
44
|
+
}, RootComponent, options);
|
|
45
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTestPacketApp.types.test.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/createTestPacketApp.types.test.ts"],"names":[],"mappings":"AAkCA,wBAAsB,MAAM,kBAgB3B;AAGD,wBAAsB,YAAY,kBAUjC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
import { TungstenSimpleComponent } from "../../Components.js";
|
|
5
|
+
import { contextStore } from '../../pipeline/contextStore.js';
|
|
6
|
+
import { pipeline } from '../../pipeline/pipeline.js';
|
|
7
|
+
import { splitPipeline } from '../../pipeline/splitPipeline.js';
|
|
8
|
+
import { createTestPacketApp } from './createTestPacketApp.js';
|
|
9
|
+
// Type tests: tsc is the assertion - nothing here runs. The packet must be what the root reads
|
|
10
|
+
const stage = pipeline.server('express').init(() => ({
|
|
11
|
+
api: 'client'
|
|
12
|
+
})).allRoutesData(() => ({
|
|
13
|
+
theme: 'dark'
|
|
14
|
+
}));
|
|
15
|
+
class Reads extends stage.SimpleComponent {
|
|
16
|
+
constructor(...args) {
|
|
17
|
+
super(...args);
|
|
18
|
+
_defineProperty(this, "content", () => `${this.tungsten.context.api} ${this.tungsten.allRoutesData.theme}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
class Plain extends TungstenSimpleComponent {
|
|
22
|
+
constructor(...args) {
|
|
23
|
+
super(...args);
|
|
24
|
+
_defineProperty(this, "content", () => null);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const bare = pipeline.server('express');
|
|
28
|
+
class ReadsNothing extends bare.SimpleComponent {
|
|
29
|
+
constructor(...args) {
|
|
30
|
+
super(...args);
|
|
31
|
+
_defineProperty(this, "content", () => null);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const split = splitPipeline.server('express').serverInit(() => ({
|
|
35
|
+
networked: {
|
|
36
|
+
count: contextStore({
|
|
37
|
+
n: 0
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
})).clientInit(() => undefined);
|
|
41
|
+
class ReadsNetworked extends split.SimpleComponent {
|
|
42
|
+
constructor(...args) {
|
|
43
|
+
super(...args);
|
|
44
|
+
_defineProperty(this, "content", () => String(this.tungsten.networked.count.n.get()));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export async function checks() {
|
|
48
|
+
await createTestPacketApp({
|
|
49
|
+
context: {
|
|
50
|
+
api: 'a'
|
|
51
|
+
},
|
|
52
|
+
allRoutesData: {
|
|
53
|
+
theme: 't'
|
|
54
|
+
}
|
|
55
|
+
}, Reads);
|
|
56
|
+
// @ts-expect-error -- Reads reads a context: it has no default
|
|
57
|
+
await createTestPacketApp({
|
|
58
|
+
allRoutesData: {
|
|
59
|
+
theme: 't'
|
|
60
|
+
}
|
|
61
|
+
}, Reads);
|
|
62
|
+
// @ts-expect-error -- nor does its all-routes data
|
|
63
|
+
await createTestPacketApp({
|
|
64
|
+
context: {
|
|
65
|
+
api: 'a'
|
|
66
|
+
}
|
|
67
|
+
}, Reads);
|
|
68
|
+
// @ts-expect-error -- not the context Reads reads
|
|
69
|
+
await createTestPacketApp({
|
|
70
|
+
context: {
|
|
71
|
+
api: 1
|
|
72
|
+
},
|
|
73
|
+
allRoutesData: {
|
|
74
|
+
theme: 't'
|
|
75
|
+
}
|
|
76
|
+
}, Reads);
|
|
77
|
+
// the defaults: nothing read, nothing needed
|
|
78
|
+
await createTestPacketApp({}, ReadsNothing);
|
|
79
|
+
await createTestPacketApp({}, Plain);
|
|
80
|
+
await createTestPacketApp({
|
|
81
|
+
networked: {
|
|
82
|
+
count: contextStore({
|
|
83
|
+
n: 1
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
}, ReadsNetworked);
|
|
87
|
+
// @ts-expect-error -- ReadsNetworked reads networked data
|
|
88
|
+
await createTestPacketApp({}, ReadsNetworked);
|
|
89
|
+
}
|
|
90
|
+
// a pipeline or app belongs to createTestPipelineApp()
|
|
91
|
+
export async function notAPipeline() {
|
|
92
|
+
// @ts-expect-error -- a stage
|
|
93
|
+
await createTestPacketApp(bare, ReadsNothing);
|
|
94
|
+
// @ts-expect-error -- an app
|
|
95
|
+
await createTestPacketApp(bare.routes(() => []), ReadsNothing);
|
|
96
|
+
// a loose component: an app's allRoutesData function would pass for its all-routes data
|
|
97
|
+
// @ts-expect-error -- a stage
|
|
98
|
+
await createTestPacketApp(stage, Plain);
|
|
99
|
+
// @ts-expect-error -- an app
|
|
100
|
+
await createTestPacketApp(stage.routes(() => []), Plain);
|
|
101
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ConstructPackage, TungstenBaseComponent, TungstenComponentPropsBase } from '../../Components.jsx';
|
|
2
|
+
import type { AllRoutesDataConstraint, PipelineApp } from '../../pipeline/pipelineDefinition.js';
|
|
3
|
+
import type { TestApp } from '../createTestApp.js';
|
|
4
|
+
import type { PipelineTestAppOptions } from './pipelineTestApp.js';
|
|
5
|
+
type StageForApp<App> = {
|
|
6
|
+
routes: (routes: () => []) => App;
|
|
7
|
+
};
|
|
8
|
+
type AppOf<A> = A extends PipelineApp<any, any, any, any> ? A : A extends StageForApp<infer App> ? App : never;
|
|
9
|
+
type AppTypes<A> = AppOf<A> extends PipelineApp<any, infer Ctx, infer N, infer G extends AllRoutesDataConstraint> ? {
|
|
10
|
+
context: Ctx;
|
|
11
|
+
networked: N & object;
|
|
12
|
+
allRoutesData: G;
|
|
13
|
+
} : never;
|
|
14
|
+
export type PipelineAppForComponent<C> = C extends {
|
|
15
|
+
readonly tungsten: {
|
|
16
|
+
readonly context: infer Ctx;
|
|
17
|
+
readonly networked: infer N;
|
|
18
|
+
readonly allRoutesData: infer G;
|
|
19
|
+
};
|
|
20
|
+
} ? PipelineApp<any, Ctx, N, G> : 'invalid component';
|
|
21
|
+
export type PipelineForComponent<C> = PipelineAppForComponent<C> extends infer App ? App extends PipelineApp<any, any, any, any> ? StageForApp<App> : App : never;
|
|
22
|
+
type ComponentReads<C> = C extends {
|
|
23
|
+
readonly tungsten: {
|
|
24
|
+
readonly context: infer Ctx;
|
|
25
|
+
readonly networked: infer N;
|
|
26
|
+
readonly allRoutesData: infer G;
|
|
27
|
+
};
|
|
28
|
+
} ? {
|
|
29
|
+
context: Ctx;
|
|
30
|
+
networked: N;
|
|
31
|
+
allRoutesData: G;
|
|
32
|
+
} : never;
|
|
33
|
+
type DifferingKeys<Made, Read> = {
|
|
34
|
+
[K in keyof Made & keyof Read]: [Made[K]] extends [Read[K]] ? never : K;
|
|
35
|
+
}[keyof Made & keyof Read];
|
|
36
|
+
type Mismatch<Made, Read> = [DifferingKeys<Made, Read>] extends [never] ? unknown : DifferingKeys<Made, Read> extends infer Ks extends keyof Made & keyof Read ? {
|
|
37
|
+
'pipeline does not provide required data:': {
|
|
38
|
+
[K in Ks]: Read[K];
|
|
39
|
+
};
|
|
40
|
+
'pipeline provided:': {
|
|
41
|
+
[K in Ks]: Made[K];
|
|
42
|
+
};
|
|
43
|
+
} : never;
|
|
44
|
+
export type AppCheck<A, C> = [AppOf<A>] extends [never] ? A extends {
|
|
45
|
+
clientAllRoutesData: unknown;
|
|
46
|
+
} ? {
|
|
47
|
+
'add .clientAllRoutesData(): the server makes all-routes data, so the client must': true;
|
|
48
|
+
} : {
|
|
49
|
+
'not a .routes() app, or a stage .routes() can follow': true;
|
|
50
|
+
} : [ComponentReads<C>] extends [never] ? {
|
|
51
|
+
'not a tungsten component': true;
|
|
52
|
+
} : Mismatch<AppTypes<A>, ComponentReads<C>>;
|
|
53
|
+
export declare const toApp: (pipelineOrApp: unknown) => PipelineApp;
|
|
54
|
+
export type TestPipelineAppOptions<Props extends object, A = PipelineApp> = PipelineTestAppOptions<Props> & {
|
|
55
|
+
allRoutesData?: AppTypes<A>['allRoutesData'];
|
|
56
|
+
networked?: AppTypes<A>['networked'];
|
|
57
|
+
};
|
|
58
|
+
export type TestPipelineApp<Component extends TungstenBaseComponent> = TestApp<Component>;
|
|
59
|
+
export type CreateTestPipelineAppArgs<Props extends object, A = PipelineApp> = object extends Props ? [options?: TestPipelineAppOptions<Props, A>] : [options: TestPipelineAppOptions<Props, A> & {
|
|
60
|
+
props: Props;
|
|
61
|
+
}];
|
|
62
|
+
/**
|
|
63
|
+
* createTestApp() for an app built with pipeline() or splitPipeline(): the app's browser stages
|
|
64
|
+
* run - Init, the all-routes data, Post - and the location is routed against its routes, so the
|
|
65
|
+
* test sees the context, stores and route the app's own page would. The app is a .routes()
|
|
66
|
+
* result: the app's own export, a smaller set of routes on the same pipeline, or another pipeline.
|
|
67
|
+
*/
|
|
68
|
+
export declare function createTestPipelineApp<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>, A extends object, RouteData = undefined>(pipelineOrApp: A & AppCheck<A, Component>, RootComponent: new (pkg: ConstructPackage<Props, RouteData>) => Component, ...args: CreateTestPipelineAppArgs<Props, A>): Promise<TestPipelineApp<Component>>;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=createTestPipelineApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTestPipelineApp.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/createTestPipelineApp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { clientRoute, isPipelineApp } from '../../pipeline/pipelineDefinition.js';
|
|
2
|
+
import { JSONstringify } from '../../json.js';
|
|
3
|
+
import { routing } from "../../Servers/routing.js";
|
|
4
|
+
import { fromTransport, NetworkedTransport } from '../../pipeline/networkedTransport.js';
|
|
5
|
+
import { afterRoutingFor, pipelineContext, pipelineRoutes, routingContext, routingNetworkedData } from '../../pipeline/runPipeline.js';
|
|
6
|
+
import { splitContext } from '../../pipeline/runSplitPipeline.js';
|
|
7
|
+
import { waitForEnvIfLoading } from '../loadEnv.js';
|
|
8
|
+
import { mountPipelineTestApp, pipelineTestTarget } from './pipelineTestApp.js';
|
|
9
|
+
// the app, or the stage ended with empty routes
|
|
10
|
+
export const toApp = pipelineOrApp => isPipelineApp(pipelineOrApp) ? pipelineOrApp : pipelineOrApp.routes(() => []); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- the harnesses' constraint: a stage
|
|
11
|
+
// the symmetric pipeline's stages, with null for the request
|
|
12
|
+
async function runSymmetric(app, allRoutesData) {
|
|
13
|
+
const init = await app.init?.(null, undefined);
|
|
14
|
+
const data = allRoutesData ?? (await app.allRoutesData?.(null, init));
|
|
15
|
+
const post = await app.post?.(null, init, data);
|
|
16
|
+
const rerun = app.allRoutesData;
|
|
17
|
+
return {
|
|
18
|
+
init,
|
|
19
|
+
context: pipelineContext(init, post),
|
|
20
|
+
routingContext: init,
|
|
21
|
+
routingNetworkedData: undefined,
|
|
22
|
+
networked: {},
|
|
23
|
+
allRoutesData: data,
|
|
24
|
+
rerunAllRoutesData: rerun && (async () => rerun(null, init)),
|
|
25
|
+
afterRouting: undefined
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
async function runSplit(app, allRoutesData, served) {
|
|
29
|
+
const page = JSON.parse(JSONstringify(new NetworkedTransport(served))); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- toJSON gives an object
|
|
30
|
+
const networked = fromTransport(page) ?? {};
|
|
31
|
+
const init = await app.clientInit?.(networked);
|
|
32
|
+
const data = allRoutesData ?? (await app.clientAllRoutesData?.(init));
|
|
33
|
+
const post = await app.clientPost?.(init, data);
|
|
34
|
+
const context = splitContext(init, post);
|
|
35
|
+
const rerun = app.clientAllRoutesData;
|
|
36
|
+
const afterRouting = app.clientAfterRouting;
|
|
37
|
+
return {
|
|
38
|
+
init,
|
|
39
|
+
context,
|
|
40
|
+
routingContext: init?.context,
|
|
41
|
+
routingNetworkedData: init?.networked,
|
|
42
|
+
networked,
|
|
43
|
+
allRoutesData: data,
|
|
44
|
+
rerunAllRoutesData: rerun && (async () => rerun(init)),
|
|
45
|
+
afterRouting: afterRouting && (async (route, allRoutes) => splitContext(await afterRouting(context, route, allRoutes), undefined))
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* createTestApp() for an app built with pipeline() or splitPipeline(): the app's browser stages
|
|
50
|
+
* run - Init, the all-routes data, Post - and the location is routed against its routes, so the
|
|
51
|
+
* test sees the context, stores and route the app's own page would. The app is a .routes()
|
|
52
|
+
* result: the app's own export, a smaller set of routes on the same pipeline, or another pipeline.
|
|
53
|
+
*/
|
|
54
|
+
export async function createTestPipelineApp(pipelineOrApp,
|
|
55
|
+
// Props is inferred from both the class and `props`, so literal props are typed by the component
|
|
56
|
+
RootComponent, ...args) {
|
|
57
|
+
await waitForEnvIfLoading();
|
|
58
|
+
const options = args[0];
|
|
59
|
+
const target = pipelineTestTarget(options, 'createTestPipelineApp()');
|
|
60
|
+
const app = toApp(pipelineOrApp);
|
|
61
|
+
const stages = app.split === true ? await runSplit(app, options?.allRoutesData, options?.networked ?? {}) : await runSymmetric(app, options?.allRoutesData);
|
|
62
|
+
const location = options?.location ?? '/';
|
|
63
|
+
const allRoutesData = stages.allRoutesData; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- the framework brands what it builds
|
|
64
|
+
const routeContext = routingContext(stages.routingContext);
|
|
65
|
+
const networkedData = routingNetworkedData(stages.routingNetworkedData);
|
|
66
|
+
// dev, so a path given twice fails the test
|
|
67
|
+
const routes = pipelineRoutes(app, null, stages.init, true);
|
|
68
|
+
const matchedRouteInfo = await routing(location, routes, routeContext, networkedData);
|
|
69
|
+
const afterRouting = afterRoutingFor(stages.afterRouting);
|
|
70
|
+
const context = afterRouting === undefined ? stages.context // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- as above
|
|
71
|
+
: await afterRouting(clientRoute(matchedRouteInfo, location), allRoutesData);
|
|
72
|
+
const rerun = stages.rerunAllRoutesData;
|
|
73
|
+
return mountPipelineTestApp(target, {
|
|
74
|
+
location,
|
|
75
|
+
routes,
|
|
76
|
+
matchedRouteInfo,
|
|
77
|
+
allRoutesData,
|
|
78
|
+
context,
|
|
79
|
+
networkedData,
|
|
80
|
+
appRoutes: reqRes => pipelineRoutes(app, reqRes, stages.init, true),
|
|
81
|
+
networked: stages.networked,
|
|
82
|
+
pipeline: {
|
|
83
|
+
routingContext: routeContext,
|
|
84
|
+
routingNetworkedData: networkedData,
|
|
85
|
+
allRoutesData: rerun && (async () => await rerun()),
|
|
86
|
+
// eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- as above
|
|
87
|
+
afterRouting
|
|
88
|
+
}
|
|
89
|
+
}, RootComponent, options);
|
|
90
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function checks(): Promise<void>;
|
|
2
|
+
export declare function stageChecks(): Promise<void>;
|
|
3
|
+
export declare function bareChecks(): Promise<void>;
|
|
4
|
+
export declare function splitChecks(): Promise<void>;
|
|
5
|
+
export declare function clientDataChecks(): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=createTestPipelineApp.types.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTestPipelineApp.types.test.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/createTestPipelineApp.types.test.ts"],"names":[],"mappings":"AA+BA,wBAAsB,MAAM,kBAU3B;AAcD,wBAAsB,WAAW,kBAOhC;AAOD,wBAAsB,UAAU,kBAE/B;AAeD,wBAAsB,WAAW,kBAQhC;AAmBD,wBAAsB,gBAAgB,kBAIrC"}
|