meno-core 1.0.53 → 1.0.54
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 +48 -57
- package/build-astro.ts +131 -113
- package/build-next.ts +109 -96
- package/build-static.test.ts +39 -10
- package/build-static.ts +120 -122
- package/dist/bin/cli.js +34 -38
- package/dist/bin/cli.js.map +2 -2
- package/dist/build-static.js +12 -11
- package/dist/chunks/chunk-2AR55GYH.js +42 -0
- package/dist/chunks/chunk-2AR55GYH.js.map +7 -0
- package/dist/chunks/{chunk-IGYR22T6.js → chunk-2FN4UOVO.js} +512 -239
- package/dist/chunks/chunk-2FN4UOVO.js.map +7 -0
- package/dist/chunks/chunk-3XER4E5W.js +168 -0
- package/dist/chunks/chunk-3XER4E5W.js.map +7 -0
- package/dist/chunks/{chunk-X754AHS5.js → chunk-5ETZFREW.js} +9 -12
- package/dist/chunks/chunk-5ETZFREW.js.map +7 -0
- package/dist/chunks/{chunk-2MHDV5BF.js → chunk-7E4IF5L7.js} +15 -21
- package/dist/chunks/chunk-7E4IF5L7.js.map +7 -0
- package/dist/chunks/{chunk-JGWFTO6P.js → chunk-7HWQUVTU.js} +1578 -1349
- package/dist/chunks/chunk-7HWQUVTU.js.map +7 -0
- package/dist/chunks/{chunk-O3NAGJP4.js → chunk-AE3QK5QW.js} +110 -21
- package/dist/chunks/chunk-AE3QK5QW.js.map +7 -0
- package/dist/chunks/{chunk-GZHGVVW3.js → chunk-F6KTJYGV.js} +7 -7
- package/dist/chunks/chunk-F6KTJYGV.js.map +7 -0
- package/dist/chunks/{chunk-WQFG7PAH.js → chunk-FZITJSSS.js} +2 -6
- package/dist/chunks/chunk-FZITJSSS.js.map +7 -0
- package/dist/chunks/{chunk-QB2LNO4W.js → chunk-GSYYA5GX.js} +2 -2
- package/dist/chunks/chunk-GSYYA5GX.js.map +7 -0
- package/dist/chunks/{chunk-YBLHKYFF.js → chunk-HIZMY3EP.js} +1 -1
- package/dist/chunks/chunk-HIZMY3EP.js.map +7 -0
- package/dist/chunks/{chunk-AZQYF6KE.js → chunk-I2WEGYA7.js} +41 -176
- package/dist/chunks/chunk-I2WEGYA7.js.map +7 -0
- package/dist/chunks/{chunk-I7YIGZXT.js → chunk-JNO3CNLJ.js} +6 -9
- package/dist/chunks/chunk-JNO3CNLJ.js.map +7 -0
- package/dist/chunks/{chunk-UB44F4Z2.js → chunk-NVRBTSQG.js} +2 -4
- package/dist/chunks/chunk-NVRBTSQG.js.map +7 -0
- package/dist/chunks/{chunk-JGP5A3Y5.js → chunk-Q4OBWKXG.js} +40 -33
- package/dist/chunks/chunk-Q4OBWKXG.js.map +7 -0
- package/dist/chunks/{chunk-R6XHAFBF.js → chunk-QTE32Y53.js} +250 -242
- package/dist/chunks/chunk-QTE32Y53.js.map +7 -0
- package/dist/chunks/{chunk-H3GJ4H2U.js → chunk-STDY3OVM.js} +214 -85
- package/dist/chunks/chunk-STDY3OVM.js.map +7 -0
- package/dist/chunks/configService-PRJZF7Y6.js +14 -0
- package/dist/chunks/{constants-STK2YBIW.js → constants-KIQEYMAM.js} +2 -2
- package/dist/chunks/{fs-JGINUXGL.js → fs-ZI5JEU7V.js} +2 -2
- package/dist/entries/server-router.js +14 -19
- package/dist/entries/server-router.js.map +2 -2
- package/dist/lib/client/index.js +638 -332
- package/dist/lib/client/index.js.map +2 -2
- package/dist/lib/server/index.js +177 -235
- package/dist/lib/server/index.js.map +2 -2
- package/dist/lib/shared/index.js +80 -44
- package/dist/lib/shared/index.js.map +2 -2
- package/dist/lib/shared/richtext/index.js +1 -1
- package/dist/lib/test-utils/index.js +38 -60
- package/dist/lib/test-utils/index.js.map +2 -2
- package/entries/client-router.tsx +10 -8
- package/entries/server-router.tsx +1 -7
- package/lib/client/ClientInitializer.ts +8 -8
- package/lib/client/ErrorBoundary.test.tsx +146 -143
- package/lib/client/ErrorBoundary.tsx +175 -127
- package/lib/client/componentRegistry.test.ts +96 -108
- package/lib/client/componentRegistry.ts +1 -2
- package/lib/client/contexts/ThemeContext.tsx +3 -2
- package/lib/client/core/ComponentBuilder.test.ts +513 -560
- package/lib/client/core/ComponentBuilder.ts +318 -146
- package/lib/client/core/ComponentRenderer.test.tsx +1 -2
- package/lib/client/core/ComponentRenderer.tsx +46 -33
- package/lib/client/core/builders/embedBuilder.ts +241 -53
- package/lib/client/core/builders/linkBuilder.ts +71 -44
- package/lib/client/core/builders/linkNodeBuilder.ts +78 -53
- package/lib/client/core/builders/listBuilder.ts +115 -86
- package/lib/client/core/builders/localeListBuilder.ts +95 -60
- package/lib/client/core/builders/types.ts +5 -5
- package/lib/client/core/cmsTemplateProcessor.ts +7 -7
- 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 +8 -0
- package/lib/client/hmrCssReload.ts +14 -8
- package/lib/client/hmrWebSocket.ts +9 -14
- package/lib/client/hooks/useColorVariables.test.ts +21 -21
- package/lib/client/hooks/useColorVariables.ts +12 -10
- package/lib/client/hooks/usePropertyAutocomplete.ts +3 -5
- package/lib/client/hooks/useVariables.ts +4 -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 +19 -21
- package/lib/client/meno-filter/MenoFilter.ts +5 -9
- package/lib/client/meno-filter/bindings.ts +15 -40
- package/lib/client/meno-filter/init.ts +1 -1
- package/lib/client/meno-filter/renderer.ts +23 -29
- package/lib/client/meno-filter/script.generated.ts +1 -3
- package/lib/client/meno-filter/ui.ts +3 -5
- package/lib/client/meno-filter/updates.ts +15 -21
- package/lib/client/navigation.test.ts +159 -159
- package/lib/client/navigation.ts +0 -1
- package/lib/client/responsiveStyleResolver.test.ts +230 -228
- package/lib/client/responsiveStyleResolver.ts +13 -16
- package/lib/client/routing/RouteLoader.test.ts +23 -24
- package/lib/client/routing/RouteLoader.ts +22 -35
- package/lib/client/routing/Router.tsx +31 -3
- package/lib/client/scripts/ScriptExecutor.test.ts +157 -158
- package/lib/client/scripts/ScriptExecutor.ts +15 -33
- package/lib/client/services/PrefetchService.test.ts +2 -2
- package/lib/client/services/PrefetchService.ts +10 -24
- package/lib/client/styleProcessor.test.ts +9 -9
- package/lib/client/styleProcessor.ts +18 -15
- package/lib/client/styles/StyleInjector.test.ts +122 -115
- package/lib/client/styles/StyleInjector.ts +9 -6
- package/lib/client/styles/UtilityClassCollector.ts +19 -26
- package/lib/client/styles/cspNonce.test.ts +2 -5
- package/lib/client/templateEngine.test.ts +554 -482
- package/lib/client/templateEngine.ts +200 -64
- 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 +2 -5
- package/lib/server/__integration__/ssr-rendering.test.ts +47 -37
- package/lib/server/__integration__/static-assets.test.ts +1 -1
- package/lib/server/__integration__/test-helpers.ts +84 -70
- package/lib/server/ab/generateFunctions.ts +12 -10
- package/lib/server/astro/cmsPageEmitter.ts +23 -38
- package/lib/server/astro/componentEmitter.ts +25 -36
- package/lib/server/astro/cssCollector.ts +10 -26
- package/lib/server/astro/nodeToAstro.test.ts +1750 -30
- package/lib/server/astro/nodeToAstro.ts +198 -187
- package/lib/server/astro/normalizeOrphanTemplateProps.test.ts +105 -109
- package/lib/server/astro/normalizeOrphanTemplateProps.ts +4 -12
- 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 +14 -17
- package/lib/server/createServer.ts +5 -17
- package/lib/server/cssGenerator.test.ts +35 -44
- package/lib/server/cssGenerator.ts +6 -17
- package/lib/server/fileWatcher.test.ts +124 -10
- package/lib/server/fileWatcher.ts +124 -118
- package/lib/server/index.ts +7 -1
- package/lib/server/jsonLoader.test.ts +39 -2
- package/lib/server/jsonLoader.ts +33 -31
- package/lib/server/middleware/cors.test.ts +20 -20
- package/lib/server/middleware/cors.ts +28 -4
- package/lib/server/middleware/errorHandler.test.ts +5 -3
- package/lib/server/middleware/errorHandler.ts +3 -8
- package/lib/server/middleware/index.ts +0 -1
- package/lib/server/middleware/logger.test.ts +7 -5
- package/lib/server/middleware/logger.ts +10 -22
- package/lib/server/pageCache.test.ts +76 -77
- package/lib/server/pageCache.ts +0 -1
- package/lib/server/projectContext.ts +4 -3
- package/lib/server/providers/fileSystemCMSProvider.test.ts +124 -95
- package/lib/server/providers/fileSystemCMSProvider.ts +35 -20
- package/lib/server/providers/fileSystemPageProvider.test.ts +84 -0
- package/lib/server/providers/fileSystemPageProvider.ts +31 -12
- package/lib/server/routes/api/cms.test.ts +26 -14
- package/lib/server/routes/api/cms.ts +9 -14
- package/lib/server/routes/api/components.ts +30 -34
- package/lib/server/routes/api/config.ts +0 -1
- package/lib/server/routes/api/core-routes.ts +47 -74
- package/lib/server/routes/api/functions.ts +8 -16
- 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 +1 -3
- package/lib/server/routes/api/variables.ts +1 -1
- package/lib/server/routes/index.ts +23 -26
- package/lib/server/routes/pages.ts +34 -29
- package/lib/server/routes/static.ts +16 -4
- package/lib/server/runtime/bundler.ts +47 -32
- package/lib/server/runtime/fs.ts +3 -13
- package/lib/server/runtime/httpServer.ts +5 -9
- package/lib/server/services/ColorService.ts +32 -27
- package/lib/server/services/EnumService.test.ts +2 -6
- package/lib/server/services/EnumService.ts +7 -2
- package/lib/server/services/VariableService.test.ts +1 -5
- package/lib/server/services/VariableService.ts +6 -1
- package/lib/server/services/cmsService.test.ts +116 -78
- package/lib/server/services/cmsService.ts +24 -54
- package/lib/server/services/componentService.test.ts +122 -36
- package/lib/server/services/componentService.ts +54 -38
- package/lib/server/services/configService.test.ts +9 -31
- package/lib/server/services/configService.ts +20 -27
- package/lib/server/services/fileWatcherService.ts +40 -6
- package/lib/server/services/index.ts +0 -1
- package/lib/server/services/pageService.test.ts +1 -3
- package/lib/server/services/pageService.ts +14 -13
- package/lib/server/ssr/attributeBuilder.ts +16 -6
- package/lib/server/ssr/buildErrorOverlay.ts +11 -12
- package/lib/server/ssr/clientDataInjector.ts +7 -21
- package/lib/server/ssr/cmsSSRProcessor.ts +3 -6
- 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 +3 -9
- package/lib/server/ssr/htmlGenerator.test.ts +120 -43
- package/lib/server/ssr/htmlGenerator.ts +120 -85
- package/lib/server/ssr/imageMetadata.test.ts +3 -1
- package/lib/server/ssr/imageMetadata.ts +25 -19
- package/lib/server/ssr/jsCollector.test.ts +3 -13
- package/lib/server/ssr/jsCollector.ts +3 -8
- package/lib/server/ssr/liveReloadIntegration.test.ts +69 -28
- 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 +196 -246
- package/lib/server/ssr/ssrRenderer.ts +609 -225
- package/lib/server/ssrRenderer.test.ts +1044 -950
- package/lib/server/utils/jsonLineMapper.test.ts +28 -28
- package/lib/server/utils/jsonLineMapper.ts +1 -1
- package/lib/server/validateStyleCoverage.ts +18 -20
- package/lib/server/webflow/buildWebflow.ts +41 -53
- package/lib/server/webflow/nodeToWebflow.test.ts +150 -218
- package/lib/server/webflow/nodeToWebflow.ts +195 -258
- package/lib/server/webflow/styleMapper.test.ts +15 -56
- package/lib/server/webflow/styleMapper.ts +33 -41
- package/lib/server/webflow/types.ts +1 -8
- package/lib/server/websocketManager.ts +16 -19
- package/lib/shared/attributeNodeUtils.test.ts +15 -15
- package/lib/shared/attributeNodeUtils.ts +5 -12
- package/lib/shared/breakpoints.ts +4 -11
- package/lib/shared/cmsQueryParser.test.ts +50 -42
- package/lib/shared/cmsQueryParser.ts +49 -31
- package/lib/shared/colorVariableUtils.test.ts +5 -5
- package/lib/shared/colorVariableUtils.ts +3 -8
- package/lib/shared/componentRefs.ts +1 -5
- package/lib/shared/constants.test.ts +3 -3
- package/lib/shared/constants.ts +4 -8
- package/lib/shared/cssGeneration.test.ts +262 -144
- package/lib/shared/cssGeneration.ts +189 -516
- package/lib/shared/cssNamedColors.ts +152 -30
- package/lib/shared/cssProperties.test.ts +5 -6
- package/lib/shared/cssProperties.ts +296 -112
- package/lib/shared/elementClassName.test.ts +109 -109
- package/lib/shared/elementClassName.ts +1 -1
- package/lib/shared/elementUtils.ts +12 -16
- 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 +119 -0
- package/lib/shared/expressionEvaluator.ts +43 -24
- package/lib/shared/fontLoader.test.ts +19 -5
- package/lib/shared/friendlyError.ts +2 -3
- package/lib/shared/gradientUtils.test.ts +1 -5
- package/lib/shared/gradientUtils.ts +2 -6
- package/lib/shared/hrefRefs.ts +2 -10
- package/lib/shared/i18n.test.ts +1 -1
- package/lib/shared/i18n.ts +13 -34
- package/lib/shared/index.ts +4 -0
- package/lib/shared/inlineSvgStyleRules.ts +2 -4
- package/lib/shared/interactiveStyleMappings.test.ts +11 -33
- package/lib/shared/interactiveStyleMappings.ts +9 -16
- package/lib/shared/interactiveStyles.test.ts +165 -188
- package/lib/shared/interfaces/contentProvider.ts +1 -1
- package/lib/shared/itemTemplateUtils.test.ts +6 -12
- package/lib/shared/itemTemplateUtils.ts +19 -35
- package/lib/shared/jsonRepair.ts +8 -2
- package/lib/shared/libraryLoader.test.ts +15 -49
- package/lib/shared/libraryLoader.ts +7 -22
- package/lib/shared/netlifyLocale404.test.ts +179 -0
- package/lib/shared/netlifyLocale404.ts +110 -0
- package/lib/shared/nodeUtils.test.ts +24 -16
- package/lib/shared/nodeUtils.ts +49 -19
- package/lib/shared/pathArrayUtils.test.ts +1 -2
- package/lib/shared/pathArrayUtils.ts +1 -1
- package/lib/shared/pathSecurity.ts +1 -1
- package/lib/shared/pathUtils.test.ts +4 -6
- package/lib/shared/pathUtils.ts +42 -48
- 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 +14 -17
- package/lib/shared/paths/PathUtils.ts +9 -10
- package/lib/shared/paths/PathValidator.test.ts +2 -15
- package/lib/shared/paths/PathValidator.ts +11 -9
- package/lib/shared/paths/index.ts +1 -2
- package/lib/shared/propResolver.test.ts +240 -244
- package/lib/shared/propResolver.ts +14 -25
- package/lib/shared/pxToRem.test.ts +7 -6
- package/lib/shared/pxToRem.ts +2 -5
- package/lib/shared/registry/BaseNodeTypeRegistry.test.ts +9 -5
- package/lib/shared/registry/ClientRegistry.ts +0 -1
- package/lib/shared/registry/ComponentRegistry.test.ts +43 -29
- package/lib/shared/registry/ComponentRegistry.ts +9 -11
- package/lib/shared/registry/NodeTypeDefinition.ts +15 -8
- package/lib/shared/registry/RegistryManager.ts +1 -2
- package/lib/shared/registry/SSRRegistry.ts +0 -1
- package/lib/shared/registry/createNodeType.ts +7 -9
- package/lib/shared/registry/defineNodeType.ts +2 -6
- package/lib/shared/registry/index.ts +0 -1
- package/lib/shared/registry/nodeTypes/ComponentInstanceNodeType.ts +14 -15
- package/lib/shared/registry/nodeTypes/EmbedNodeType.ts +18 -11
- package/lib/shared/registry/nodeTypes/HtmlNodeType.ts +47 -18
- package/lib/shared/registry/nodeTypes/LinkNodeType.ts +21 -19
- package/lib/shared/registry/nodeTypes/ListNodeType.ts +78 -74
- package/lib/shared/registry/nodeTypes/LocaleListNodeType.ts +27 -21
- package/lib/shared/registry/nodeTypes/SlotMarkerType.ts +6 -7
- package/lib/shared/registry/nodeTypes/index.ts +10 -2
- package/lib/shared/responsiveScaling.test.ts +15 -31
- package/lib/shared/responsiveScaling.ts +55 -37
- package/lib/shared/responsiveStyleUtils.ts +11 -13
- package/lib/shared/richtext/htmlToTiptap.test.ts +23 -14
- package/lib/shared/richtext/htmlToTiptap.ts +1 -3
- 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 +5 -10
- package/lib/shared/styleUtils.test.ts +87 -61
- package/lib/shared/styleUtils.ts +5 -6
- package/lib/shared/themeDefaults.test.ts +11 -11
- package/lib/shared/themeDefaults.ts +3 -4
- package/lib/shared/tree/PathBuilder.test.ts +62 -138
- package/lib/shared/tree/PathBuilder.ts +49 -39
- package/lib/shared/treePathUtils.test.ts +2 -10
- package/lib/shared/treePathUtils.ts +54 -59
- package/lib/shared/types/api.ts +1 -2
- package/lib/shared/types/cms.ts +25 -21
- package/lib/shared/types/comment.ts +49 -16
- package/lib/shared/types/components.ts +27 -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 +2 -2
- package/lib/shared/types/styles.ts +0 -1
- package/lib/shared/types/variables.test.ts +4 -13
- package/lib/shared/types/variables.ts +48 -27
- package/lib/shared/types.ts +1 -2
- package/lib/shared/utilityClassConfig.ts +648 -321
- package/lib/shared/utilityClassMapper.test.ts +203 -92
- package/lib/shared/utilityClassMapper.ts +188 -246
- package/lib/shared/utilityClassNames.ts +326 -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/propValidator.test.ts +18 -20
- package/lib/shared/validation/propValidator.ts +12 -17
- package/lib/shared/validation/schemas.test.ts +24 -33
- package/lib/shared/validation/schemas.ts +469 -344
- package/lib/shared/validation/validators.test.ts +1 -6
- package/lib/shared/validation/validators.ts +89 -68
- package/lib/shared/viewportUnits.integration.test.ts +14 -10
- package/lib/shared/viewportUnits.test.ts +11 -23
- package/lib/test-utils/dom-setup.ts +1 -1
- package/lib/test-utils/factories/ConsoleMockFactory.ts +3 -7
- package/lib/test-utils/factories/DomMockFactory.ts +7 -19
- 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 +5 -9
- package/lib/test-utils/factories/StoreMockFactory.ts +14 -25
- 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 +12 -18
- package/lib/test-utils/mocks.ts +4 -2
- package/package.json +1 -1
- package/scripts/build-meno-filter.ts +1 -4
- package/vite.config.ts +4 -4
- package/dist/chunks/chunk-2MHDV5BF.js.map +0 -7
- package/dist/chunks/chunk-AZQYF6KE.js.map +0 -7
- package/dist/chunks/chunk-GZHGVVW3.js.map +0 -7
- package/dist/chunks/chunk-H3GJ4H2U.js.map +0 -7
- package/dist/chunks/chunk-I7YIGZXT.js.map +0 -7
- package/dist/chunks/chunk-IGYR22T6.js.map +0 -7
- 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.map +0 -7
- 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 → configService-PRJZF7Y6.js.map} +0 -0
- /package/dist/chunks/{constants-STK2YBIW.js.map → constants-KIQEYMAM.js.map} +0 -0
- /package/dist/chunks/{fs-JGINUXGL.js.map → fs-ZI5JEU7V.js.map} +0 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
ROOT_PREFIX,
|
|
7
7
|
CHILDREN_TOKEN,
|
|
8
8
|
PATH_SEPARATOR,
|
|
9
|
-
type Path
|
|
9
|
+
type Path,
|
|
10
10
|
} from './Path';
|
|
11
11
|
|
|
12
12
|
describe('Path types and constants', () => {
|
|
@@ -14,7 +14,7 @@ describe('Path types and constants', () => {
|
|
|
14
14
|
test('Path is a number array', () => {
|
|
15
15
|
const path: Path = [0, 1, 2];
|
|
16
16
|
expect(Array.isArray(path)).toBe(true);
|
|
17
|
-
expect(path.every(n => typeof n === 'number')).toBe(true);
|
|
17
|
+
expect(path.every((n) => typeof n === 'number')).toBe(true);
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
test('Root path is [0]', () => {
|
package/lib/shared/paths/Path.ts
CHANGED
|
@@ -43,7 +43,7 @@ export function stringToPath(str: string): Path {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
// Parse comma-separated format: "0,0,1" -> [0, 0, 1]
|
|
46
|
-
return str.split(',').map(s => {
|
|
46
|
+
return str.split(',').map((s) => {
|
|
47
47
|
const num = parseInt(s, 10);
|
|
48
48
|
if (isNaN(num)) {
|
|
49
49
|
throw new PathConversionError(`Invalid numeric index: ${s}`, str);
|
|
@@ -55,7 +55,7 @@ export function stringToPath(str: string): Path {
|
|
|
55
55
|
/**
|
|
56
56
|
* Convert array path to legacy string format (for backward compatibility)
|
|
57
57
|
* Converts Path arrays to legacy string format used by TreeNode.path and iframe messages
|
|
58
|
-
*
|
|
58
|
+
*
|
|
59
59
|
* @param path - Path array to convert (e.g., [0,0,1])
|
|
60
60
|
* @returns Legacy string path (e.g., "root_0_children_0_children_1")
|
|
61
61
|
*/
|
|
@@ -63,13 +63,13 @@ export function pathToLegacyString(path: Path): string {
|
|
|
63
63
|
if (path.length === 0 || (path.length === 1 && path[0] === 0)) {
|
|
64
64
|
return ROOT_0_STRING;
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
|
|
67
67
|
// Build: root_0_children_0_children_1
|
|
68
68
|
let result = ROOT_0_STRING;
|
|
69
69
|
for (let i = 1; i < path.length; i++) {
|
|
70
70
|
result += `${CHILDREN_SEPARATOR}${path[i]}`;
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
|
|
73
73
|
return result;
|
|
74
74
|
}
|
|
75
75
|
|
|
@@ -82,16 +82,14 @@ export function domPathStringToTreePath(domPath: string): Path {
|
|
|
82
82
|
if (domPath === ROOT_STRING || domPath === '') {
|
|
83
83
|
return [0];
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
|
|
86
86
|
// Remove "root_" prefix and parse
|
|
87
|
-
const cleanPath = domPath.startsWith(ROOT_PREFIX)
|
|
88
|
-
|
|
89
|
-
: domPath;
|
|
90
|
-
|
|
87
|
+
const cleanPath = domPath.startsWith(ROOT_PREFIX) ? domPath.substring(ROOT_PREFIX.length) : domPath;
|
|
88
|
+
|
|
91
89
|
// Parse "children_0_children_1" -> [0, 1]
|
|
92
90
|
const parts = cleanPath.split(PATH_SEPARATOR);
|
|
93
91
|
const path: Path = [0]; // Tree paths always start with [0]
|
|
94
|
-
|
|
92
|
+
|
|
95
93
|
for (let i = 0; i < parts.length; i++) {
|
|
96
94
|
if (parts[i] === CHILDREN_TOKEN && i + 1 < parts.length) {
|
|
97
95
|
const indexStr = parts[i + 1];
|
|
@@ -104,14 +102,14 @@ export function domPathStringToTreePath(domPath: string): Path {
|
|
|
104
102
|
// Invalid index segments are silently skipped
|
|
105
103
|
}
|
|
106
104
|
}
|
|
107
|
-
|
|
105
|
+
|
|
108
106
|
return path;
|
|
109
107
|
}
|
|
110
108
|
|
|
111
109
|
/**
|
|
112
110
|
* Convert tree path array to DOM path string
|
|
113
111
|
* Converts Path arrays to DOM path strings used for element registration and highlighting
|
|
114
|
-
*
|
|
112
|
+
*
|
|
115
113
|
* @param path - Path array or string (e.g., [0,0,1] or "root_0_children_0_children_1")
|
|
116
114
|
* @returns DOM path string (e.g., "root_children_0_children_1")
|
|
117
115
|
* @throws {InvalidPathError} If path contains invalid values
|
|
@@ -122,20 +120,19 @@ export function treePathToDomPathString(path: Path | string): string {
|
|
|
122
120
|
const pathArray = stringToPath(path);
|
|
123
121
|
return treePathToDomPathString(pathArray);
|
|
124
122
|
}
|
|
125
|
-
|
|
123
|
+
|
|
126
124
|
// Validate path before processing
|
|
127
125
|
validatePath(path);
|
|
128
|
-
|
|
126
|
+
|
|
129
127
|
if (path.length === 0 || (path.length === 1 && path[0] === 0)) {
|
|
130
128
|
return ROOT_STRING;
|
|
131
129
|
}
|
|
132
|
-
|
|
130
|
+
|
|
133
131
|
// Build: root_children_0_children_1
|
|
134
132
|
let result = ROOT_STRING;
|
|
135
133
|
for (let i = 1; i < path.length; i++) {
|
|
136
134
|
result += `${CHILDREN_SEPARATOR}${path[i]}`;
|
|
137
135
|
}
|
|
138
|
-
|
|
136
|
+
|
|
139
137
|
return result;
|
|
140
138
|
}
|
|
141
|
-
|
|
@@ -32,14 +32,14 @@ import { isSlotMarker } from '../nodeUtils';
|
|
|
32
32
|
function calculateChildrenExpansionOffset(
|
|
33
33
|
componentPath: Path,
|
|
34
34
|
componentStructure: ComponentNode | undefined,
|
|
35
|
-
instanceChildren: ComponentNode['children'] | undefined
|
|
35
|
+
instanceChildren: ComponentNode['children'] | undefined,
|
|
36
36
|
): number {
|
|
37
37
|
if (!componentStructure || !Array.isArray(instanceChildren)) {
|
|
38
38
|
return 0;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
// Count actual children (accounting for marker expansion)
|
|
42
|
-
const childrenCount = Array.isArray(instanceChildren) ? instanceChildren.length :
|
|
42
|
+
const childrenCount = Array.isArray(instanceChildren) ? instanceChildren.length : instanceChildren ? 1 : 0;
|
|
43
43
|
|
|
44
44
|
let offset = 0;
|
|
45
45
|
let currentNode = componentStructure;
|
|
@@ -72,7 +72,7 @@ function calculateChildrenExpansionOffset(
|
|
|
72
72
|
|
|
73
73
|
// Move to next node in the path
|
|
74
74
|
if (index < children.length) {
|
|
75
|
-
currentNode =
|
|
75
|
+
currentNode = children[index] as any as ComponentNode;
|
|
76
76
|
} else {
|
|
77
77
|
break;
|
|
78
78
|
}
|
|
@@ -128,12 +128,12 @@ export function buildParentPaths(path: Path): Path[] {
|
|
|
128
128
|
if (isRootPath(path)) {
|
|
129
129
|
return [];
|
|
130
130
|
}
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
const parents: Path[] = [];
|
|
133
133
|
for (let i = 1; i < path.length; i++) {
|
|
134
134
|
parents.push(path.slice(0, i));
|
|
135
135
|
}
|
|
136
|
-
|
|
136
|
+
|
|
137
137
|
return parents;
|
|
138
138
|
}
|
|
139
139
|
|
|
@@ -186,12 +186,12 @@ export function convertPagePathToComponentPath(
|
|
|
186
186
|
pagePath: Path,
|
|
187
187
|
componentInstancePath: Path,
|
|
188
188
|
componentStructure?: ComponentNode,
|
|
189
|
-
instanceChildren?: ComponentNode['children']
|
|
189
|
+
instanceChildren?: ComponentNode['children'],
|
|
190
190
|
): Path | null {
|
|
191
191
|
// Check if pagePath starts with componentInstancePath
|
|
192
192
|
// Path must be within or equal to component instance
|
|
193
|
-
const isWithinComponent =
|
|
194
|
-
|
|
193
|
+
const isWithinComponent =
|
|
194
|
+
isAncestorPath(componentInstancePath, pagePath) || pathsEqual(pagePath, componentInstancePath);
|
|
195
195
|
|
|
196
196
|
if (!isWithinComponent) {
|
|
197
197
|
return null; // Path is not within the component instance
|
|
@@ -264,7 +264,7 @@ export function convertComponentPathToPagePath(
|
|
|
264
264
|
componentPath: Path,
|
|
265
265
|
componentInstancePath: Path,
|
|
266
266
|
componentStructure?: ComponentNode,
|
|
267
|
-
instanceChildren?: ComponentNode['children']
|
|
267
|
+
instanceChildren?: ComponentNode['children'],
|
|
268
268
|
): Path {
|
|
269
269
|
// Component paths start with [0] (component root)
|
|
270
270
|
if (componentPath.length === 1 && componentPath[0] === 0) {
|
|
@@ -287,4 +287,3 @@ export function convertComponentPathToPagePath(
|
|
|
287
287
|
// Append adjusted suffix to component instance path
|
|
288
288
|
return [...componentInstancePath, ...adjustedSuffix];
|
|
289
289
|
}
|
|
290
|
-
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { describe, test, expect } from 'bun:test';
|
|
2
|
-
import {
|
|
3
|
-
validatePath,
|
|
4
|
-
isRootPath,
|
|
5
|
-
InvalidPathError,
|
|
6
|
-
PathConversionError
|
|
7
|
-
} from './PathValidator';
|
|
2
|
+
import { validatePath, isRootPath, InvalidPathError, PathConversionError } from './PathValidator';
|
|
8
3
|
|
|
9
4
|
describe('PathValidator', () => {
|
|
10
5
|
describe('validatePath', () => {
|
|
@@ -175,15 +170,7 @@ describe('PathValidator', () => {
|
|
|
175
170
|
});
|
|
176
171
|
|
|
177
172
|
test('stores any input type', () => {
|
|
178
|
-
const inputs = [
|
|
179
|
-
'string',
|
|
180
|
-
123,
|
|
181
|
-
null,
|
|
182
|
-
undefined,
|
|
183
|
-
{},
|
|
184
|
-
[],
|
|
185
|
-
true
|
|
186
|
-
];
|
|
173
|
+
const inputs = ['string', 123, null, undefined, {}, [], true];
|
|
187
174
|
for (const input of inputs) {
|
|
188
175
|
const error = new PathConversionError('Test', input);
|
|
189
176
|
expect(error.input).toBe(input);
|
|
@@ -9,14 +9,21 @@ import type { Path } from './Path';
|
|
|
9
9
|
* Custom error classes for path operations
|
|
10
10
|
*/
|
|
11
11
|
export class InvalidPathError extends Error {
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(
|
|
13
|
+
message: string,
|
|
14
|
+
public readonly path: unknown,
|
|
15
|
+
public readonly index?: number,
|
|
16
|
+
) {
|
|
13
17
|
super(message);
|
|
14
18
|
this.name = 'InvalidPathError';
|
|
15
19
|
}
|
|
16
20
|
}
|
|
17
21
|
|
|
18
22
|
export class PathConversionError extends Error {
|
|
19
|
-
constructor(
|
|
23
|
+
constructor(
|
|
24
|
+
message: string,
|
|
25
|
+
public readonly input: unknown,
|
|
26
|
+
) {
|
|
20
27
|
super(message);
|
|
21
28
|
this.name = 'PathConversionError';
|
|
22
29
|
}
|
|
@@ -30,15 +37,11 @@ export function validatePath(path: Path): void {
|
|
|
30
37
|
if (!Array.isArray(path)) {
|
|
31
38
|
throw new InvalidPathError('Path must be an array', path);
|
|
32
39
|
}
|
|
33
|
-
|
|
40
|
+
|
|
34
41
|
for (let i = 0; i < path.length; i++) {
|
|
35
42
|
const value = path[i];
|
|
36
43
|
if (typeof value !== 'number' || isNaN(value) || !isFinite(value)) {
|
|
37
|
-
throw new InvalidPathError(
|
|
38
|
-
`Invalid path value at index ${i}: expected number, got ${typeof value}`,
|
|
39
|
-
path,
|
|
40
|
-
i
|
|
41
|
-
);
|
|
44
|
+
throw new InvalidPathError(`Invalid path value at index ${i}: expected number, got ${typeof value}`, path, i);
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
}
|
|
@@ -50,4 +53,3 @@ export function validatePath(path: Path): void {
|
|
|
50
53
|
export function isRootPath(path: Path): boolean {
|
|
51
54
|
return path.length === 0 || (path.length === 1 && path[0] === 0);
|
|
52
55
|
}
|
|
53
|
-
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Path Utilities
|
|
3
3
|
* Unified path handling system
|
|
4
|
-
*
|
|
4
|
+
*
|
|
5
5
|
* This module provides a single source of truth for path operations.
|
|
6
6
|
* All path-related functionality is consolidated here.
|
|
7
7
|
*/
|
|
@@ -45,4 +45,3 @@ export {
|
|
|
45
45
|
convertPagePathToComponentPath,
|
|
46
46
|
convertComponentPathToPagePath,
|
|
47
47
|
} from './PathUtils';
|
|
48
|
-
|