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.
- package/dist/.build-complete +1 -1
- package/dist/AnyComponent.d.ts.map +1 -1
- package/dist/AnyComponentType.d.ts +1 -1
- package/dist/AnyComponentType.d.ts.map +1 -1
- package/dist/AppTypeExtraction.d.ts +2 -0
- package/dist/AppTypeExtraction.d.ts.map +1 -0
- package/dist/ComponentRenderInfo.type.d.ts +1 -1
- package/dist/ComponentRenderInfo.type.d.ts.map +1 -1
- package/dist/Components.d.ts +5 -4
- package/dist/Components.d.ts.map +1 -1
- package/dist/Components.js +28 -40
- package/dist/ContentFunction.d.ts.map +1 -1
- package/dist/ContentNode.d.ts +4 -4
- package/dist/ContentNode.d.ts.map +1 -1
- package/dist/DomPointer.d.ts.map +1 -1
- package/dist/DomRegion.d.ts.map +1 -1
- package/dist/Framework.d.ts +2 -2
- package/dist/Framework.d.ts.map +1 -1
- package/dist/Framework.js +4 -4
- package/dist/FrameworkConfig.d.ts +5 -3
- package/dist/FrameworkConfig.d.ts.map +1 -1
- package/dist/FunctionComponent.d.ts +1 -1
- package/dist/FunctionComponent.d.ts.map +1 -1
- package/dist/FunctionComponentStandIn.d.ts +10 -10
- package/dist/FunctionComponentStandIn.d.ts.map +1 -1
- package/dist/FunctionComponentStandIn.js +3 -6
- package/dist/Instance/ClientRuntimeContext.d.ts.map +1 -1
- package/dist/Instance/Instance.d.ts +6 -8
- package/dist/Instance/Instance.d.ts.map +1 -1
- package/dist/Instance/Instance.js +7 -11
- package/dist/Instance/InstanceConfig.d.ts +1 -1
- package/dist/Instance/InstanceConfig.d.ts.map +1 -1
- package/dist/IsDefined.d.ts.map +1 -1
- package/dist/IsObject.d.ts +1 -1
- package/dist/IsObject.d.ts.map +1 -1
- package/dist/RenderFunction.d.ts.map +1 -1
- package/dist/RenderedContentNode.d.ts +3 -3
- package/dist/RenderedContentNode.d.ts.map +1 -1
- package/dist/RenderingNode.d.ts +3 -3
- package/dist/RenderingNode.d.ts.map +1 -1
- package/dist/Script.d.ts +1 -1
- package/dist/Script.d.ts.map +1 -1
- package/dist/Servers/DevServer.d.ts +3 -3
- package/dist/Servers/DevServer.d.ts.map +1 -1
- package/dist/Servers/DevServer.js +15 -11
- package/dist/Servers/MatchedRouteInfo.d.ts.map +1 -1
- package/dist/Servers/ProdServer.d.ts +6 -5
- package/dist/Servers/ProdServer.d.ts.map +1 -1
- package/dist/Servers/ProdServer.js +20 -20
- package/dist/Servers/ServerMiddleware.d.ts.map +1 -1
- package/dist/Servers/StaticSiteServer.d.ts +1 -1
- package/dist/Servers/StaticSiteServer.d.ts.map +1 -1
- package/dist/Servers/StaticSiteServer.js +1 -1
- package/dist/Servers/TungstenServer.d.ts +1 -1
- package/dist/Servers/TungstenServer.d.ts.map +1 -1
- package/dist/Servers/devErrorPageAutoRetry.d.ts.map +1 -1
- package/dist/Servers/initStores.d.ts +3 -3
- package/dist/Servers/initStores.d.ts.map +1 -1
- package/dist/Servers/listenVerified.d.ts +12 -0
- package/dist/Servers/listenVerified.d.ts.map +1 -0
- package/dist/Servers/listenVerified.js +116 -0
- package/dist/Servers/loadEnvsDev.d.ts.map +1 -1
- package/dist/Servers/loadEnvsDev.js +2 -2
- package/dist/Servers/routing.d.ts +1 -1
- package/dist/Servers/routing.d.ts.map +1 -1
- package/dist/Servers/serveStatic.d.ts.map +1 -1
- package/dist/Servers/tungstenCorePrivateEnvSchema.d.ts.map +1 -1
- package/dist/Servers/tungstenCorePublicEnvSchema.d.ts.map +1 -1
- package/dist/Store/InternalStoreSchema.d.ts +1 -0
- package/dist/Store/InternalStoreSchema.d.ts.map +1 -1
- package/dist/Store/InternalStoreSchema.js +3 -1
- package/dist/Store/ServerDataLoading.d.ts.map +1 -1
- package/dist/Store/StoreSchemaClass.d.ts.map +1 -1
- package/dist/Store/StoreSubscriptions.types.d.ts.map +1 -1
- package/dist/Store/createStores.d.ts +2 -2
- package/dist/Store/createStores.d.ts.map +1 -1
- package/dist/Store/exportStore.d.ts.map +1 -1
- package/dist/Store/getInternalStore.d.ts +1 -1
- package/dist/Store/getInternalStore.d.ts.map +1 -1
- package/dist/Store/makeStore.d.ts +7 -3
- package/dist/Store/makeStore.d.ts.map +1 -1
- package/dist/Store/makeStore.js +8 -2
- package/dist/Store/registerStore.d.ts +2 -2
- package/dist/Store/registerStore.d.ts.map +1 -1
- package/dist/Store/storeCreators.d.ts.map +1 -1
- package/dist/StoreBindVariable.d.ts.map +1 -1
- package/dist/StyleProcessor.d.ts.map +1 -1
- package/dist/TungstenApp.d.ts +2 -2
- package/dist/TungstenApp.d.ts.map +1 -1
- package/dist/TungstenApp.js +14 -8
- package/dist/TungstenElement.d.ts.map +1 -1
- package/dist/__deproxy.d.ts.map +1 -1
- package/dist/_client/RootComponent.d.ts.map +1 -1
- package/dist/_client/cjsHelpers.d.ts +2 -1
- package/dist/_client/cjsHelpers.d.ts.map +1 -1
- package/dist/_client/cjsHelpers.js +5 -2
- package/dist/_client/client.d.ts +1 -1
- package/dist/_client/client.d.ts.map +1 -1
- package/dist/_client/liveReloadSource.d.ts.map +1 -1
- package/dist/_client/routes.d.ts.map +1 -1
- package/dist/_testing/should.d.ts.map +1 -1
- package/dist/alive.d.ts.map +1 -1
- package/dist/api/ApiEndpoint.d.ts +1 -1
- package/dist/api/ApiEndpoint.d.ts.map +1 -1
- package/dist/api/ApiRoute.d.ts.map +1 -1
- package/dist/api/ApiRoutes.d.ts +1 -1
- package/dist/api/ApiRoutes.d.ts.map +1 -1
- package/dist/api/getApiRoutes.d.ts +3 -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/getExportDev.d.ts.map +1 -1
- package/dist/appOutput.d.ts +1 -0
- package/dist/appOutput.d.ts.map +1 -1
- package/dist/appOutput.js +4 -0
- package/dist/auth/checkPassword.d.ts.map +1 -1
- package/dist/babelPlugins/BabelAddDevCacheBust.d.ts.map +1 -1
- package/dist/babelPlugins/BabelAddDevCacheBust.js +1 -27
- package/dist/babelPlugins/BabelExtractComponentStylesheet.d.ts.map +1 -1
- package/dist/babelPlugins/BabelFakeType.d.ts +1 -1
- package/dist/babelPlugins/BabelFakeType.d.ts.map +1 -1
- package/dist/babelPlugins/BabelState.type.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformBindDirect.d.ts +2 -2
- package/dist/babelPlugins/BabelTransformBindDirect.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformBindDirect.js +2 -2
- package/dist/babelPlugins/BabelTransformBindVar.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformBindVar.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformBindVar.js +6 -4
- package/dist/babelPlugins/BabelTransformCjsToEsm.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformCjsToFunction.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformCjsToFunction2.d.ts +3 -3
- package/dist/babelPlugins/BabelTransformCjsToFunction2.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformCjsToFunction2.js +1 -1
- package/dist/babelPlugins/BabelTransformComponentState.d.ts +2 -2
- package/dist/babelPlugins/BabelTransformComponentState.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformComponentState.js +6 -5
- package/dist/babelPlugins/BabelTransformComponentStyles.d.ts +2 -2
- package/dist/babelPlugins/BabelTransformComponentStyles.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformComponentStyles.js +8 -6
- package/dist/babelPlugins/BabelTransformCssImports.d.ts +3 -3
- package/dist/babelPlugins/BabelTransformCssImports.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformCssImports.js +1 -1
- package/dist/babelPlugins/BabelTransformDependencyImportsOld.d.ts +3 -3
- package/dist/babelPlugins/BabelTransformDependencyImportsOld.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformDependencyImportsOld.js +2 -2
- package/dist/babelPlugins/BabelTransformDeproxyState.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformDeproxyState.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformDocInit.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformPackageImports.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformPackageImports.js +4 -2
- package/dist/babelPlugins/BabelTransformReactive.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformReactive.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformReactive.js +1 -1
- package/dist/babelPlugins/BabelTransformReactiveSvelteStyle.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformReactiveSvelteStyle.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformReactiveSvelteStyle.js +1 -1
- package/dist/babelPlugins/BabelTransformRemoveBlocks.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformRemoveBlocks.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformRemoveDevBlocks.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformRemoveDevBlocks.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformRemoveServerBlocks.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformRemoveServerBlocks.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformSxyFrameworkImports.d.ts +1 -1
- package/dist/babelPlugins/BabelTransformSxyFrameworkImports.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformUniqueComponents.d.ts.map +1 -1
- package/dist/babelPlugins/BabelTransformUniqueComponents.js +1 -1
- package/dist/babelPlugins/BabelTypes.d.ts.map +1 -1
- package/dist/babelPlugins/fixImportsInSassErrorMessage.d.ts.map +1 -1
- package/dist/babelPlugins/isBareImport.d.ts.map +1 -1
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts +2 -2
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -1
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.js +1 -2
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts +2 -2
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -1
- package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.js +2 -3
- package/dist/babelPlugins/transformPackageImports/getWebLocationOfPackageFile.js +3 -1
- package/dist/babelPlugins/transformPackageImports/resolveBareImport.d.ts.map +1 -1
- package/dist/bin/args.d.ts.map +1 -1
- package/dist/bin/commands/build.d.ts.map +1 -1
- package/dist/bin/commands/build.js +3 -1
- package/dist/bin/commands/clean.d.ts.map +1 -1
- package/dist/bin/commands/compile.d.ts.map +1 -1
- package/dist/bin/commands/compile.js +17 -4
- package/dist/bin/commands/compileSimplePackage.js +1 -1
- package/dist/bin/commands/dev.d.ts.map +1 -1
- package/dist/bin/commands/devmon.d.ts.map +1 -1
- package/dist/bin/commands/start.d.ts.map +1 -1
- package/dist/bin/commands/static.d.ts.map +1 -1
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/moduleLoadAnalysis.d.ts.map +1 -1
- package/dist/bin/vendorHook.d.ts.map +1 -1
- package/dist/bin/vendorHook.js +1 -1
- package/dist/booleanAttributeValue.d.ts.map +1 -1
- package/dist/browserStorage.d.ts +1 -1
- package/dist/browserStorage.d.ts.map +1 -1
- package/dist/build/CompilationInfo.d.ts.map +1 -1
- package/dist/build/Event.type.d.ts.map +1 -1
- package/dist/build/ProcessPackageResults.d.ts.map +1 -1
- package/dist/build/PromiseSettledResultIsPromiseRejectedResult.d.ts +5 -0
- package/dist/build/PromiseSettledResultIsPromiseRejectedResult.d.ts.map +1 -0
- package/dist/build/PromiseSettledResultIsPromiseRejectedResult.js +3 -0
- package/dist/build/babel.user.common.config.d.ts.map +1 -1
- package/dist/build/babel.user.common.config.js +1 -1
- package/dist/build/bundle.d.ts.map +1 -1
- package/dist/build/bundleBabelOptions.d.ts.map +1 -1
- package/dist/build/clientModuleAliases.js +2 -2
- package/dist/build/combineComponentCss.d.ts.map +1 -1
- package/dist/build/compileJavascript.d.ts.map +1 -1
- package/dist/build/compileJavascript.js +16 -9
- package/dist/build/compileStyles.d.ts.map +1 -1
- package/dist/build/compileStyles.js +10 -8
- package/dist/build/compileUserApp.d.ts.map +1 -1
- package/dist/build/compileUserApp.js +3 -1
- package/dist/build/componentStylesCache.d.ts.map +1 -1
- package/dist/build/copyAssets.d.ts.map +1 -1
- package/dist/build/copyAssets.js +1 -1
- package/dist/build/copyPackageModulesToPackagesFolder.d.ts +1 -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 +1 -1
- package/dist/build/createClientFiles.d.ts +1 -1
- package/dist/build/createClientFiles.d.ts.map +1 -1
- package/dist/build/createInstanceConfigFile.d.ts +1 -1
- package/dist/build/createInstanceConfigFile.d.ts.map +1 -1
- package/dist/build/createPackageVirtualFileSystem.d.ts +1 -1
- package/dist/build/createPackageVirtualFileSystem.d.ts.map +1 -1
- package/dist/build/createPackageVirtualFileSystems.d.ts +1 -1
- package/dist/build/createPackageVirtualFileSystems.d.ts.map +1 -1
- package/dist/build/devBundle.d.ts.map +1 -1
- package/dist/build/devBundle.js +1 -1
- package/dist/build/devBundle.rollup.config.d.ts.map +1 -1
- package/dist/build/frameworkDestLocation.d.ts.map +1 -1
- package/dist/build/frameworkStylesheets.d.ts.map +1 -1
- package/dist/build/getAllSxyClientModules.d.ts +1 -1
- package/dist/build/getAllSxyClientModules.d.ts.map +1 -1
- package/dist/build/getPackageDirForFile.d.ts.map +1 -1
- package/dist/build/getSxyClientPackageAliases.d.ts.map +1 -1
- package/dist/build/getTempDirForAppCompilation.d.ts.map +1 -1
- package/dist/build/makeBabelRawConfig.d.ts.map +1 -1
- package/dist/build/makeBabelUserDevConfig.d.ts +1 -1
- package/dist/build/makeBabelUserDevConfig.d.ts.map +1 -1
- package/dist/build/makeBabelUserDevConfig.js +21 -17
- package/dist/build/makeBabelUserProdConfig.d.ts.map +1 -1
- package/dist/build/makeEnvJavascriptContent.d.ts.map +1 -1
- package/dist/build/modifySassImports.d.ts +1 -1
- package/dist/build/modifySassImports.d.ts.map +1 -1
- package/dist/build/packageIdentifier.d.ts.map +1 -1
- package/dist/build/resolveSassScssImports.d.ts.map +1 -1
- package/dist/build/rollup.user.prod.config.d.ts.map +1 -1
- package/dist/build/rollupExtractComponentStylesheets.d.ts.map +1 -1
- package/dist/build/sassImportParser.d.ts.map +1 -1
- package/dist/build/tallyBabel.d.ts.map +1 -1
- package/dist/calculateImportedStaticFileLocations.d.ts.map +1 -1
- package/dist/clone.d.ts +1 -1
- package/dist/clone.d.ts.map +1 -1
- package/dist/compat/context.d.ts +2 -2
- package/dist/compat/context.d.ts.map +1 -1
- package/dist/compat/forwardRef.d.ts.map +1 -1
- package/dist/compat/types.d.ts +2 -2
- package/dist/compat/types.d.ts.map +1 -1
- package/dist/componentClassName.d.ts.map +1 -1
- package/dist/componentProxyHandlers.d.ts +3 -3
- package/dist/componentProxyHandlers.d.ts.map +1 -1
- package/dist/componentProxyHandlers.js +13 -16
- package/dist/components/Await.d.ts +1 -1
- package/dist/components/Await.d.ts.map +1 -1
- package/dist/components/GoToComponent.d.ts +1 -1
- package/dist/components/GoToComponent.d.ts.map +1 -1
- package/dist/components/Lazy.d.ts +2 -2
- package/dist/components/Lazy.d.ts.map +1 -1
- package/dist/components/Link.d.ts +1 -1
- package/dist/components/Link.d.ts.map +1 -1
- package/dist/components/NativeHtml.d.ts +1 -1
- package/dist/components/NativeHtml.d.ts.map +1 -1
- package/dist/components/PopMessages.d.ts.map +1 -1
- package/dist/components/Protected.d.ts.map +1 -1
- package/dist/components/RawHtml.d.ts +1 -1
- package/dist/components/RawHtml.d.ts.map +1 -1
- package/dist/components/RouteRedirectComponent.d.ts +2 -2
- package/dist/components/RouteRedirectComponent.d.ts.map +1 -1
- package/dist/components/Stylesheet.d.ts.map +1 -1
- package/dist/components/WebRedirectComponent.d.ts +1 -1
- package/dist/components/WebRedirectComponent.d.ts.map +1 -1
- package/dist/components/_GoToComponent.d.ts +1 -1
- package/dist/components/_GoToComponent.d.ts.map +1 -1
- package/dist/components/bindable/BindVariable.d.ts +1 -1
- package/dist/components/bindable/BindVariable.d.ts.map +1 -1
- package/dist/components/bindable/BindableCheckbox.d.ts +1 -1
- package/dist/components/bindable/BindableCheckbox.d.ts.map +1 -1
- package/dist/components/bindable/BindableInput.d.ts +1 -1
- package/dist/components/bindable/BindableInput.d.ts.map +1 -1
- package/dist/components/bindable/BindableInputNonString.d.ts.map +1 -1
- package/dist/components/bindable/BindableInputString.d.ts.map +1 -1
- package/dist/components/bindable/BindableInputTypedLegacy.d.ts.map +1 -1
- package/dist/components/bindable/BindableRadio.d.ts +1 -1
- package/dist/components/bindable/BindableRadio.d.ts.map +1 -1
- package/dist/components/bindable/BindableSelect.d.ts +1 -1
- package/dist/components/bindable/BindableSelect.d.ts.map +1 -1
- package/dist/components/bindable/BindableTextarea.d.ts +1 -1
- package/dist/components/bindable/BindableTextarea.d.ts.map +1 -1
- package/dist/components/library/RichTextEditor/RichTextEditor.d.ts +1 -1
- package/dist/components/library/RichTextEditor/RichTextEditor.d.ts.map +1 -1
- package/dist/components/library/RichTextEditor/StoredContentNode.d.ts.map +1 -1
- package/dist/components/library/RichTextEditor/contentTree.d.ts.map +1 -1
- package/dist/components/library/RichTextEditor/sanitizeAuthoredHtml.d.ts.map +1 -1
- package/dist/components/library/__StatefulMessage/StatefulMessage.d.ts +1 -1
- package/dist/components/library/__StatefulMessage/StatefulMessage.d.ts.map +1 -1
- package/dist/components/library/index.d.ts.map +1 -1
- package/dist/copy.d.ts.map +1 -1
- package/dist/createRoutes.d.ts +1 -1
- package/dist/createRoutes.d.ts.map +1 -1
- package/dist/deleteDirs.d.ts.map +1 -1
- package/dist/devBanner.d.ts.map +1 -1
- package/dist/docInit.d.ts.map +1 -1
- package/dist/env/Interfaces.d.ts.map +1 -1
- package/dist/env/addToEnv.d.ts.map +1 -1
- package/dist/env/getEnvSchemas.d.ts.map +1 -1
- package/dist/env/privateEnv.d.ts.map +1 -1
- package/dist/env/privateEnvOrThrow.d.ts.map +1 -1
- package/dist/env/publicEnv.d.ts.map +1 -1
- package/dist/env/publicEnvOrThrow.d.ts.map +1 -1
- package/dist/env/registerEnvSchemas.d.ts +1 -1
- package/dist/env/registerEnvSchemas.d.ts.map +1 -1
- package/dist/env/setPrivateEnvValidator.d.ts.map +1 -1
- package/dist/env/setPublicEnvValidator.d.ts.map +1 -1
- package/dist/env/windowGlobalEnvStatement.d.ts.map +1 -1
- package/dist/filePathFromUrl.d.ts.map +1 -1
- package/dist/findProjectDir.d.ts.map +1 -1
- package/dist/findUserConfig.d.ts.map +1 -1
- package/dist/foreach.d.ts +3 -2
- package/dist/foreach.d.ts.map +1 -1
- package/dist/frameworkConfigSchema.d.ts +4 -2
- package/dist/frameworkConfigSchema.d.ts.map +1 -1
- package/dist/frameworkConfigSchema.js +1 -0
- package/dist/getComponent.d.ts +1 -1
- package/dist/getComponent.d.ts.map +1 -1
- package/dist/getComponent.js +4 -2
- package/dist/getComponentDev.d.ts.map +1 -1
- package/dist/getContentFromFunctionComponent.d.ts +1 -1
- package/dist/getContentFromFunctionComponent.d.ts.map +1 -1
- package/dist/getFrameworkDir.d.ts.map +1 -1
- package/dist/getRoutes.d.ts +2 -2
- package/dist/getRoutes.d.ts.map +1 -1
- package/dist/getRoutes.js +4 -0
- package/dist/getRoutesDevs.d.ts.map +1 -1
- package/dist/getStackTrace.d.ts.map +1 -1
- package/dist/getStyledContentFromFunctionComponent.d.ts.map +1 -1
- package/dist/getUserConfig.d.ts +1 -1
- package/dist/getUserConfig.d.ts.map +1 -1
- package/dist/getUserConfig.js +2 -1
- package/dist/glob.d.ts.map +1 -1
- package/dist/hasValidKey.d.ts.map +1 -1
- package/dist/helpers/forwardingFetch.d.ts.map +1 -1
- package/dist/helpers/getFetchCompatibleHeaders.d.ts.map +1 -1
- package/dist/helpers/perRequest.d.ts.map +1 -1
- package/dist/hmr/applyHmrModule.d.ts.map +1 -1
- package/dist/hmr/componentIdentity.d.ts.map +1 -1
- package/dist/hmr/instanceRegistry.d.ts.map +1 -1
- package/dist/hmr/refreshStylesheets.d.ts.map +1 -1
- package/dist/hooks/clearCurrentComponent.d.ts.map +1 -1
- package/dist/hooks/getCurrentComponent.d.ts +1 -1
- package/dist/hooks/getCurrentComponent.d.ts.map +1 -1
- package/dist/hooks/setCurrentComponent.d.ts.map +1 -1
- package/dist/hooks/useCallback.d.ts +1 -1
- package/dist/hooks/useCallback.d.ts.map +1 -1
- package/dist/hooks/useCallback.js +1 -1
- package/dist/hooks/useEffect.d.ts.map +1 -1
- package/dist/hooks/useInstance.d.ts.map +1 -1
- package/dist/hooks/useMemo.d.ts +1 -1
- package/dist/hooks/useMemo.d.ts.map +1 -1
- package/dist/hooks/useMemo.js +5 -4
- package/dist/hooks/useReducer.d.ts +1 -1
- package/dist/hooks/useReducer.d.ts.map +1 -1
- package/dist/hooks/useState.d.ts.map +1 -1
- package/dist/hooks/useState.js +1 -1
- package/dist/htmlEventHandlerKey.d.ts.map +1 -1
- package/dist/htmlEvents.d.ts.map +1 -1
- package/dist/hydrate/hydrate.d.ts +1 -1
- package/dist/hydrate/hydrate.d.ts.map +1 -1
- package/dist/hydrate/hydrate.js +5 -3
- package/dist/hydrate/hydrateGlobalData.d.ts +1 -1
- package/dist/hydrate/hydrateGlobalData.d.ts.map +1 -1
- package/dist/hydrate/reconcileHydratedAttributes.d.ts.map +1 -1
- package/dist/hydrate/renderHydrationMismatchBanner.d.ts.map +1 -1
- package/dist/innerHtmlFromProps.d.ts.map +1 -1
- package/dist/isBrowser.d.ts.map +1 -1
- package/dist/isClient.d.ts.map +1 -1
- package/dist/isDev.d.ts.map +1 -1
- package/dist/isProd.d.ts.map +1 -1
- package/dist/isServer.d.ts.map +1 -1
- package/dist/isServer.js +2 -2
- package/dist/jsxRuntime.d.ts +1 -1
- package/dist/jsxRuntime.d.ts.map +1 -1
- package/dist/jsxRuntimeSignals.d.ts.map +1 -1
- package/dist/loadPackageDotJsonFromDir.d.ts.map +1 -1
- package/dist/makeFinalConfig.d.ts.map +1 -1
- package/dist/makeInstanceConfigFromFrameworkConfig.d.ts.map +1 -1
- package/dist/makeServerRpc.d.ts.map +1 -1
- package/dist/markOptionSelected.d.ts.map +1 -1
- package/dist/mergeConfigs.d.ts.map +1 -1
- package/dist/output.d.ts.map +1 -1
- package/dist/pop.d.ts.map +1 -1
- package/dist/postcssPlugins/TransformCssNames.d.ts.map +1 -1
- package/dist/postcssPlugins/TransformCssNames.js +12 -4
- package/dist/postcssPlugins/parseSelectors.d.ts.map +1 -1
- package/dist/postcssPlugins/parseSelectorsRich.d.ts.map +1 -1
- package/dist/postcssPlugins/scopeAnimationValue.d.ts.map +1 -1
- package/dist/propsAreEqual.d.ts.map +1 -1
- package/dist/rawHtml/filterContentNode.d.ts.map +1 -1
- package/dist/rawHtml/parseHtml.d.ts.map +1 -1
- package/dist/rawHtml/safeHtmlAllowList.d.ts.map +1 -1
- package/dist/rawHtml/sanitizeHtml.d.ts.map +1 -1
- package/dist/rawHtml/tokenizeHtml.d.ts.map +1 -1
- package/dist/reRouting/importLoader.d.ts.map +1 -1
- package/dist/ref.d.ts +1 -1
- package/dist/ref.d.ts.map +1 -1
- package/dist/ref.js +5 -4
- package/dist/removeRecursive.d.ts.map +1 -1
- package/dist/render/HeadData.d.ts +1 -1
- package/dist/render/HeadData.d.ts.map +1 -1
- package/dist/render/SxyFrameworkModules.d.ts.map +1 -1
- package/dist/render/addImportMap.d.ts.map +1 -1
- package/dist/render/componentNodeToRenderingTree.d.ts +1 -1
- package/dist/render/componentNodeToRenderingTree.d.ts.map +1 -1
- package/dist/render/contentNodeToHtml.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 +1 -1
- package/dist/render/contentToHtmlDev.d.ts +2 -2
- package/dist/render/contentToHtmlDev.d.ts.map +1 -1
- package/dist/render/contentTreeToRenderingTree.d.ts.map +1 -1
- package/dist/render/functionComponentNodeToRenderingTree.d.ts +1 -1
- package/dist/render/functionComponentNodeToRenderingTree.d.ts.map +1 -1
- package/dist/render/functionComponentNodeToRenderingTree.js +2 -2
- package/dist/render/getFunctionBodyAsString.d.ts.map +1 -1
- package/dist/render/getFunctionBodyAsString.js +3 -1
- package/dist/render/instantiateClassComponent.d.ts.map +1 -1
- package/dist/render/instantiateComponent.d.ts +2 -2
- package/dist/render/instantiateComponent.d.ts.map +1 -1
- package/dist/render/instantiateFunctionComponent.d.ts.map +1 -1
- package/dist/render/printComponentNameInSource.d.ts.map +1 -1
- package/dist/render/processHead.d.ts +1 -1
- package/dist/render/processHead.d.ts.map +1 -1
- package/dist/render/processHead.js +1 -1
- package/dist/render/processHtmlNode.d.ts.map +1 -1
- package/dist/render/processProps.d.ts +1 -1
- package/dist/render/processProps.d.ts.map +1 -1
- package/dist/render/processRenderingNodeHtml.d.ts +1 -1
- package/dist/render/processRenderingNodeHtml.d.ts.map +1 -1
- package/dist/render/readDocInitScript.d.ts.map +1 -1
- package/dist/render/renderingTreeToHtml.d.ts.map +1 -1
- package/dist/render/rootToHtml.d.ts +2 -2
- package/dist/render/rootToHtml.d.ts.map +1 -1
- package/dist/render/rootToHtmlDev.d.ts.map +1 -1
- package/dist/requests/fetch/delete.d.ts.map +1 -1
- package/dist/requests/fetch/get.d.ts.map +1 -1
- package/dist/requests/fetch/get.js +3 -1
- package/dist/requests/fetch/patch.d.ts.map +1 -1
- package/dist/requests/fetch/patch.js +3 -1
- package/dist/requests/fetch/post.d.ts.map +1 -1
- package/dist/requests/fetch/post.js +3 -1
- package/dist/requests/fetch/put.d.ts.map +1 -1
- package/dist/requests/fetch/put.js +3 -1
- package/dist/routing/AppRoutes.d.ts.map +1 -1
- package/dist/routing/Default404.d.ts.map +1 -1
- package/dist/routing/ErrorRouteType.d.ts.map +1 -1
- package/dist/routing/Group.d.ts +2 -2
- package/dist/routing/Group.d.ts.map +1 -1
- package/dist/routing/MatchedRoute.d.ts +1 -1
- package/dist/routing/MatchedRoute.d.ts.map +1 -1
- package/dist/routing/ParamsFromPath.d.ts +1 -1
- package/dist/routing/ParamsFromPath.d.ts.map +1 -1
- package/dist/routing/RouteContent.d.ts.map +1 -1
- package/dist/routing/RouteContentFunction.d.ts.map +1 -1
- package/dist/routing/RouteDataFunction.type.d.ts +2 -2
- package/dist/routing/RouteDataFunction.type.d.ts.map +1 -1
- package/dist/routing/RouteDataReturnType.d.ts.map +1 -1
- package/dist/routing/RouteProp.d.ts.map +1 -1
- package/dist/routing/RouteTypes.d.ts.map +1 -1
- package/dist/routing/Routes.d.ts.map +1 -1
- package/dist/routing/RoutesFunction.d.ts.map +1 -1
- package/dist/routing/RoutingRedirect.d.ts +1 -1
- package/dist/routing/RoutingRedirect.d.ts.map +1 -1
- package/dist/routing/WebRedirect.d.ts +1 -1
- package/dist/routing/WebRedirect.d.ts.map +1 -1
- package/dist/routing/__fluentRouteBuilder.d.ts +2 -2
- package/dist/routing/__fluentRouteBuilder.d.ts.map +1 -1
- package/dist/routing/getPathPriority.d.ts.map +1 -1
- package/dist/routing/getPathPriority.js +6 -2
- package/dist/routing/matchPath.d.ts.map +1 -1
- package/dist/routing/patternToRegex.d.ts.map +1 -1
- package/dist/routing/registerGlobalData.d.ts.map +1 -1
- package/dist/serverModuleLocation.d.ts.map +1 -1
- package/dist/serverRpc.d.ts.map +1 -1
- package/dist/serverRpcs.d.ts.map +1 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/signals/tracking.d.ts.map +1 -1
- package/dist/slash.d.ts.map +1 -1
- package/dist/spawnShellCommand.d.ts +1 -1
- package/dist/spawnShellCommand.d.ts.map +1 -1
- package/dist/standardSchema.d.ts.map +1 -1
- package/dist/standardizeWebPath.d.ts.map +1 -1
- package/dist/stateTracking.d.ts.map +1 -1
- package/dist/staticGen/RouteDefinition.d.ts.map +1 -1
- package/dist/staticGen/getAppRoutes.d.ts +2 -2
- package/dist/staticGen/getAppRoutes.d.ts.map +1 -1
- package/dist/staticGen/getAppRoutes.js +15 -20
- package/dist/staticGen/staticGen.d.ts.map +1 -1
- package/dist/staticGen/staticGen.js +5 -3
- package/dist/staticGen/staticGenFunctions.d.ts +1 -1
- package/dist/staticGen/staticGenFunctions.d.ts.map +1 -1
- package/dist/style/jssToCss.d.ts.map +1 -1
- package/dist/style/styleContent.d.ts.map +1 -1
- package/dist/style/styleContentSxy.d.ts.map +1 -1
- package/dist/style/styleContentSxy.js +2 -2
- package/dist/style/unusedStyles.d.ts.map +1 -1
- package/dist/styleProcessors.js +2 -2
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/testing/createTestApp.d.ts +35 -0
- package/dist/testing/createTestApp.d.ts.map +1 -0
- package/dist/testing/createTestApp.js +159 -0
- package/dist/testing/helpers/contentHtmlElements.d.ts.map +1 -0
- package/dist/testing/host.d.ts +75 -7
- package/dist/testing/host.d.ts.map +1 -1
- package/dist/testing/host.js +64 -24
- package/dist/testing/hydrateTestApp.d.ts +1 -1
- package/dist/testing/hydrateTestApp.d.ts.map +1 -1
- package/dist/testing/index.d.ts +5 -37
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +4 -161
- package/dist/testing/installTestDocInit.d.ts.map +1 -1
- package/dist/testing/installTestStyleProcessors.d.ts.map +1 -1
- package/dist/testing/loadEnv.d.ts.map +1 -1
- package/dist/testing/testEnvIsRequested.d.ts.map +1 -1
- package/dist/testing/testingComponentPackage.d.ts +37 -0
- package/dist/testing/testingComponentPackage.d.ts.map +1 -0
- package/dist/testing/{temp/componentPackageMock.js → testingComponentPackage.js} +13 -13
- package/dist/throwError.d.ts.map +1 -1
- package/dist/timeProfiler.d.ts.map +1 -1
- package/dist/todo.d.ts.map +1 -1
- package/dist/update/UpdateResult.d.ts.map +1 -1
- package/dist/update/UpdateScheduler.d.ts.map +1 -1
- package/dist/update/guardedUpdate.d.ts.map +1 -1
- package/dist/update/integrateUpdateVdom.d.ts +9 -9
- package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
- package/dist/update/integrateUpdateVdom.js +2 -2
- package/dist/update/pendingMounts.d.ts.map +1 -1
- package/dist/validChildren.d.ts +2 -2
- package/dist/validChildren.d.ts.map +1 -1
- package/dist/warnOnFrameworkChange.d.ts.map +1 -1
- package/dist/watch.d.ts.map +1 -1
- package/dist/when.d.ts.map +1 -1
- package/dist/zones/react.d.ts +2 -2
- package/dist/zones/react.d.ts.map +1 -1
- package/package.json +5 -3
- package/types/assets.d.ts +1 -0
- package/types/babel-plugin-dependencies.d.ts +1 -0
- package/types/env.d.ts +0 -4
- package/types/helpers.d.ts +2 -2
- package/types/index.d.ts +2 -3
- package/types/jsx/html.d.ts +14 -12
- package/types/jsx/html.events.d.ts +2 -2
- package/types/jsx/html.global.d.ts +1 -0
- package/types/jsx/jsx.d.ts +3 -4
- package/types/modules.d.ts +1 -0
- package/types/regexpMatches.d.ts +1 -0
- package/vendor/manifest.json +2 -2
- package/dist/TypeExtraction.d.ts +0 -2
- package/dist/TypeExtraction.d.ts.map +0 -1
- package/dist/testing/temp/componentPackageMock.d.ts +0 -29
- package/dist/testing/temp/componentPackageMock.d.ts.map +0 -1
- package/dist/testing/temp/contentHtmlElements.d.ts.map +0 -1
- /package/dist/{TypeExtraction.js → AppTypeExtraction.js} +0 -0
- /package/dist/testing/{temp → helpers}/contentHtmlElements.d.ts +0 -0
- /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
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
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":"
|
|
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)
|
|
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}):
|
|
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":"
|
|
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":"
|
|
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;
|
|
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,
|
|
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:
|
|
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:
|
|
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":"
|
|
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"}
|
package/dist/styleProcessors.js
CHANGED
|
@@ -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
|
+
*/
|
package/dist/sync/index.d.ts
CHANGED
|
@@ -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
|
package/dist/sync/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/testing/host.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
|
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":"
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/testing/host.ts"],"names":[],"mappings":"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"}
|
package/dist/testing/host.js
CHANGED
|
@@ -1,28 +1,58 @@
|
|
|
1
|
-
import { TungstenBaseComponent, TungstenSimpleComponent } from "../Components.js";
|
|
2
|
-
import {
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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(
|
|
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 './
|
|
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;
|