meno-core 1.0.53 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +1 -3
- package/bin/cli.ts +66 -261
- package/build-astro.ts +150 -128
- package/dist/bin/cli.js +42 -185
- package/dist/bin/cli.js.map +2 -2
- package/dist/chunks/chunk-2AR55GYH.js +42 -0
- package/dist/chunks/chunk-2AR55GYH.js.map +7 -0
- package/dist/chunks/{chunk-JGWFTO6P.js → chunk-2IIQK7T3.js} +2624 -1389
- package/dist/chunks/chunk-2IIQK7T3.js.map +7 -0
- package/dist/chunks/chunk-4ZRU52J2.js +169 -0
- package/dist/chunks/chunk-4ZRU52J2.js.map +7 -0
- package/dist/chunks/{chunk-UB44F4Z2.js → chunk-5X4HCN7J.js} +5 -7
- package/dist/chunks/chunk-5X4HCN7J.js.map +7 -0
- package/dist/chunks/{chunk-WQFG7PAH.js → chunk-7CCVOL5M.js} +15 -19
- package/dist/chunks/chunk-7CCVOL5M.js.map +7 -0
- package/dist/chunks/{chunk-YBLHKYFF.js → chunk-AR7LHIFY.js} +8 -2
- package/dist/chunks/chunk-AR7LHIFY.js.map +7 -0
- package/dist/chunks/{chunk-O3NAGJP4.js → chunk-NUP7H7D3.js} +135 -41
- package/dist/chunks/chunk-NUP7H7D3.js.map +7 -0
- package/dist/chunks/{chunk-X754AHS5.js → chunk-QWTQZHG3.js} +194 -90
- package/dist/chunks/chunk-QWTQZHG3.js.map +7 -0
- package/dist/chunks/{chunk-H3GJ4H2U.js → chunk-XTKNX4FW.js} +216 -87
- package/dist/chunks/chunk-XTKNX4FW.js.map +7 -0
- package/dist/chunks/{fs-JGINUXGL.js → fs-G3ANWEFP.js} +2 -2
- package/dist/lib/client/index.js +1003 -475
- package/dist/lib/client/index.js.map +3 -3
- package/dist/lib/server/index.js +14393 -6371
- package/dist/lib/server/index.js.map +4 -4
- package/dist/lib/shared/index.js +342 -101
- package/dist/lib/shared/index.js.map +4 -4
- package/dist/lib/shared/richtext/index.js +1 -1
- package/dist/lib/test-utils/index.js +64 -80
- package/dist/lib/test-utils/index.js.map +2 -2
- package/entries/client-router.tsx +10 -8
- package/lib/client/ClientInitializer.ts +8 -8
- package/lib/client/ErrorBoundary.test.tsx +246 -186
- package/lib/client/ErrorBoundary.tsx +183 -132
- package/lib/client/componentRegistry.test.ts +96 -108
- package/lib/client/componentRegistry.ts +1 -3
- package/lib/client/contexts/ThemeContext.tsx +3 -2
- package/lib/client/core/ComponentBuilder.test.ts +663 -560
- package/lib/client/core/ComponentBuilder.ts +427 -155
- package/lib/client/core/ComponentRenderer.test.tsx +2 -4
- package/lib/client/core/ComponentRenderer.tsx +46 -33
- package/lib/client/core/builders/embedBuilder.ts +242 -54
- package/lib/client/core/builders/linkBuilder.ts +72 -45
- package/lib/client/core/builders/linkNodeBuilder.ts +79 -54
- package/lib/client/core/builders/listBuilder.ts +155 -89
- package/lib/client/core/builders/localeListBuilder.ts +97 -62
- package/lib/client/core/builders/types.ts +5 -5
- package/lib/client/core/cmsTemplateProcessor.ts +8 -9
- package/lib/client/elementRegistry.ts +3 -3
- package/lib/client/fontFamiliesService.test.ts +2 -10
- package/lib/client/fontFamiliesService.ts +3 -3
- package/lib/client/hmr/HMRManager.tsx +47 -30
- package/lib/client/hmrCssReload.ts +49 -14
- package/lib/client/hmrWebSocket.ts +14 -19
- package/lib/client/hooks/useColorVariables.test.ts +21 -21
- package/lib/client/hooks/useColorVariables.ts +23 -18
- package/lib/client/hooks/usePropertyAutocomplete.ts +4 -6
- package/lib/client/hooks/useVariables.ts +6 -4
- package/lib/client/hydration/HydrationUtils.test.ts +24 -25
- package/lib/client/hydration/HydrationUtils.ts +3 -4
- package/lib/client/i18nConfigService.test.ts +2 -7
- package/lib/client/i18nConfigService.ts +2 -2
- package/lib/client/meno-filter/MenoFilter.test.ts +47 -49
- package/lib/client/meno-filter/MenoFilter.ts +14 -15
- package/lib/client/meno-filter/bindings.ts +18 -43
- package/lib/client/meno-filter/init.ts +4 -4
- package/lib/client/meno-filter/renderer.ts +30 -32
- package/lib/client/meno-filter/script.generated.ts +1 -3
- package/lib/client/meno-filter/ui.ts +4 -6
- package/lib/client/meno-filter/updates.ts +18 -23
- package/lib/client/meno-filter/utils.ts +1 -1
- package/lib/client/navigation.test.ts +174 -178
- package/lib/client/navigation.ts +0 -1
- package/lib/client/responsiveStyleResolver.knownTokens.test.ts +71 -0
- package/lib/client/responsiveStyleResolver.test.ts +234 -232
- package/lib/client/responsiveStyleResolver.ts +74 -20
- package/lib/client/routing/RouteLoader.test.ts +24 -25
- package/lib/client/routing/RouteLoader.ts +27 -35
- package/lib/client/routing/Router.tsx +210 -153
- package/lib/client/scripts/ScriptExecutor.test.ts +157 -158
- package/lib/client/scripts/ScriptExecutor.ts +18 -36
- package/lib/client/services/PrefetchService.test.ts +3 -3
- package/lib/client/services/PrefetchService.ts +23 -29
- package/lib/client/styleProcessor.test.ts +9 -9
- package/lib/client/styleProcessor.ts +24 -15
- package/lib/client/styles/StyleInjector.test.ts +122 -115
- package/lib/client/styles/StyleInjector.ts +10 -7
- package/lib/client/styles/UtilityClassCollector.ts +62 -28
- package/lib/client/styles/cspNonce.test.ts +2 -5
- package/lib/client/templateEngine.test.ts +554 -488
- package/lib/client/templateEngine.ts +203 -73
- package/lib/client/theme.test.ts +1 -1
- package/lib/client/theme.ts +0 -1
- package/lib/client/utils/toast.ts +0 -1
- package/lib/server/__integration__/api-routes.test.ts +8 -4
- package/lib/server/__integration__/cms-integration.test.ts +1 -4
- package/lib/server/__integration__/server-lifecycle.test.ts +4 -5
- package/lib/server/__integration__/ssr-rendering.test.ts +47 -37
- package/lib/server/__integration__/static-assets.test.ts +3 -3
- package/lib/server/__integration__/test-helpers.ts +87 -74
- package/lib/server/ab/generateFunctions.ts +12 -10
- package/lib/server/astro/cmsPageEmitter.ts +26 -42
- package/lib/server/astro/componentEmitter.ts +35 -43
- package/lib/server/astro/cssCollector.ts +10 -26
- package/lib/server/astro/nodeToAstro.test.ts +1754 -34
- package/lib/server/astro/nodeToAstro.ts +232 -216
- package/lib/server/astro/normalizeOrphanTemplateProps.test.ts +115 -119
- package/lib/server/astro/normalizeOrphanTemplateProps.ts +11 -18
- package/lib/server/astro/pageEmitter.ts +9 -13
- package/lib/server/astro/tailwindMapper.test.ts +10 -37
- package/lib/server/astro/tailwindMapper.ts +33 -40
- package/lib/server/astro/templateTransformer.ts +17 -20
- package/lib/server/createServer.ts +7 -19
- package/lib/server/cssGenerator.test.ts +35 -44
- package/lib/server/cssGenerator.ts +8 -19
- package/lib/server/fileWatcher.test.ts +164 -13
- package/lib/server/fileWatcher.ts +209 -124
- package/lib/server/index.ts +14 -17
- package/lib/server/jsonLoader.test.ts +39 -2
- package/lib/server/jsonLoader.ts +39 -34
- package/lib/server/middleware/cors.test.ts +21 -21
- package/lib/server/middleware/cors.ts +28 -4
- package/lib/server/middleware/errorHandler.test.ts +7 -5
- package/lib/server/middleware/errorHandler.ts +3 -8
- package/lib/server/middleware/index.ts +0 -1
- package/lib/server/middleware/logger.test.ts +10 -8
- package/lib/server/middleware/logger.ts +17 -29
- package/lib/server/migrateTemplates.ts +3 -3
- package/lib/server/pageCache.test.ts +76 -77
- package/lib/server/pageCache.ts +0 -1
- package/lib/server/projectContext.ts +5 -4
- package/lib/server/providers/fileSystemCMSProvider.test.ts +142 -99
- package/lib/server/providers/fileSystemCMSProvider.ts +62 -38
- package/lib/server/routes/api/cms.test.ts +26 -14
- package/lib/server/routes/api/cms.ts +9 -14
- package/lib/server/routes/api/colors.test.ts +2 -2
- package/lib/server/routes/api/components.ts +31 -35
- package/lib/server/routes/api/config.ts +3 -4
- package/lib/server/routes/api/core-routes.ts +49 -76
- package/lib/server/routes/api/enums.test.ts +2 -2
- package/lib/server/routes/api/functions.ts +9 -17
- package/lib/server/routes/api/index.ts +3 -6
- package/lib/server/routes/api/pages.ts +8 -11
- package/lib/server/routes/api/shared.test.ts +1 -1
- package/lib/server/routes/api/shared.ts +12 -9
- package/lib/server/routes/api/variables.test.ts +3 -5
- package/lib/server/routes/api/variables.ts +1 -1
- package/lib/server/routes/index.ts +25 -28
- package/lib/server/routes/pages.ts +35 -31
- package/lib/server/routes/static.ts +17 -6
- package/lib/server/runtime/bundler.ts +98 -61
- package/lib/server/runtime/fs.ts +16 -26
- package/lib/server/runtime/httpServer.ts +8 -12
- package/lib/server/services/ColorService.test.ts +3 -3
- package/lib/server/services/ColorService.ts +37 -29
- package/lib/server/services/EnumService.test.ts +4 -8
- package/lib/server/services/EnumService.ts +11 -3
- package/lib/server/services/VariableService.test.ts +8 -12
- package/lib/server/services/VariableService.ts +11 -3
- package/lib/server/services/cmsService.test.ts +158 -120
- package/lib/server/services/cmsService.ts +36 -146
- package/lib/server/services/componentService.test.ts +125 -45
- package/lib/server/services/componentService.ts +70 -46
- package/lib/server/services/configService.test.ts +22 -45
- package/lib/server/services/configService.ts +50 -27
- package/lib/server/services/fileWatcherService.ts +42 -8
- package/lib/server/services/index.ts +0 -1
- package/lib/server/services/pageService.test.ts +8 -10
- package/lib/server/services/pageService.ts +32 -18
- package/lib/server/ssr/attributeBuilder.ts +18 -8
- package/lib/server/ssr/buildErrorOverlay.ts +11 -12
- package/lib/server/ssr/clientDataInjector.ts +7 -21
- package/lib/server/ssr/cmsSSRProcessor.ts +4 -8
- package/lib/server/ssr/cssCollector.ts +1 -1
- package/lib/server/ssr/errorOverlay.test.ts +1 -1
- package/lib/server/ssr/errorOverlay.ts +3 -9
- package/lib/server/ssr/htmlGenerator.nonce.test.ts +9 -14
- package/lib/server/ssr/htmlGenerator.test.ts +120 -44
- package/lib/server/ssr/htmlGenerator.ts +126 -91
- package/lib/server/ssr/imageMetadata.test.ts +3 -1
- package/lib/server/ssr/imageMetadata.ts +27 -21
- package/lib/server/ssr/jsCollector.test.ts +8 -18
- package/lib/server/ssr/jsCollector.ts +3 -8
- package/lib/server/ssr/liveReloadIntegration.test.ts +76 -36
- package/lib/server/ssr/metaTagGenerator.ts +2 -2
- package/lib/server/ssr/ssrRenderer.branches.test.ts +1103 -0
- package/lib/server/ssr/ssrRenderer.test.ts +316 -256
- package/lib/server/ssr/ssrRenderer.ts +795 -243
- package/lib/server/ssrRenderer.test.ts +1048 -954
- package/lib/server/utils/jsonLineMapper.test.ts +28 -28
- package/lib/server/utils/jsonLineMapper.ts +7 -7
- package/lib/server/validateStyleCoverage.ts +18 -21
- package/lib/server/websocketManager.ts +28 -19
- package/lib/shared/attributeNodeUtils.test.ts +15 -15
- package/lib/shared/attributeNodeUtils.ts +5 -12
- package/lib/shared/breakpoints.test.ts +5 -5
- package/lib/shared/breakpoints.ts +4 -11
- package/lib/shared/cmsQuery.test.ts +81 -0
- package/lib/shared/cmsQuery.ts +92 -0
- package/lib/shared/cmsQueryParser.test.ts +50 -42
- package/lib/shared/cmsQueryParser.ts +60 -38
- package/lib/shared/colorConversions.ts +9 -9
- package/lib/shared/colorVariableUtils.test.ts +27 -5
- package/lib/shared/colorVariableUtils.ts +21 -12
- package/lib/shared/componentRefs.ts +1 -5
- package/lib/shared/constants.test.ts +3 -3
- package/lib/shared/constants.ts +8 -8
- package/lib/shared/cssGeneration.test.ts +285 -144
- package/lib/shared/cssGeneration.ts +217 -531
- package/lib/shared/cssNamedColors.ts +152 -30
- package/lib/shared/cssProperties.test.ts +69 -70
- package/lib/shared/cssProperties.ts +298 -114
- package/lib/shared/elementClassName.test.ts +109 -109
- package/lib/shared/elementClassName.ts +3 -3
- package/lib/shared/elementUtils.ts +12 -16
- package/lib/shared/errorLogger.test.ts +12 -12
- package/lib/shared/errorLogger.ts +2 -10
- package/lib/shared/errors.test.ts +2 -13
- package/lib/shared/errors.ts +2 -8
- package/lib/shared/expressionEvaluator.test.ts +145 -0
- package/lib/shared/expressionEvaluator.ts +52 -24
- package/lib/shared/fontLoader.test.ts +32 -18
- package/lib/shared/fontLoader.ts +2 -2
- package/lib/shared/friendlyError.ts +2 -3
- package/lib/shared/gradientUtils.test.ts +3 -7
- package/lib/shared/gradientUtils.ts +17 -14
- package/lib/shared/hrefRefs.test.ts +2 -2
- package/lib/shared/hrefRefs.ts +2 -10
- package/lib/shared/i18n.test.ts +4 -4
- package/lib/shared/i18n.ts +18 -38
- package/lib/shared/index.ts +27 -0
- package/lib/shared/inlineSvgStyleRules.ts +14 -13
- package/lib/shared/interactiveStyleMappings.test.ts +32 -54
- package/lib/shared/interactiveStyleMappings.ts +11 -24
- package/lib/shared/interactiveStyles.test.ts +165 -188
- package/lib/shared/interfaces/contentProvider.ts +1 -1
- package/lib/shared/itemTemplateUtils.test.ts +11 -17
- package/lib/shared/itemTemplateUtils.ts +27 -39
- package/lib/shared/jsonRepair.ts +16 -10
- package/lib/shared/libraryLoader.test.ts +21 -55
- package/lib/shared/libraryLoader.ts +7 -22
- package/lib/shared/linkUtils.ts +1 -1
- package/lib/shared/logger.test.ts +66 -0
- package/lib/shared/logger.ts +94 -0
- package/lib/shared/markdown.ts +25 -0
- package/lib/shared/netlifyLocale404.test.ts +179 -0
- package/lib/shared/netlifyLocale404.ts +110 -0
- package/lib/shared/nodeUtils.test.ts +28 -16
- package/lib/shared/nodeUtils.ts +76 -23
- package/lib/shared/pathArrayUtils.test.ts +1 -2
- package/lib/shared/pathArrayUtils.ts +1 -1
- package/lib/shared/pathSecurity.ts +2 -2
- package/lib/shared/pathUtils.test.ts +4 -6
- package/lib/shared/pathUtils.ts +42 -49
- package/lib/shared/paths/Path.test.ts +2 -2
- package/lib/shared/paths/Path.ts +0 -1
- package/lib/shared/paths/PathConverter.test.ts +1 -1
- package/lib/shared/paths/PathConverter.ts +17 -20
- package/lib/shared/paths/PathUtils.ts +13 -13
- package/lib/shared/paths/PathValidator.test.ts +2 -15
- package/lib/shared/paths/PathValidator.ts +12 -10
- package/lib/shared/paths/index.ts +1 -2
- package/lib/shared/permissions.test.ts +168 -0
- package/lib/shared/permissions.ts +162 -0
- package/lib/shared/propResolver.test.ts +240 -244
- package/lib/shared/propResolver.ts +15 -26
- package/lib/shared/pxToRem.test.ts +7 -6
- package/lib/shared/pxToRem.ts +2 -5
- package/lib/shared/registry/BaseNodeTypeRegistry.test.ts +12 -6
- package/lib/shared/registry/ClientRegistry.ts +0 -2
- package/lib/shared/registry/ComponentRegistry.test.ts +46 -32
- package/lib/shared/registry/ComponentRegistry.ts +12 -9
- package/lib/shared/registry/NodeTypeDefinition.ts +16 -9
- package/lib/shared/registry/RegistryManager.ts +1 -2
- package/lib/shared/registry/SSRRegistry.ts +0 -2
- package/lib/shared/registry/createNodeType.ts +7 -9
- package/lib/shared/registry/defineNodeType.ts +2 -6
- package/lib/shared/registry/fieldPresets.ts +3 -1
- package/lib/shared/registry/index.ts +0 -1
- package/lib/shared/registry/nodeTypes/ComponentInstanceNodeType.ts +14 -15
- package/lib/shared/registry/nodeTypes/CustomNodeType.ts +103 -0
- package/lib/shared/registry/nodeTypes/EmbedNodeType.ts +18 -11
- package/lib/shared/registry/nodeTypes/HtmlNodeType.ts +48 -19
- package/lib/shared/registry/nodeTypes/IslandNodeType.ts +129 -0
- package/lib/shared/registry/nodeTypes/LinkNodeType.ts +21 -19
- package/lib/shared/registry/nodeTypes/ListNodeType.ts +117 -77
- package/lib/shared/registry/nodeTypes/LocaleListNodeType.ts +27 -21
- package/lib/shared/registry/nodeTypes/MarkdownNodeType.ts +78 -0
- package/lib/shared/registry/nodeTypes/SlotMarkerType.ts +12 -8
- package/lib/shared/registry/nodeTypes/index.ts +26 -3
- package/lib/shared/responsiveScaling.test.ts +16 -34
- package/lib/shared/responsiveScaling.ts +61 -42
- package/lib/shared/responsiveStyleUtils.test.ts +0 -1
- package/lib/shared/responsiveStyleUtils.ts +11 -13
- package/lib/shared/richtext/htmlToTiptap.test.ts +139 -130
- package/lib/shared/richtext/htmlToTiptap.ts +2 -4
- package/lib/shared/richtext/tiptapToHtml.test.ts +5 -6
- package/lib/shared/richtext/types.ts +1 -8
- package/lib/shared/slugTranslator.test.ts +13 -13
- package/lib/shared/slugTranslator.ts +12 -16
- package/lib/shared/slugify.ts +9 -15
- package/lib/shared/styleNodeUtils.test.ts +8 -8
- package/lib/shared/styleNodeUtils.ts +18 -20
- package/lib/shared/styleUtils.test.ts +87 -61
- package/lib/shared/styleUtils.ts +5 -6
- package/lib/shared/themeDefaults.test.ts +11 -14
- package/lib/shared/themeDefaults.ts +3 -4
- package/lib/shared/tree/PathBuilder.test.ts +63 -145
- package/lib/shared/tree/PathBuilder.ts +59 -47
- package/lib/shared/treePathUtils.test.ts +51 -12
- package/lib/shared/treePathUtils.ts +91 -60
- package/lib/shared/types/api.ts +105 -8
- package/lib/shared/types/cms.test.ts +34 -0
- package/lib/shared/types/cms.ts +90 -34
- package/lib/shared/types/comment.ts +49 -16
- package/lib/shared/types/components.ts +51 -25
- package/lib/shared/types/errors.test.ts +1 -6
- package/lib/shared/types/errors.ts +3 -7
- package/lib/shared/types/experiments.ts +28 -28
- package/lib/shared/types/index.ts +25 -2
- package/lib/shared/types/permissions.ts +139 -0
- package/lib/shared/types/styles.ts +0 -1
- package/lib/shared/types/variables.test.ts +4 -13
- package/lib/shared/types/variables.ts +51 -30
- package/lib/shared/types.ts +1 -2
- package/lib/shared/utilityClassConfig.ts +751 -321
- package/lib/shared/utilityClassMapper.durability.test.ts +117 -0
- package/lib/shared/utilityClassMapper.test.ts +433 -95
- package/lib/shared/utilityClassMapper.ts +322 -249
- package/lib/shared/utilityClassNames.test.ts +38 -0
- package/lib/shared/utilityClassNames.ts +458 -0
- package/lib/shared/utils.test.ts +2 -10
- package/lib/shared/utils.ts +19 -10
- package/lib/shared/validation/cmsValidators.ts +2 -1
- package/lib/shared/validation/commentValidators.test.ts +53 -0
- package/lib/shared/validation/commentValidators.ts +12 -1
- package/lib/shared/validation/index.ts +1 -0
- package/lib/shared/validation/permissionsValidators.test.ts +49 -0
- package/lib/shared/validation/permissionsValidators.ts +49 -0
- package/lib/shared/validation/propValidator.test.ts +19 -21
- package/lib/shared/validation/propValidator.ts +13 -18
- package/lib/shared/validation/schemas.test.ts +64 -32
- package/lib/shared/validation/schemas.ts +616 -345
- package/lib/shared/validation/validators.test.ts +3 -8
- package/lib/shared/validation/validators.ts +89 -68
- package/lib/shared/viewportUnits.integration.test.ts +14 -10
- package/lib/shared/viewportUnits.test.ts +24 -23
- package/lib/shared/viewportUnits.ts +12 -5
- package/lib/test-utils/dom-setup.ts +1 -1
- package/lib/test-utils/factories/ConsoleMockFactory.ts +10 -14
- package/lib/test-utils/factories/DomMockFactory.ts +17 -23
- package/lib/test-utils/factories/EventMockFactory.ts +7 -13
- package/lib/test-utils/factories/FetchMockFactory.ts +39 -57
- package/lib/test-utils/factories/ServerMockFactory.ts +6 -10
- package/lib/test-utils/factories/StoreMockFactory.ts +18 -29
- package/lib/test-utils/fixtures.ts +45 -45
- package/lib/test-utils/helpers/asyncHelpers.test.ts +15 -18
- package/lib/test-utils/helpers/asyncHelpers.ts +11 -20
- package/lib/test-utils/helpers.ts +1 -5
- package/lib/test-utils/index.ts +0 -4
- package/lib/test-utils/mockFactories.ts +13 -19
- package/lib/test-utils/mocks.ts +6 -4
- package/package.json +3 -5
- package/scripts/build-for-publish.mjs +2 -4
- package/scripts/build-meno-filter.ts +4 -7
- package/tsconfig.json +1 -0
- package/vite.config.ts +4 -4
- package/build-next.ts +0 -1361
- package/build-static.test.ts +0 -424
- package/build-static.ts +0 -1074
- package/dist/build-static.js +0 -36
- package/dist/chunks/chunk-2MHDV5BF.js +0 -251
- package/dist/chunks/chunk-2MHDV5BF.js.map +0 -7
- package/dist/chunks/chunk-AZQYF6KE.js +0 -559
- package/dist/chunks/chunk-AZQYF6KE.js.map +0 -7
- package/dist/chunks/chunk-GZHGVVW3.js +0 -322
- package/dist/chunks/chunk-GZHGVVW3.js.map +0 -7
- package/dist/chunks/chunk-H3GJ4H2U.js.map +0 -7
- package/dist/chunks/chunk-I7YIGZXT.js +0 -467
- package/dist/chunks/chunk-I7YIGZXT.js.map +0 -7
- package/dist/chunks/chunk-IGYR22T6.js +0 -6192
- package/dist/chunks/chunk-IGYR22T6.js.map +0 -7
- package/dist/chunks/chunk-JGP5A3Y5.js +0 -1136
- package/dist/chunks/chunk-JGP5A3Y5.js.map +0 -7
- package/dist/chunks/chunk-JGWFTO6P.js.map +0 -7
- package/dist/chunks/chunk-O3NAGJP4.js.map +0 -7
- package/dist/chunks/chunk-QB2LNO4W.js +0 -77
- package/dist/chunks/chunk-QB2LNO4W.js.map +0 -7
- package/dist/chunks/chunk-R6XHAFBF.js +0 -3821
- package/dist/chunks/chunk-R6XHAFBF.js.map +0 -7
- package/dist/chunks/chunk-UB44F4Z2.js.map +0 -7
- package/dist/chunks/chunk-WQFG7PAH.js.map +0 -7
- package/dist/chunks/chunk-X754AHS5.js.map +0 -7
- package/dist/chunks/chunk-YBLHKYFF.js.map +0 -7
- package/dist/chunks/configService-R3OGU2UD.js +0 -13
- package/dist/chunks/configService-R3OGU2UD.js.map +0 -7
- package/dist/chunks/constants-STK2YBIW.js +0 -46
- package/dist/chunks/constants-STK2YBIW.js.map +0 -7
- package/dist/chunks/fs-JGINUXGL.js.map +0 -7
- package/dist/entries/server-router.js +0 -67
- package/dist/entries/server-router.js.map +0 -7
- package/entries/server-router.tsx +0 -81
- package/lib/server/providers/fileSystemPageProvider.ts +0 -160
- package/lib/server/webflow/buildWebflow.ts +0 -635
- package/lib/server/webflow/index.ts +0 -23
- package/lib/server/webflow/nodeToWebflow.test.ts +0 -3170
- package/lib/server/webflow/nodeToWebflow.ts +0 -2435
- package/lib/server/webflow/styleMapper.test.ts +0 -389
- package/lib/server/webflow/styleMapper.ts +0 -695
- package/lib/server/webflow/templateWrapper.ts +0 -49
- package/lib/server/webflow/types.ts +0 -396
- /package/dist/{build-static.js.map → chunks/fs-G3ANWEFP.js.map} +0 -0
|
@@ -17,13 +17,13 @@ import { mergeResponsiveStyles } from '../shared/responsiveStyleUtils';
|
|
|
17
17
|
* Get breakpoint configuration (with caching)
|
|
18
18
|
*/
|
|
19
19
|
let breakpointConfig: BreakpointConfig | null = null;
|
|
20
|
-
let
|
|
20
|
+
let _breakpointPromise: Promise<BreakpointConfig> | null = null;
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Get responsive scales configuration (with caching)
|
|
24
24
|
*/
|
|
25
25
|
let responsiveScalesConfig: ResponsiveScales | null = null;
|
|
26
|
-
let
|
|
26
|
+
let _responsiveScalesPromise: Promise<ResponsiveScales> | null = null;
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Get rem conversion configuration (with caching)
|
|
@@ -40,7 +40,7 @@ let configPromise: Promise<void> | null = null;
|
|
|
40
40
|
*/
|
|
41
41
|
export function clearBreakpointConfigCache(): void {
|
|
42
42
|
breakpointConfig = null;
|
|
43
|
-
|
|
43
|
+
_breakpointPromise = null;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/**
|
|
@@ -48,7 +48,7 @@ export function clearBreakpointConfigCache(): void {
|
|
|
48
48
|
*/
|
|
49
49
|
export function clearResponsiveScalesConfigCache(): void {
|
|
50
50
|
responsiveScalesConfig = null;
|
|
51
|
-
|
|
51
|
+
_responsiveScalesPromise = null;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
/**
|
|
@@ -62,6 +62,7 @@ export function clearAllConfigCache(): void {
|
|
|
62
62
|
clearBreakpointConfigCache();
|
|
63
63
|
clearResponsiveScalesConfigCache();
|
|
64
64
|
clearRemConversionConfigCache();
|
|
65
|
+
clearKnownTokensCache();
|
|
65
66
|
configPromise = null;
|
|
66
67
|
}
|
|
67
68
|
|
|
@@ -86,6 +87,62 @@ export function getCachedRemConversionConfig(): RemConversionConfig | null {
|
|
|
86
87
|
return remConversionConfig;
|
|
87
88
|
}
|
|
88
89
|
|
|
90
|
+
/**
|
|
91
|
+
* The project's design-token NAMES (color names across every theme + variable `cssVar`s minus `--`),
|
|
92
|
+
* cached for the design-canvas CSS generator. This is the `knownTokens` set the utility-class engine
|
|
93
|
+
* needs to expand the BARE color-token class form (`bg-muted` → `background-color: var(--muted)`) —
|
|
94
|
+
* without it those classes produce no rule and render no color in the canvas. Mirrors meno-astro's
|
|
95
|
+
* `readKnownTokensSync` (the build/play token source) so the canvas matches the real Astro build.
|
|
96
|
+
*/
|
|
97
|
+
let knownTokens: Set<string> | null = null;
|
|
98
|
+
let _knownTokensPromise: Promise<void> | null = null;
|
|
99
|
+
|
|
100
|
+
/** Get the cached known-token set synchronously (null until {@link loadKnownTokens} resolves). */
|
|
101
|
+
export function getCachedKnownTokens(): ReadonlySet<string> | null {
|
|
102
|
+
return knownTokens;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/** Clear the known-token cache (color/variable config changed). */
|
|
106
|
+
export function clearKnownTokensCache(): void {
|
|
107
|
+
knownTokens = null;
|
|
108
|
+
_knownTokensPromise = null;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/** Fetch + cache the project's known design-token names. Deduped; safe to call repeatedly. */
|
|
112
|
+
export async function loadKnownTokens(): Promise<ReadonlySet<string>> {
|
|
113
|
+
if (knownTokens) return knownTokens;
|
|
114
|
+
if (!_knownTokensPromise) {
|
|
115
|
+
_knownTokensPromise = (async () => {
|
|
116
|
+
const tokens = new Set<string>();
|
|
117
|
+
try {
|
|
118
|
+
const res = await fetch('/api/colors-config');
|
|
119
|
+
if (res.ok) {
|
|
120
|
+
const cfg = (await res.json()) as { themes?: Record<string, { colors?: Record<string, unknown> }> };
|
|
121
|
+
for (const theme of Object.values(cfg?.themes ?? {})) {
|
|
122
|
+
for (const name of Object.keys(theme?.colors ?? {})) tokens.add(name);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
} catch {
|
|
126
|
+
// colors unavailable → no color tokens
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
const res = await fetch('/api/variables-status');
|
|
130
|
+
if (res.ok) {
|
|
131
|
+
const data = (await res.json()) as { config?: { variables?: Array<{ cssVar?: string }> } };
|
|
132
|
+
for (const v of data?.config?.variables ?? []) {
|
|
133
|
+
if (v?.cssVar) tokens.add(v.cssVar.replace(/^--/, ''));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
} catch {
|
|
137
|
+
// variables unavailable → no variable tokens
|
|
138
|
+
}
|
|
139
|
+
knownTokens = tokens;
|
|
140
|
+
})();
|
|
141
|
+
}
|
|
142
|
+
await _knownTokensPromise;
|
|
143
|
+
return knownTokens ?? new Set<string>();
|
|
144
|
+
}
|
|
145
|
+
|
|
89
146
|
/**
|
|
90
147
|
* Shared config fetching - loads both breakpoints and responsive scales from single API call
|
|
91
148
|
*/
|
|
@@ -113,16 +170,16 @@ async function loadConfig(): Promise<void> {
|
|
|
113
170
|
if (typeof entry.breakpoint === 'number' && entry.breakpoint > 0) {
|
|
114
171
|
validInput[key] = {
|
|
115
172
|
breakpoint: entry.breakpoint,
|
|
116
|
-
previewPoint:
|
|
117
|
-
|
|
118
|
-
|
|
173
|
+
previewPoint:
|
|
174
|
+
typeof entry.previewPoint === 'number' && entry.previewPoint > 0
|
|
175
|
+
? entry.previewPoint
|
|
176
|
+
: entry.breakpoint,
|
|
119
177
|
};
|
|
120
178
|
}
|
|
121
179
|
}
|
|
122
180
|
}
|
|
123
|
-
breakpointConfig =
|
|
124
|
-
? normalizeBreakpointConfig(validInput)
|
|
125
|
-
: { ...DEFAULT_BREAKPOINTS };
|
|
181
|
+
breakpointConfig =
|
|
182
|
+
Object.keys(validInput).length > 0 ? normalizeBreakpointConfig(validInput) : { ...DEFAULT_BREAKPOINTS };
|
|
126
183
|
} else {
|
|
127
184
|
breakpointConfig = { ...DEFAULT_BREAKPOINTS };
|
|
128
185
|
}
|
|
@@ -174,17 +231,15 @@ export async function getResponsiveScalesConfig(): Promise<ResponsiveScales> {
|
|
|
174
231
|
* Merge responsive styles into a single style object based on current viewport
|
|
175
232
|
* Styles cascade: base → tablet → mobile
|
|
176
233
|
*/
|
|
177
|
-
export async function resolveResponsiveStyle(
|
|
178
|
-
style: ResponsiveStyleObject | StyleObject
|
|
179
|
-
): Promise<StyleObject> {
|
|
234
|
+
export async function resolveResponsiveStyle(style: ResponsiveStyleObject | StyleObject): Promise<StyleObject> {
|
|
180
235
|
if (!isResponsiveStyle(style)) {
|
|
181
236
|
return style as StyleObject;
|
|
182
237
|
}
|
|
183
|
-
|
|
238
|
+
|
|
184
239
|
const responsiveStyle = style as ResponsiveStyleObject;
|
|
185
240
|
const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : 1920;
|
|
186
241
|
const breakpoints = await getBreakpointConfig();
|
|
187
|
-
|
|
242
|
+
|
|
188
243
|
return mergeResponsiveStyles(responsiveStyle, 'viewport', viewportWidth, breakpoints);
|
|
189
244
|
}
|
|
190
245
|
|
|
@@ -194,17 +249,17 @@ export async function resolveResponsiveStyle(
|
|
|
194
249
|
*/
|
|
195
250
|
export function resolveResponsiveStyleSync(
|
|
196
251
|
style: ResponsiveStyleObject | StyleObject,
|
|
197
|
-
viewportWidth: number = typeof window !== 'undefined' ? window.innerWidth : 1920
|
|
252
|
+
viewportWidth: number = typeof window !== 'undefined' ? window.innerWidth : 1920,
|
|
198
253
|
): StyleObject {
|
|
199
254
|
if (!isResponsiveStyle(style)) {
|
|
200
255
|
return style as StyleObject;
|
|
201
256
|
}
|
|
202
|
-
|
|
257
|
+
|
|
203
258
|
const responsiveStyle = style as ResponsiveStyleObject;
|
|
204
|
-
|
|
259
|
+
|
|
205
260
|
// Use cached breakpoints or defaults
|
|
206
261
|
const breakpoints = breakpointConfig || { ...DEFAULT_BREAKPOINTS };
|
|
207
|
-
|
|
262
|
+
|
|
208
263
|
return mergeResponsiveStyles(responsiveStyle, 'viewport', viewportWidth, breakpoints);
|
|
209
264
|
}
|
|
210
265
|
|
|
@@ -223,4 +278,3 @@ export async function initializeBreakpoints(forceRefresh: boolean = false): Prom
|
|
|
223
278
|
* Alias for initializeBreakpoints - initializes all config including responsive scales
|
|
224
279
|
*/
|
|
225
280
|
export const initializeConfig = initializeBreakpoints;
|
|
226
|
-
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { test, expect, describe, beforeEach, afterEach,
|
|
1
|
+
import { test, expect, describe, beforeEach, afterEach, mock } from 'bun:test';
|
|
2
2
|
|
|
3
3
|
// Save original fetch before any test can modify it
|
|
4
4
|
const _originalFetch = globalThis.fetch;
|
|
5
|
-
import { RouteLoader, RouteLoaderConfig } from './RouteLoader';
|
|
5
|
+
import { RouteLoader, type RouteLoaderConfig } from './RouteLoader';
|
|
6
6
|
import { ComponentRegistry } from '../componentRegistry';
|
|
7
7
|
import { API_ROUTES, NOT_FOUND_TIMEOUT_MS } from '../../shared/constants';
|
|
8
8
|
import type { ComponentNode } from '../../shared/types';
|
|
@@ -19,13 +19,15 @@ describe('RouteLoader', () => {
|
|
|
19
19
|
componentRegistry,
|
|
20
20
|
};
|
|
21
21
|
routeLoader = new RouteLoader(config);
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
// Mock fetch globally
|
|
24
|
-
mockFetch = mock(() =>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
mockFetch = mock(() =>
|
|
25
|
+
Promise.resolve({
|
|
26
|
+
ok: true,
|
|
27
|
+
json: () => Promise.resolve({}),
|
|
28
|
+
text: () => Promise.resolve('{}'),
|
|
29
|
+
}),
|
|
30
|
+
);
|
|
29
31
|
globalThis.fetch = mockFetch as any;
|
|
30
32
|
});
|
|
31
33
|
|
|
@@ -93,15 +95,15 @@ describe('RouteLoader', () => {
|
|
|
93
95
|
|
|
94
96
|
test('should respect abort signal when loading global components', async () => {
|
|
95
97
|
const abortController = new AbortController();
|
|
96
|
-
|
|
98
|
+
|
|
97
99
|
// Start loading
|
|
98
100
|
const loadPromise = routeLoader.loadGlobalComponents(abortController.signal);
|
|
99
|
-
|
|
101
|
+
|
|
100
102
|
// Abort immediately
|
|
101
103
|
abortController.abort();
|
|
102
|
-
|
|
104
|
+
|
|
103
105
|
await loadPromise;
|
|
104
|
-
|
|
106
|
+
|
|
105
107
|
// Should complete without error (abort is handled gracefully)
|
|
106
108
|
// Test passes if no exception is thrown
|
|
107
109
|
});
|
|
@@ -494,10 +496,10 @@ describe('RouteLoader', () => {
|
|
|
494
496
|
});
|
|
495
497
|
|
|
496
498
|
const loadPromise = routeLoader.loadComponents('/');
|
|
497
|
-
|
|
499
|
+
|
|
498
500
|
// Cancel immediately
|
|
499
501
|
routeLoader.cancel();
|
|
500
|
-
|
|
502
|
+
|
|
501
503
|
await loadPromise;
|
|
502
504
|
|
|
503
505
|
// onLoadStart might have been called before cancel, but onLoadComplete should not be called
|
|
@@ -585,11 +587,10 @@ describe('RouteLoader', () => {
|
|
|
585
587
|
routeLoader = new RouteLoader(config);
|
|
586
588
|
|
|
587
589
|
// Mock fetch - should NOT be called for /api/page-content since we have cache
|
|
588
|
-
mockFetch
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
} as any); // loadGlobalComponents only
|
|
590
|
+
mockFetch.mockResolvedValueOnce({
|
|
591
|
+
ok: true,
|
|
592
|
+
json: () => Promise.resolve({}),
|
|
593
|
+
} as any); // loadGlobalComponents only
|
|
593
594
|
|
|
594
595
|
await routeLoader.loadComponents('/cached-page');
|
|
595
596
|
|
|
@@ -660,11 +661,10 @@ describe('RouteLoader', () => {
|
|
|
660
661
|
config.prefetchService = mockPrefetchService as any;
|
|
661
662
|
routeLoader = new RouteLoader(config);
|
|
662
663
|
|
|
663
|
-
mockFetch
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
} as any); // loadGlobalComponents
|
|
664
|
+
mockFetch.mockResolvedValueOnce({
|
|
665
|
+
ok: true,
|
|
666
|
+
json: () => Promise.resolve({}),
|
|
667
|
+
} as any); // loadGlobalComponents
|
|
668
668
|
|
|
669
669
|
await routeLoader.loadComponents('/page-with-components');
|
|
670
670
|
|
|
@@ -750,4 +750,3 @@ describe('RouteLoader', () => {
|
|
|
750
750
|
});
|
|
751
751
|
});
|
|
752
752
|
});
|
|
753
|
-
|
|
@@ -9,7 +9,7 @@ import type { ComponentNode, I18nConfig, JSONPage } from '../../shared/types';
|
|
|
9
9
|
import { validatePageData } from '../../shared/validation/validators';
|
|
10
10
|
import { parseLocaleFromPath, DEFAULT_I18N_CONFIG } from '../../shared/i18n';
|
|
11
11
|
import type { PrefetchService } from '../services/PrefetchService';
|
|
12
|
-
import { logNetworkError } from '../../shared/errorLogger';
|
|
12
|
+
import { logNetworkError, logRuntimeError } from '../../shared/errorLogger';
|
|
13
13
|
|
|
14
14
|
export interface RouteLoaderConfig {
|
|
15
15
|
componentRegistry: ComponentRegistry;
|
|
@@ -59,7 +59,7 @@ export class RouteLoader {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
const response = await fetch(API_ROUTES.COMPONENTS, fetchOptions);
|
|
62
|
-
|
|
62
|
+
|
|
63
63
|
// Check if aborted after fetch
|
|
64
64
|
if (signal?.aborted) {
|
|
65
65
|
return;
|
|
@@ -93,10 +93,8 @@ export class RouteLoader {
|
|
|
93
93
|
try {
|
|
94
94
|
const response = await fetch(API_ROUTES.PAGES);
|
|
95
95
|
const data = await response.json();
|
|
96
|
-
const pages = (data.pages || []).map((p: unknown) =>
|
|
97
|
-
|
|
98
|
-
);
|
|
99
|
-
|
|
96
|
+
const pages = (data.pages || []).map((p: unknown) => (typeof p === 'string' ? p : (p as { path: string }).path));
|
|
97
|
+
|
|
100
98
|
if (this.config.onPagesLoaded) {
|
|
101
99
|
this.config.onPagesLoaded(pages);
|
|
102
100
|
}
|
|
@@ -186,7 +184,6 @@ export class RouteLoader {
|
|
|
186
184
|
}
|
|
187
185
|
|
|
188
186
|
if (!response.ok) {
|
|
189
|
-
|
|
190
187
|
if (this.config.onLoadComplete && !this.isCancelled) {
|
|
191
188
|
this.config.onLoadComplete(null);
|
|
192
189
|
}
|
|
@@ -202,7 +199,7 @@ export class RouteLoader {
|
|
|
202
199
|
this.notFoundTimeout = null;
|
|
203
200
|
}, NOT_FOUND_TIMEOUT_MS);
|
|
204
201
|
}
|
|
205
|
-
|
|
202
|
+
|
|
206
203
|
return null;
|
|
207
204
|
}
|
|
208
205
|
|
|
@@ -213,15 +210,18 @@ export class RouteLoader {
|
|
|
213
210
|
return null;
|
|
214
211
|
}
|
|
215
212
|
|
|
216
|
-
|
|
213
|
+
// biome-ignore lint/suspicious/noExplicitAny: JSON.parse result is used dynamically as page data
|
|
214
|
+
let parsed: any;
|
|
217
215
|
try {
|
|
218
216
|
parsed = JSON.parse(jsonText);
|
|
219
|
-
|
|
217
|
+
|
|
220
218
|
// Validate page data (logs warnings but doesn't fail - graceful degradation)
|
|
221
219
|
const validationResult = validatePageData(parsed);
|
|
222
220
|
if (!validationResult.valid) {
|
|
223
|
-
console.warn(
|
|
224
|
-
|
|
221
|
+
console.warn(
|
|
222
|
+
`[RouteLoader] Page validation failed for ${path}:`,
|
|
223
|
+
validationResult.errors.map((e) => `${e.path}: ${e.message}`).join('; '),
|
|
224
|
+
);
|
|
225
225
|
}
|
|
226
226
|
// Use validated data if available, otherwise use parsed (graceful degradation)
|
|
227
227
|
parsed = validationResult.valid ? validationResult.data : parsed;
|
|
@@ -230,32 +230,32 @@ export class RouteLoader {
|
|
|
230
230
|
const errorTree = this.createErrorTree(
|
|
231
231
|
'Invalid JSON format',
|
|
232
232
|
`Failed to parse JSON for page: ${path}`,
|
|
233
|
-
String(parseError)
|
|
233
|
+
String(parseError),
|
|
234
234
|
);
|
|
235
|
-
|
|
235
|
+
|
|
236
236
|
if (this.config.onLoadComplete && !this.isCancelled) {
|
|
237
237
|
this.config.onLoadComplete(errorTree);
|
|
238
238
|
}
|
|
239
|
-
|
|
239
|
+
|
|
240
240
|
if (this.config.onLoadError && !this.isCancelled) {
|
|
241
|
-
this.config.onLoadError(
|
|
242
|
-
parseError instanceof Error ? parseError : new Error(String(parseError)),
|
|
243
|
-
errorTree
|
|
244
|
-
);
|
|
241
|
+
this.config.onLoadError(parseError instanceof Error ? parseError : new Error(String(parseError)), errorTree);
|
|
245
242
|
}
|
|
246
|
-
|
|
243
|
+
|
|
247
244
|
return errorTree;
|
|
248
245
|
}
|
|
249
246
|
|
|
250
247
|
// Check if JSON has components section (page-specific components)
|
|
251
248
|
let tree: ComponentNode | ComponentNode[] | null = null;
|
|
252
|
-
|
|
249
|
+
|
|
253
250
|
if (parsed.components) {
|
|
254
251
|
// Merge page-specific components with global (page-specific override global)
|
|
255
252
|
try {
|
|
256
253
|
this.config.componentRegistry.merge(parsed.components);
|
|
257
254
|
// JavaScript will be executed via useEffect after componentTree renders
|
|
258
255
|
} catch (componentError) {
|
|
256
|
+
// A malformed components section must not abort the page render, but
|
|
257
|
+
// dropping it silently leaves the page missing components with no clue why.
|
|
258
|
+
logRuntimeError('RouteLoader.mergePageComponents', componentError);
|
|
259
259
|
}
|
|
260
260
|
tree = parsed.root || parsed;
|
|
261
261
|
} else if (parsed.root) {
|
|
@@ -279,7 +279,7 @@ export class RouteLoader {
|
|
|
279
279
|
|
|
280
280
|
this.clearNotFoundTimeout();
|
|
281
281
|
this.abortController = null;
|
|
282
|
-
|
|
282
|
+
|
|
283
283
|
return tree;
|
|
284
284
|
} catch (error) {
|
|
285
285
|
// Ignore abort errors
|
|
@@ -294,21 +294,18 @@ export class RouteLoader {
|
|
|
294
294
|
|
|
295
295
|
// Set a generic error tree
|
|
296
296
|
const errorTree = this.createErrorTree('Error loading page', String(error));
|
|
297
|
-
|
|
297
|
+
|
|
298
298
|
if (this.config.onLoadComplete && !this.isCancelled) {
|
|
299
299
|
this.config.onLoadComplete(errorTree);
|
|
300
300
|
}
|
|
301
|
-
|
|
301
|
+
|
|
302
302
|
if (this.config.onLoadError && !this.isCancelled) {
|
|
303
|
-
this.config.onLoadError(
|
|
304
|
-
error instanceof Error ? error : new Error(String(error)),
|
|
305
|
-
errorTree
|
|
306
|
-
);
|
|
303
|
+
this.config.onLoadError(error instanceof Error ? error : new Error(String(error)), errorTree);
|
|
307
304
|
}
|
|
308
305
|
|
|
309
306
|
this.clearNotFoundTimeout();
|
|
310
307
|
this.abortController = null;
|
|
311
|
-
|
|
308
|
+
|
|
312
309
|
return errorTree;
|
|
313
310
|
}
|
|
314
311
|
}
|
|
@@ -328,11 +325,7 @@ export class RouteLoader {
|
|
|
328
325
|
/**
|
|
329
326
|
* Create error tree ComponentNode structure
|
|
330
327
|
*/
|
|
331
|
-
private createErrorTree(
|
|
332
|
-
title: string,
|
|
333
|
-
message: string,
|
|
334
|
-
details?: string
|
|
335
|
-
): ComponentNode {
|
|
328
|
+
private createErrorTree(title: string, message: string, details?: string): ComponentNode {
|
|
336
329
|
const children: ComponentNode[] = [
|
|
337
330
|
{
|
|
338
331
|
type: 'node',
|
|
@@ -383,4 +376,3 @@ export class RouteLoader {
|
|
|
383
376
|
}
|
|
384
377
|
}
|
|
385
378
|
}
|
|
386
|
-
|