@wix/web5-core 1.56.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/README.md +8 -0
- package/dist/cjs/client/clientBundleOverride.js +48 -0
- package/dist/cjs/client/clientBundleOverride.js.map +1 -0
- package/dist/cjs/client/devEnvironment.js +4 -0
- package/dist/cjs/client/devEnvironment.js.map +1 -0
- package/dist/cjs/client/loadClientBundle.js +85 -0
- package/dist/cjs/client/loadClientBundle.js.map +1 -0
- package/dist/cjs/client/wixAuthFetch.js +73 -0
- package/dist/cjs/client/wixAuthFetch.js.map +1 -0
- package/dist/cjs/clients.js +15 -0
- package/dist/cjs/clients.js.map +1 -0
- package/dist/cjs/color/colorUtils.js +126 -0
- package/dist/cjs/color/colorUtils.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js +67 -0
- package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js +141 -0
- package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js +85 -0
- package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js +171 -0
- package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js +81 -0
- package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js +29 -0
- package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js +119 -0
- package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js +75 -0
- package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js +124 -0
- package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js +209 -0
- package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js +19 -0
- package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js +114 -0
- package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js +136 -0
- package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js +18 -0
- package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js +20 -0
- package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js +65 -0
- package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/index.js +48 -0
- package/dist/cjs/component/componentDefinitions/index.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js +86 -0
- package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/parse-utils.js +434 -0
- package/dist/cjs/component/componentDefinitions/parse-utils.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/specHelpers.js +36 -0
- package/dist/cjs/component/componentDefinitions/specHelpers.js.map +1 -0
- package/dist/cjs/component/componentParser.js +365 -0
- package/dist/cjs/component/componentParser.js.map +1 -0
- package/dist/cjs/component/diagnosticTypes.js +30 -0
- package/dist/cjs/component/diagnosticTypes.js.map +1 -0
- package/dist/cjs/component/parser-types.js +4 -0
- package/dist/cjs/component/parser-types.js.map +1 -0
- package/dist/cjs/component/section-definition.js +4 -0
- package/dist/cjs/component/section-definition.js.map +1 -0
- package/dist/cjs/component/types.js +4 -0
- package/dist/cjs/component/types.js.map +1 -0
- package/dist/cjs/components/placement/PlacementPayloadContext.js +29 -0
- package/dist/cjs/components/placement/PlacementPayloadContext.js.map +1 -0
- package/dist/cjs/components/placement/PlacementResponseRenderer.css +269 -0
- package/dist/cjs/components/placement/PlacementResponseRenderer.js +259 -0
- package/dist/cjs/components/placement/PlacementResponseRenderer.js.map +1 -0
- package/dist/cjs/components/placement/buildPlacementDependencies.js +214 -0
- package/dist/cjs/components/placement/buildPlacementDependencies.js.map +1 -0
- package/dist/cjs/components/ui/BottomContainer.js +26 -0
- package/dist/cjs/components/ui/BottomContainer.js.map +1 -0
- package/dist/cjs/components/ui/CalloutBlock.js +156 -0
- package/dist/cjs/components/ui/CalloutBlock.js.map +1 -0
- package/dist/cjs/components/ui/Disclaimer.css +35 -0
- package/dist/cjs/components/ui/Disclaimer.js +56 -0
- package/dist/cjs/components/ui/Disclaimer.js.map +1 -0
- package/dist/cjs/components/ui/FeedbackBar.css +267 -0
- package/dist/cjs/components/ui/FeedbackBar.js +417 -0
- package/dist/cjs/components/ui/FeedbackBar.js.map +1 -0
- package/dist/cjs/components/ui/Loader.js +73 -0
- package/dist/cjs/components/ui/Loader.js.map +1 -0
- package/dist/cjs/components/ui/MarkdownText.js +419 -0
- package/dist/cjs/components/ui/MarkdownText.js.map +1 -0
- package/dist/cjs/components/ui/OptimizedImage.js +414 -0
- package/dist/cjs/components/ui/OptimizedImage.js.map +1 -0
- package/dist/cjs/components/ui/PlacementLoader.css +101 -0
- package/dist/cjs/components/ui/PlacementLoader.js +62 -0
- package/dist/cjs/components/ui/PlacementLoader.js.map +1 -0
- package/dist/cjs/components/ui/PromptEntryEmptyState.css +172 -0
- package/dist/cjs/components/ui/PromptEntryEmptyState.js +96 -0
- package/dist/cjs/components/ui/PromptEntryEmptyState.js.map +1 -0
- package/dist/cjs/components/ui/SearchSection.css +538 -0
- package/dist/cjs/components/ui/SearchSection.js +550 -0
- package/dist/cjs/components/ui/SearchSection.js.map +1 -0
- package/dist/cjs/components/ui/SectionSkeleton.css +109 -0
- package/dist/cjs/components/ui/SectionSkeleton.js +190 -0
- package/dist/cjs/components/ui/SectionSkeleton.js.map +1 -0
- package/dist/cjs/components/ui/SmartIcon.js +122 -0
- package/dist/cjs/components/ui/SmartIcon.js.map +1 -0
- package/dist/cjs/components/ui/UnifiedLink.js +169 -0
- package/dist/cjs/components/ui/UnifiedLink.js.map +1 -0
- package/dist/cjs/components/ui/UserQuery.js +348 -0
- package/dist/cjs/components/ui/UserQuery.js.map +1 -0
- package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js +37 -0
- package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/ArrowUpIcon.js +61 -0
- package/dist/cjs/components/ui/icons/ArrowUpIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/CheckIcon.js +37 -0
- package/dist/cjs/components/ui/icons/CheckIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/CommentIcon.js +34 -0
- package/dist/cjs/components/ui/icons/CommentIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/PlusIcon.js +51 -0
- package/dist/cjs/components/ui/icons/PlusIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/RedoIcon.js +51 -0
- package/dist/cjs/components/ui/icons/RedoIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/ShareIcon.js +81 -0
- package/dist/cjs/components/ui/icons/ShareIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/UndoIcon.js +51 -0
- package/dist/cjs/components/ui/icons/UndoIcon.js.map +1 -0
- package/dist/cjs/components/ui/table.js +159 -0
- package/dist/cjs/components/ui/table.js.map +1 -0
- package/dist/cjs/context/ChipsContext.js +12 -0
- package/dist/cjs/context/ChipsContext.js.map +1 -0
- package/dist/cjs/context/ComponentDependenciesContext.js +32 -0
- package/dist/cjs/context/ComponentDependenciesContext.js.map +1 -0
- package/dist/cjs/entity/defaultExtractor.js +117 -0
- package/dist/cjs/entity/defaultExtractor.js.map +1 -0
- package/dist/cjs/entity/enrichEntitiesFromPayload.js +39 -0
- package/dist/cjs/entity/enrichEntitiesFromPayload.js.map +1 -0
- package/dist/cjs/entity/fetchEntityListData.js +78 -0
- package/dist/cjs/entity/fetchEntityListData.js.map +1 -0
- package/dist/cjs/entity/index.js +41 -0
- package/dist/cjs/entity/index.js.map +1 -0
- package/dist/cjs/entity/types.js +4 -0
- package/dist/cjs/entity/types.js.map +1 -0
- package/dist/cjs/errors/conversationErrorTypes.js +56 -0
- package/dist/cjs/errors/conversationErrorTypes.js.map +1 -0
- package/dist/cjs/errors/errorTemplates.js +86 -0
- package/dist/cjs/errors/errorTemplates.js.map +1 -0
- package/dist/cjs/errors/index.js +13 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/external-types.d.js +2 -0
- package/dist/cjs/external-types.d.js.map +1 -0
- package/dist/cjs/featureToggles/FeatureToggleContext.js +44 -0
- package/dist/cjs/featureToggles/FeatureToggleContext.js.map +1 -0
- package/dist/cjs/hooks/useConversation.js +10 -0
- package/dist/cjs/hooks/useConversation.js.map +1 -0
- package/dist/cjs/hooks/useDebugImageContext.js +10 -0
- package/dist/cjs/hooks/useDebugImageContext.js.map +1 -0
- package/dist/cjs/hooks/useEntityTransforms.js +10 -0
- package/dist/cjs/hooks/useEntityTransforms.js.map +1 -0
- package/dist/cjs/hooks/useMarkdownUtils.js +10 -0
- package/dist/cjs/hooks/useMarkdownUtils.js.map +1 -0
- package/dist/cjs/hooks/useResolveGenericEntityData.js +10 -0
- package/dist/cjs/hooks/useResolveGenericEntityData.js.map +1 -0
- package/dist/cjs/hooks/useResolveSearchSpringEntityData.js +146 -0
- package/dist/cjs/hooks/useResolveSearchSpringEntityData.js.map +1 -0
- package/dist/cjs/hooks/useResolveShopifyEntityData.js +190 -0
- package/dist/cjs/hooks/useResolveShopifyEntityData.js.map +1 -0
- package/dist/cjs/hooks/useResolvedImageSources.js +160 -0
- package/dist/cjs/hooks/useResolvedImageSources.js.map +1 -0
- package/dist/cjs/hooks/useWeb5Link.js +10 -0
- package/dist/cjs/hooks/useWeb5Link.js.map +1 -0
- package/dist/cjs/image/contextualImageTypes.js +4 -0
- package/dist/cjs/image/contextualImageTypes.js.map +1 -0
- package/dist/cjs/image/imageSearchFilterTypes.js +19 -0
- package/dist/cjs/image/imageSearchFilterTypes.js.map +1 -0
- package/dist/cjs/image/imageSearchFilters.js +22 -0
- package/dist/cjs/image/imageSearchFilters.js.map +1 -0
- package/dist/cjs/index.js +285 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/utils.js +33 -0
- package/dist/cjs/lib/utils.js.map +1 -0
- package/dist/cjs/markdownBlocks.js +645 -0
- package/dist/cjs/markdownBlocks.js.map +1 -0
- package/dist/cjs/match/astToParts.js +374 -0
- package/dist/cjs/match/astToParts.js.map +1 -0
- package/dist/cjs/match/extractProps.js +654 -0
- package/dist/cjs/match/extractProps.js.map +1 -0
- package/dist/cjs/match/index.js +11 -0
- package/dist/cjs/match/index.js.map +1 -0
- package/dist/cjs/match/matchAllSections.js +34 -0
- package/dist/cjs/match/matchAllSections.js.map +1 -0
- package/dist/cjs/match/matchMarkdown.js +39 -0
- package/dist/cjs/match/matchMarkdown.js.map +1 -0
- package/dist/cjs/parts/parts.js +183 -0
- package/dist/cjs/parts/parts.js.map +1 -0
- package/dist/cjs/patternAnalyzer/conflictDetector.js +103 -0
- package/dist/cjs/patternAnalyzer/conflictDetector.js.map +1 -0
- package/dist/cjs/patternAnalyzer/index.js +40 -0
- package/dist/cjs/patternAnalyzer/index.js.map +1 -0
- package/dist/cjs/patternAnalyzer/markdownGenerator.js +347 -0
- package/dist/cjs/patternAnalyzer/markdownGenerator.js.map +1 -0
- package/dist/cjs/patternAnalyzer/mergeDetector.js +505 -0
- package/dist/cjs/patternAnalyzer/mergeDetector.js.map +1 -0
- package/dist/cjs/patternAnalyzer/parserValidator.js +56 -0
- package/dist/cjs/patternAnalyzer/parserValidator.js.map +1 -0
- package/dist/cjs/patternAnalyzer/patternWriter.js +106 -0
- package/dist/cjs/patternAnalyzer/patternWriter.js.map +1 -0
- package/dist/cjs/patternAnalyzer/run.js +140 -0
- package/dist/cjs/patternAnalyzer/run.js.map +1 -0
- package/dist/cjs/patternAnalyzer/types.js +4 -0
- package/dist/cjs/patternAnalyzer/types.js.map +1 -0
- package/dist/cjs/patternValidator/ERROR_MESSAGES.md +110 -0
- package/dist/cjs/patternValidator/README.md +757 -0
- package/dist/cjs/patternValidator/automaton.js +349 -0
- package/dist/cjs/patternValidator/automaton.js.map +1 -0
- package/dist/cjs/patternValidator/index.js +196 -0
- package/dist/cjs/patternValidator/index.js.map +1 -0
- package/dist/cjs/patternValidator/lexer.js +218 -0
- package/dist/cjs/patternValidator/lexer.js.map +1 -0
- package/dist/cjs/patternValidator/matcher.js +722 -0
- package/dist/cjs/patternValidator/matcher.js.map +1 -0
- package/dist/cjs/patternValidator/parser.js +533 -0
- package/dist/cjs/patternValidator/parser.js.map +1 -0
- package/dist/cjs/patternValidator/types.js +4 -0
- package/dist/cjs/patternValidator/types.js.map +1 -0
- package/dist/cjs/patternValidator/validator.test.js +1277 -0
- package/dist/cjs/patternValidator/validator.test.js.map +1 -0
- package/dist/cjs/registry/ComponentRegistry.js +438 -0
- package/dist/cjs/registry/ComponentRegistry.js.map +1 -0
- package/dist/cjs/registry/Intent.js +19 -0
- package/dist/cjs/registry/Intent.js.map +1 -0
- package/dist/cjs/registry/index.js +9 -0
- package/dist/cjs/registry/index.js.map +1 -0
- package/dist/cjs/registry/types.js +4 -0
- package/dist/cjs/registry/types.js.map +1 -0
- package/dist/cjs/services/cart/addToCart.js +147 -0
- package/dist/cjs/services/cart/addToCart.js.map +1 -0
- package/dist/cjs/services/cart/index.js +7 -0
- package/dist/cjs/services/cart/index.js.map +1 -0
- package/dist/cjs/services/searchspring/index.js +10 -0
- package/dist/cjs/services/searchspring/index.js.map +1 -0
- package/dist/cjs/services/searchspring/searchSpringClient.js +49 -0
- package/dist/cjs/services/searchspring/searchSpringClient.js.map +1 -0
- package/dist/cjs/services/searchspring/transformSSProduct.js +70 -0
- package/dist/cjs/services/searchspring/transformSSProduct.js.map +1 -0
- package/dist/cjs/services/searchspring/types.js +4 -0
- package/dist/cjs/services/searchspring/types.js.map +1 -0
- package/dist/cjs/services/shopify/globals.d.js +4 -0
- package/dist/cjs/services/shopify/globals.d.js.map +1 -0
- package/dist/cjs/services/shopify/index.js +22 -0
- package/dist/cjs/services/shopify/index.js.map +1 -0
- package/dist/cjs/services/shopify/queries.js +214 -0
- package/dist/cjs/services/shopify/queries.js.map +1 -0
- package/dist/cjs/services/shopify/resolveStoreDomain.js +28 -0
- package/dist/cjs/services/shopify/resolveStoreDomain.js.map +1 -0
- package/dist/cjs/services/shopify/shopifyEntityResolver.js +109 -0
- package/dist/cjs/services/shopify/shopifyEntityResolver.js.map +1 -0
- package/dist/cjs/services/shopify/shopifyStorefrontClient.js +58 -0
- package/dist/cjs/services/shopify/shopifyStorefrontClient.js.map +1 -0
- package/dist/cjs/services/shopify/transformShopifyEntity.js +137 -0
- package/dist/cjs/services/shopify/transformShopifyEntity.js.map +1 -0
- package/dist/cjs/services/shopify/types.js +4 -0
- package/dist/cjs/services/shopify/types.js.map +1 -0
- package/dist/cjs/styles/base-tokens.css +152 -0
- package/dist/cjs/styles/base-utilities.css +424 -0
- package/dist/cjs/styles/components.css +6 -0
- package/dist/cjs/styles/prompt-input-tokens.css +136 -0
- package/dist/cjs/styles/tailwind-theme.css +138 -0
- package/dist/cjs/test-types.d.js +2 -0
- package/dist/cjs/test-types.d.js.map +1 -0
- package/dist/cjs/testUtils.js +25 -0
- package/dist/cjs/testUtils.js.map +1 -0
- package/dist/cjs/types/answerUpdatedEvent.js +20 -0
- package/dist/cjs/types/answerUpdatedEvent.js.map +1 -0
- package/dist/cjs/types/blog.js +4 -0
- package/dist/cjs/types/blog.js.map +1 -0
- package/dist/cjs/types/callout.js +6 -0
- package/dist/cjs/types/callout.js.map +1 -0
- package/dist/cjs/types/dependencies.js +4 -0
- package/dist/cjs/types/dependencies.js.map +1 -0
- package/dist/cjs/types/entity.js +4 -0
- package/dist/cjs/types/entity.js.map +1 -0
- package/dist/cjs/types/link-types.js +62 -0
- package/dist/cjs/types/link-types.js.map +1 -0
- package/dist/cjs/types/page-section.js +4 -0
- package/dist/cjs/types/page-section.js.map +1 -0
- package/dist/cjs/types/placement.js +4 -0
- package/dist/cjs/types/placement.js.map +1 -0
- package/dist/cjs/types/redirectEvent.js +27 -0
- package/dist/cjs/types/redirectEvent.js.map +1 -0
- package/dist/cjs/types/userQueryEvent.js +19 -0
- package/dist/cjs/types/userQueryEvent.js.map +1 -0
- package/dist/cjs/utils/analyticsEvents.js +91 -0
- package/dist/cjs/utils/analyticsEvents.js.map +1 -0
- package/dist/cjs/utils/componentTracking.js +90 -0
- package/dist/cjs/utils/componentTracking.js.map +1 -0
- package/dist/cjs/utils/contentKeywordMatcher.js +56 -0
- package/dist/cjs/utils/contentKeywordMatcher.js.map +1 -0
- package/dist/cjs/utils/conversationApi.js +52 -0
- package/dist/cjs/utils/conversationApi.js.map +1 -0
- package/dist/cjs/utils/conversationMode.js +23 -0
- package/dist/cjs/utils/conversationMode.js.map +1 -0
- package/dist/cjs/utils/diagnosticsCollector.js +58 -0
- package/dist/cjs/utils/diagnosticsCollector.js.map +1 -0
- package/dist/cjs/utils/entityLinkParser.js +256 -0
- package/dist/cjs/utils/entityLinkParser.js.map +1 -0
- package/dist/cjs/utils/htmlCommentParser.js +122 -0
- package/dist/cjs/utils/htmlCommentParser.js.map +1 -0
- package/dist/cjs/utils/image-utils.js +49 -0
- package/dist/cjs/utils/image-utils.js.map +1 -0
- package/dist/cjs/utils/intentExtractor.js +47 -0
- package/dist/cjs/utils/intentExtractor.js.map +1 -0
- package/dist/cjs/utils/markdownPreprocessor.js +268 -0
- package/dist/cjs/utils/markdownPreprocessor.js.map +1 -0
- package/dist/cjs/utils/navigationStack.js +35 -0
- package/dist/cjs/utils/navigationStack.js.map +1 -0
- package/dist/cjs/utils/nodeMatchers.js +43 -0
- package/dist/cjs/utils/nodeMatchers.js.map +1 -0
- package/dist/cjs/utils/propsExtractor.js +66 -0
- package/dist/cjs/utils/propsExtractor.js.map +1 -0
- package/dist/cjs/utils/sessionManager.js +161 -0
- package/dist/cjs/utils/sessionManager.js.map +1 -0
- package/dist/cjs/utils/unifiedMarkdownParser.js +44 -0
- package/dist/cjs/utils/unifiedMarkdownParser.js.map +1 -0
- package/dist/cjs/utils/web5LinkValidator.js +56 -0
- package/dist/cjs/utils/web5LinkValidator.js.map +1 -0
- package/dist/cjs/utils/web5LinkValidator.test.js +115 -0
- package/dist/cjs/utils/web5LinkValidator.test.js.map +1 -0
- package/dist/esm/client/clientBundleOverride.js +43 -0
- package/dist/esm/client/clientBundleOverride.js.map +1 -0
- package/dist/esm/client/devEnvironment.js +2 -0
- package/dist/esm/client/devEnvironment.js.map +1 -0
- package/dist/esm/client/loadClientBundle.js +82 -0
- package/dist/esm/client/loadClientBundle.js.map +1 -0
- package/dist/esm/client/wixAuthFetch.js +68 -0
- package/dist/esm/client/wixAuthFetch.js.map +1 -0
- package/dist/esm/clients.js +11 -0
- package/dist/esm/clients.js.map +1 -0
- package/dist/esm/color/colorUtils.js +118 -0
- package/dist/esm/color/colorUtils.js.map +1 -0
- package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js +61 -0
- package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js +135 -0
- package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js +79 -0
- package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js +165 -0
- package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js +75 -0
- package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js +23 -0
- package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js +113 -0
- package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js +69 -0
- package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js +119 -0
- package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js +203 -0
- package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js +13 -0
- package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js +108 -0
- package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js +130 -0
- package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js +12 -0
- package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js +14 -0
- package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js +59 -0
- package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/index.js +45 -0
- package/dist/esm/component/componentDefinitions/index.js.map +1 -0
- package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js +80 -0
- package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/parse-utils.js +412 -0
- package/dist/esm/component/componentDefinitions/parse-utils.js.map +1 -0
- package/dist/esm/component/componentDefinitions/specHelpers.js +31 -0
- package/dist/esm/component/componentDefinitions/specHelpers.js.map +1 -0
- package/dist/esm/component/componentParser.js +358 -0
- package/dist/esm/component/componentParser.js.map +1 -0
- package/dist/esm/component/diagnosticTypes.js +26 -0
- package/dist/esm/component/diagnosticTypes.js.map +1 -0
- package/dist/esm/component/parser-types.js +2 -0
- package/dist/esm/component/parser-types.js.map +1 -0
- package/dist/esm/component/section-definition.js +2 -0
- package/dist/esm/component/section-definition.js.map +1 -0
- package/dist/esm/component/types.js +2 -0
- package/dist/esm/component/types.js.map +1 -0
- package/dist/esm/components/placement/PlacementPayloadContext.js +24 -0
- package/dist/esm/components/placement/PlacementPayloadContext.js.map +1 -0
- package/dist/esm/components/placement/PlacementResponseRenderer.css +269 -0
- package/dist/esm/components/placement/PlacementResponseRenderer.js +173 -0
- package/dist/esm/components/placement/PlacementResponseRenderer.js.map +1 -0
- package/dist/esm/components/placement/buildPlacementDependencies.js +212 -0
- package/dist/esm/components/placement/buildPlacementDependencies.js.map +1 -0
- package/dist/esm/components/ui/BottomContainer.js +14 -0
- package/dist/esm/components/ui/BottomContainer.js.map +1 -0
- package/dist/esm/components/ui/CalloutBlock.js +118 -0
- package/dist/esm/components/ui/CalloutBlock.js.map +1 -0
- package/dist/esm/components/ui/Disclaimer.css +35 -0
- package/dist/esm/components/ui/Disclaimer.js +32 -0
- package/dist/esm/components/ui/Disclaimer.js.map +1 -0
- package/dist/esm/components/ui/FeedbackBar.css +267 -0
- package/dist/esm/components/ui/FeedbackBar.js +221 -0
- package/dist/esm/components/ui/FeedbackBar.js.map +1 -0
- package/dist/esm/components/ui/Loader.js +43 -0
- package/dist/esm/components/ui/Loader.js.map +1 -0
- package/dist/esm/components/ui/MarkdownText.js +283 -0
- package/dist/esm/components/ui/MarkdownText.js.map +1 -0
- package/dist/esm/components/ui/OptimizedImage.js +354 -0
- package/dist/esm/components/ui/OptimizedImage.js.map +1 -0
- package/dist/esm/components/ui/PlacementLoader.css +101 -0
- package/dist/esm/components/ui/PlacementLoader.js +28 -0
- package/dist/esm/components/ui/PlacementLoader.js.map +1 -0
- package/dist/esm/components/ui/PromptEntryEmptyState.css +172 -0
- package/dist/esm/components/ui/PromptEntryEmptyState.js +36 -0
- package/dist/esm/components/ui/PromptEntryEmptyState.js.map +1 -0
- package/dist/esm/components/ui/SearchSection.css +538 -0
- package/dist/esm/components/ui/SearchSection.js +317 -0
- package/dist/esm/components/ui/SearchSection.js.map +1 -0
- package/dist/esm/components/ui/SectionSkeleton.css +109 -0
- package/dist/esm/components/ui/SectionSkeleton.js +100 -0
- package/dist/esm/components/ui/SectionSkeleton.js.map +1 -0
- package/dist/esm/components/ui/SmartIcon.js +91 -0
- package/dist/esm/components/ui/SmartIcon.js.map +1 -0
- package/dist/esm/components/ui/UnifiedLink.js +105 -0
- package/dist/esm/components/ui/UnifiedLink.js.map +1 -0
- package/dist/esm/components/ui/UserQuery.js +167 -0
- package/dist/esm/components/ui/UserQuery.js.map +1 -0
- package/dist/esm/components/ui/icons/ArrowTopRightIcon.js +17 -0
- package/dist/esm/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/ArrowUpIcon.js +29 -0
- package/dist/esm/components/ui/icons/ArrowUpIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/CheckIcon.js +17 -0
- package/dist/esm/components/ui/icons/CheckIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/CommentIcon.js +15 -0
- package/dist/esm/components/ui/icons/CommentIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/PlusIcon.js +25 -0
- package/dist/esm/components/ui/icons/PlusIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/RedoIcon.js +25 -0
- package/dist/esm/components/ui/icons/RedoIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/ShareIcon.js +37 -0
- package/dist/esm/components/ui/icons/ShareIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/UndoIcon.js +25 -0
- package/dist/esm/components/ui/icons/UndoIcon.js.map +1 -0
- package/dist/esm/components/ui/table.js +92 -0
- package/dist/esm/components/ui/table.js.map +1 -0
- package/dist/esm/context/ChipsContext.js +7 -0
- package/dist/esm/context/ChipsContext.js.map +1 -0
- package/dist/esm/context/ComponentDependenciesContext.js +19 -0
- package/dist/esm/context/ComponentDependenciesContext.js.map +1 -0
- package/dist/esm/entity/defaultExtractor.js +111 -0
- package/dist/esm/entity/defaultExtractor.js.map +1 -0
- package/dist/esm/entity/enrichEntitiesFromPayload.js +35 -0
- package/dist/esm/entity/enrichEntitiesFromPayload.js.map +1 -0
- package/dist/esm/entity/fetchEntityListData.js +76 -0
- package/dist/esm/entity/fetchEntityListData.js.map +1 -0
- package/dist/esm/entity/index.js +29 -0
- package/dist/esm/entity/index.js.map +1 -0
- package/dist/esm/entity/types.js +2 -0
- package/dist/esm/entity/types.js.map +1 -0
- package/dist/esm/errors/conversationErrorTypes.js +50 -0
- package/dist/esm/errors/conversationErrorTypes.js.map +1 -0
- package/dist/esm/errors/errorTemplates.js +81 -0
- package/dist/esm/errors/errorTemplates.js.map +1 -0
- package/dist/esm/errors/index.js +3 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/external-types.d.js +2 -0
- package/dist/esm/external-types.d.js.map +1 -0
- package/dist/esm/featureToggles/FeatureToggleContext.js +30 -0
- package/dist/esm/featureToggles/FeatureToggleContext.js.map +1 -0
- package/dist/esm/hooks/useConversation.js +6 -0
- package/dist/esm/hooks/useConversation.js.map +1 -0
- package/dist/esm/hooks/useDebugImageContext.js +6 -0
- package/dist/esm/hooks/useDebugImageContext.js.map +1 -0
- package/dist/esm/hooks/useEntityTransforms.js +6 -0
- package/dist/esm/hooks/useEntityTransforms.js.map +1 -0
- package/dist/esm/hooks/useMarkdownUtils.js +6 -0
- package/dist/esm/hooks/useMarkdownUtils.js.map +1 -0
- package/dist/esm/hooks/useResolveGenericEntityData.js +6 -0
- package/dist/esm/hooks/useResolveGenericEntityData.js.map +1 -0
- package/dist/esm/hooks/useResolveSearchSpringEntityData.js +146 -0
- package/dist/esm/hooks/useResolveSearchSpringEntityData.js.map +1 -0
- package/dist/esm/hooks/useResolveShopifyEntityData.js +191 -0
- package/dist/esm/hooks/useResolveShopifyEntityData.js.map +1 -0
- package/dist/esm/hooks/useResolvedImageSources.js +169 -0
- package/dist/esm/hooks/useResolvedImageSources.js.map +1 -0
- package/dist/esm/hooks/useWeb5Link.js +6 -0
- package/dist/esm/hooks/useWeb5Link.js.map +1 -0
- package/dist/esm/image/contextualImageTypes.js +2 -0
- package/dist/esm/image/contextualImageTypes.js.map +1 -0
- package/dist/esm/image/imageSearchFilterTypes.js +15 -0
- package/dist/esm/image/imageSearchFilterTypes.js.map +1 -0
- package/dist/esm/image/imageSearchFilters.js +18 -0
- package/dist/esm/image/imageSearchFilters.js.map +1 -0
- package/dist/esm/index.js +152 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/utils.js +33 -0
- package/dist/esm/lib/utils.js.map +1 -0
- package/dist/esm/markdownBlocks.js +641 -0
- package/dist/esm/markdownBlocks.js.map +1 -0
- package/dist/esm/match/astToParts.js +371 -0
- package/dist/esm/match/astToParts.js.map +1 -0
- package/dist/esm/match/extractProps.js +634 -0
- package/dist/esm/match/extractProps.js.map +1 -0
- package/dist/esm/match/index.js +4 -0
- package/dist/esm/match/index.js.map +1 -0
- package/dist/esm/match/matchAllSections.js +31 -0
- package/dist/esm/match/matchAllSections.js.map +1 -0
- package/dist/esm/match/matchMarkdown.js +36 -0
- package/dist/esm/match/matchMarkdown.js.map +1 -0
- package/dist/esm/parts/parts.js +171 -0
- package/dist/esm/parts/parts.js.map +1 -0
- package/dist/esm/patternAnalyzer/conflictDetector.js +99 -0
- package/dist/esm/patternAnalyzer/conflictDetector.js.map +1 -0
- package/dist/esm/patternAnalyzer/index.js +36 -0
- package/dist/esm/patternAnalyzer/index.js.map +1 -0
- package/dist/esm/patternAnalyzer/markdownGenerator.js +344 -0
- package/dist/esm/patternAnalyzer/markdownGenerator.js.map +1 -0
- package/dist/esm/patternAnalyzer/mergeDetector.js +504 -0
- package/dist/esm/patternAnalyzer/mergeDetector.js.map +1 -0
- package/dist/esm/patternAnalyzer/parserValidator.js +52 -0
- package/dist/esm/patternAnalyzer/parserValidator.js.map +1 -0
- package/dist/esm/patternAnalyzer/patternWriter.js +102 -0
- package/dist/esm/patternAnalyzer/patternWriter.js.map +1 -0
- package/dist/esm/patternAnalyzer/run.js +138 -0
- package/dist/esm/patternAnalyzer/run.js.map +1 -0
- package/dist/esm/patternAnalyzer/types.js +2 -0
- package/dist/esm/patternAnalyzer/types.js.map +1 -0
- package/dist/esm/patternValidator/ERROR_MESSAGES.md +110 -0
- package/dist/esm/patternValidator/README.md +757 -0
- package/dist/esm/patternValidator/automaton.js +345 -0
- package/dist/esm/patternValidator/automaton.js.map +1 -0
- package/dist/esm/patternValidator/index.js +190 -0
- package/dist/esm/patternValidator/index.js.map +1 -0
- package/dist/esm/patternValidator/lexer.js +214 -0
- package/dist/esm/patternValidator/lexer.js.map +1 -0
- package/dist/esm/patternValidator/matcher.js +717 -0
- package/dist/esm/patternValidator/matcher.js.map +1 -0
- package/dist/esm/patternValidator/parser.js +531 -0
- package/dist/esm/patternValidator/parser.js.map +1 -0
- package/dist/esm/patternValidator/types.js +2 -0
- package/dist/esm/patternValidator/types.js.map +1 -0
- package/dist/esm/patternValidator/validator.test.js +1275 -0
- package/dist/esm/patternValidator/validator.test.js.map +1 -0
- package/dist/esm/registry/ComponentRegistry.js +435 -0
- package/dist/esm/registry/ComponentRegistry.js.map +1 -0
- package/dist/esm/registry/Intent.js +15 -0
- package/dist/esm/registry/Intent.js.map +1 -0
- package/dist/esm/registry/index.js +3 -0
- package/dist/esm/registry/index.js.map +1 -0
- package/dist/esm/registry/types.js +2 -0
- package/dist/esm/registry/types.js.map +1 -0
- package/dist/esm/services/cart/addToCart.js +146 -0
- package/dist/esm/services/cart/addToCart.js.map +1 -0
- package/dist/esm/services/cart/index.js +2 -0
- package/dist/esm/services/cart/index.js.map +1 -0
- package/dist/esm/services/searchspring/index.js +3 -0
- package/dist/esm/services/searchspring/index.js.map +1 -0
- package/dist/esm/services/searchspring/searchSpringClient.js +44 -0
- package/dist/esm/services/searchspring/searchSpringClient.js.map +1 -0
- package/dist/esm/services/searchspring/transformSSProduct.js +66 -0
- package/dist/esm/services/searchspring/transformSSProduct.js.map +1 -0
- package/dist/esm/services/searchspring/types.js +2 -0
- package/dist/esm/services/searchspring/types.js.map +1 -0
- package/dist/esm/services/shopify/globals.d.js +7 -0
- package/dist/esm/services/shopify/globals.d.js.map +1 -0
- package/dist/esm/services/shopify/index.js +6 -0
- package/dist/esm/services/shopify/index.js.map +1 -0
- package/dist/esm/services/shopify/queries.js +210 -0
- package/dist/esm/services/shopify/queries.js.map +1 -0
- package/dist/esm/services/shopify/resolveStoreDomain.js +25 -0
- package/dist/esm/services/shopify/resolveStoreDomain.js.map +1 -0
- package/dist/esm/services/shopify/shopifyEntityResolver.js +105 -0
- package/dist/esm/services/shopify/shopifyEntityResolver.js.map +1 -0
- package/dist/esm/services/shopify/shopifyStorefrontClient.js +52 -0
- package/dist/esm/services/shopify/shopifyStorefrontClient.js.map +1 -0
- package/dist/esm/services/shopify/transformShopifyEntity.js +130 -0
- package/dist/esm/services/shopify/transformShopifyEntity.js.map +1 -0
- package/dist/esm/services/shopify/types.js +2 -0
- package/dist/esm/services/shopify/types.js.map +1 -0
- package/dist/esm/styles/base-tokens.css +152 -0
- package/dist/esm/styles/base-utilities.css +424 -0
- package/dist/esm/styles/components.css +6 -0
- package/dist/esm/styles/prompt-input-tokens.css +136 -0
- package/dist/esm/styles/tailwind-theme.css +138 -0
- package/dist/esm/test-types.d.js +2 -0
- package/dist/esm/test-types.d.js.map +1 -0
- package/dist/esm/testUtils.js +20 -0
- package/dist/esm/testUtils.js.map +1 -0
- package/dist/esm/types/answerUpdatedEvent.js +16 -0
- package/dist/esm/types/answerUpdatedEvent.js.map +1 -0
- package/dist/esm/types/blog.js +2 -0
- package/dist/esm/types/blog.js.map +1 -0
- package/dist/esm/types/callout.js +2 -0
- package/dist/esm/types/callout.js.map +1 -0
- package/dist/esm/types/dependencies.js +2 -0
- package/dist/esm/types/dependencies.js.map +1 -0
- package/dist/esm/types/entity.js +2 -0
- package/dist/esm/types/entity.js.map +1 -0
- package/dist/esm/types/link-types.js +52 -0
- package/dist/esm/types/link-types.js.map +1 -0
- package/dist/esm/types/page-section.js +2 -0
- package/dist/esm/types/page-section.js.map +1 -0
- package/dist/esm/types/placement.js +2 -0
- package/dist/esm/types/placement.js.map +1 -0
- package/dist/esm/types/redirectEvent.js +23 -0
- package/dist/esm/types/redirectEvent.js.map +1 -0
- package/dist/esm/types/userQueryEvent.js +15 -0
- package/dist/esm/types/userQueryEvent.js.map +1 -0
- package/dist/esm/utils/analyticsEvents.js +84 -0
- package/dist/esm/utils/analyticsEvents.js.map +1 -0
- package/dist/esm/utils/componentTracking.js +84 -0
- package/dist/esm/utils/componentTracking.js.map +1 -0
- package/dist/esm/utils/contentKeywordMatcher.js +50 -0
- package/dist/esm/utils/contentKeywordMatcher.js.map +1 -0
- package/dist/esm/utils/conversationApi.js +45 -0
- package/dist/esm/utils/conversationApi.js.map +1 -0
- package/dist/esm/utils/conversationMode.js +18 -0
- package/dist/esm/utils/conversationMode.js.map +1 -0
- package/dist/esm/utils/diagnosticsCollector.js +52 -0
- package/dist/esm/utils/diagnosticsCollector.js.map +1 -0
- package/dist/esm/utils/entityLinkParser.js +246 -0
- package/dist/esm/utils/entityLinkParser.js.map +1 -0
- package/dist/esm/utils/htmlCommentParser.js +117 -0
- package/dist/esm/utils/htmlCommentParser.js.map +1 -0
- package/dist/esm/utils/image-utils.js +45 -0
- package/dist/esm/utils/image-utils.js.map +1 -0
- package/dist/esm/utils/intentExtractor.js +45 -0
- package/dist/esm/utils/intentExtractor.js.map +1 -0
- package/dist/esm/utils/markdownPreprocessor.js +257 -0
- package/dist/esm/utils/markdownPreprocessor.js.map +1 -0
- package/dist/esm/utils/navigationStack.js +27 -0
- package/dist/esm/utils/navigationStack.js.map +1 -0
- package/dist/esm/utils/nodeMatchers.js +38 -0
- package/dist/esm/utils/nodeMatchers.js.map +1 -0
- package/dist/esm/utils/propsExtractor.js +58 -0
- package/dist/esm/utils/propsExtractor.js.map +1 -0
- package/dist/esm/utils/sessionManager.js +151 -0
- package/dist/esm/utils/sessionManager.js.map +1 -0
- package/dist/esm/utils/unifiedMarkdownParser.js +36 -0
- package/dist/esm/utils/unifiedMarkdownParser.js.map +1 -0
- package/dist/esm/utils/web5LinkValidator.js +52 -0
- package/dist/esm/utils/web5LinkValidator.js.map +1 -0
- package/dist/esm/utils/web5LinkValidator.test.js +113 -0
- package/dist/esm/utils/web5LinkValidator.test.js.map +1 -0
- package/dist/types/client/clientBundleOverride.d.ts +26 -0
- package/dist/types/client/clientBundleOverride.d.ts.map +1 -0
- package/dist/types/client/devEnvironment.d.ts +24 -0
- package/dist/types/client/devEnvironment.d.ts.map +1 -0
- package/dist/types/client/loadClientBundle.d.ts +27 -0
- package/dist/types/client/loadClientBundle.d.ts.map +1 -0
- package/dist/types/client/wixAuthFetch.d.ts +12 -0
- package/dist/types/client/wixAuthFetch.d.ts.map +1 -0
- package/dist/types/clients.d.ts +10 -0
- package/dist/types/clients.d.ts.map +1 -0
- package/dist/types/color/colorUtils.d.ts +9 -0
- package/dist/types/color/colorUtils.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts +12 -0
- package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts +16 -0
- package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts +23 -0
- package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts +12 -0
- package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts +10 -0
- package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts +12 -0
- package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/index.d.ts +26 -0
- package/dist/types/component/componentDefinitions/index.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/parse-utils.d.ts +88 -0
- package/dist/types/component/componentDefinitions/parse-utils.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/specHelpers.d.ts +16 -0
- package/dist/types/component/componentDefinitions/specHelpers.d.ts.map +1 -0
- package/dist/types/component/componentParser.d.ts +63 -0
- package/dist/types/component/componentParser.d.ts.map +1 -0
- package/dist/types/component/diagnosticTypes.d.ts +23 -0
- package/dist/types/component/diagnosticTypes.d.ts.map +1 -0
- package/dist/types/component/parser-types.d.ts +71 -0
- package/dist/types/component/parser-types.d.ts.map +1 -0
- package/dist/types/component/section-definition.d.ts +32 -0
- package/dist/types/component/section-definition.d.ts.map +1 -0
- package/dist/types/component/types.d.ts +315 -0
- package/dist/types/component/types.d.ts.map +1 -0
- package/dist/types/components/placement/PlacementPayloadContext.d.ts +20 -0
- package/dist/types/components/placement/PlacementPayloadContext.d.ts.map +1 -0
- package/dist/types/components/placement/PlacementResponseRenderer.d.ts +106 -0
- package/dist/types/components/placement/PlacementResponseRenderer.d.ts.map +1 -0
- package/dist/types/components/placement/buildPlacementDependencies.d.ts +44 -0
- package/dist/types/components/placement/buildPlacementDependencies.d.ts.map +1 -0
- package/dist/types/components/ui/BottomContainer.d.ts +9 -0
- package/dist/types/components/ui/BottomContainer.d.ts.map +1 -0
- package/dist/types/components/ui/CalloutBlock.d.ts +9 -0
- package/dist/types/components/ui/CalloutBlock.d.ts.map +1 -0
- package/dist/types/components/ui/Disclaimer.d.ts +21 -0
- package/dist/types/components/ui/Disclaimer.d.ts.map +1 -0
- package/dist/types/components/ui/FeedbackBar.d.ts +41 -0
- package/dist/types/components/ui/FeedbackBar.d.ts.map +1 -0
- package/dist/types/components/ui/Loader.d.ts +9 -0
- package/dist/types/components/ui/Loader.d.ts.map +1 -0
- package/dist/types/components/ui/MarkdownText.d.ts +9 -0
- package/dist/types/components/ui/MarkdownText.d.ts.map +1 -0
- package/dist/types/components/ui/OptimizedImage.d.ts +59 -0
- package/dist/types/components/ui/OptimizedImage.d.ts.map +1 -0
- package/dist/types/components/ui/PlacementLoader.d.ts +15 -0
- package/dist/types/components/ui/PlacementLoader.d.ts.map +1 -0
- package/dist/types/components/ui/PromptEntryEmptyState.d.ts +21 -0
- package/dist/types/components/ui/PromptEntryEmptyState.d.ts.map +1 -0
- package/dist/types/components/ui/SearchSection.d.ts +37 -0
- package/dist/types/components/ui/SearchSection.d.ts.map +1 -0
- package/dist/types/components/ui/SectionSkeleton.d.ts +27 -0
- package/dist/types/components/ui/SectionSkeleton.d.ts.map +1 -0
- package/dist/types/components/ui/SmartIcon.d.ts +19 -0
- package/dist/types/components/ui/SmartIcon.d.ts.map +1 -0
- package/dist/types/components/ui/UnifiedLink.d.ts +22 -0
- package/dist/types/components/ui/UnifiedLink.d.ts.map +1 -0
- package/dist/types/components/ui/UserQuery.d.ts +33 -0
- package/dist/types/components/ui/UserQuery.d.ts.map +1 -0
- package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/ArrowUpIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/ArrowUpIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/CheckIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/CheckIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/CommentIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/CommentIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/PlusIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/PlusIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/RedoIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/RedoIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/ShareIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/ShareIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/UndoIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/UndoIcon.d.ts.map +1 -0
- package/dist/types/components/ui/table.d.ts +11 -0
- package/dist/types/components/ui/table.d.ts.map +1 -0
- package/dist/types/context/ChipsContext.d.ts +8 -0
- package/dist/types/context/ChipsContext.d.ts.map +1 -0
- package/dist/types/context/ComponentDependenciesContext.d.ts +8 -0
- package/dist/types/context/ComponentDependenciesContext.d.ts.map +1 -0
- package/dist/types/entity/defaultExtractor.d.ts +14 -0
- package/dist/types/entity/defaultExtractor.d.ts.map +1 -0
- package/dist/types/entity/enrichEntitiesFromPayload.d.ts +27 -0
- package/dist/types/entity/enrichEntitiesFromPayload.d.ts.map +1 -0
- package/dist/types/entity/fetchEntityListData.d.ts +20 -0
- package/dist/types/entity/fetchEntityListData.d.ts.map +1 -0
- package/dist/types/entity/index.d.ts +16 -0
- package/dist/types/entity/index.d.ts.map +1 -0
- package/dist/types/entity/types.d.ts +13 -0
- package/dist/types/entity/types.d.ts.map +1 -0
- package/dist/types/errors/conversationErrorTypes.d.ts +20 -0
- package/dist/types/errors/conversationErrorTypes.d.ts.map +1 -0
- package/dist/types/errors/errorTemplates.d.ts +27 -0
- package/dist/types/errors/errorTemplates.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +3 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/featureToggles/FeatureToggleContext.d.ts +18 -0
- package/dist/types/featureToggles/FeatureToggleContext.d.ts.map +1 -0
- package/dist/types/hooks/useConversation.d.ts +3 -0
- package/dist/types/hooks/useConversation.d.ts.map +1 -0
- package/dist/types/hooks/useDebugImageContext.d.ts +2 -0
- package/dist/types/hooks/useDebugImageContext.d.ts.map +1 -0
- package/dist/types/hooks/useEntityTransforms.d.ts +3 -0
- package/dist/types/hooks/useEntityTransforms.d.ts.map +1 -0
- package/dist/types/hooks/useMarkdownUtils.d.ts +3 -0
- package/dist/types/hooks/useMarkdownUtils.d.ts.map +1 -0
- package/dist/types/hooks/useResolveGenericEntityData.d.ts +11 -0
- package/dist/types/hooks/useResolveGenericEntityData.d.ts.map +1 -0
- package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts +20 -0
- package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts.map +1 -0
- package/dist/types/hooks/useResolveShopifyEntityData.d.ts +21 -0
- package/dist/types/hooks/useResolveShopifyEntityData.d.ts.map +1 -0
- package/dist/types/hooks/useResolvedImageSources.d.ts +6 -0
- package/dist/types/hooks/useResolvedImageSources.d.ts.map +1 -0
- package/dist/types/hooks/useWeb5Link.d.ts +3 -0
- package/dist/types/hooks/useWeb5Link.d.ts.map +1 -0
- package/dist/types/image/contextualImageTypes.d.ts +17 -0
- package/dist/types/image/contextualImageTypes.d.ts.map +1 -0
- package/dist/types/image/imageSearchFilterTypes.d.ts +14 -0
- package/dist/types/image/imageSearchFilterTypes.d.ts.map +1 -0
- package/dist/types/image/imageSearchFilters.d.ts +16 -0
- package/dist/types/image/imageSearchFilters.d.ts.map +1 -0
- package/dist/types/index.d.ts +88 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/utils.d.ts +3 -0
- package/dist/types/lib/utils.d.ts.map +1 -0
- package/dist/types/markdownBlocks.d.ts +44 -0
- package/dist/types/markdownBlocks.d.ts.map +1 -0
- package/dist/types/match/astToParts.d.ts +15 -0
- package/dist/types/match/astToParts.d.ts.map +1 -0
- package/dist/types/match/extractProps.d.ts +207 -0
- package/dist/types/match/extractProps.d.ts.map +1 -0
- package/dist/types/match/index.d.ts +4 -0
- package/dist/types/match/index.d.ts.map +1 -0
- package/dist/types/match/matchAllSections.d.ts +15 -0
- package/dist/types/match/matchAllSections.d.ts.map +1 -0
- package/dist/types/match/matchMarkdown.d.ts +25 -0
- package/dist/types/match/matchMarkdown.d.ts.map +1 -0
- package/dist/types/parts/parts.d.ts +144 -0
- package/dist/types/parts/parts.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/conflictDetector.d.ts +19 -0
- package/dist/types/patternAnalyzer/conflictDetector.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/index.d.ts +10 -0
- package/dist/types/patternAnalyzer/index.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/markdownGenerator.d.ts +9 -0
- package/dist/types/patternAnalyzer/markdownGenerator.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/mergeDetector.d.ts +14 -0
- package/dist/types/patternAnalyzer/mergeDetector.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/parserValidator.d.ts +13 -0
- package/dist/types/patternAnalyzer/parserValidator.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/patternWriter.d.ts +8 -0
- package/dist/types/patternAnalyzer/patternWriter.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/run.d.ts +2 -0
- package/dist/types/patternAnalyzer/run.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/types.d.ts +59 -0
- package/dist/types/patternAnalyzer/types.d.ts.map +1 -0
- package/dist/types/patternValidator/automaton.d.ts +3 -0
- package/dist/types/patternValidator/automaton.d.ts.map +1 -0
- package/dist/types/patternValidator/index.d.ts +48 -0
- package/dist/types/patternValidator/index.d.ts.map +1 -0
- package/dist/types/patternValidator/lexer.d.ts +3 -0
- package/dist/types/patternValidator/lexer.d.ts.map +1 -0
- package/dist/types/patternValidator/matcher.d.ts +14 -0
- package/dist/types/patternValidator/matcher.d.ts.map +1 -0
- package/dist/types/patternValidator/parser.d.ts +14 -0
- package/dist/types/patternValidator/parser.d.ts.map +1 -0
- package/dist/types/patternValidator/types.d.ts +125 -0
- package/dist/types/patternValidator/types.d.ts.map +1 -0
- package/dist/types/patternValidator/validator.test.d.ts +2 -0
- package/dist/types/patternValidator/validator.test.d.ts.map +1 -0
- package/dist/types/registry/ComponentRegistry.d.ts +64 -0
- package/dist/types/registry/ComponentRegistry.d.ts.map +1 -0
- package/dist/types/registry/Intent.d.ts +12 -0
- package/dist/types/registry/Intent.d.ts.map +1 -0
- package/dist/types/registry/index.d.ts +4 -0
- package/dist/types/registry/index.d.ts.map +1 -0
- package/dist/types/registry/types.d.ts +99 -0
- package/dist/types/registry/types.d.ts.map +1 -0
- package/dist/types/services/cart/addToCart.d.ts +26 -0
- package/dist/types/services/cart/addToCart.d.ts.map +1 -0
- package/dist/types/services/cart/index.d.ts +2 -0
- package/dist/types/services/cart/index.d.ts.map +1 -0
- package/dist/types/services/searchspring/index.d.ts +4 -0
- package/dist/types/services/searchspring/index.d.ts.map +1 -0
- package/dist/types/services/searchspring/searchSpringClient.d.ts +13 -0
- package/dist/types/services/searchspring/searchSpringClient.d.ts.map +1 -0
- package/dist/types/services/searchspring/transformSSProduct.d.ts +7 -0
- package/dist/types/services/searchspring/transformSSProduct.d.ts.map +1 -0
- package/dist/types/services/searchspring/types.d.ts +48 -0
- package/dist/types/services/searchspring/types.d.ts.map +1 -0
- package/dist/types/services/shopify/index.d.ts +7 -0
- package/dist/types/services/shopify/index.d.ts.map +1 -0
- package/dist/types/services/shopify/queries.d.ts +13 -0
- package/dist/types/services/shopify/queries.d.ts.map +1 -0
- package/dist/types/services/shopify/resolveStoreDomain.d.ts +14 -0
- package/dist/types/services/shopify/resolveStoreDomain.d.ts.map +1 -0
- package/dist/types/services/shopify/shopifyEntityResolver.d.ts +21 -0
- package/dist/types/services/shopify/shopifyEntityResolver.d.ts.map +1 -0
- package/dist/types/services/shopify/shopifyStorefrontClient.d.ts +19 -0
- package/dist/types/services/shopify/shopifyStorefrontClient.d.ts.map +1 -0
- package/dist/types/services/shopify/transformShopifyEntity.d.ts +11 -0
- package/dist/types/services/shopify/transformShopifyEntity.d.ts.map +1 -0
- package/dist/types/services/shopify/types.d.ts +109 -0
- package/dist/types/services/shopify/types.d.ts.map +1 -0
- package/dist/types/testUtils.d.ts +7 -0
- package/dist/types/testUtils.d.ts.map +1 -0
- package/dist/types/types/answerUpdatedEvent.d.ts +29 -0
- package/dist/types/types/answerUpdatedEvent.d.ts.map +1 -0
- package/dist/types/types/blog.d.ts +22 -0
- package/dist/types/types/blog.d.ts.map +1 -0
- package/dist/types/types/callout.d.ts +7 -0
- package/dist/types/types/callout.d.ts.map +1 -0
- package/dist/types/types/dependencies.d.ts +191 -0
- package/dist/types/types/dependencies.d.ts.map +1 -0
- package/dist/types/types/entity.d.ts +38 -0
- package/dist/types/types/entity.d.ts.map +1 -0
- package/dist/types/types/link-types.d.ts +38 -0
- package/dist/types/types/link-types.d.ts.map +1 -0
- package/dist/types/types/page-section.d.ts +27 -0
- package/dist/types/types/page-section.d.ts.map +1 -0
- package/dist/types/types/placement.d.ts +94 -0
- package/dist/types/types/placement.d.ts.map +1 -0
- package/dist/types/types/redirectEvent.d.ts +42 -0
- package/dist/types/types/redirectEvent.d.ts.map +1 -0
- package/dist/types/types/userQueryEvent.d.ts +24 -0
- package/dist/types/types/userQueryEvent.d.ts.map +1 -0
- package/dist/types/utils/analyticsEvents.d.ts +24 -0
- package/dist/types/utils/analyticsEvents.d.ts.map +1 -0
- package/dist/types/utils/componentTracking.d.ts +55 -0
- package/dist/types/utils/componentTracking.d.ts.map +1 -0
- package/dist/types/utils/contentKeywordMatcher.d.ts +14 -0
- package/dist/types/utils/contentKeywordMatcher.d.ts.map +1 -0
- package/dist/types/utils/conversationApi.d.ts +26 -0
- package/dist/types/utils/conversationApi.d.ts.map +1 -0
- package/dist/types/utils/conversationMode.d.ts +16 -0
- package/dist/types/utils/conversationMode.d.ts.map +1 -0
- package/dist/types/utils/diagnosticsCollector.d.ts +33 -0
- package/dist/types/utils/diagnosticsCollector.d.ts.map +1 -0
- package/dist/types/utils/entityLinkParser.d.ts +97 -0
- package/dist/types/utils/entityLinkParser.d.ts.map +1 -0
- package/dist/types/utils/htmlCommentParser.d.ts +13 -0
- package/dist/types/utils/htmlCommentParser.d.ts.map +1 -0
- package/dist/types/utils/image-utils.d.ts +10 -0
- package/dist/types/utils/image-utils.d.ts.map +1 -0
- package/dist/types/utils/intentExtractor.d.ts +11 -0
- package/dist/types/utils/intentExtractor.d.ts.map +1 -0
- package/dist/types/utils/markdownPreprocessor.d.ts +95 -0
- package/dist/types/utils/markdownPreprocessor.d.ts.map +1 -0
- package/dist/types/utils/navigationStack.d.ts +6 -0
- package/dist/types/utils/navigationStack.d.ts.map +1 -0
- package/dist/types/utils/nodeMatchers.d.ts +10 -0
- package/dist/types/utils/nodeMatchers.d.ts.map +1 -0
- package/dist/types/utils/propsExtractor.d.ts +51 -0
- package/dist/types/utils/propsExtractor.d.ts.map +1 -0
- package/dist/types/utils/sessionManager.d.ts +57 -0
- package/dist/types/utils/sessionManager.d.ts.map +1 -0
- package/dist/types/utils/unifiedMarkdownParser.d.ts +9 -0
- package/dist/types/utils/unifiedMarkdownParser.d.ts.map +1 -0
- package/dist/types/utils/web5LinkValidator.d.ts +14 -0
- package/dist/types/utils/web5LinkValidator.d.ts.map +1 -0
- package/dist/types/utils/web5LinkValidator.test.d.ts +2 -0
- package/dist/types/utils/web5LinkValidator.test.d.ts.map +1 -0
- package/package.json +103 -0
- package/src/styles/base-tokens.css +152 -0
- package/src/styles/base-utilities.css +424 -0
- package/src/styles/components.css +6 -0
- package/src/styles/prompt-input-tokens.css +136 -0
- package/src/styles/tailwind-theme.css +138 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_index","require","createMockAstNodes","blockElements","map","element","startsWith","listPattern","slice","items","itemMatches","match","itemMatch","itemContent","itemElements","split","e","trim","paragraphs","currentParagraphChildren","lastWasText","itemElement","length","push","type","children","value","url","alt","ordered","start","spread","elementStr","String","parts","entityType","entityId","iconName","imageType","imageName","depth","align","describe","it","expect","validatePatternSyntax","valid","toBe","result","error","toContain","nodes1","nodes2","result1","validatePattern","result2","endIndex","nodes3","result3","nodes4","nodes5","result4","result5","result6","nodes","pattern","nodes6","blocks","properPattern","patternWithItemValidation","patternWithRange","console","log","iconNodes","regularNodes","comment","content","astEndIndex"],"sources":["../../../src/patternValidator/validator.test.ts"],"sourcesContent":["import { validatePattern, validatePatternSyntax } from './index';\nimport type { RootContent, ListItem } from 'mdast';\nimport type { BlockElement } from './types';\n\n/**\n * Helper function to convert block element strings to mock AST nodes for testing\n * Accepts BlockElement or list pattern strings like 'list{[t], [t]}'\n */\nfunction createMockAstNodes(\n blockElements: (BlockElement | string)[],\n): RootContent[] {\n return blockElements.map((element) => {\n // Handle list patterns like 'list{[t], [t, link]}'\n if (typeof element === 'string' && element.startsWith('list{')) {\n // Parse list pattern: list{[t], [t, link]} -> [[t], [t, link]]\n const listPattern = element.slice(5, -1); // Remove 'list{' and '}'\n const items: ListItem[] = [];\n\n // Parse items: [t], [t, link] -> ['t'], ['t', 'link']\n const itemMatches = listPattern.match(/\\[([^\\]]+)\\]/g) || [];\n for (const itemMatch of itemMatches) {\n const itemContent = itemMatch.slice(1, -1); // Remove '[' and ']'\n const itemElements = itemContent.split(',').map((e) => e.trim());\n\n // Convert item elements to paragraph children\n // To get multiple 't' elements, we need to break up text nodes\n // We'll create separate paragraphs for consecutive 't' elements, or use separators\n const paragraphs: any[] = [];\n let currentParagraphChildren: any[] = [];\n let lastWasText = false;\n\n for (const itemElement of itemElements) {\n if (itemElement === 't') {\n // If previous was text, start a new paragraph to prevent merging\n // Or add a separator to force text splitting\n if (lastWasText && currentParagraphChildren.length > 0) {\n // Finish current paragraph and start new one\n paragraphs.push({\n type: 'paragraph',\n children: [...currentParagraphChildren],\n });\n currentParagraphChildren = [{ type: 'text', value: 'Text' }];\n } else {\n currentParagraphChildren.push({ type: 'text', value: 'Text' });\n }\n lastWasText = true;\n } else if (itemElement === 'link') {\n currentParagraphChildren.push({\n type: 'link',\n url: 'http://example.com',\n children: [{ type: 'text', value: 'Link' }],\n });\n lastWasText = false;\n } else if (itemElement === 'image') {\n currentParagraphChildren.push({\n type: 'image',\n url: 'http://example.com/image.jpg',\n alt: 'Image',\n });\n lastWasText = false;\n } else if (itemElement === 'web5_icon') {\n currentParagraphChildren.push({\n type: 'image',\n url: 'web5://icon/dollar',\n alt: '',\n });\n lastWasText = false;\n }\n }\n\n // Add final paragraph if it has children\n if (currentParagraphChildren.length > 0) {\n paragraphs.push({\n type: 'paragraph',\n children: currentParagraphChildren,\n });\n }\n\n items.push({\n type: 'listItem',\n children: paragraphs.length > 0 ? paragraphs : [],\n });\n }\n\n return {\n type: 'list',\n ordered: false,\n start: null,\n spread: false,\n children: items,\n } as RootContent;\n }\n\n // Handle entity links for testing (e.g., 'entity_link:blog_post:abc123')\n const elementStr = String(element);\n if (elementStr.startsWith('entity_link:')) {\n const parts = elementStr.slice('entity_link:'.length).split(':');\n const entityType = parts[0] || 'default_type';\n const entityId = parts[1] || 'default_id';\n return {\n type: 'paragraph',\n children: [\n {\n type: 'link',\n url: `web5://entity/${entityType}/${entityId}`,\n children: [{ type: 'text', value: 'Entity Link' }],\n },\n ],\n } as RootContent;\n }\n\n // Handle web5 icon images for testing (e.g., 'web5_icon:dollar')\n if (elementStr.startsWith('web5_icon:')) {\n const iconName = elementStr.slice('web5_icon:'.length);\n return {\n type: 'paragraph',\n children: [\n {\n type: 'image',\n url: `web5://icon/${iconName}`,\n alt: '',\n },\n ],\n } as RootContent;\n }\n\n // Handle web5 images with custom type for testing (e.g., 'web5_image:illustration:chart')\n if (elementStr.startsWith('web5_image:')) {\n const parts = elementStr.slice('web5_image:'.length).split(':');\n const imageType = parts[0] || 'default';\n const imageName = parts[1] || 'default';\n return {\n type: 'paragraph',\n children: [\n {\n type: 'image',\n url: `web5://${imageType}/${imageName}`,\n alt: '',\n },\n ],\n } as RootContent;\n }\n\n // Handle http links for testing (e.g., 'http_link')\n if (elementStr === 'http_link') {\n return {\n type: 'paragraph',\n children: [\n {\n type: 'link',\n url: 'http://example.com/page',\n children: [{ type: 'text', value: 'HTTP Link' }],\n },\n ],\n } as RootContent;\n }\n\n // Handle https links for testing (e.g., 'https_link')\n if (elementStr === 'https_link') {\n return {\n type: 'paragraph',\n children: [\n {\n type: 'link',\n url: 'https://example.com/page',\n children: [{ type: 'text', value: 'HTTPS Link' }],\n },\n ],\n } as RootContent;\n }\n\n switch (element) {\n case 'h1':\n return {\n type: 'heading',\n depth: 1,\n children: [{ type: 'text', value: 'Heading 1' }],\n } as RootContent;\n case 'h2':\n return {\n type: 'heading',\n depth: 2,\n children: [{ type: 'text', value: 'Heading 2' }],\n } as RootContent;\n case 'h3':\n return {\n type: 'heading',\n depth: 3,\n children: [{ type: 'text', value: 'Heading 3' }],\n } as RootContent;\n case 'h4':\n return {\n type: 'heading',\n depth: 4,\n children: [{ type: 'text', value: 'Heading 4' }],\n } as RootContent;\n case 'h5':\n return {\n type: 'heading',\n depth: 5,\n children: [{ type: 'text', value: 'Heading 5' }],\n } as RootContent;\n case 'h6':\n return {\n type: 'heading',\n depth: 6,\n children: [{ type: 'text', value: 'Heading 6' }],\n } as RootContent;\n case 't':\n return {\n type: 'paragraph',\n children: [{ type: 'text', value: 'Text content' }],\n } as RootContent;\n case 'link':\n return {\n type: 'paragraph',\n children: [\n {\n type: 'link',\n url: 'http://example.com',\n children: [{ type: 'text', value: 'Link' }],\n },\n ],\n } as RootContent;\n case 'image':\n return {\n type: 'paragraph',\n children: [\n {\n type: 'image',\n url: 'http://example.com/image.jpg',\n alt: 'Image',\n },\n ],\n } as RootContent;\n case 'html_comment':\n return { type: 'html', value: '<!-- comment -->' } as RootContent;\n case 'table':\n return { type: 'table', align: [], children: [] } as RootContent;\n case 'callout':\n return { type: 'blockquote', children: [] } as RootContent;\n case 'thematicBreak':\n return { type: 'thematicBreak' } as RootContent;\n default:\n // For other types, create a simple paragraph\n return {\n type: 'paragraph',\n children: [{ type: 'text', value: String(element) }],\n } as RootContent;\n }\n });\n}\n\ndescribe('Pattern Validator', () => {\n describe('Pattern Syntax Validation', () => {\n it('validates correct patterns', () => {\n expect(validatePatternSyntax('h2 > t').valid).toBe(true);\n expect(validatePatternSyntax('t+').valid).toBe(true);\n expect(validatePatternSyntax('(t | image)*').valid).toBe(true);\n expect(validatePatternSyntax('h2 > t[1-3] > link?').valid).toBe(true);\n expect(validatePatternSyntax('(h2 > t)+').valid).toBe(true);\n });\n\n it('detects invalid elements', () => {\n const result = validatePatternSyntax('h2 > invalid');\n expect(result.valid).toBe(false);\n expect(result.error).toContain('Invalid element');\n });\n\n it('detects empty patterns', () => {\n const result = validatePatternSyntax('');\n expect(result.valid).toBe(false);\n expect(result.error).toBe('Pattern rule is empty');\n });\n\n it('detects syntax errors', () => {\n expect(validatePatternSyntax('h2 >').valid).toBe(false);\n expect(validatePatternSyntax('(h2 > t').valid).toBe(false);\n expect(validatePatternSyntax('h2 [').valid).toBe(false);\n });\n\n it('detects unexpected characters', () => {\n const result = validatePatternSyntax('h2 @ t');\n expect(result.valid).toBe(false);\n expect(result.error).toContain('Unexpected character');\n });\n });\n\n describe('Basic sequences', () => {\n it('matches simple sequence', () => {\n const nodes1 = createMockAstNodes(['h2', 't']);\n const nodes2 = createMockAstNodes(['h2', 'image']);\n const result1 = validatePattern(nodes1, 'h2 > t');\n const result2 = validatePattern(nodes2, 'h2 > t');\n expect(result1.valid).toBe(true);\n expect(result1.endIndex).toBe(1); // Matched both h2 and t\n // nodes2 matches h2 (partial match), so valid is true but endIndex is 0\n expect(result2.valid).toBe(false);\n expect(result2.endIndex).toBe(0); // Only matched h2\n });\n\n it('matches longer sequence', () => {\n const nodes1 = createMockAstNodes(['h2', 't', 'link']);\n const nodes2 = createMockAstNodes(['h2', 't']);\n const result1 = validatePattern(nodes1, 'h2 > t > link');\n const result2 = validatePattern(nodes2, 'h2 > t > link');\n expect(result1.valid).toBe(true);\n expect(result1.endIndex).toBe(2); // Matched all three\n // nodes2 matches h2 > t (partial match), so valid is true but endIndex is 1\n expect(result2.valid).toBe(false);\n expect(result2.endIndex).toBe(1); // Only matched h2 and t\n });\n });\n\n describe('Quantifiers', () => {\n it('matches star quantifier (0 or more)', () => {\n const nodes1 = createMockAstNodes(['h2']);\n const nodes2 = createMockAstNodes(['h2', 't']);\n const nodes3 = createMockAstNodes(['h2', 't', 't', 't']);\n expect(validatePattern(nodes1, 'h2 > t*').valid).toBe(true);\n expect(validatePattern(nodes2, 'h2 > t*').valid).toBe(true);\n expect(validatePattern(nodes3, 'h2 > t*').valid).toBe(true);\n });\n\n it('matches plus quantifier (1 or more)', () => {\n const nodes1 = createMockAstNodes(['h2']);\n const nodes2 = createMockAstNodes(['h2', 't']);\n const nodes3 = createMockAstNodes(['h2', 't', 't']);\n const result1 = validatePattern(nodes1, 'h2 > t+');\n const result2 = validatePattern(nodes2, 'h2 > t+');\n const result3 = validatePattern(nodes3, 'h2 > t+');\n // nodes1 matches h2 (partial match), so valid is true but endIndex is 0\n expect(result1.valid).toBe(false);\n expect(result1.endIndex).toBe(0); // Only matched h2\n expect(result2.valid).toBe(true);\n expect(result2.endIndex).toBe(1); // Matched h2 and t\n expect(result3.valid).toBe(true);\n expect(result3.endIndex).toBe(2); // Matched h2, t, t\n });\n\n it('matches optional quantifier', () => {\n const nodes1 = createMockAstNodes(['h2']);\n const nodes2 = createMockAstNodes(['h2', 't']);\n const nodes3 = createMockAstNodes(['h2', 't', 't']);\n const result1 = validatePattern(nodes1, 'h2 > t?');\n const result2 = validatePattern(nodes2, 'h2 > t?');\n const result3 = validatePattern(nodes3, 'h2 > t?');\n expect(result1.valid).toBe(true);\n expect(result1.endIndex).toBe(0); // Matched h2 (t is optional)\n expect(result2.valid).toBe(true);\n expect(result2.endIndex).toBe(1); // Matched h2 and t\n // nodes3 matches h2 > t (partial match), so valid is true but endIndex is 1\n expect(result3.valid).toBe(true);\n expect(result3.endIndex).toBe(1); // Only matched h2 and first t\n });\n\n it('matches exact count', () => {\n const nodes1 = createMockAstNodes(['h2', 't', 't']);\n const nodes2 = createMockAstNodes(['h2', 't']);\n const nodes3 = createMockAstNodes(['h2', 't', 't', 't']);\n const result1 = validatePattern(nodes1, 'h2 > t[2]');\n const result2 = validatePattern(nodes2, 'h2 > t[2]');\n const result3 = validatePattern(nodes3, 'h2 > t[2]');\n expect(result1.valid).toBe(true);\n expect(result1.endIndex).toBe(2); // Matched h2, t, t\n // nodes2 matches h2 > t (partial match), so valid is true but endIndex is 1\n expect(result2.valid).toBe(false);\n expect(result2.endIndex).toBe(1); // Only matched h2 and t\n // nodes3 matches h2 > t[2] (partial match), so valid is true but endIndex is 2\n expect(result3.valid).toBe(true);\n expect(result3.endIndex).toBe(2); // Matched h2, t, t (third t not matched)\n });\n\n it('matches range quantifier', () => {\n const nodes1 = createMockAstNodes(['h2', 't']);\n const nodes2 = createMockAstNodes(['h2', 't', 't']);\n const nodes3 = createMockAstNodes(['h2', 't', 't', 't']);\n const nodes4 = createMockAstNodes(['h2']);\n const nodes5 = createMockAstNodes(['h2', 't', 't', 't', 't']);\n const result1 = validatePattern(nodes1, 'h2 > t[1-3]');\n const result2 = validatePattern(nodes2, 'h2 > t[1-3]');\n const result3 = validatePattern(nodes3, 'h2 > t[1-3]');\n const result4 = validatePattern(nodes4, 'h2 > t[1-3]');\n const result5 = validatePattern(nodes5, 'h2 > t[1-3]');\n expect(result1.valid).toBe(true);\n expect(result1.endIndex).toBe(1); // Matched h2, t\n expect(result2.valid).toBe(true);\n expect(result2.endIndex).toBe(2); // Matched h2, t, t\n expect(result3.valid).toBe(true);\n expect(result3.endIndex).toBe(3); // Matched h2, t, t, t\n // nodes4 matches h2 (partial match), so valid is true but endIndex is 0\n expect(result4.valid).toBe(false);\n expect(result4.endIndex).toBe(0); // Only matched h2\n // nodes5 matches h2 > t[1-3] (partial match), so valid is true but endIndex is 3\n expect(result5.valid).toBe(true);\n expect(result5.endIndex).toBe(3); // Matched h2, t, t, t (fourth t not matched)\n });\n\n it('matches up-to quantifier', () => {\n const nodes1 = createMockAstNodes(['h2']);\n const nodes2 = createMockAstNodes(['h2', 't']);\n const nodes3 = createMockAstNodes(['h2', 't', 't']);\n const nodes4 = createMockAstNodes(['h2', 't', 't', 't']);\n const result1 = validatePattern(nodes1, 'h2 > t[-2]');\n const result2 = validatePattern(nodes2, 'h2 > t[-2]');\n const result3 = validatePattern(nodes3, 'h2 > t[-2]');\n const result4 = validatePattern(nodes4, 'h2 > t[-2]');\n expect(result1.valid).toBe(true);\n expect(result1.endIndex).toBe(0); // Matched h2\n expect(result2.valid).toBe(true);\n expect(result2.endIndex).toBe(1); // Matched h2, t\n expect(result3.valid).toBe(true);\n expect(result3.endIndex).toBe(2); // Matched h2, t, t\n // nodes4 matches h2 > t[-2] (partial match), so valid is true but endIndex is 2\n expect(result4.valid).toBe(true);\n expect(result4.endIndex).toBe(2); // Matched h2, t, t (third t not matched)\n });\n });\n\n describe('Alternation', () => {\n it('matches simple alternation', () => {\n const nodes1 = createMockAstNodes(['h2', 't']);\n const nodes2 = createMockAstNodes(['h2', 'image']);\n const nodes3 = createMockAstNodes(['h2', 'link']);\n const result1 = validatePattern(nodes1, 'h2 > (t | image)');\n const result2 = validatePattern(nodes2, 'h2 > (t | image)');\n const result3 = validatePattern(nodes3, 'h2 > (t | image)');\n expect(result1.valid).toBe(true);\n expect(result1.endIndex).toBe(1); // Matched h2, t\n expect(result2.valid).toBe(true);\n expect(result2.endIndex).toBe(1); // Matched h2, image\n // nodes3 matches h2 (partial match), so valid is true but endIndex is 0\n expect(result3.valid).toBe(false);\n expect(result3.endIndex).toBe(0); // Only matched h2\n });\n\n it('matches alternation with quantifier', () => {\n const nodes1 = createMockAstNodes(['h2']);\n const nodes2 = createMockAstNodes(['h2', 't']);\n const nodes3 = createMockAstNodes(['h2', 't', 'image', 't']);\n expect(validatePattern(nodes1, 'h2 > (t | image)*').valid).toBe(true);\n expect(validatePattern(nodes2, 'h2 > (t | image)*').valid).toBe(true);\n expect(validatePattern(nodes3, 'h2 > (t | image)*').valid).toBe(true);\n });\n });\n\n describe('Groups', () => {\n it('matches group with quantifier', () => {\n const nodes1: RootContent[] = [];\n const nodes2 = createMockAstNodes(['h2', 't']);\n const nodes3 = createMockAstNodes(['h2', 't', 'h2', 't']);\n const nodes4 = createMockAstNodes(['h2']);\n const result1 = validatePattern(nodes1, '(h2 > t)*');\n const result2 = validatePattern(nodes2, '(h2 > t)*');\n const result3 = validatePattern(nodes3, '(h2 > t)*');\n const result4 = validatePattern(nodes4, '(h2 > t)*');\n const result5 = validatePattern(nodes1, '(h2 > t)+');\n const result6 = validatePattern(nodes2, '(h2 > t)+');\n expect(result1.valid).toBe(true); // 0 repetitions\n expect(result1.endIndex).toBe(-1); // No match\n expect(result2.valid).toBe(true); // 1 repetition\n expect(result2.endIndex).toBe(1); // Matched h2, t\n expect(result3.valid).toBe(true); // 2 repetitions\n expect(result3.endIndex).toBe(3); // Matched h2, t, h2, t\n // nodes4 matches h2 (partial match), so valid is true but endIndex is 0\n expect(result4.valid).toBe(false); // partial match\n expect(result4.endIndex).toBe(0); // Matched h2\n // nodes1 with + requires at least 1, empty array doesn't match, so valid is false\n expect(result5.valid).toBe(false); // no match (empty array with + quantifier)\n expect(result5.endIndex).toBe(-1); // No match\n expect(result6.valid).toBe(true); // exactly 1\n expect(result6.endIndex).toBe(1); // Matched h2, t\n });\n });\n\n describe('ThematicBreak', () => {\n it('matches single thematicBreak', () => {\n const nodes = createMockAstNodes(['thematicBreak']);\n const result = validatePattern(nodes, 'thematicBreak');\n expect(result.valid).toBe(true);\n expect(result.endIndex).toBe(0);\n });\n\n it('matches thematicBreak with quantifiers', () => {\n const nodes1 = createMockAstNodes(['h1', 'thematicBreak']);\n const nodes2 = createMockAstNodes([\n 'h1',\n 'thematicBreak',\n 'thematicBreak',\n ]);\n const nodes3 = createMockAstNodes(['h1']);\n\n // Optional thematicBreak\n expect(validatePattern(nodes1, 'h1 > thematicBreak?').valid).toBe(true);\n expect(validatePattern(nodes3, 'h1 > thematicBreak?').valid).toBe(true);\n\n // One or more thematicBreak\n expect(validatePattern(nodes1, 'h1 > thematicBreak+').valid).toBe(true);\n expect(validatePattern(nodes2, 'h1 > thematicBreak+').valid).toBe(true);\n expect(validatePattern(nodes3, 'h1 > thematicBreak+').valid).toBe(false);\n\n // Zero or more thematicBreak\n expect(validatePattern(nodes1, 'h1 > thematicBreak*').valid).toBe(true);\n expect(validatePattern(nodes2, 'h1 > thematicBreak*').valid).toBe(true);\n expect(validatePattern(nodes3, 'h1 > thematicBreak*').valid).toBe(true);\n });\n\n it('matches thematicBreak in sequences', () => {\n const nodes1 = createMockAstNodes(['h1', 'thematicBreak', 't']);\n const nodes2 = createMockAstNodes(['h2', 'thematicBreak', 't', 'link']);\n\n expect(validatePattern(nodes1, 'h1 > thematicBreak > t').valid).toBe(\n true,\n );\n expect(\n validatePattern(nodes2, 'h2 > thematicBreak > t > link').valid,\n ).toBe(true);\n });\n\n it('matches thematicBreak in alternation', () => {\n const nodes1 = createMockAstNodes(['h2', 'thematicBreak', 't']);\n const nodes2 = createMockAstNodes(['h2', 'callout', 't']);\n const nodes3 = createMockAstNodes(['h2', 't']);\n\n expect(\n validatePattern(nodes1, 'h2 > (thematicBreak | callout) > t').valid,\n ).toBe(true);\n expect(\n validatePattern(nodes2, 'h2 > (thematicBreak | callout) > t').valid,\n ).toBe(true);\n expect(\n validatePattern(nodes3, 'h2 > (thematicBreak | callout) > t').valid,\n ).toBe(false);\n });\n\n it('validates thematicBreak pattern syntax', () => {\n expect(validatePatternSyntax('thematicBreak').valid).toBe(true);\n expect(validatePatternSyntax('h1 > thematicBreak').valid).toBe(true);\n expect(validatePatternSyntax('thematicBreak+').valid).toBe(true);\n expect(validatePatternSyntax('thematicBreak?').valid).toBe(true);\n expect(validatePatternSyntax('thematicBreak*').valid).toBe(true);\n });\n });\n\n describe('Complex patterns', () => {\n it('matches nested patterns', () => {\n const nodes1 = createMockAstNodes(['h2', 'link', 'image']);\n const nodes2 = createMockAstNodes([\n 'h2',\n 'link',\n 'image',\n 'link',\n 'image',\n ]);\n expect(validatePattern(nodes1, 'h2 > (link > image)*').valid).toBe(true);\n expect(validatePattern(nodes2, 'h2 > (link > image)*').valid).toBe(true);\n });\n\n it('matches multiple quantifiers', () => {\n const nodes1 = createMockAstNodes(['h2', 't', 't', 'link']);\n const nodes2 = createMockAstNodes(['h2', 't', 't', 'link', 'link']);\n expect(validatePattern(nodes1, 'h2 > t+ > link*').valid).toBe(true);\n expect(validatePattern(nodes2, 'h2 > t+ > link*').valid).toBe(true);\n });\n });\n\n describe('Lists', () => {\n it('matches simple list', () => {\n const nodes = createMockAstNodes(['list{[t], [t]}' as BlockElement]);\n expect(validatePattern(nodes, 'list').valid).toBe(true);\n });\n\n it('validates list item count', () => {\n // list{item[-2]:...} means up to 2 items\n const nodes1 = createMockAstNodes(['list{[t]}' as BlockElement]);\n const nodes2 = createMockAstNodes(['list{[t], [t]}' as BlockElement]);\n const nodes3 = createMockAstNodes([\n 'list{[t], [t], [t]}' as BlockElement,\n ]);\n expect(validatePattern(nodes1, 'list{item[-2]:t}').valid).toBe(true);\n expect(validatePattern(nodes2, 'list{item[-2]:t}').valid).toBe(true);\n expect(validatePattern(nodes3, 'list{item[-2]:t}').valid).toBe(false);\n });\n\n it('validates list item structure', () => {\n // Each item should have: t > image > t+ > link*\n const pattern = 'list{item[-2]:t > image > t+ > link*}';\n\n // Valid: 1 item with t, image, t\n const nodes1 = createMockAstNodes([\n 'list{[t, image, t]}' as BlockElement,\n ]);\n expect(validatePattern(nodes1, pattern).valid).toBe(true);\n\n // Valid: 1 item with t, image, t, t (multiple t's with t+)\n const nodes2 = createMockAstNodes([\n 'list{[t, image, t, t]}' as BlockElement,\n ]);\n expect(validatePattern(nodes2, pattern).valid).toBe(true);\n\n // Valid: 1 item with t, image, t, link\n const nodes3 = createMockAstNodes([\n 'list{[t, image, t, link]}' as BlockElement,\n ]);\n expect(validatePattern(nodes3, pattern).valid).toBe(true);\n\n // Valid: 2 items\n const nodes4 = createMockAstNodes([\n 'list{[t, image, t], [t, image, t, t, link]}' as BlockElement,\n ]);\n expect(validatePattern(nodes4, pattern).valid).toBe(true);\n\n // Invalid: missing image\n const nodes5 = createMockAstNodes(['list{[t, t]}' as BlockElement]);\n expect(validatePattern(nodes5, pattern).valid).toBe(false);\n\n // Invalid: wrong order\n const nodes6 = createMockAstNodes([\n 'list{[image, t, t]}' as BlockElement,\n ]);\n expect(validatePattern(nodes6, pattern).valid).toBe(false);\n });\n\n it('validates complex pattern with list', () => {\n const pattern =\n 'h2 > (link > image > t > list{item[-2]:t > image > t+ > link*})*';\n\n // h2 alone (0 repetitions of group)\n const nodes1 = createMockAstNodes(['h2']);\n expect(validatePattern(nodes1, pattern).valid).toBe(true);\n\n // h2 > link > image > t > list with valid items\n const nodes2 = createMockAstNodes([\n 'h2',\n 'link',\n 'image',\n 't',\n 'list{[t, image, t, link]}' as BlockElement,\n ]);\n expect(validatePattern(nodes2, pattern).valid).toBe(true);\n });\n\n it('validates real-world complex pattern from user', () => {\n const blocks: (BlockElement | string)[] = [\n 'h2', // 1\n 'link', // 2\n 't', // 3\n 'link', // 4\n 't', // 5\n 'link', // 6\n 't', // 7\n 'link', // 8\n 'html_comment', // 9\n 'link', // 10\n 'image', // 11\n 't', // 12\n 'list{[t, t]}', // 13 - list with 1 item containing ['t', 't']\n 'html_comment', // 14\n 'link', // 15\n 'image', // 16\n 't', // 17\n 'list{[t, t]}', // 18 - list with 1 item containing ['t', 't']\n ];\n\n const nodes = createMockAstNodes(blocks);\n\n // Pattern breakdown:\n // h2 -> matches position 1\n // (link > t)* -> matches positions 2-7 (3 repetitions: 2-3, 4-5, 6-7)\n // link -> matches position 8\n // (html_comment > link > image > t > list{item[1]:t > t})* -> matches 9-18 (2 repetitions)\n // First repetition: 9-13\n // Second repetition: 14-18\n //\n // list{[t, t]} means: 1 item with elements ['t', 't']\n\n // Now with proper implementation, we can use quantifiers on groups with lists!\n const properPattern =\n 'h2 > (link > t)* > link > (html_comment > link > image > t > list)*';\n expect(validatePattern(nodes, properPattern).valid).toBe(true);\n\n // Also test with item structure validation\n const patternWithItemValidation =\n 'h2 > (link > t)* > link > (html_comment > link > image > t > list{item[1]:t > t})*';\n expect(validatePattern(nodes, patternWithItemValidation).valid).toBe(\n true,\n );\n });\n\n // TDD Tests for proper list validation implementation\n describe('Advanced list validation (TDD)', () => {\n it('Test 1: validates list in simple repetitive pattern', () => {\n const blocks: (BlockElement | string)[] = [\n 't',\n 'list{[t]}',\n 't',\n 'list{[t]}',\n 't',\n 'list{[t]}',\n ];\n const nodes = createMockAstNodes(blocks);\n\n // Pattern: t > list repeated 3 times\n const pattern = '(t > list)*';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Test 2: validates list in complex group repetition', () => {\n const blocks: (BlockElement | string)[] = [\n 'h2',\n 'html_comment',\n 'link',\n 'list{[t]}',\n 'html_comment',\n 'link',\n 'list{[t]}',\n ];\n const nodes = createMockAstNodes(blocks);\n\n // Pattern: h2 followed by repeated groups\n const pattern = 'h2 > (html_comment > link > list)*';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Test 3: validates list with simple item structure', () => {\n const nodes1 = createMockAstNodes(['list{[t, t]}' as BlockElement]);\n const nodes2 = createMockAstNodes(['list{[t]}' as BlockElement]);\n\n // Pattern: list with 1 item containing 2 't' elements in sequence\n const pattern = 'list{item[1]:t > t}';\n const result1 = validatePattern(nodes1, pattern);\n const result2 = validatePattern(nodes2, pattern);\n\n expect(result1.valid).toBe(true);\n expect(result1.endIndex).toBe(0); // Matched the list\n\n // nodes2 has list{[t]} but pattern expects list{item[1]:t > t} (1 item with 2 t's)\n // The list structure doesn't match (only 1 t instead of 2), so it should fail\n expect(result2.valid).toBe(false); // Structure doesn't match\n expect(result2.endIndex).toBe(-1); // No match\n });\n\n it('Test 4: validates list with complex item structure using quantifiers', () => {\n const nodes1 = createMockAstNodes([\n 'list{[t, t, t, link, link]}' as BlockElement,\n ]);\n const nodes2 = createMockAstNodes([\n 'list{[t, t, link]}' as BlockElement,\n ]);\n const nodes3 = createMockAstNodes([\n 'list{[link, link]}' as BlockElement,\n ]);\n\n // Pattern: list with 1 item containing 1+ t's followed by exactly 2 links\n // link[2] should expand to link > link\n const pattern = 'list{item[1]:t+ > link[2]}';\n expect(validatePattern(nodes1, pattern).valid).toBe(true);\n\n // Should fail with wrong number of links\n expect(validatePattern(nodes2, pattern).valid).toBe(false);\n\n // Should fail with no t at start\n expect(validatePattern(nodes3, pattern).valid).toBe(false);\n });\n it('Test 5: validates list with variable item counts and quantifiers', () => {\n // Test data has 2 lists:\n // 1st list: 1 item with 2 't' elements\n // 2nd list: 3 items, each with 2 't' elements\n const blocks: (BlockElement | string)[] = [\n 'h2',\n 'link',\n 't',\n 'link',\n 't',\n 'link',\n 't',\n 'link',\n 'html_comment',\n 'link',\n 'image',\n 't',\n 'list{[t, t]}', // 1 item: ['t', 't']\n 'html_comment',\n 'link',\n 'image',\n 't',\n 'list{[t, t], [t, t], [t, t]}', // 3 items: ['t', 't'], ['t', 't'], ['t', 't']\n ];\n const nodes = createMockAstNodes(blocks);\n\n // Pattern: list with 1+ items, each item has 1+ 't' elements\n // Use + quantifier for \"1 or more\"\n const pattern =\n 'h2 > (link > t)* > link > (html_comment > link > image > t > list{item+:t+})*';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n\n // Should also work with explicit range [1-] for \"1 or more\"\n const patternWithRange =\n 'h2 > (link > t)* > link > (html_comment > link > image > t > list{item[1-]:t+})*';\n expect(validatePattern(nodes, patternWithRange).valid).toBe(true);\n });\n });\n\n describe('Super Complex Patterns (8 Advanced Cases)', () => {\n it('Complex 1: Multiple lists with wildcards', () => {\n // Real-world: Product specifications with flexible structure\n const blocks: (BlockElement | string)[] = [\n 'h2',\n 'list{[t, t, link]}',\n 'list{[t, link, link, link]}',\n 'list{[t]}',\n ];\n const nodes = createMockAstNodes(blocks);\n\n const pattern = 'h2 > list{item+:t+ > link*}+';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Complex 2: Deeply nested groups with quantifiers', () => {\n // Real-world: Blog post with multiple paragraphs, each with optional formatting\n const blocks: (BlockElement | string)[] = [\n 'h2',\n 't',\n 'link',\n 't',\n 't',\n 'image',\n 't',\n 't',\n 'link',\n 't',\n ];\n const nodes = createMockAstNodes(blocks);\n\n const pattern = 'h2 > (t > (link | image) > t)+';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Complex 3: Lists with complex quantified item structures', () => {\n // Real-world: Feature comparison table with variable columns\n const blocks: (BlockElement | string)[] = [\n 'h3',\n 'list{[t, t, t, link, link, image]}',\n 'list{[t, link, image], [t, t, link, link]}',\n 'list{[t, image]}',\n ];\n const nodes = createMockAstNodes(blocks);\n\n const pattern = 'h3 > list{item+:t+ > link* > image?}+';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Complex 4: Alternation with lists', () => {\n // Real-world: Flexible content sections\n const blocks: (BlockElement | string)[] = [\n 'h2',\n 't',\n 'list{[t, t]}',\n 'list{[t, link, link]}',\n ];\n const nodes = createMockAstNodes(blocks);\n\n const pattern = 'h2 > t > list{item+:t+ > link*}+';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Complex 5: Optional groups with mandatory list validation', () => {\n // Real-world: Product page with optional gallery but required specs\n const blocks: (BlockElement | string)[] = [\n 'h1',\n 't',\n 'image',\n 'image',\n 'image',\n 'h2',\n 'list{[t, t, link]}',\n 'list{[t, link], [t, t, link]}',\n ];\n const nodes = createMockAstNodes(blocks);\n\n const pattern = 'h1 > t > image* > h2 > list{item+:t+ > link}+';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Complex 6: Optional elements throughout', () => {\n // Real-world: Blog post with optional media\n const blocks: (BlockElement | string)[] = [\n 'h1',\n 't',\n 'image',\n 'list{[t, link]}',\n 'callout',\n 'link',\n ];\n const nodes = createMockAstNodes(blocks);\n\n const pattern =\n 'h1 > t > image? > list{item+:t+ > link*} > callout? > link?';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Complex 7: Complex alternation with exact quantifiers', () => {\n // Real-world: Structured data with specific format requirements\n const blocks: (BlockElement | string)[] = [\n 'h3',\n 'link',\n 'link',\n 'link',\n 't',\n 't',\n 'image',\n 'list{[t, link]}',\n 'list{[t, link, link]}',\n 'callout',\n ];\n const nodes = createMockAstNodes(blocks);\n\n const pattern =\n 'h3 > link[3] > t[2] > image > list{item+:t > link*}+ > callout';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Complex 8: Nested alternation in list items', () => {\n // Real-world: Flexible content blocks in CMS\n const blocks: (BlockElement | string)[] = [\n 'h2',\n 'list{[t, link], [image, t], [link, image, t]}',\n 'list{[t], [link, link], [image]}',\n ];\n const nodes = createMockAstNodes(blocks);\n\n const pattern = 'h2 > list{item[1-5]:(t | image | link)+}+';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('Complex 9: Nested list with quantifiers', () => {\n const blocks: (BlockElement | string)[] = [\n 'h1',\n 't',\n 'h2',\n 't',\n 't',\n 't',\n 'image',\n 'image',\n 'list{[t], [t]}',\n 'h2',\n 't',\n 't',\n 't',\n 'image',\n 'image',\n 'list{[t], [t]}',\n ];\n const nodes = createMockAstNodes(blocks);\n\n // Test with error details to debug\n const pattern = 'h1 > t? > (h2 > t+ > image[2] > list{item+:t})[1-3]';\n const result = validatePattern(nodes, pattern);\n if (!result.valid) {\n console.log('Complex 9 Error:', result.error);\n }\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n });\n\n describe('Error Messages', () => {\n it('provides detailed error for wrong item count', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 'list{[t], [t], [t]}' as BlockElement,\n ]);\n const pattern = 'h2 > list{item[2]:t}';\n\n const result = validatePattern(nodes, pattern);\n // With new behavior, partial matches are valid, but we still get error messages\n expect(result.valid).toBe(false);\n expect(result.endIndex).toBe(0); // Matched h2\n // Error message should indicate wrong item count\n if (result.error) {\n expect(result.error).toContain('Expected exactly 2 items');\n expect(result.error).toContain('got 3 items');\n }\n });\n\n it('provides detailed error for item structure mismatch', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 'list{[t, link, link]}' as BlockElement,\n ]);\n const pattern = 'h2 > list{item[1]:t > link}'; // Expects exactly 2 elements but got 3\n\n const result = validatePattern(nodes, pattern);\n // With new behavior, partial matches are valid, but we still get an error message\n // The pattern matches h2 (partial match), so valid is true, but error indicates structure mismatch\n expect(result.valid).toBe(false); // Partial match is valid\n // Error message should indicate structure mismatch\n if (result.error) {\n expect(result.error).toContain('Item #1');\n expect(result.error).toContain('does not match');\n }\n });\n\n it('provides detailed error for unexpected element', () => {\n const nodes = createMockAstNodes(['h2', 'image', 't']);\n const pattern = 'h2 > t > link';\n\n const result = validatePattern(nodes, pattern);\n // With new behavior, partial matches are valid, but we still get an error message\n // The pattern matches h2 (partial match), so valid is true, but error indicates unexpected element\n expect(result.valid).toBe(false); // Partial match is valid\n expect(result.endIndex).toBe(0); // Matched up to index 0 (h2)\n // Error message should indicate unexpected element\n if (result.error) {\n expect(result.error).toContain('Unexpected element');\n expect(result.error).toContain('image');\n expect(result.error).toContain('position 2');\n }\n });\n\n it('provides detailed error for incomplete pattern', () => {\n const nodes = createMockAstNodes(['h2', 't']);\n const pattern = 'h2 > t > link > image';\n\n const result = validatePattern(nodes, pattern);\n // With new behavior, partial matches are valid, but we still get an error message\n // The pattern matches h2 > t (partial match), so valid is true, but error indicates incomplete\n expect(result.valid).toBe(false); // Partial match is valid\n expect(result.endIndex).toBe(1); // Matched up to index 1 (h2, t)\n // Error message should indicate incomplete pattern\n if (result.error) {\n expect(result.error).toContain('incomplete');\n expect(result.error).toContain('Expected more elements');\n }\n });\n });\n });\n\n describe('Entity Link Patterns', () => {\n describe('Pattern Syntax Validation', () => {\n it('validates link attribute selector syntax', () => {\n // Basic attribute selectors\n expect(validatePatternSyntax('link[entityType]').valid).toBe(true);\n expect(\n validatePatternSyntax('link[entityType=\"blog_post\"]').valid,\n ).toBe(true);\n expect(validatePatternSyntax('link[protocol=\"entity\"]').valid).toBe(\n true,\n );\n expect(validatePatternSyntax('link[entityId=\"abc123\"]').valid).toBe(\n true,\n );\n });\n\n it('validates link attribute operators', () => {\n // Contains operator\n expect(validatePatternSyntax('link[entityType*=\"post\"]').valid).toBe(\n true,\n );\n // Starts with operator\n expect(validatePatternSyntax('link[entityType^=\"blog\"]').valid).toBe(\n true,\n );\n // Ends with operator\n expect(validatePatternSyntax('link[entityId$=\"123\"]').valid).toBe(true);\n });\n\n it('validates multiple link attributes', () => {\n expect(\n validatePatternSyntax('link[entityType=\"blog_post\"][entityId]').valid,\n ).toBe(true);\n expect(\n validatePatternSyntax('link[protocol=\"entity\"][entityType=\"product\"]')\n .valid,\n ).toBe(true);\n });\n\n it('validates link attributes with quantifiers', () => {\n expect(\n validatePatternSyntax('link[entityType=\"blog_post\"]?').valid,\n ).toBe(true);\n expect(\n validatePatternSyntax('link[entityType=\"blog_post\"]*').valid,\n ).toBe(true);\n expect(\n validatePatternSyntax('link[entityType=\"blog_post\"]+').valid,\n ).toBe(true);\n expect(\n validatePatternSyntax('link[entityType=\"blog_post\"][2]').valid,\n ).toBe(true);\n expect(\n validatePatternSyntax('link[entityType=\"blog_post\"][1-3]').valid,\n ).toBe(true);\n });\n\n it('validates link attributes in sequences', () => {\n expect(\n validatePatternSyntax('h2 > link[entityType=\"blog_post\"] > t').valid,\n ).toBe(true);\n expect(\n validatePatternSyntax('link[protocol=\"entity\"] > image > t').valid,\n ).toBe(true);\n });\n\n it('validates link attributes in groups and alternation', () => {\n expect(\n validatePatternSyntax(\n '(link[entityType=\"blog_post\"] | link[entityType=\"product\"])',\n ).valid,\n ).toBe(true);\n expect(validatePatternSyntax('(t > link[entityType])+').valid).toBe(\n true,\n );\n });\n });\n\n describe('Entity Link Matching', () => {\n it('matches entity link with exact entityType', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'link[entityType=\"blog_post\"] > t',\n );\n expect(result.valid).toBe(true);\n expect(result.endIndex).toBe(1);\n });\n\n it('does not match entity link with different entityType', () => {\n const nodes = createMockAstNodes([\n 'entity_link:product:xyz789' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'link[entityType=\"blog_post\"] > t',\n );\n expect(result.valid).toBe(false);\n });\n\n it('matches entity link with entityType exists check', () => {\n const nodes = createMockAstNodes([\n 'entity_link:any_type:any_id' as BlockElement,\n 't',\n ]);\n const result = validatePattern(nodes, 'link[entityType] > t');\n expect(result.valid).toBe(true);\n });\n\n it('does not match http link when entityType is required', () => {\n const nodes = createMockAstNodes(['http_link' as BlockElement, 't']);\n const result = validatePattern(nodes, 'link[entityType] > t');\n expect(result.valid).toBe(false);\n });\n\n it('matches entity link with exact entityId', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n const result = validatePattern(nodes, 'link[entityId=\"abc123\"] > t');\n expect(result.valid).toBe(true);\n });\n\n it('matches entity link with protocol=\"web5\"', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n const result = validatePattern(nodes, 'link[protocol=\"web5\"] > t');\n expect(result.valid).toBe(true);\n });\n\n it('does not match entity link when http protocol is required', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n const result = validatePattern(nodes, 'link[protocol=\"http\"] > t');\n expect(result.valid).toBe(false);\n });\n\n it('matches http link with protocol=\"http\"', () => {\n const nodes = createMockAstNodes(['http_link' as BlockElement, 't']);\n const result = validatePattern(nodes, 'link[protocol=\"http\"] > t');\n expect(result.valid).toBe(true);\n });\n\n it('matches https link with protocol=\"https\"', () => {\n const nodes = createMockAstNodes(['https_link' as BlockElement, 't']);\n const result = validatePattern(nodes, 'link[protocol=\"https\"] > t');\n expect(result.valid).toBe(true);\n });\n });\n\n describe('Entity Link Attribute Operators', () => {\n it('matches entityType containing substring (*=)', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n expect(\n validatePattern(nodes, 'link[entityType*=\"blog\"] > t').valid,\n ).toBe(true);\n expect(\n validatePattern(nodes, 'link[entityType*=\"post\"] > t').valid,\n ).toBe(true);\n expect(\n validatePattern(nodes, 'link[entityType*=\"log_po\"] > t').valid,\n ).toBe(true);\n expect(\n validatePattern(nodes, 'link[entityType*=\"product\"] > t').valid,\n ).toBe(false);\n });\n\n it('matches entityType starting with prefix (^=)', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n expect(\n validatePattern(nodes, 'link[entityType^=\"blog\"] > t').valid,\n ).toBe(true);\n expect(\n validatePattern(nodes, 'link[entityType^=\"blog_\"] > t').valid,\n ).toBe(true);\n expect(\n validatePattern(nodes, 'link[entityType^=\"post\"] > t').valid,\n ).toBe(false);\n });\n\n it('matches entityType ending with suffix ($=)', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n expect(\n validatePattern(nodes, 'link[entityType$=\"post\"] > t').valid,\n ).toBe(true);\n expect(\n validatePattern(nodes, 'link[entityType$=\"_post\"] > t').valid,\n ).toBe(true);\n expect(\n validatePattern(nodes, 'link[entityType$=\"blog\"] > t').valid,\n ).toBe(false);\n });\n\n it('matches entityId ending with suffix ($=)', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:post123' as BlockElement,\n 't',\n ]);\n expect(validatePattern(nodes, 'link[entityId$=\"123\"] > t').valid).toBe(\n true,\n );\n expect(validatePattern(nodes, 'link[entityId$=\"789\"] > t').valid).toBe(\n false,\n );\n });\n });\n\n describe('Multiple Link Attributes', () => {\n it('matches with both entityType and entityId', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'link[entityType=\"blog_post\"][entityId=\"abc123\"] > t',\n );\n expect(result.valid).toBe(true);\n });\n\n it('does not match if one attribute fails', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'link[entityType=\"blog_post\"][entityId=\"xyz789\"] > t',\n );\n expect(result.valid).toBe(false);\n });\n\n it('matches with protocol and entityType', () => {\n const nodes = createMockAstNodes([\n 'entity_link:product:xyz789' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'link[protocol=\"web5\"][entityType=\"product\"] > t',\n );\n expect(result.valid).toBe(true);\n });\n });\n\n describe('Optional Entity Links', () => {\n it('matches pattern without link when optional', () => {\n const nodes = createMockAstNodes(['h2', 't']);\n const result = validatePattern(\n nodes,\n 'h2 > link[entityType=\"blog_post\"]? > t',\n );\n expect(result.valid).toBe(true);\n expect(result.endIndex).toBe(1);\n });\n\n it('matches pattern with matching link when optional', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'h2 > link[entityType=\"blog_post\"]? > t',\n );\n expect(result.valid).toBe(true);\n expect(result.endIndex).toBe(2);\n });\n\n it('skips non-matching optional entity link', () => {\n // When optional entity link doesn't match, pattern should try to match without it\n const nodes = createMockAstNodes([\n 'h2',\n 'http_link' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'h2 > link[entityType=\"blog_post\"]? > link > t',\n );\n expect(result.valid).toBe(true);\n });\n });\n\n describe('Entity Links with Quantifiers', () => {\n it('matches zero or more entity links (*)', () => {\n const nodes1 = createMockAstNodes(['h2', 't']);\n const nodes2 = createMockAstNodes([\n 'h2',\n 'entity_link:blog_post:1' as BlockElement,\n 't',\n ]);\n const nodes3 = createMockAstNodes([\n 'h2',\n 'entity_link:blog_post:1' as BlockElement,\n 'entity_link:blog_post:2' as BlockElement,\n 't',\n ]);\n\n expect(\n validatePattern(nodes1, 'h2 > link[entityType=\"blog_post\"]* > t')\n .valid,\n ).toBe(true);\n expect(\n validatePattern(nodes2, 'h2 > link[entityType=\"blog_post\"]* > t')\n .valid,\n ).toBe(true);\n expect(\n validatePattern(nodes3, 'h2 > link[entityType=\"blog_post\"]* > t')\n .valid,\n ).toBe(true);\n });\n\n it('matches one or more entity links (+)', () => {\n const nodes1 = createMockAstNodes(['h2', 't']);\n const nodes2 = createMockAstNodes([\n 'h2',\n 'entity_link:blog_post:1' as BlockElement,\n 't',\n ]);\n const nodes3 = createMockAstNodes([\n 'h2',\n 'entity_link:blog_post:1' as BlockElement,\n 'entity_link:blog_post:2' as BlockElement,\n 't',\n ]);\n\n expect(\n validatePattern(nodes1, 'h2 > link[entityType=\"blog_post\"]+ > t')\n .valid,\n ).toBe(false);\n expect(\n validatePattern(nodes2, 'h2 > link[entityType=\"blog_post\"]+ > t')\n .valid,\n ).toBe(true);\n expect(\n validatePattern(nodes3, 'h2 > link[entityType=\"blog_post\"]+ > t')\n .valid,\n ).toBe(true);\n });\n\n it('matches exact count of entity links ([N])', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 'entity_link:blog_post:1' as BlockElement,\n 'entity_link:blog_post:2' as BlockElement,\n 't',\n ]);\n\n expect(\n validatePattern(nodes, 'h2 > link[entityType=\"blog_post\"][2] > t')\n .valid,\n ).toBe(true);\n expect(\n validatePattern(nodes, 'h2 > link[entityType=\"blog_post\"][3] > t')\n .valid,\n ).toBe(false);\n });\n });\n\n describe('Backward Compatibility', () => {\n it('plain link matches entity links', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n ]);\n const result = validatePattern(nodes, 'link > t');\n expect(result.valid).toBe(true);\n });\n\n it('plain link matches http links', () => {\n const nodes = createMockAstNodes(['http_link' as BlockElement, 't']);\n const result = validatePattern(nodes, 'link > t');\n expect(result.valid).toBe(true);\n });\n\n it('plain link with quantifiers works as before', () => {\n const nodes = createMockAstNodes(['link', 'link', 't']);\n expect(validatePattern(nodes, 'link+ > t').valid).toBe(true);\n expect(validatePattern(nodes, 'link* > t').valid).toBe(true);\n expect(validatePattern(nodes, 'link? > link > t').valid).toBe(true);\n });\n });\n\n describe('Complex Entity Link Patterns', () => {\n it('matches mixed entity and regular links in sequence', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:abc123' as BlockElement,\n 't',\n 'http_link' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'link[protocol=\"web5\"] > t > link[protocol=\"http\"] > t',\n );\n expect(result.valid).toBe(true);\n });\n\n it('matches entity links in alternation', () => {\n const nodes1 = createMockAstNodes([\n 'h2',\n 'entity_link:blog_post:1' as BlockElement,\n 't',\n ]);\n const nodes2 = createMockAstNodes([\n 'h2',\n 'entity_link:product:1' as BlockElement,\n 't',\n ]);\n\n const pattern =\n 'h2 > (link[entityType=\"blog_post\"] | link[entityType=\"product\"]) > t';\n expect(validatePattern(nodes1, pattern).valid).toBe(true);\n expect(validatePattern(nodes2, pattern).valid).toBe(true);\n });\n\n it('matches entity links in groups with quantifiers', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 'entity_link:blog_post:1' as BlockElement,\n 't',\n 'entity_link:blog_post:2' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'h2 > (link[entityType=\"blog_post\"] > t)+',\n );\n expect(result.valid).toBe(true);\n expect(result.endIndex).toBe(4);\n });\n\n it('matches real-world blog post pattern with entity links', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 't',\n 'entity_link:blog_post:123' as BlockElement,\n 'image',\n 't',\n 'entity_link:blog_post:456' as BlockElement,\n 'image',\n 't',\n ]);\n const pattern = 'h2 > t > (link[entityType=\"blog_post\"] > image > t)+';\n expect(validatePattern(nodes, pattern).valid).toBe(true);\n });\n\n it('matches pattern with entity type prefix matching', () => {\n const nodes = createMockAstNodes([\n 'entity_link:blog_post:1' as BlockElement,\n 'entity_link:blog_article:2' as BlockElement,\n 't',\n ]);\n // Match any link where entityType starts with \"blog\"\n const result = validatePattern(nodes, 'link[entityType^=\"blog\"]+ > t');\n expect(result.valid).toBe(true);\n });\n });\n\n describe('Image Attribute Selectors', () => {\n describe('Pattern Syntax Validation', () => {\n it('validates image attribute selector syntax', () => {\n expect(validatePatternSyntax('image[type]').valid).toBe(true);\n expect(validatePatternSyntax('image[type=\"icon\"]').valid).toBe(true);\n expect(validatePatternSyntax('image[src]').valid).toBe(true);\n expect(validatePatternSyntax('image[alt=\"money\"]').valid).toBe(true);\n });\n\n it('validates image attribute operators', () => {\n expect(validatePatternSyntax('image[src*=\"web5\"]').valid).toBe(true);\n expect(validatePatternSyntax('image[src^=\"web5://\"]').valid).toBe(\n true,\n );\n expect(validatePatternSyntax('image[alt$=\"icon\"]').valid).toBe(true);\n });\n\n it('validates multiple image attributes', () => {\n expect(validatePatternSyntax('image[type=\"icon\"][alt]').valid).toBe(\n true,\n );\n });\n\n it('validates image attributes with quantifiers', () => {\n expect(validatePatternSyntax('image[type=\"icon\"]?').valid).toBe(true);\n expect(validatePatternSyntax('image[type=\"icon\"]*').valid).toBe(true);\n expect(validatePatternSyntax('image[type=\"icon\"]+').valid).toBe(true);\n expect(validatePatternSyntax('image[type=\"icon\"][2]').valid).toBe(\n true,\n );\n expect(validatePatternSyntax('image[type=\"icon\"][1-3]').valid).toBe(\n true,\n );\n });\n\n it('validates image attributes in sequences', () => {\n expect(\n validatePatternSyntax('h2 > image[type=\"icon\"] > t').valid,\n ).toBe(true);\n });\n\n it('validates image attributes in groups and alternation', () => {\n expect(\n validatePatternSyntax(\n '(image[type=\"icon\"] | image[type=\"illustration\"])',\n ).valid,\n ).toBe(true);\n expect(validatePatternSyntax('(t > image[type=\"icon\"])+').valid).toBe(\n true,\n );\n });\n\n it('validates image attributes in list item patterns', () => {\n expect(\n validatePatternSyntax(\n 'h2 > list{item[2-]:(image[type=\"icon\"] | h3 | t | link)* > t+}',\n ).valid,\n ).toBe(true);\n });\n });\n\n describe('Image Attribute Matching', () => {\n it('matches web5 illustration with type=\"illustration\"', () => {\n const nodes = createMockAstNodes([\n 'web5_image:illustration:chart' as BlockElement,\n 't',\n ]);\n const result = validatePattern(\n nodes,\n 'image[type=\"illustration\"] > t',\n );\n expect(result.valid).toBe(true);\n });\n\n it('does not match regular image when type is required', () => {\n const nodes = createMockAstNodes(['image', 't']);\n const result = validatePattern(nodes, 'image[type] > t');\n expect(result.valid).toBe(false);\n });\n\n it('does not match regular image with src starts-with web5://', () => {\n const nodes = createMockAstNodes(['image', 't']);\n const result = validatePattern(nodes, 'image[src^=\"web5://\"] > t');\n expect(result.valid).toBe(false);\n });\n\n it('plain image pattern does not match icon element', () => {\n const iconNodes = createMockAstNodes([\n 'web5_icon:dollar' as BlockElement,\n 't',\n ]);\n expect(validatePattern(iconNodes, 'image > t').valid).toBe(false);\n\n const regularNodes = createMockAstNodes(['image', 't']);\n expect(validatePattern(regularNodes, 'image > t').valid).toBe(true);\n });\n });\n\n describe('Icon BlockElement Matching', () => {\n it('matches web5 icon with icon pattern', () => {\n const nodes = createMockAstNodes([\n 'web5_icon:dollar' as BlockElement,\n 't',\n ]);\n const result = validatePattern(nodes, 'icon > t');\n expect(result.valid).toBe(true);\n });\n\n it('does not match regular image with icon pattern', () => {\n const nodes = createMockAstNodes(['image', 't']);\n const result = validatePattern(nodes, 'icon > t');\n expect(result.valid).toBe(false);\n });\n });\n\n describe('Icon in List Items', () => {\n it('matches list items with icons using icon pattern', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 'list{[web5_icon, t], [web5_icon, t]}',\n ]);\n const result = validatePattern(nodes, 'h2 > list{item[2-]:icon > t}');\n expect(result.valid).toBe(true);\n });\n\n it('rejects list items with regular images when icon is required', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 'list{[image, t], [image, t]}',\n ]);\n const result = validatePattern(nodes, 'h2 > list{item[2-]:icon > t}');\n expect(result.valid).toBe(false);\n });\n\n it('matches FeatureSection9Plus pattern with icons in list items', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 'list{[web5_icon, t, t], [web5_icon, t, t]}',\n ]);\n const result = validatePattern(\n nodes,\n 'h2 > list{item[2-]:(icon | h3 | t | link)* > t+}',\n );\n expect(result.valid).toBe(true);\n });\n\n it('matches FeatureSection9Plus pattern without icons (backward compat)', () => {\n const nodes = createMockAstNodes(['h2', 'list{[t, t], [t, t]}']);\n const result = validatePattern(\n nodes,\n 'h2 > list{item[2-]:(icon | h3 | t | link)* > t+}',\n );\n expect(result.valid).toBe(true);\n });\n\n it('matches alternation of icon and text in list items', () => {\n const nodes = createMockAstNodes([\n 'h2',\n 'list{[web5_icon, t, link], [t, link]}',\n ]);\n const result = validatePattern(\n nodes,\n 'h2 > list{item[1-]:(icon | t)* > (t? > link)+}',\n );\n expect(result.valid).toBe(true);\n });\n });\n });\n });\n});\n\ndescribe('Stop clause (~)', () => {\n const comment = (content: string): RootContent =>\n ({ type: 'html', value: `<!-- ${content} -->` } as RootContent);\n\n describe('Syntax validation', () => {\n it('accepts a bare stop element', () => {\n expect(\n validatePatternSyntax('html_comment > t* ~ html_comment').valid,\n ).toBe(true);\n });\n\n it('accepts a stop element with attributes', () => {\n expect(\n validatePatternSyntax(\n 'html_comment > (t | list)* ~ html_comment[type=\"end\"]',\n ).valid,\n ).toBe(true);\n expect(\n validatePatternSyntax('h2 > t* ~ link[entityType=\"solution\"]').valid,\n ).toBe(true);\n expect(validatePatternSyntax('h2 > t* ~ image[type=\"icon\"]').valid).toBe(\n true,\n );\n });\n\n it('rejects a trailing ~ with no element', () => {\n const result = validatePatternSyntax('h2 > t* ~');\n expect(result.valid).toBe(false);\n expect(result.error).toContain(\"Expected a single element after '~'\");\n });\n\n it('rejects quantifiers on the stop element', () => {\n expect(validatePatternSyntax('h2 > t* ~ html_comment+').valid).toBe(\n false,\n );\n expect(validatePatternSyntax('h2 > t* ~ html_comment*').valid).toBe(\n false,\n );\n expect(validatePatternSyntax('h2 > t* ~ html_comment[2]').valid).toBe(\n false,\n );\n });\n\n it('rejects groups after ~', () => {\n expect(validatePatternSyntax('h2 > t* ~ (h2 | t)').valid).toBe(false);\n });\n\n it('rejects a second ~', () => {\n expect(validatePatternSyntax('h2 > t* ~ html_comment ~ t').valid).toBe(\n false,\n );\n });\n\n it('rejects tokens after the stop clause', () => {\n expect(validatePatternSyntax('h2 > t* ~ html_comment > t').valid).toBe(\n false,\n );\n });\n });\n\n describe('Matching', () => {\n it('stops before an attribute-matched end comment even when the loop accepts comments', () => {\n const nodes: RootContent[] = [\n comment('semantic: intro'),\n ...createMockAstNodes(['t', 't']),\n comment('type: end'),\n ];\n const result = validatePattern(\n nodes,\n 'html_comment > (t | html_comment)* ~ html_comment[type=\"end\"]',\n );\n expect(result.valid).toBe(true);\n expect(result.astEndIndex).toBe(2); // end comment (index 3) excluded\n });\n\n it('consumes the end comment without a stop clause (baseline greedy behavior)', () => {\n const nodes: RootContent[] = [\n comment('semantic: intro'),\n ...createMockAstNodes(['t', 't']),\n comment('type: end'),\n ];\n const result = validatePattern(\n nodes,\n 'html_comment > (t | html_comment)*',\n );\n expect(result.valid).toBe(true);\n expect(result.astEndIndex).toBe(3);\n });\n\n it('stops before an identical end comment (candidate retry)', () => {\n const nodes = createMockAstNodes([\n 'html_comment',\n 't',\n 't',\n 'html_comment',\n ]);\n const result = validatePattern(nodes, 'html_comment > t* ~ html_comment');\n expect(result.valid).toBe(true);\n expect(result.astEndIndex).toBe(2);\n });\n\n it('matches at end-of-input when the stop marker is absent (streaming)', () => {\n const nodes: RootContent[] = [\n comment('semantic: intro'),\n ...createMockAstNodes(['t', 't']),\n ];\n const result = validatePattern(\n nodes,\n 'html_comment > t* ~ html_comment[type=\"end\"]',\n );\n expect(result.valid).toBe(true);\n expect(result.astEndIndex).toBe(2);\n });\n\n it('fails when the marker is present but no valid prefix exists', () => {\n const nodes = createMockAstNodes(['t', 't', 'html_comment']);\n const result = validatePattern(nodes, 'h2 > t* ~ html_comment');\n expect(result.valid).toBe(false);\n expect(result.error).toContain('stop marker');\n });\n\n it('does not match through a marker even if the full input would match', () => {\n const nodes = createMockAstNodes([\n 'html_comment',\n 't',\n 'html_comment',\n 't',\n ]);\n // Without the stop clause the full input matches\n expect(\n validatePattern(nodes, 'html_comment > t > html_comment > t').valid,\n ).toBe(true);\n const result = validatePattern(\n nodes,\n 'html_comment > t > html_comment > t ~ html_comment',\n );\n expect(result.valid).toBe(false);\n });\n\n it('fails when the only marker is at the start (empty prefix)', () => {\n const nodes = createMockAstNodes(['html_comment', 't']);\n const result = validatePattern(nodes, 't ~ html_comment');\n expect(result.valid).toBe(false);\n });\n\n it('keeps extra-elements-before-marker semantics', () => {\n const nodes = createMockAstNodes(['h2', 't', 't', 'html_comment']);\n const result = validatePattern(nodes, 'h2 > t ~ html_comment');\n expect(result.valid).toBe(true);\n expect(result.astEndIndex).toBe(1); // second t is extra, marker untouched\n });\n\n it('supports stopping at non-comment elements', () => {\n const nodes = createMockAstNodes(['h2', 't', 't', 'h2', 't']);\n const result = validatePattern(nodes, 'h2 > t+ ~ h2');\n expect(result.valid).toBe(true);\n expect(result.astEndIndex).toBe(2);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|