@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,52 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
/**
|
|
3
|
+
* Diagnostics collector — pure data class for buffering parser/render-time
|
|
4
|
+
* diagnostic entries with dedup. Lifted from `web50-server-ui` per DL #088 B9.4.
|
|
5
|
+
*
|
|
6
|
+
* The BI-firing + app-store-aware singleton wrapping (`fireDiagnosticEvent`,
|
|
7
|
+
* `setLastDiagnosticsCollector`, `flushDiagnostics`) stays in
|
|
8
|
+
* `web50-server-ui/src/utils/diagnosticsCollector.ts` because it depends on
|
|
9
|
+
* the BI logger + app store. After B9.5, the lifted `parseMarkdownToComponents`
|
|
10
|
+
* accepts a `DiagnosticsCollector` instance via options and never touches the
|
|
11
|
+
* singleton, so the placement bundle can construct its own collector and read
|
|
12
|
+
* the entries directly without involving BI.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
export class DiagnosticsCollector {
|
|
16
|
+
constructor() {
|
|
17
|
+
_defineProperty(this, "entries", []);
|
|
18
|
+
_defineProperty(this, "seen", new Set());
|
|
19
|
+
}
|
|
20
|
+
static entryKey(entry) {
|
|
21
|
+
return `${entry.sectionType}:${entry.sectionIndex}:${entry.diagnosticType}:${entry.details}`;
|
|
22
|
+
}
|
|
23
|
+
report(entry) {
|
|
24
|
+
const key = DiagnosticsCollector.entryKey(entry);
|
|
25
|
+
if (this.seen.has(key)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this.seen.add(key);
|
|
29
|
+
this.entries.push(entry);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Add to dedup set and return true if this is a new entry. Does NOT buffer —
|
|
34
|
+
* use for render-time diagnostics that fire immediately.
|
|
35
|
+
*/
|
|
36
|
+
reportIfNew(entry) {
|
|
37
|
+
const key = DiagnosticsCollector.entryKey(entry);
|
|
38
|
+
if (this.seen.has(key)) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
this.seen.add(key);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
getEntries() {
|
|
45
|
+
return [...this.entries];
|
|
46
|
+
}
|
|
47
|
+
clear() {
|
|
48
|
+
this.entries = [];
|
|
49
|
+
this.seen.clear();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=diagnosticsCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DiagnosticsCollector","constructor","_defineProperty","Set","entryKey","entry","sectionType","sectionIndex","diagnosticType","details","report","key","seen","has","add","entries","push","reportIfNew","getEntries","clear"],"sources":["../../../src/utils/diagnosticsCollector.ts"],"sourcesContent":["/**\n * Diagnostics collector — pure data class for buffering parser/render-time\n * diagnostic entries with dedup. Lifted from `web50-server-ui` per DL #088 B9.4.\n *\n * The BI-firing + app-store-aware singleton wrapping (`fireDiagnosticEvent`,\n * `setLastDiagnosticsCollector`, `flushDiagnostics`) stays in\n * `web50-server-ui/src/utils/diagnosticsCollector.ts` because it depends on\n * the BI logger + app store. After B9.5, the lifted `parseMarkdownToComponents`\n * accepts a `DiagnosticsCollector` instance via options and never touches the\n * singleton, so the placement bundle can construct its own collector and read\n * the entries directly without involving BI.\n */\nimport type { DiagnosticType } from '../component/diagnosticTypes';\n\nexport interface DiagnosticEntry {\n diagnosticType: DiagnosticType;\n sectionType: string;\n sectionIndex: number;\n details: string;\n}\n\nexport class DiagnosticsCollector {\n private entries: DiagnosticEntry[] = [];\n private seen = new Set<string>();\n\n private static entryKey(entry: DiagnosticEntry): string {\n return `${entry.sectionType}:${entry.sectionIndex}:${entry.diagnosticType}:${entry.details}`;\n }\n\n report(entry: DiagnosticEntry): void {\n const key = DiagnosticsCollector.entryKey(entry);\n if (this.seen.has(key)) {\n return;\n }\n this.seen.add(key);\n this.entries.push(entry);\n }\n\n /**\n * Add to dedup set and return true if this is a new entry. Does NOT buffer —\n * use for render-time diagnostics that fire immediately.\n */\n reportIfNew(entry: DiagnosticEntry): boolean {\n const key = DiagnosticsCollector.entryKey(entry);\n if (this.seen.has(key)) {\n return false;\n }\n this.seen.add(key);\n return true;\n }\n\n getEntries(): DiagnosticEntry[] {\n return [...this.entries];\n }\n\n clear(): void {\n this.entries = [];\n this.seen.clear();\n }\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,OAAO,MAAMA,oBAAoB,CAAC;EAAAC,YAAA;IAAAC,eAAA,kBACK,EAAE;IAAAA,eAAA,eACxB,IAAIC,GAAG,CAAS,CAAC;EAAA;EAEhC,OAAeC,QAAQA,CAACC,KAAsB,EAAU;IACtD,OAAO,GAAGA,KAAK,CAACC,WAAW,IAAID,KAAK,CAACE,YAAY,IAAIF,KAAK,CAACG,cAAc,IAAIH,KAAK,CAACI,OAAO,EAAE;EAC9F;EAEAC,MAAMA,CAACL,KAAsB,EAAQ;IACnC,MAAMM,GAAG,GAAGX,oBAAoB,CAACI,QAAQ,CAACC,KAAK,CAAC;IAChD,IAAI,IAAI,CAACO,IAAI,CAACC,GAAG,CAACF,GAAG,CAAC,EAAE;MACtB;IACF;IACA,IAAI,CAACC,IAAI,CAACE,GAAG,CAACH,GAAG,CAAC;IAClB,IAAI,CAACI,OAAO,CAACC,IAAI,CAACX,KAAK,CAAC;EAC1B;;EAEA;AACF;AACA;AACA;EACEY,WAAWA,CAACZ,KAAsB,EAAW;IAC3C,MAAMM,GAAG,GAAGX,oBAAoB,CAACI,QAAQ,CAACC,KAAK,CAAC;IAChD,IAAI,IAAI,CAACO,IAAI,CAACC,GAAG,CAACF,GAAG,CAAC,EAAE;MACtB,OAAO,KAAK;IACd;IACA,IAAI,CAACC,IAAI,CAACE,GAAG,CAACH,GAAG,CAAC;IAClB,OAAO,IAAI;EACb;EAEAO,UAAUA,CAAA,EAAsB;IAC9B,OAAO,CAAC,GAAG,IAAI,CAACH,OAAO,CAAC;EAC1B;EAEAI,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACJ,OAAO,GAAG,EAAE;IACjB,IAAI,CAACH,IAAI,CAACO,KAAK,CAAC,CAAC;EACnB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { Web5UrlType, isWeb5EntityUrl } from '../types/link-types.js';
|
|
2
|
+
const WEB5_TYPE_PREFIXES = Object.values(Web5UrlType);
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Central parser for unified web5:// URLs.
|
|
6
|
+
*
|
|
7
|
+
* Supported formats:
|
|
8
|
+
* - `web5://ask/msg` → `{ type: Web5UrlType.ASK, path: 'msg' }`
|
|
9
|
+
* - `web5://entity/solution/123` → `{ type: Web5UrlType.ENTITY, path: 'solution/123', entityType: 'solution', entityId: '123' }`
|
|
10
|
+
* - `web5://image/kw` → `{ type: Web5UrlType.IMAGE, path: 'kw' }`
|
|
11
|
+
* - `web5://icon/name` → `{ type: Web5UrlType.ICON, path: 'name' }`
|
|
12
|
+
* - `web5://action/name?param=val` → `{ type: Web5UrlType.ACTION, path: 'name?param=val', actionName: 'name', actionParams: { param: 'val' } }`
|
|
13
|
+
* - `web5://search/query` → `{ type: Web5UrlType.SEARCH, path: 'query', searchQuery: 'query' }`
|
|
14
|
+
*/
|
|
15
|
+
export function parseWeb5Url(url) {
|
|
16
|
+
if (!url || typeof url !== 'string') {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
if (!url.startsWith('web5://')) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const fullPath = url.slice('web5://'.length);
|
|
23
|
+
if (!fullPath) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
for (const prefix of WEB5_TYPE_PREFIXES) {
|
|
27
|
+
if (fullPath === prefix || fullPath.startsWith(prefix + '/')) {
|
|
28
|
+
const path = fullPath.slice(prefix.length + 1);
|
|
29
|
+
switch (prefix) {
|
|
30
|
+
case Web5UrlType.ENTITY:
|
|
31
|
+
{
|
|
32
|
+
const slashIndex = path.indexOf('/');
|
|
33
|
+
if (slashIndex === -1) {
|
|
34
|
+
return {
|
|
35
|
+
type: Web5UrlType.ENTITY,
|
|
36
|
+
path,
|
|
37
|
+
entityType: path,
|
|
38
|
+
entityId: ''
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
type: Web5UrlType.ENTITY,
|
|
43
|
+
path,
|
|
44
|
+
entityType: path.slice(0, slashIndex),
|
|
45
|
+
entityId: path.slice(slashIndex + 1)
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
case Web5UrlType.ACTION:
|
|
49
|
+
{
|
|
50
|
+
const qIndex = path.indexOf('?');
|
|
51
|
+
if (qIndex === -1) {
|
|
52
|
+
return {
|
|
53
|
+
type: Web5UrlType.ACTION,
|
|
54
|
+
path,
|
|
55
|
+
actionName: path,
|
|
56
|
+
actionParams: {}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const params = {};
|
|
60
|
+
const searchParams = new URLSearchParams(path.slice(qIndex + 1));
|
|
61
|
+
searchParams.forEach((value, key) => {
|
|
62
|
+
params[key] = value;
|
|
63
|
+
});
|
|
64
|
+
return {
|
|
65
|
+
type: Web5UrlType.ACTION,
|
|
66
|
+
path,
|
|
67
|
+
actionName: path.slice(0, qIndex),
|
|
68
|
+
actionParams: params
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
case Web5UrlType.SEARCH:
|
|
72
|
+
return {
|
|
73
|
+
type: Web5UrlType.SEARCH,
|
|
74
|
+
path,
|
|
75
|
+
searchQuery: path ? decodeURIComponent(path.replace(/\+/g, ' ')) : ''
|
|
76
|
+
};
|
|
77
|
+
case Web5UrlType.ASK:
|
|
78
|
+
return {
|
|
79
|
+
type: Web5UrlType.ASK,
|
|
80
|
+
path
|
|
81
|
+
};
|
|
82
|
+
case Web5UrlType.IMAGE:
|
|
83
|
+
return {
|
|
84
|
+
type: Web5UrlType.IMAGE,
|
|
85
|
+
path
|
|
86
|
+
};
|
|
87
|
+
case Web5UrlType.ICON:
|
|
88
|
+
return {
|
|
89
|
+
type: Web5UrlType.ICON,
|
|
90
|
+
path
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Check if a URL is a valid web5:// URL with a recognized type prefix.
|
|
100
|
+
*/
|
|
101
|
+
export function isValidWeb5Url(url) {
|
|
102
|
+
return parseWeb5Url(url) !== null;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/** Known legacy protocols that are no longer supported */
|
|
106
|
+
const LEGACY_PROTOCOLS = ['entity://', 'image://', 'action://', 'ask://'];
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Validate whether a URL is safe to render as a clickable link.
|
|
110
|
+
*
|
|
111
|
+
* - Standard protocols (http, https, mailto, relative paths) → allowed
|
|
112
|
+
* - Valid `web5://` URLs (recognized type prefix) → allowed
|
|
113
|
+
* - Invalid `web5://` URLs (unrecognized prefix) → rejected
|
|
114
|
+
* - Legacy protocols (`entity://`, `image://`, `action://`, `ask://`) → rejected
|
|
115
|
+
* - Other custom protocols → rejected
|
|
116
|
+
*
|
|
117
|
+
* @returns the URL as `ValidLinkUrl` if valid, or `undefined` if it should not be rendered.
|
|
118
|
+
* When invalid, logs a warning for observability.
|
|
119
|
+
*/
|
|
120
|
+
export function validateLinkUrl(url) {
|
|
121
|
+
if (!url) {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith('mailto:') || url.startsWith('/')) {
|
|
125
|
+
return url;
|
|
126
|
+
}
|
|
127
|
+
if (url.startsWith('web5://')) {
|
|
128
|
+
if (parseWeb5Url(url)) {
|
|
129
|
+
return url;
|
|
130
|
+
}
|
|
131
|
+
console.log(`[web5-link] Invalid web5:// URL rejected: "${url}"`);
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
if (LEGACY_PROTOCOLS.some(p => url.startsWith(p))) {
|
|
135
|
+
console.log(`[web5-link] Legacy protocol URL rejected: "${url}". Use web5:// format instead.`);
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Check if a URL is a web5://entity/ link
|
|
143
|
+
* @param url - The URL to check
|
|
144
|
+
* @returns true if the URL is an entity link
|
|
145
|
+
*/
|
|
146
|
+
export function isEntityLink(url) {
|
|
147
|
+
if (!url || typeof url !== 'string') {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
return isWeb5EntityUrl(url);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Parse a web5://entity/ URL and extract entityType and entityId
|
|
155
|
+
* Format: web5://entity/{entityType}/{entityId}
|
|
156
|
+
*
|
|
157
|
+
* @param url - The web5://entity/ URL to parse
|
|
158
|
+
* @returns Object with entityType and entityId, or null if not a valid entity link
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* parseEntityLink('web5://entity/blog_post/abc123')
|
|
162
|
+
* // Returns: { entityType: 'blog_post', entityId: 'abc123' }
|
|
163
|
+
*/
|
|
164
|
+
export function parseEntityLink(url) {
|
|
165
|
+
if (!isEntityLink(url)) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
const path = url.slice('web5://entity/'.length);
|
|
169
|
+
|
|
170
|
+
// Split by '/' to get entityType and entityId
|
|
171
|
+
const slashIndex = path.indexOf('/');
|
|
172
|
+
if (slashIndex === -1) {
|
|
173
|
+
// No slash found - only entityType, no entityId
|
|
174
|
+
const entityType = path.trim();
|
|
175
|
+
if (entityType) {
|
|
176
|
+
return {
|
|
177
|
+
entityType,
|
|
178
|
+
entityId: ''
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
const entityType = path.slice(0, slashIndex).trim();
|
|
184
|
+
const entityId = path.slice(slashIndex + 1).trim();
|
|
185
|
+
if (!entityType) {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
entityType,
|
|
190
|
+
entityId
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Extract protocol from a URL
|
|
196
|
+
* @param url - The URL to extract protocol from
|
|
197
|
+
* @returns The protocol (e.g., 'entity', 'http', 'https') or undefined
|
|
198
|
+
*/
|
|
199
|
+
export function extractProtocol(url) {
|
|
200
|
+
if (!url || typeof url !== 'string') {
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
const match = url.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\/\//);
|
|
204
|
+
if (match) {
|
|
205
|
+
return match[1].toLowerCase();
|
|
206
|
+
}
|
|
207
|
+
return undefined;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Extract LinkMetadata from a link AST node
|
|
212
|
+
* @param node - AST node of type 'link'
|
|
213
|
+
* @returns LinkMetadata object with url, protocol, and entity fields, or null
|
|
214
|
+
* when the URL is missing or whitespace-only (empty-href links are dropped
|
|
215
|
+
* by the upstream pipeline; see `markdownBlocks.ts`).
|
|
216
|
+
*/
|
|
217
|
+
export function extractLinkMetadata(node) {
|
|
218
|
+
if (!node || node.type !== 'link') {
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
const url = node.url;
|
|
222
|
+
if (typeof url !== 'string' || url.trim() === '') {
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
const metadata = {
|
|
226
|
+
url
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
// Extract protocol
|
|
230
|
+
const protocol = extractProtocol(url);
|
|
231
|
+
if (protocol) {
|
|
232
|
+
metadata.protocol = protocol;
|
|
233
|
+
}
|
|
234
|
+
if (protocol === 'web5') {
|
|
235
|
+
const parsed = parseWeb5Url(url);
|
|
236
|
+
if (parsed) {
|
|
237
|
+
metadata.web5Type = parsed.type;
|
|
238
|
+
if (parsed.type === Web5UrlType.ENTITY) {
|
|
239
|
+
metadata.entityType = parsed.entityType;
|
|
240
|
+
metadata.entityId = parsed.entityId;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return metadata;
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=entityLinkParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Web5UrlType","isWeb5EntityUrl","WEB5_TYPE_PREFIXES","Object","values","parseWeb5Url","url","startsWith","fullPath","slice","length","prefix","path","ENTITY","slashIndex","indexOf","type","entityType","entityId","ACTION","qIndex","actionName","actionParams","params","searchParams","URLSearchParams","forEach","value","key","SEARCH","searchQuery","decodeURIComponent","replace","ASK","IMAGE","ICON","isValidWeb5Url","LEGACY_PROTOCOLS","validateLinkUrl","undefined","console","log","some","p","isEntityLink","parseEntityLink","trim","extractProtocol","match","toLowerCase","extractLinkMetadata","node","metadata","protocol","parsed","web5Type"],"sources":["../../../src/utils/entityLinkParser.ts"],"sourcesContent":["import type { LinkMetadata } from '../patternValidator/types';\nimport {\n Web5UrlType,\n isWeb5EntityUrl,\n type ValidLinkUrl,\n} from '../types/link-types';\n\nexport interface Web5AskParsed {\n type: Web5UrlType.ASK;\n path: string;\n}\n\nexport interface Web5EntityParsed {\n type: Web5UrlType.ENTITY;\n path: string;\n entityType: string;\n entityId: string;\n}\n\nexport interface Web5ImageParsed {\n type: Web5UrlType.IMAGE;\n path: string;\n}\n\nexport interface Web5IconParsed {\n type: Web5UrlType.ICON;\n path: string;\n}\n\nexport interface Web5ActionParsed {\n type: Web5UrlType.ACTION;\n path: string;\n actionName: string;\n actionParams: Record<string, string>;\n}\n\nexport interface Web5SearchParsed {\n type: Web5UrlType.SEARCH;\n path: string;\n searchQuery: string;\n}\n\nexport type Web5UrlParsed =\n | Web5AskParsed\n | Web5EntityParsed\n | Web5ImageParsed\n | Web5IconParsed\n | Web5ActionParsed\n | Web5SearchParsed;\n\nconst WEB5_TYPE_PREFIXES = Object.values(Web5UrlType);\n\n/**\n * Central parser for unified web5:// URLs.\n *\n * Supported formats:\n * - `web5://ask/msg` → `{ type: Web5UrlType.ASK, path: 'msg' }`\n * - `web5://entity/solution/123` → `{ type: Web5UrlType.ENTITY, path: 'solution/123', entityType: 'solution', entityId: '123' }`\n * - `web5://image/kw` → `{ type: Web5UrlType.IMAGE, path: 'kw' }`\n * - `web5://icon/name` → `{ type: Web5UrlType.ICON, path: 'name' }`\n * - `web5://action/name?param=val` → `{ type: Web5UrlType.ACTION, path: 'name?param=val', actionName: 'name', actionParams: { param: 'val' } }`\n * - `web5://search/query` → `{ type: Web5UrlType.SEARCH, path: 'query', searchQuery: 'query' }`\n */\nexport function parseWeb5Url(url: string): Web5UrlParsed | null {\n if (!url || typeof url !== 'string') {\n return null;\n }\n\n if (!url.startsWith('web5://')) {\n return null;\n }\n\n const fullPath = url.slice('web5://'.length);\n if (!fullPath) {\n return null;\n }\n\n for (const prefix of WEB5_TYPE_PREFIXES) {\n if (fullPath === prefix || fullPath.startsWith(prefix + '/')) {\n const path = fullPath.slice(prefix.length + 1);\n\n switch (prefix) {\n case Web5UrlType.ENTITY: {\n const slashIndex = path.indexOf('/');\n if (slashIndex === -1) {\n return {\n type: Web5UrlType.ENTITY,\n path,\n entityType: path,\n entityId: '',\n };\n }\n return {\n type: Web5UrlType.ENTITY,\n path,\n entityType: path.slice(0, slashIndex),\n entityId: path.slice(slashIndex + 1),\n };\n }\n case Web5UrlType.ACTION: {\n const qIndex = path.indexOf('?');\n if (qIndex === -1) {\n return {\n type: Web5UrlType.ACTION,\n path,\n actionName: path,\n actionParams: {},\n };\n }\n const params: Record<string, string> = {};\n const searchParams = new URLSearchParams(path.slice(qIndex + 1));\n searchParams.forEach((value, key) => {\n params[key] = value;\n });\n return {\n type: Web5UrlType.ACTION,\n path,\n actionName: path.slice(0, qIndex),\n actionParams: params,\n };\n }\n case Web5UrlType.SEARCH:\n return {\n type: Web5UrlType.SEARCH,\n path,\n searchQuery: path\n ? decodeURIComponent(path.replace(/\\+/g, ' '))\n : '',\n };\n case Web5UrlType.ASK:\n return { type: Web5UrlType.ASK, path };\n case Web5UrlType.IMAGE:\n return { type: Web5UrlType.IMAGE, path };\n case Web5UrlType.ICON:\n return { type: Web5UrlType.ICON, path };\n }\n }\n }\n\n return null;\n}\n\n/**\n * Check if a URL is a valid web5:// URL with a recognized type prefix.\n */\nexport function isValidWeb5Url(url: string): boolean {\n return parseWeb5Url(url) !== null;\n}\n\n/** Known legacy protocols that are no longer supported */\nconst LEGACY_PROTOCOLS = ['entity://', 'image://', 'action://', 'ask://'];\n\n/**\n * Validate whether a URL is safe to render as a clickable link.\n *\n * - Standard protocols (http, https, mailto, relative paths) → allowed\n * - Valid `web5://` URLs (recognized type prefix) → allowed\n * - Invalid `web5://` URLs (unrecognized prefix) → rejected\n * - Legacy protocols (`entity://`, `image://`, `action://`, `ask://`) → rejected\n * - Other custom protocols → rejected\n *\n * @returns the URL as `ValidLinkUrl` if valid, or `undefined` if it should not be rendered.\n * When invalid, logs a warning for observability.\n */\nexport function validateLinkUrl(\n url: string | undefined,\n): ValidLinkUrl | undefined {\n if (!url) {\n return undefined;\n }\n\n if (\n url.startsWith('http://') ||\n url.startsWith('https://') ||\n url.startsWith('mailto:') ||\n url.startsWith('/')\n ) {\n return url as ValidLinkUrl;\n }\n\n if (url.startsWith('web5://')) {\n if (parseWeb5Url(url)) {\n return url as ValidLinkUrl;\n }\n console.log(`[web5-link] Invalid web5:// URL rejected: \"${url}\"`);\n return undefined;\n }\n\n if (LEGACY_PROTOCOLS.some((p) => url.startsWith(p))) {\n console.log(\n `[web5-link] Legacy protocol URL rejected: \"${url}\". Use web5:// format instead.`,\n );\n return undefined;\n }\n\n return undefined;\n}\n\n/**\n * Check if a URL is a web5://entity/ link\n * @param url - The URL to check\n * @returns true if the URL is an entity link\n */\nexport function isEntityLink(url: string): boolean {\n if (!url || typeof url !== 'string') {\n return false;\n }\n return isWeb5EntityUrl(url);\n}\n\n/**\n * Parse a web5://entity/ URL and extract entityType and entityId\n * Format: web5://entity/{entityType}/{entityId}\n *\n * @param url - The web5://entity/ URL to parse\n * @returns Object with entityType and entityId, or null if not a valid entity link\n *\n * @example\n * parseEntityLink('web5://entity/blog_post/abc123')\n * // Returns: { entityType: 'blog_post', entityId: 'abc123' }\n */\nexport function parseEntityLink(\n url: string,\n): { entityType: string; entityId: string } | null {\n if (!isEntityLink(url)) {\n return null;\n }\n\n const path = url.slice('web5://entity/'.length);\n\n // Split by '/' to get entityType and entityId\n const slashIndex = path.indexOf('/');\n if (slashIndex === -1) {\n // No slash found - only entityType, no entityId\n const entityType = path.trim();\n if (entityType) {\n return { entityType, entityId: '' };\n }\n return null;\n }\n\n const entityType = path.slice(0, slashIndex).trim();\n const entityId = path.slice(slashIndex + 1).trim();\n\n if (!entityType) {\n return null;\n }\n\n return { entityType, entityId };\n}\n\n/**\n * Extract protocol from a URL\n * @param url - The URL to extract protocol from\n * @returns The protocol (e.g., 'entity', 'http', 'https') or undefined\n */\nexport function extractProtocol(url: string): string | undefined {\n if (!url || typeof url !== 'string') {\n return undefined;\n }\n\n const match = url.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\\/\\//);\n if (match) {\n return match[1].toLowerCase();\n }\n\n return undefined;\n}\n\n/**\n * Extract LinkMetadata from a link AST node\n * @param node - AST node of type 'link'\n * @returns LinkMetadata object with url, protocol, and entity fields, or null\n * when the URL is missing or whitespace-only (empty-href links are dropped\n * by the upstream pipeline; see `markdownBlocks.ts`).\n */\nexport function extractLinkMetadata(node: any): LinkMetadata | null {\n if (!node || node.type !== 'link') {\n return null;\n }\n\n const url = node.url;\n if (typeof url !== 'string' || url.trim() === '') {\n return null;\n }\n\n const metadata: LinkMetadata = {\n url,\n };\n\n // Extract protocol\n const protocol = extractProtocol(url);\n if (protocol) {\n metadata.protocol = protocol;\n }\n\n if (protocol === 'web5') {\n const parsed = parseWeb5Url(url);\n if (parsed) {\n metadata.web5Type = parsed.type;\n if (parsed.type === Web5UrlType.ENTITY) {\n metadata.entityType = parsed.entityType;\n metadata.entityId = parsed.entityId;\n }\n }\n }\n\n return metadata;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse an HTML comment string into a key-value object
|
|
3
|
+
* @param comment - The HTML comment string (e.g., "<!-- key: value, key: value -->")
|
|
4
|
+
* @returns Object with parsed key-value pairs, or empty object if parsing fails
|
|
5
|
+
*/
|
|
6
|
+
export function parseHtmlComment(comment) {
|
|
7
|
+
if (!comment || typeof comment !== 'string') {
|
|
8
|
+
return {};
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Remove HTML comment markers <!-- and -->
|
|
12
|
+
let content = comment.trim();
|
|
13
|
+
if (content.startsWith('<!--')) {
|
|
14
|
+
content = content.slice(4);
|
|
15
|
+
}
|
|
16
|
+
if (content.endsWith('-->')) {
|
|
17
|
+
content = content.slice(0, -3);
|
|
18
|
+
}
|
|
19
|
+
content = content.trim();
|
|
20
|
+
if (!content) {
|
|
21
|
+
return {};
|
|
22
|
+
}
|
|
23
|
+
const result = {};
|
|
24
|
+
|
|
25
|
+
// Split by comma, but handle commas within quoted values
|
|
26
|
+
const parts = [];
|
|
27
|
+
let currentPart = '';
|
|
28
|
+
let inQuotes = false;
|
|
29
|
+
let quoteChar = '';
|
|
30
|
+
for (let i = 0; i < content.length; i++) {
|
|
31
|
+
const char = content[i];
|
|
32
|
+
if ((char === '"' || char === "'") && (i === 0 || content[i - 1] !== '\\')) {
|
|
33
|
+
if (!inQuotes) {
|
|
34
|
+
inQuotes = true;
|
|
35
|
+
quoteChar = char;
|
|
36
|
+
} else if (char === quoteChar) {
|
|
37
|
+
inQuotes = false;
|
|
38
|
+
quoteChar = '';
|
|
39
|
+
}
|
|
40
|
+
currentPart += char;
|
|
41
|
+
} else if (char === ',' && !inQuotes) {
|
|
42
|
+
parts.push(currentPart.trim());
|
|
43
|
+
currentPart = '';
|
|
44
|
+
} else {
|
|
45
|
+
currentPart += char;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Add the last part
|
|
50
|
+
if (currentPart.trim()) {
|
|
51
|
+
parts.push(currentPart.trim());
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Parse each part as key: value or standalone identifier
|
|
55
|
+
for (const part of parts) {
|
|
56
|
+
const colonIndex = part.indexOf(':');
|
|
57
|
+
const equalsIndex = part.indexOf('=');
|
|
58
|
+
|
|
59
|
+
// Check for key=value format
|
|
60
|
+
if (equalsIndex !== -1 && (colonIndex === -1 || equalsIndex < colonIndex)) {
|
|
61
|
+
const key = part.slice(0, equalsIndex).trim();
|
|
62
|
+
let value = part.slice(equalsIndex + 1).trim();
|
|
63
|
+
|
|
64
|
+
// Remove quotes if present
|
|
65
|
+
if (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'")) {
|
|
66
|
+
value = value.slice(1, -1);
|
|
67
|
+
}
|
|
68
|
+
if (key) {
|
|
69
|
+
result[key] = value;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Check for key: value format
|
|
73
|
+
else if (colonIndex !== -1) {
|
|
74
|
+
const key = part.slice(0, colonIndex).trim();
|
|
75
|
+
let value = part.slice(colonIndex + 1).trim();
|
|
76
|
+
|
|
77
|
+
// Remove quotes if present
|
|
78
|
+
if (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'")) {
|
|
79
|
+
value = value.slice(1, -1);
|
|
80
|
+
}
|
|
81
|
+
if (key) {
|
|
82
|
+
result[key] = value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Standalone identifier (e.g., <!-- Callout -->)
|
|
86
|
+
else {
|
|
87
|
+
const identifier = part.trim();
|
|
88
|
+
if (identifier && /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(identifier)) {
|
|
89
|
+
// Valid identifier: starts with letter or underscore, contains letters, numbers, underscores, or hyphens
|
|
90
|
+
result[identifier] = '';
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Extract HTML comment value from an AST html node
|
|
99
|
+
* @param node - AST node of type 'html'
|
|
100
|
+
* @returns The comment content string, or null if not an HTML comment
|
|
101
|
+
*/
|
|
102
|
+
export function extractHtmlCommentValue(node) {
|
|
103
|
+
if (!node || node.type !== 'html') {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
const value = node.value;
|
|
107
|
+
if (typeof value !== 'string') {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Check if it's an HTML comment
|
|
112
|
+
if (value.trim().startsWith('<!--') && value.trim().endsWith('-->')) {
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=htmlCommentParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseHtmlComment","comment","content","trim","startsWith","slice","endsWith","result","parts","currentPart","inQuotes","quoteChar","i","length","char","push","part","colonIndex","indexOf","equalsIndex","key","value","identifier","test","extractHtmlCommentValue","node","type"],"sources":["../../../src/utils/htmlCommentParser.ts"],"sourcesContent":["/**\n * Parse an HTML comment string into a key-value object\n * @param comment - The HTML comment string (e.g., \"<!-- key: value, key: value -->\")\n * @returns Object with parsed key-value pairs, or empty object if parsing fails\n */\nexport function parseHtmlComment(comment: string): Record<string, string> {\n if (!comment || typeof comment !== 'string') {\n return {};\n }\n\n // Remove HTML comment markers <!-- and -->\n let content = comment.trim();\n if (content.startsWith('<!--')) {\n content = content.slice(4);\n }\n if (content.endsWith('-->')) {\n content = content.slice(0, -3);\n }\n content = content.trim();\n\n if (!content) {\n return {};\n }\n\n const result: Record<string, string> = {};\n\n // Split by comma, but handle commas within quoted values\n const parts: string[] = [];\n let currentPart = '';\n let inQuotes = false;\n let quoteChar = '';\n\n for (let i = 0; i < content.length; i++) {\n const char = content[i];\n\n if (\n (char === '\"' || char === \"'\") &&\n (i === 0 || content[i - 1] !== '\\\\')\n ) {\n if (!inQuotes) {\n inQuotes = true;\n quoteChar = char;\n } else if (char === quoteChar) {\n inQuotes = false;\n quoteChar = '';\n }\n currentPart += char;\n } else if (char === ',' && !inQuotes) {\n parts.push(currentPart.trim());\n currentPart = '';\n } else {\n currentPart += char;\n }\n }\n\n // Add the last part\n if (currentPart.trim()) {\n parts.push(currentPart.trim());\n }\n\n // Parse each part as key: value or standalone identifier\n for (const part of parts) {\n const colonIndex = part.indexOf(':');\n const equalsIndex = part.indexOf('=');\n\n // Check for key=value format\n if (equalsIndex !== -1 && (colonIndex === -1 || equalsIndex < colonIndex)) {\n const key = part.slice(0, equalsIndex).trim();\n let value = part.slice(equalsIndex + 1).trim();\n\n // Remove quotes if present\n if (\n (value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\n ) {\n value = value.slice(1, -1);\n }\n\n if (key) {\n result[key] = value;\n }\n }\n // Check for key: value format\n else if (colonIndex !== -1) {\n const key = part.slice(0, colonIndex).trim();\n let value = part.slice(colonIndex + 1).trim();\n\n // Remove quotes if present\n if (\n (value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\n ) {\n value = value.slice(1, -1);\n }\n\n if (key) {\n result[key] = value;\n }\n }\n // Standalone identifier (e.g., <!-- Callout -->)\n else {\n const identifier = part.trim();\n if (identifier && /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(identifier)) {\n // Valid identifier: starts with letter or underscore, contains letters, numbers, underscores, or hyphens\n result[identifier] = '';\n }\n }\n }\n\n return result;\n}\n\n/**\n * Extract HTML comment value from an AST html node\n * @param node - AST node of type 'html'\n * @returns The comment content string, or null if not an HTML comment\n */\nexport function extractHtmlCommentValue(node: any): string | null {\n if (!node || node.type !== 'html') {\n return null;\n }\n\n const value = node.value;\n if (typeof value !== 'string') {\n return null;\n }\n\n // Check if it's an HTML comment\n if (value.trim().startsWith('<!--') && value.trim().endsWith('-->')) {\n return value;\n }\n\n return null;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const WIX_MEDIA_STATIC = 'https://static.wixstatic.com/media/';
|
|
2
|
+
export function normalizeImageUrl(imageUrl) {
|
|
3
|
+
if (!imageUrl) {
|
|
4
|
+
return imageUrl;
|
|
5
|
+
}
|
|
6
|
+
if (imageUrl.startsWith('http://') || imageUrl.startsWith('https://') || imageUrl.startsWith('data:') || imageUrl.startsWith('blob:')) {
|
|
7
|
+
return imageUrl;
|
|
8
|
+
}
|
|
9
|
+
if (imageUrl.startsWith(WIX_MEDIA_STATIC)) {
|
|
10
|
+
return imageUrl;
|
|
11
|
+
}
|
|
12
|
+
const cleanUrl = imageUrl.startsWith('/') ? imageUrl.slice(1) : imageUrl;
|
|
13
|
+
return `${WIX_MEDIA_STATIC}${cleanUrl}`;
|
|
14
|
+
}
|
|
15
|
+
export function getResizedImageUrl(imageURI, width, height, params) {
|
|
16
|
+
return getResizedImagePartialUrl(WIX_MEDIA_STATIC, imageURI, width, height, params);
|
|
17
|
+
}
|
|
18
|
+
function getResizedImagePartialUrl(baseUrl, imageURI, width, height, _temp) {
|
|
19
|
+
let {
|
|
20
|
+
usm_r = 0.66,
|
|
21
|
+
usm_a = 1.0,
|
|
22
|
+
usm_t = 0.01,
|
|
23
|
+
quality,
|
|
24
|
+
imageMode = 'fit'
|
|
25
|
+
} = _temp === void 0 ? {} : _temp;
|
|
26
|
+
if (imageURI.includes('/')) {
|
|
27
|
+
return imageURI;
|
|
28
|
+
}
|
|
29
|
+
width = Math.round(width);
|
|
30
|
+
height = Math.round(height);
|
|
31
|
+
if (!quality) {
|
|
32
|
+
const HIGH_QUALITY_RESOLUTION = 1400 * 1400;
|
|
33
|
+
const MEDIUM_QUALITY_RESOLUTION = 600 * 600;
|
|
34
|
+
const dimension = width * height;
|
|
35
|
+
if (dimension > HIGH_QUALITY_RESOLUTION) {
|
|
36
|
+
quality = 90;
|
|
37
|
+
} else if (dimension > MEDIUM_QUALITY_RESOLUTION) {
|
|
38
|
+
quality = 85;
|
|
39
|
+
} else {
|
|
40
|
+
quality = 80;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return `${baseUrl}${imageURI}/v1/${imageMode}/w_${width},h_${height},al_c,q_${quality},usm_${usm_r.toFixed(2)}_${usm_a.toFixed(2)}_${usm_t.toFixed(2)}/${imageURI}`;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=image-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WIX_MEDIA_STATIC","normalizeImageUrl","imageUrl","startsWith","cleanUrl","slice","getResizedImageUrl","imageURI","width","height","params","getResizedImagePartialUrl","baseUrl","_temp","usm_r","usm_a","usm_t","quality","imageMode","includes","Math","round","HIGH_QUALITY_RESOLUTION","MEDIUM_QUALITY_RESOLUTION","dimension","toFixed"],"sources":["../../../src/utils/image-utils.ts"],"sourcesContent":["export type TParams = {\n quality?: number;\n usm_r?: number;\n usm_a?: number;\n usm_t?: number;\n imageMode?: 'fit' | 'fill';\n};\n\nconst WIX_MEDIA_STATIC = 'https://static.wixstatic.com/media/';\n\nexport function normalizeImageUrl(imageUrl: string): string {\n if (!imageUrl) {\n return imageUrl;\n }\n\n if (\n imageUrl.startsWith('http://') ||\n imageUrl.startsWith('https://') ||\n imageUrl.startsWith('data:') ||\n imageUrl.startsWith('blob:')\n ) {\n return imageUrl;\n }\n\n if (imageUrl.startsWith(WIX_MEDIA_STATIC)) {\n return imageUrl;\n }\n\n const cleanUrl = imageUrl.startsWith('/') ? imageUrl.slice(1) : imageUrl;\n return `${WIX_MEDIA_STATIC}${cleanUrl}`;\n}\n\nexport function getResizedImageUrl(\n imageURI: string,\n width: number,\n height: number,\n params?: TParams,\n) {\n return getResizedImagePartialUrl(\n WIX_MEDIA_STATIC,\n imageURI,\n width,\n height,\n params,\n );\n}\n\nfunction getResizedImagePartialUrl(\n baseUrl: string,\n imageURI: string,\n width: number,\n height: number,\n {\n usm_r = 0.66,\n usm_a = 1.0,\n usm_t = 0.01,\n quality,\n imageMode = 'fit',\n }: TParams = {},\n) {\n if (imageURI.includes('/')) {\n return imageURI;\n }\n\n width = Math.round(width);\n height = Math.round(height);\n\n if (!quality) {\n const HIGH_QUALITY_RESOLUTION = 1400 * 1400;\n const MEDIUM_QUALITY_RESOLUTION = 600 * 600;\n const dimension = width * height;\n if (dimension > HIGH_QUALITY_RESOLUTION) {\n quality = 90;\n } else if (dimension > MEDIUM_QUALITY_RESOLUTION) {\n quality = 85;\n } else {\n quality = 80;\n }\n }\n\n return `${baseUrl}${imageURI}/v1/${imageMode}/w_${width},h_${height},al_c,q_${quality},usm_${usm_r.toFixed(\n 2,\n )}_${usm_a.toFixed(2)}_${usm_t.toFixed(2)}/${imageURI}`;\n}\n"],"mappings":"AAQA,MAAMA,gBAAgB,GAAG,qCAAqC;AAE9D,OAAO,SAASC,iBAAiBA,CAACC,QAAgB,EAAU;EAC1D,IAAI,CAACA,QAAQ,EAAE;IACb,OAAOA,QAAQ;EACjB;EAEA,IACEA,QAAQ,CAACC,UAAU,CAAC,SAAS,CAAC,IAC9BD,QAAQ,CAACC,UAAU,CAAC,UAAU,CAAC,IAC/BD,QAAQ,CAACC,UAAU,CAAC,OAAO,CAAC,IAC5BD,QAAQ,CAACC,UAAU,CAAC,OAAO,CAAC,EAC5B;IACA,OAAOD,QAAQ;EACjB;EAEA,IAAIA,QAAQ,CAACC,UAAU,CAACH,gBAAgB,CAAC,EAAE;IACzC,OAAOE,QAAQ;EACjB;EAEA,MAAME,QAAQ,GAAGF,QAAQ,CAACC,UAAU,CAAC,GAAG,CAAC,GAAGD,QAAQ,CAACG,KAAK,CAAC,CAAC,CAAC,GAAGH,QAAQ;EACxE,OAAO,GAAGF,gBAAgB,GAAGI,QAAQ,EAAE;AACzC;AAEA,OAAO,SAASE,kBAAkBA,CAChCC,QAAgB,EAChBC,KAAa,EACbC,MAAc,EACdC,MAAgB,EAChB;EACA,OAAOC,yBAAyB,CAC9BX,gBAAgB,EAChBO,QAAQ,EACRC,KAAK,EACLC,MAAM,EACNC,MACF,CAAC;AACH;AAEA,SAASC,yBAAyBA,CAChCC,OAAe,EACfL,QAAgB,EAChBC,KAAa,EACbC,MAAc,EAAAI,KAAA,EAQd;EAAA,IAPA;IACEC,KAAK,GAAG,IAAI;IACZC,KAAK,GAAG,GAAG;IACXC,KAAK,GAAG,IAAI;IACZC,OAAO;IACPC,SAAS,GAAG;EACL,CAAC,GAAAL,KAAA,cAAG,CAAC,CAAC,GAAAA,KAAA;EAEf,IAAIN,QAAQ,CAACY,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC1B,OAAOZ,QAAQ;EACjB;EAEAC,KAAK,GAAGY,IAAI,CAACC,KAAK,CAACb,KAAK,CAAC;EACzBC,MAAM,GAAGW,IAAI,CAACC,KAAK,CAACZ,MAAM,CAAC;EAE3B,IAAI,CAACQ,OAAO,EAAE;IACZ,MAAMK,uBAAuB,GAAG,IAAI,GAAG,IAAI;IAC3C,MAAMC,yBAAyB,GAAG,GAAG,GAAG,GAAG;IAC3C,MAAMC,SAAS,GAAGhB,KAAK,GAAGC,MAAM;IAChC,IAAIe,SAAS,GAAGF,uBAAuB,EAAE;MACvCL,OAAO,GAAG,EAAE;IACd,CAAC,MAAM,IAAIO,SAAS,GAAGD,yBAAyB,EAAE;MAChDN,OAAO,GAAG,EAAE;IACd,CAAC,MAAM;MACLA,OAAO,GAAG,EAAE;IACd;EACF;EAEA,OAAO,GAAGL,OAAO,GAAGL,QAAQ,OAAOW,SAAS,MAAMV,KAAK,MAAMC,MAAM,WAAWQ,OAAO,QAAQH,KAAK,CAACW,OAAO,CACxG,CACF,CAAC,IAAIV,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC,IAAIT,KAAK,CAACS,OAAO,CAAC,CAAC,CAAC,IAAIlB,QAAQ,EAAE;AACzD","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Intent } from '../registry/Intent.js';
|
|
2
|
+
import { parseHtmlComment } from './htmlCommentParser.js';
|
|
3
|
+
const INTENT_VALUES = new Set(Object.values(Intent));
|
|
4
|
+
function normalizeIntent(intent) {
|
|
5
|
+
if (!intent) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
const normalized = intent.trim().toUpperCase();
|
|
9
|
+
return INTENT_VALUES.has(normalized) ? normalized : null;
|
|
10
|
+
}
|
|
11
|
+
function normalizeState(state) {
|
|
12
|
+
const normalized = state == null ? void 0 : state.trim().toLowerCase();
|
|
13
|
+
return normalized === 'partial' ? 'partial' : 'full';
|
|
14
|
+
}
|
|
15
|
+
export function extractIntentFromMarkdown(markdown) {
|
|
16
|
+
if (!markdown) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const match = markdown.match(/^\s*<!--[\s\S]*?-->/);
|
|
20
|
+
if (!match) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const comment = match[0];
|
|
24
|
+
const metadata = parseHtmlComment(comment);
|
|
25
|
+
const intent = normalizeIntent(metadata.intent);
|
|
26
|
+
if (!intent) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
intent,
|
|
31
|
+
stage: metadata.stage,
|
|
32
|
+
reason: metadata.reason,
|
|
33
|
+
state: normalizeState(metadata.state)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function getIntentFromMarkdown(markdown, defaultIntent) {
|
|
37
|
+
if (defaultIntent === void 0) {
|
|
38
|
+
defaultIntent = Intent.DISCOVERY;
|
|
39
|
+
}
|
|
40
|
+
return extractIntentFromMarkdown(markdown) ?? {
|
|
41
|
+
intent: defaultIntent,
|
|
42
|
+
state: 'full'
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=intentExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Intent","parseHtmlComment","INTENT_VALUES","Set","Object","values","normalizeIntent","intent","normalized","trim","toUpperCase","has","normalizeState","state","toLowerCase","extractIntentFromMarkdown","markdown","match","comment","metadata","stage","reason","getIntentFromMarkdown","defaultIntent","DISCOVERY"],"sources":["../../../src/utils/intentExtractor.ts"],"sourcesContent":["import { Intent } from '../registry/Intent';\nimport { parseHtmlComment } from './htmlCommentParser';\n\nexport type ResponseState = 'full' | 'partial';\n\nexport interface IntentInfo {\n intent: Intent;\n stage?: string;\n reason?: string;\n state?: ResponseState;\n}\n\nconst INTENT_VALUES = new Set<Intent>(Object.values(Intent) as Intent[]);\n\nfunction normalizeIntent(intent?: string): Intent | null {\n if (!intent) {\n return null;\n }\n const normalized = intent.trim().toUpperCase() as Intent;\n return INTENT_VALUES.has(normalized) ? normalized : null;\n}\n\nfunction normalizeState(state?: string): ResponseState {\n const normalized = state?.trim().toLowerCase();\n return normalized === 'partial' ? 'partial' : 'full';\n}\n\nexport function extractIntentFromMarkdown(markdown: string): IntentInfo | null {\n if (!markdown) {\n return null;\n }\n\n const match = markdown.match(/^\\s*<!--[\\s\\S]*?-->/);\n if (!match) {\n return null;\n }\n\n const comment = match[0];\n const metadata = parseHtmlComment(comment);\n const intent = normalizeIntent(metadata.intent);\n\n if (!intent) {\n return null;\n }\n\n return {\n intent,\n stage: metadata.stage,\n reason: metadata.reason,\n state: normalizeState(metadata.state),\n };\n}\n\nexport function getIntentFromMarkdown(\n markdown: string,\n defaultIntent: Intent = Intent.DISCOVERY,\n): IntentInfo {\n return (\n extractIntentFromMarkdown(markdown) ?? {\n intent: defaultIntent,\n state: 'full',\n }\n );\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,gBAAgB,QAAQ,qBAAqB;AAWtD,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAASC,MAAM,CAACC,MAAM,CAACL,MAAM,CAAa,CAAC;AAExE,SAASM,eAAeA,CAACC,MAAe,EAAiB;EACvD,IAAI,CAACA,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EACA,MAAMC,UAAU,GAAGD,MAAM,CAACE,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAW;EACxD,OAAOR,aAAa,CAACS,GAAG,CAACH,UAAU,CAAC,GAAGA,UAAU,GAAG,IAAI;AAC1D;AAEA,SAASI,cAAcA,CAACC,KAAc,EAAiB;EACrD,MAAML,UAAU,GAAGK,KAAK,oBAALA,KAAK,CAAEJ,IAAI,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;EAC9C,OAAON,UAAU,KAAK,SAAS,GAAG,SAAS,GAAG,MAAM;AACtD;AAEA,OAAO,SAASO,yBAAyBA,CAACC,QAAgB,EAAqB;EAC7E,IAAI,CAACA,QAAQ,EAAE;IACb,OAAO,IAAI;EACb;EAEA,MAAMC,KAAK,GAAGD,QAAQ,CAACC,KAAK,CAAC,qBAAqB,CAAC;EACnD,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAEA,MAAMC,OAAO,GAAGD,KAAK,CAAC,CAAC,CAAC;EACxB,MAAME,QAAQ,GAAGlB,gBAAgB,CAACiB,OAAO,CAAC;EAC1C,MAAMX,MAAM,GAAGD,eAAe,CAACa,QAAQ,CAACZ,MAAM,CAAC;EAE/C,IAAI,CAACA,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EAEA,OAAO;IACLA,MAAM;IACNa,KAAK,EAAED,QAAQ,CAACC,KAAK;IACrBC,MAAM,EAAEF,QAAQ,CAACE,MAAM;IACvBR,KAAK,EAAED,cAAc,CAACO,QAAQ,CAACN,KAAK;EACtC,CAAC;AACH;AAEA,OAAO,SAASS,qBAAqBA,CACnCN,QAAgB,EAChBO,aAAqB,EACT;EAAA,IADZA,aAAqB;IAArBA,aAAqB,GAAGvB,MAAM,CAACwB,SAAS;EAAA;EAExC,OACET,yBAAyB,CAACC,QAAQ,CAAC,IAAI;IACrCT,MAAM,EAAEgB,aAAa;IACrBV,KAAK,EAAE;EACT,CAAC;AAEL","ignoreList":[]}
|