@wix/web5-core 1.56.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/cjs/client/clientBundleOverride.js +48 -0
- package/dist/cjs/client/clientBundleOverride.js.map +1 -0
- package/dist/cjs/client/devEnvironment.js +4 -0
- package/dist/cjs/client/devEnvironment.js.map +1 -0
- package/dist/cjs/client/loadClientBundle.js +85 -0
- package/dist/cjs/client/loadClientBundle.js.map +1 -0
- package/dist/cjs/client/wixAuthFetch.js +73 -0
- package/dist/cjs/client/wixAuthFetch.js.map +1 -0
- package/dist/cjs/clients.js +15 -0
- package/dist/cjs/clients.js.map +1 -0
- package/dist/cjs/color/colorUtils.js +126 -0
- package/dist/cjs/color/colorUtils.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js +67 -0
- package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js +141 -0
- package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js +85 -0
- package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js +171 -0
- package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js +81 -0
- package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js +29 -0
- package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js +119 -0
- package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js +75 -0
- package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js +124 -0
- package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js +209 -0
- package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js +19 -0
- package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js +114 -0
- package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js +136 -0
- package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js +18 -0
- package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js +20 -0
- package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js +65 -0
- package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/index.js +48 -0
- package/dist/cjs/component/componentDefinitions/index.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js +86 -0
- package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/parse-utils.js +434 -0
- package/dist/cjs/component/componentDefinitions/parse-utils.js.map +1 -0
- package/dist/cjs/component/componentDefinitions/specHelpers.js +36 -0
- package/dist/cjs/component/componentDefinitions/specHelpers.js.map +1 -0
- package/dist/cjs/component/componentParser.js +365 -0
- package/dist/cjs/component/componentParser.js.map +1 -0
- package/dist/cjs/component/diagnosticTypes.js +30 -0
- package/dist/cjs/component/diagnosticTypes.js.map +1 -0
- package/dist/cjs/component/parser-types.js +4 -0
- package/dist/cjs/component/parser-types.js.map +1 -0
- package/dist/cjs/component/section-definition.js +4 -0
- package/dist/cjs/component/section-definition.js.map +1 -0
- package/dist/cjs/component/types.js +4 -0
- package/dist/cjs/component/types.js.map +1 -0
- package/dist/cjs/components/placement/PlacementPayloadContext.js +29 -0
- package/dist/cjs/components/placement/PlacementPayloadContext.js.map +1 -0
- package/dist/cjs/components/placement/PlacementResponseRenderer.css +269 -0
- package/dist/cjs/components/placement/PlacementResponseRenderer.js +259 -0
- package/dist/cjs/components/placement/PlacementResponseRenderer.js.map +1 -0
- package/dist/cjs/components/placement/buildPlacementDependencies.js +214 -0
- package/dist/cjs/components/placement/buildPlacementDependencies.js.map +1 -0
- package/dist/cjs/components/ui/BottomContainer.js +26 -0
- package/dist/cjs/components/ui/BottomContainer.js.map +1 -0
- package/dist/cjs/components/ui/CalloutBlock.js +156 -0
- package/dist/cjs/components/ui/CalloutBlock.js.map +1 -0
- package/dist/cjs/components/ui/Disclaimer.css +35 -0
- package/dist/cjs/components/ui/Disclaimer.js +56 -0
- package/dist/cjs/components/ui/Disclaimer.js.map +1 -0
- package/dist/cjs/components/ui/FeedbackBar.css +267 -0
- package/dist/cjs/components/ui/FeedbackBar.js +417 -0
- package/dist/cjs/components/ui/FeedbackBar.js.map +1 -0
- package/dist/cjs/components/ui/Loader.js +73 -0
- package/dist/cjs/components/ui/Loader.js.map +1 -0
- package/dist/cjs/components/ui/MarkdownText.js +419 -0
- package/dist/cjs/components/ui/MarkdownText.js.map +1 -0
- package/dist/cjs/components/ui/OptimizedImage.js +414 -0
- package/dist/cjs/components/ui/OptimizedImage.js.map +1 -0
- package/dist/cjs/components/ui/PlacementLoader.css +101 -0
- package/dist/cjs/components/ui/PlacementLoader.js +62 -0
- package/dist/cjs/components/ui/PlacementLoader.js.map +1 -0
- package/dist/cjs/components/ui/PromptEntryEmptyState.css +172 -0
- package/dist/cjs/components/ui/PromptEntryEmptyState.js +96 -0
- package/dist/cjs/components/ui/PromptEntryEmptyState.js.map +1 -0
- package/dist/cjs/components/ui/SearchSection.css +538 -0
- package/dist/cjs/components/ui/SearchSection.js +550 -0
- package/dist/cjs/components/ui/SearchSection.js.map +1 -0
- package/dist/cjs/components/ui/SectionSkeleton.css +109 -0
- package/dist/cjs/components/ui/SectionSkeleton.js +190 -0
- package/dist/cjs/components/ui/SectionSkeleton.js.map +1 -0
- package/dist/cjs/components/ui/SmartIcon.js +122 -0
- package/dist/cjs/components/ui/SmartIcon.js.map +1 -0
- package/dist/cjs/components/ui/UnifiedLink.js +169 -0
- package/dist/cjs/components/ui/UnifiedLink.js.map +1 -0
- package/dist/cjs/components/ui/UserQuery.js +348 -0
- package/dist/cjs/components/ui/UserQuery.js.map +1 -0
- package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js +37 -0
- package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/ArrowUpIcon.js +61 -0
- package/dist/cjs/components/ui/icons/ArrowUpIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/CheckIcon.js +37 -0
- package/dist/cjs/components/ui/icons/CheckIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/CommentIcon.js +34 -0
- package/dist/cjs/components/ui/icons/CommentIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/PlusIcon.js +51 -0
- package/dist/cjs/components/ui/icons/PlusIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/RedoIcon.js +51 -0
- package/dist/cjs/components/ui/icons/RedoIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/ShareIcon.js +81 -0
- package/dist/cjs/components/ui/icons/ShareIcon.js.map +1 -0
- package/dist/cjs/components/ui/icons/UndoIcon.js +51 -0
- package/dist/cjs/components/ui/icons/UndoIcon.js.map +1 -0
- package/dist/cjs/components/ui/table.js +159 -0
- package/dist/cjs/components/ui/table.js.map +1 -0
- package/dist/cjs/context/ChipsContext.js +12 -0
- package/dist/cjs/context/ChipsContext.js.map +1 -0
- package/dist/cjs/context/ComponentDependenciesContext.js +32 -0
- package/dist/cjs/context/ComponentDependenciesContext.js.map +1 -0
- package/dist/cjs/entity/defaultExtractor.js +117 -0
- package/dist/cjs/entity/defaultExtractor.js.map +1 -0
- package/dist/cjs/entity/enrichEntitiesFromPayload.js +39 -0
- package/dist/cjs/entity/enrichEntitiesFromPayload.js.map +1 -0
- package/dist/cjs/entity/fetchEntityListData.js +78 -0
- package/dist/cjs/entity/fetchEntityListData.js.map +1 -0
- package/dist/cjs/entity/index.js +41 -0
- package/dist/cjs/entity/index.js.map +1 -0
- package/dist/cjs/entity/types.js +4 -0
- package/dist/cjs/entity/types.js.map +1 -0
- package/dist/cjs/errors/conversationErrorTypes.js +56 -0
- package/dist/cjs/errors/conversationErrorTypes.js.map +1 -0
- package/dist/cjs/errors/errorTemplates.js +86 -0
- package/dist/cjs/errors/errorTemplates.js.map +1 -0
- package/dist/cjs/errors/index.js +13 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/external-types.d.js +2 -0
- package/dist/cjs/external-types.d.js.map +1 -0
- package/dist/cjs/featureToggles/FeatureToggleContext.js +44 -0
- package/dist/cjs/featureToggles/FeatureToggleContext.js.map +1 -0
- package/dist/cjs/hooks/useConversation.js +10 -0
- package/dist/cjs/hooks/useConversation.js.map +1 -0
- package/dist/cjs/hooks/useDebugImageContext.js +10 -0
- package/dist/cjs/hooks/useDebugImageContext.js.map +1 -0
- package/dist/cjs/hooks/useEntityTransforms.js +10 -0
- package/dist/cjs/hooks/useEntityTransforms.js.map +1 -0
- package/dist/cjs/hooks/useMarkdownUtils.js +10 -0
- package/dist/cjs/hooks/useMarkdownUtils.js.map +1 -0
- package/dist/cjs/hooks/useResolveGenericEntityData.js +10 -0
- package/dist/cjs/hooks/useResolveGenericEntityData.js.map +1 -0
- package/dist/cjs/hooks/useResolveSearchSpringEntityData.js +146 -0
- package/dist/cjs/hooks/useResolveSearchSpringEntityData.js.map +1 -0
- package/dist/cjs/hooks/useResolveShopifyEntityData.js +190 -0
- package/dist/cjs/hooks/useResolveShopifyEntityData.js.map +1 -0
- package/dist/cjs/hooks/useResolvedImageSources.js +160 -0
- package/dist/cjs/hooks/useResolvedImageSources.js.map +1 -0
- package/dist/cjs/hooks/useWeb5Link.js +10 -0
- package/dist/cjs/hooks/useWeb5Link.js.map +1 -0
- package/dist/cjs/image/contextualImageTypes.js +4 -0
- package/dist/cjs/image/contextualImageTypes.js.map +1 -0
- package/dist/cjs/image/imageSearchFilterTypes.js +19 -0
- package/dist/cjs/image/imageSearchFilterTypes.js.map +1 -0
- package/dist/cjs/image/imageSearchFilters.js +22 -0
- package/dist/cjs/image/imageSearchFilters.js.map +1 -0
- package/dist/cjs/index.js +285 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/utils.js +33 -0
- package/dist/cjs/lib/utils.js.map +1 -0
- package/dist/cjs/markdownBlocks.js +645 -0
- package/dist/cjs/markdownBlocks.js.map +1 -0
- package/dist/cjs/match/astToParts.js +374 -0
- package/dist/cjs/match/astToParts.js.map +1 -0
- package/dist/cjs/match/extractProps.js +654 -0
- package/dist/cjs/match/extractProps.js.map +1 -0
- package/dist/cjs/match/index.js +11 -0
- package/dist/cjs/match/index.js.map +1 -0
- package/dist/cjs/match/matchAllSections.js +34 -0
- package/dist/cjs/match/matchAllSections.js.map +1 -0
- package/dist/cjs/match/matchMarkdown.js +39 -0
- package/dist/cjs/match/matchMarkdown.js.map +1 -0
- package/dist/cjs/parts/parts.js +183 -0
- package/dist/cjs/parts/parts.js.map +1 -0
- package/dist/cjs/patternAnalyzer/conflictDetector.js +103 -0
- package/dist/cjs/patternAnalyzer/conflictDetector.js.map +1 -0
- package/dist/cjs/patternAnalyzer/index.js +40 -0
- package/dist/cjs/patternAnalyzer/index.js.map +1 -0
- package/dist/cjs/patternAnalyzer/markdownGenerator.js +347 -0
- package/dist/cjs/patternAnalyzer/markdownGenerator.js.map +1 -0
- package/dist/cjs/patternAnalyzer/mergeDetector.js +505 -0
- package/dist/cjs/patternAnalyzer/mergeDetector.js.map +1 -0
- package/dist/cjs/patternAnalyzer/parserValidator.js +56 -0
- package/dist/cjs/patternAnalyzer/parserValidator.js.map +1 -0
- package/dist/cjs/patternAnalyzer/patternWriter.js +106 -0
- package/dist/cjs/patternAnalyzer/patternWriter.js.map +1 -0
- package/dist/cjs/patternAnalyzer/run.js +140 -0
- package/dist/cjs/patternAnalyzer/run.js.map +1 -0
- package/dist/cjs/patternAnalyzer/types.js +4 -0
- package/dist/cjs/patternAnalyzer/types.js.map +1 -0
- package/dist/cjs/patternValidator/ERROR_MESSAGES.md +110 -0
- package/dist/cjs/patternValidator/README.md +757 -0
- package/dist/cjs/patternValidator/automaton.js +349 -0
- package/dist/cjs/patternValidator/automaton.js.map +1 -0
- package/dist/cjs/patternValidator/index.js +196 -0
- package/dist/cjs/patternValidator/index.js.map +1 -0
- package/dist/cjs/patternValidator/lexer.js +218 -0
- package/dist/cjs/patternValidator/lexer.js.map +1 -0
- package/dist/cjs/patternValidator/matcher.js +722 -0
- package/dist/cjs/patternValidator/matcher.js.map +1 -0
- package/dist/cjs/patternValidator/parser.js +533 -0
- package/dist/cjs/patternValidator/parser.js.map +1 -0
- package/dist/cjs/patternValidator/types.js +4 -0
- package/dist/cjs/patternValidator/types.js.map +1 -0
- package/dist/cjs/patternValidator/validator.test.js +1277 -0
- package/dist/cjs/patternValidator/validator.test.js.map +1 -0
- package/dist/cjs/registry/ComponentRegistry.js +438 -0
- package/dist/cjs/registry/ComponentRegistry.js.map +1 -0
- package/dist/cjs/registry/Intent.js +19 -0
- package/dist/cjs/registry/Intent.js.map +1 -0
- package/dist/cjs/registry/index.js +9 -0
- package/dist/cjs/registry/index.js.map +1 -0
- package/dist/cjs/registry/types.js +4 -0
- package/dist/cjs/registry/types.js.map +1 -0
- package/dist/cjs/services/cart/addToCart.js +147 -0
- package/dist/cjs/services/cart/addToCart.js.map +1 -0
- package/dist/cjs/services/cart/index.js +7 -0
- package/dist/cjs/services/cart/index.js.map +1 -0
- package/dist/cjs/services/searchspring/index.js +10 -0
- package/dist/cjs/services/searchspring/index.js.map +1 -0
- package/dist/cjs/services/searchspring/searchSpringClient.js +49 -0
- package/dist/cjs/services/searchspring/searchSpringClient.js.map +1 -0
- package/dist/cjs/services/searchspring/transformSSProduct.js +70 -0
- package/dist/cjs/services/searchspring/transformSSProduct.js.map +1 -0
- package/dist/cjs/services/searchspring/types.js +4 -0
- package/dist/cjs/services/searchspring/types.js.map +1 -0
- package/dist/cjs/services/shopify/globals.d.js +4 -0
- package/dist/cjs/services/shopify/globals.d.js.map +1 -0
- package/dist/cjs/services/shopify/index.js +22 -0
- package/dist/cjs/services/shopify/index.js.map +1 -0
- package/dist/cjs/services/shopify/queries.js +214 -0
- package/dist/cjs/services/shopify/queries.js.map +1 -0
- package/dist/cjs/services/shopify/resolveStoreDomain.js +28 -0
- package/dist/cjs/services/shopify/resolveStoreDomain.js.map +1 -0
- package/dist/cjs/services/shopify/shopifyEntityResolver.js +109 -0
- package/dist/cjs/services/shopify/shopifyEntityResolver.js.map +1 -0
- package/dist/cjs/services/shopify/shopifyStorefrontClient.js +58 -0
- package/dist/cjs/services/shopify/shopifyStorefrontClient.js.map +1 -0
- package/dist/cjs/services/shopify/transformShopifyEntity.js +137 -0
- package/dist/cjs/services/shopify/transformShopifyEntity.js.map +1 -0
- package/dist/cjs/services/shopify/types.js +4 -0
- package/dist/cjs/services/shopify/types.js.map +1 -0
- package/dist/cjs/styles/base-tokens.css +152 -0
- package/dist/cjs/styles/base-utilities.css +424 -0
- package/dist/cjs/styles/components.css +6 -0
- package/dist/cjs/styles/prompt-input-tokens.css +136 -0
- package/dist/cjs/styles/tailwind-theme.css +138 -0
- package/dist/cjs/test-types.d.js +2 -0
- package/dist/cjs/test-types.d.js.map +1 -0
- package/dist/cjs/testUtils.js +25 -0
- package/dist/cjs/testUtils.js.map +1 -0
- package/dist/cjs/types/answerUpdatedEvent.js +20 -0
- package/dist/cjs/types/answerUpdatedEvent.js.map +1 -0
- package/dist/cjs/types/blog.js +4 -0
- package/dist/cjs/types/blog.js.map +1 -0
- package/dist/cjs/types/callout.js +6 -0
- package/dist/cjs/types/callout.js.map +1 -0
- package/dist/cjs/types/dependencies.js +4 -0
- package/dist/cjs/types/dependencies.js.map +1 -0
- package/dist/cjs/types/entity.js +4 -0
- package/dist/cjs/types/entity.js.map +1 -0
- package/dist/cjs/types/link-types.js +62 -0
- package/dist/cjs/types/link-types.js.map +1 -0
- package/dist/cjs/types/page-section.js +4 -0
- package/dist/cjs/types/page-section.js.map +1 -0
- package/dist/cjs/types/placement.js +4 -0
- package/dist/cjs/types/placement.js.map +1 -0
- package/dist/cjs/types/redirectEvent.js +27 -0
- package/dist/cjs/types/redirectEvent.js.map +1 -0
- package/dist/cjs/types/userQueryEvent.js +19 -0
- package/dist/cjs/types/userQueryEvent.js.map +1 -0
- package/dist/cjs/utils/analyticsEvents.js +91 -0
- package/dist/cjs/utils/analyticsEvents.js.map +1 -0
- package/dist/cjs/utils/componentTracking.js +90 -0
- package/dist/cjs/utils/componentTracking.js.map +1 -0
- package/dist/cjs/utils/contentKeywordMatcher.js +56 -0
- package/dist/cjs/utils/contentKeywordMatcher.js.map +1 -0
- package/dist/cjs/utils/conversationApi.js +52 -0
- package/dist/cjs/utils/conversationApi.js.map +1 -0
- package/dist/cjs/utils/conversationMode.js +23 -0
- package/dist/cjs/utils/conversationMode.js.map +1 -0
- package/dist/cjs/utils/diagnosticsCollector.js +58 -0
- package/dist/cjs/utils/diagnosticsCollector.js.map +1 -0
- package/dist/cjs/utils/entityLinkParser.js +256 -0
- package/dist/cjs/utils/entityLinkParser.js.map +1 -0
- package/dist/cjs/utils/htmlCommentParser.js +122 -0
- package/dist/cjs/utils/htmlCommentParser.js.map +1 -0
- package/dist/cjs/utils/image-utils.js +49 -0
- package/dist/cjs/utils/image-utils.js.map +1 -0
- package/dist/cjs/utils/intentExtractor.js +47 -0
- package/dist/cjs/utils/intentExtractor.js.map +1 -0
- package/dist/cjs/utils/markdownPreprocessor.js +268 -0
- package/dist/cjs/utils/markdownPreprocessor.js.map +1 -0
- package/dist/cjs/utils/navigationStack.js +35 -0
- package/dist/cjs/utils/navigationStack.js.map +1 -0
- package/dist/cjs/utils/nodeMatchers.js +43 -0
- package/dist/cjs/utils/nodeMatchers.js.map +1 -0
- package/dist/cjs/utils/propsExtractor.js +66 -0
- package/dist/cjs/utils/propsExtractor.js.map +1 -0
- package/dist/cjs/utils/sessionManager.js +161 -0
- package/dist/cjs/utils/sessionManager.js.map +1 -0
- package/dist/cjs/utils/unifiedMarkdownParser.js +44 -0
- package/dist/cjs/utils/unifiedMarkdownParser.js.map +1 -0
- package/dist/cjs/utils/web5LinkValidator.js +56 -0
- package/dist/cjs/utils/web5LinkValidator.js.map +1 -0
- package/dist/cjs/utils/web5LinkValidator.test.js +115 -0
- package/dist/cjs/utils/web5LinkValidator.test.js.map +1 -0
- package/dist/esm/client/clientBundleOverride.js +43 -0
- package/dist/esm/client/clientBundleOverride.js.map +1 -0
- package/dist/esm/client/devEnvironment.js +2 -0
- package/dist/esm/client/devEnvironment.js.map +1 -0
- package/dist/esm/client/loadClientBundle.js +82 -0
- package/dist/esm/client/loadClientBundle.js.map +1 -0
- package/dist/esm/client/wixAuthFetch.js +68 -0
- package/dist/esm/client/wixAuthFetch.js.map +1 -0
- package/dist/esm/clients.js +11 -0
- package/dist/esm/clients.js.map +1 -0
- package/dist/esm/color/colorUtils.js +118 -0
- package/dist/esm/color/colorUtils.js.map +1 -0
- package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js +61 -0
- package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js +135 -0
- package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js +79 -0
- package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js +165 -0
- package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js +75 -0
- package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js +23 -0
- package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js +113 -0
- package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js +69 -0
- package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js +119 -0
- package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js +203 -0
- package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js +13 -0
- package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js +108 -0
- package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js +130 -0
- package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js +12 -0
- package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js +14 -0
- package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js +59 -0
- package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/index.js +45 -0
- package/dist/esm/component/componentDefinitions/index.js.map +1 -0
- package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js +80 -0
- package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
- package/dist/esm/component/componentDefinitions/parse-utils.js +412 -0
- package/dist/esm/component/componentDefinitions/parse-utils.js.map +1 -0
- package/dist/esm/component/componentDefinitions/specHelpers.js +31 -0
- package/dist/esm/component/componentDefinitions/specHelpers.js.map +1 -0
- package/dist/esm/component/componentParser.js +358 -0
- package/dist/esm/component/componentParser.js.map +1 -0
- package/dist/esm/component/diagnosticTypes.js +26 -0
- package/dist/esm/component/diagnosticTypes.js.map +1 -0
- package/dist/esm/component/parser-types.js +2 -0
- package/dist/esm/component/parser-types.js.map +1 -0
- package/dist/esm/component/section-definition.js +2 -0
- package/dist/esm/component/section-definition.js.map +1 -0
- package/dist/esm/component/types.js +2 -0
- package/dist/esm/component/types.js.map +1 -0
- package/dist/esm/components/placement/PlacementPayloadContext.js +24 -0
- package/dist/esm/components/placement/PlacementPayloadContext.js.map +1 -0
- package/dist/esm/components/placement/PlacementResponseRenderer.css +269 -0
- package/dist/esm/components/placement/PlacementResponseRenderer.js +173 -0
- package/dist/esm/components/placement/PlacementResponseRenderer.js.map +1 -0
- package/dist/esm/components/placement/buildPlacementDependencies.js +212 -0
- package/dist/esm/components/placement/buildPlacementDependencies.js.map +1 -0
- package/dist/esm/components/ui/BottomContainer.js +14 -0
- package/dist/esm/components/ui/BottomContainer.js.map +1 -0
- package/dist/esm/components/ui/CalloutBlock.js +118 -0
- package/dist/esm/components/ui/CalloutBlock.js.map +1 -0
- package/dist/esm/components/ui/Disclaimer.css +35 -0
- package/dist/esm/components/ui/Disclaimer.js +32 -0
- package/dist/esm/components/ui/Disclaimer.js.map +1 -0
- package/dist/esm/components/ui/FeedbackBar.css +267 -0
- package/dist/esm/components/ui/FeedbackBar.js +221 -0
- package/dist/esm/components/ui/FeedbackBar.js.map +1 -0
- package/dist/esm/components/ui/Loader.js +43 -0
- package/dist/esm/components/ui/Loader.js.map +1 -0
- package/dist/esm/components/ui/MarkdownText.js +283 -0
- package/dist/esm/components/ui/MarkdownText.js.map +1 -0
- package/dist/esm/components/ui/OptimizedImage.js +354 -0
- package/dist/esm/components/ui/OptimizedImage.js.map +1 -0
- package/dist/esm/components/ui/PlacementLoader.css +101 -0
- package/dist/esm/components/ui/PlacementLoader.js +28 -0
- package/dist/esm/components/ui/PlacementLoader.js.map +1 -0
- package/dist/esm/components/ui/PromptEntryEmptyState.css +172 -0
- package/dist/esm/components/ui/PromptEntryEmptyState.js +36 -0
- package/dist/esm/components/ui/PromptEntryEmptyState.js.map +1 -0
- package/dist/esm/components/ui/SearchSection.css +538 -0
- package/dist/esm/components/ui/SearchSection.js +317 -0
- package/dist/esm/components/ui/SearchSection.js.map +1 -0
- package/dist/esm/components/ui/SectionSkeleton.css +109 -0
- package/dist/esm/components/ui/SectionSkeleton.js +100 -0
- package/dist/esm/components/ui/SectionSkeleton.js.map +1 -0
- package/dist/esm/components/ui/SmartIcon.js +91 -0
- package/dist/esm/components/ui/SmartIcon.js.map +1 -0
- package/dist/esm/components/ui/UnifiedLink.js +105 -0
- package/dist/esm/components/ui/UnifiedLink.js.map +1 -0
- package/dist/esm/components/ui/UserQuery.js +167 -0
- package/dist/esm/components/ui/UserQuery.js.map +1 -0
- package/dist/esm/components/ui/icons/ArrowTopRightIcon.js +17 -0
- package/dist/esm/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/ArrowUpIcon.js +29 -0
- package/dist/esm/components/ui/icons/ArrowUpIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/CheckIcon.js +17 -0
- package/dist/esm/components/ui/icons/CheckIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/CommentIcon.js +15 -0
- package/dist/esm/components/ui/icons/CommentIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/PlusIcon.js +25 -0
- package/dist/esm/components/ui/icons/PlusIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/RedoIcon.js +25 -0
- package/dist/esm/components/ui/icons/RedoIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/ShareIcon.js +37 -0
- package/dist/esm/components/ui/icons/ShareIcon.js.map +1 -0
- package/dist/esm/components/ui/icons/UndoIcon.js +25 -0
- package/dist/esm/components/ui/icons/UndoIcon.js.map +1 -0
- package/dist/esm/components/ui/table.js +92 -0
- package/dist/esm/components/ui/table.js.map +1 -0
- package/dist/esm/context/ChipsContext.js +7 -0
- package/dist/esm/context/ChipsContext.js.map +1 -0
- package/dist/esm/context/ComponentDependenciesContext.js +19 -0
- package/dist/esm/context/ComponentDependenciesContext.js.map +1 -0
- package/dist/esm/entity/defaultExtractor.js +111 -0
- package/dist/esm/entity/defaultExtractor.js.map +1 -0
- package/dist/esm/entity/enrichEntitiesFromPayload.js +35 -0
- package/dist/esm/entity/enrichEntitiesFromPayload.js.map +1 -0
- package/dist/esm/entity/fetchEntityListData.js +76 -0
- package/dist/esm/entity/fetchEntityListData.js.map +1 -0
- package/dist/esm/entity/index.js +29 -0
- package/dist/esm/entity/index.js.map +1 -0
- package/dist/esm/entity/types.js +2 -0
- package/dist/esm/entity/types.js.map +1 -0
- package/dist/esm/errors/conversationErrorTypes.js +50 -0
- package/dist/esm/errors/conversationErrorTypes.js.map +1 -0
- package/dist/esm/errors/errorTemplates.js +81 -0
- package/dist/esm/errors/errorTemplates.js.map +1 -0
- package/dist/esm/errors/index.js +3 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/external-types.d.js +2 -0
- package/dist/esm/external-types.d.js.map +1 -0
- package/dist/esm/featureToggles/FeatureToggleContext.js +30 -0
- package/dist/esm/featureToggles/FeatureToggleContext.js.map +1 -0
- package/dist/esm/hooks/useConversation.js +6 -0
- package/dist/esm/hooks/useConversation.js.map +1 -0
- package/dist/esm/hooks/useDebugImageContext.js +6 -0
- package/dist/esm/hooks/useDebugImageContext.js.map +1 -0
- package/dist/esm/hooks/useEntityTransforms.js +6 -0
- package/dist/esm/hooks/useEntityTransforms.js.map +1 -0
- package/dist/esm/hooks/useMarkdownUtils.js +6 -0
- package/dist/esm/hooks/useMarkdownUtils.js.map +1 -0
- package/dist/esm/hooks/useResolveGenericEntityData.js +6 -0
- package/dist/esm/hooks/useResolveGenericEntityData.js.map +1 -0
- package/dist/esm/hooks/useResolveSearchSpringEntityData.js +146 -0
- package/dist/esm/hooks/useResolveSearchSpringEntityData.js.map +1 -0
- package/dist/esm/hooks/useResolveShopifyEntityData.js +191 -0
- package/dist/esm/hooks/useResolveShopifyEntityData.js.map +1 -0
- package/dist/esm/hooks/useResolvedImageSources.js +169 -0
- package/dist/esm/hooks/useResolvedImageSources.js.map +1 -0
- package/dist/esm/hooks/useWeb5Link.js +6 -0
- package/dist/esm/hooks/useWeb5Link.js.map +1 -0
- package/dist/esm/image/contextualImageTypes.js +2 -0
- package/dist/esm/image/contextualImageTypes.js.map +1 -0
- package/dist/esm/image/imageSearchFilterTypes.js +15 -0
- package/dist/esm/image/imageSearchFilterTypes.js.map +1 -0
- package/dist/esm/image/imageSearchFilters.js +18 -0
- package/dist/esm/image/imageSearchFilters.js.map +1 -0
- package/dist/esm/index.js +152 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/utils.js +33 -0
- package/dist/esm/lib/utils.js.map +1 -0
- package/dist/esm/markdownBlocks.js +641 -0
- package/dist/esm/markdownBlocks.js.map +1 -0
- package/dist/esm/match/astToParts.js +371 -0
- package/dist/esm/match/astToParts.js.map +1 -0
- package/dist/esm/match/extractProps.js +634 -0
- package/dist/esm/match/extractProps.js.map +1 -0
- package/dist/esm/match/index.js +4 -0
- package/dist/esm/match/index.js.map +1 -0
- package/dist/esm/match/matchAllSections.js +31 -0
- package/dist/esm/match/matchAllSections.js.map +1 -0
- package/dist/esm/match/matchMarkdown.js +36 -0
- package/dist/esm/match/matchMarkdown.js.map +1 -0
- package/dist/esm/parts/parts.js +171 -0
- package/dist/esm/parts/parts.js.map +1 -0
- package/dist/esm/patternAnalyzer/conflictDetector.js +99 -0
- package/dist/esm/patternAnalyzer/conflictDetector.js.map +1 -0
- package/dist/esm/patternAnalyzer/index.js +36 -0
- package/dist/esm/patternAnalyzer/index.js.map +1 -0
- package/dist/esm/patternAnalyzer/markdownGenerator.js +344 -0
- package/dist/esm/patternAnalyzer/markdownGenerator.js.map +1 -0
- package/dist/esm/patternAnalyzer/mergeDetector.js +504 -0
- package/dist/esm/patternAnalyzer/mergeDetector.js.map +1 -0
- package/dist/esm/patternAnalyzer/parserValidator.js +52 -0
- package/dist/esm/patternAnalyzer/parserValidator.js.map +1 -0
- package/dist/esm/patternAnalyzer/patternWriter.js +102 -0
- package/dist/esm/patternAnalyzer/patternWriter.js.map +1 -0
- package/dist/esm/patternAnalyzer/run.js +138 -0
- package/dist/esm/patternAnalyzer/run.js.map +1 -0
- package/dist/esm/patternAnalyzer/types.js +2 -0
- package/dist/esm/patternAnalyzer/types.js.map +1 -0
- package/dist/esm/patternValidator/ERROR_MESSAGES.md +110 -0
- package/dist/esm/patternValidator/README.md +757 -0
- package/dist/esm/patternValidator/automaton.js +345 -0
- package/dist/esm/patternValidator/automaton.js.map +1 -0
- package/dist/esm/patternValidator/index.js +190 -0
- package/dist/esm/patternValidator/index.js.map +1 -0
- package/dist/esm/patternValidator/lexer.js +214 -0
- package/dist/esm/patternValidator/lexer.js.map +1 -0
- package/dist/esm/patternValidator/matcher.js +717 -0
- package/dist/esm/patternValidator/matcher.js.map +1 -0
- package/dist/esm/patternValidator/parser.js +531 -0
- package/dist/esm/patternValidator/parser.js.map +1 -0
- package/dist/esm/patternValidator/types.js +2 -0
- package/dist/esm/patternValidator/types.js.map +1 -0
- package/dist/esm/patternValidator/validator.test.js +1275 -0
- package/dist/esm/patternValidator/validator.test.js.map +1 -0
- package/dist/esm/registry/ComponentRegistry.js +435 -0
- package/dist/esm/registry/ComponentRegistry.js.map +1 -0
- package/dist/esm/registry/Intent.js +15 -0
- package/dist/esm/registry/Intent.js.map +1 -0
- package/dist/esm/registry/index.js +3 -0
- package/dist/esm/registry/index.js.map +1 -0
- package/dist/esm/registry/types.js +2 -0
- package/dist/esm/registry/types.js.map +1 -0
- package/dist/esm/services/cart/addToCart.js +146 -0
- package/dist/esm/services/cart/addToCart.js.map +1 -0
- package/dist/esm/services/cart/index.js +2 -0
- package/dist/esm/services/cart/index.js.map +1 -0
- package/dist/esm/services/searchspring/index.js +3 -0
- package/dist/esm/services/searchspring/index.js.map +1 -0
- package/dist/esm/services/searchspring/searchSpringClient.js +44 -0
- package/dist/esm/services/searchspring/searchSpringClient.js.map +1 -0
- package/dist/esm/services/searchspring/transformSSProduct.js +66 -0
- package/dist/esm/services/searchspring/transformSSProduct.js.map +1 -0
- package/dist/esm/services/searchspring/types.js +2 -0
- package/dist/esm/services/searchspring/types.js.map +1 -0
- package/dist/esm/services/shopify/globals.d.js +7 -0
- package/dist/esm/services/shopify/globals.d.js.map +1 -0
- package/dist/esm/services/shopify/index.js +6 -0
- package/dist/esm/services/shopify/index.js.map +1 -0
- package/dist/esm/services/shopify/queries.js +210 -0
- package/dist/esm/services/shopify/queries.js.map +1 -0
- package/dist/esm/services/shopify/resolveStoreDomain.js +25 -0
- package/dist/esm/services/shopify/resolveStoreDomain.js.map +1 -0
- package/dist/esm/services/shopify/shopifyEntityResolver.js +105 -0
- package/dist/esm/services/shopify/shopifyEntityResolver.js.map +1 -0
- package/dist/esm/services/shopify/shopifyStorefrontClient.js +52 -0
- package/dist/esm/services/shopify/shopifyStorefrontClient.js.map +1 -0
- package/dist/esm/services/shopify/transformShopifyEntity.js +130 -0
- package/dist/esm/services/shopify/transformShopifyEntity.js.map +1 -0
- package/dist/esm/services/shopify/types.js +2 -0
- package/dist/esm/services/shopify/types.js.map +1 -0
- package/dist/esm/styles/base-tokens.css +152 -0
- package/dist/esm/styles/base-utilities.css +424 -0
- package/dist/esm/styles/components.css +6 -0
- package/dist/esm/styles/prompt-input-tokens.css +136 -0
- package/dist/esm/styles/tailwind-theme.css +138 -0
- package/dist/esm/test-types.d.js +2 -0
- package/dist/esm/test-types.d.js.map +1 -0
- package/dist/esm/testUtils.js +20 -0
- package/dist/esm/testUtils.js.map +1 -0
- package/dist/esm/types/answerUpdatedEvent.js +16 -0
- package/dist/esm/types/answerUpdatedEvent.js.map +1 -0
- package/dist/esm/types/blog.js +2 -0
- package/dist/esm/types/blog.js.map +1 -0
- package/dist/esm/types/callout.js +2 -0
- package/dist/esm/types/callout.js.map +1 -0
- package/dist/esm/types/dependencies.js +2 -0
- package/dist/esm/types/dependencies.js.map +1 -0
- package/dist/esm/types/entity.js +2 -0
- package/dist/esm/types/entity.js.map +1 -0
- package/dist/esm/types/link-types.js +52 -0
- package/dist/esm/types/link-types.js.map +1 -0
- package/dist/esm/types/page-section.js +2 -0
- package/dist/esm/types/page-section.js.map +1 -0
- package/dist/esm/types/placement.js +2 -0
- package/dist/esm/types/placement.js.map +1 -0
- package/dist/esm/types/redirectEvent.js +23 -0
- package/dist/esm/types/redirectEvent.js.map +1 -0
- package/dist/esm/types/userQueryEvent.js +15 -0
- package/dist/esm/types/userQueryEvent.js.map +1 -0
- package/dist/esm/utils/analyticsEvents.js +84 -0
- package/dist/esm/utils/analyticsEvents.js.map +1 -0
- package/dist/esm/utils/componentTracking.js +84 -0
- package/dist/esm/utils/componentTracking.js.map +1 -0
- package/dist/esm/utils/contentKeywordMatcher.js +50 -0
- package/dist/esm/utils/contentKeywordMatcher.js.map +1 -0
- package/dist/esm/utils/conversationApi.js +45 -0
- package/dist/esm/utils/conversationApi.js.map +1 -0
- package/dist/esm/utils/conversationMode.js +18 -0
- package/dist/esm/utils/conversationMode.js.map +1 -0
- package/dist/esm/utils/diagnosticsCollector.js +52 -0
- package/dist/esm/utils/diagnosticsCollector.js.map +1 -0
- package/dist/esm/utils/entityLinkParser.js +246 -0
- package/dist/esm/utils/entityLinkParser.js.map +1 -0
- package/dist/esm/utils/htmlCommentParser.js +117 -0
- package/dist/esm/utils/htmlCommentParser.js.map +1 -0
- package/dist/esm/utils/image-utils.js +45 -0
- package/dist/esm/utils/image-utils.js.map +1 -0
- package/dist/esm/utils/intentExtractor.js +45 -0
- package/dist/esm/utils/intentExtractor.js.map +1 -0
- package/dist/esm/utils/markdownPreprocessor.js +257 -0
- package/dist/esm/utils/markdownPreprocessor.js.map +1 -0
- package/dist/esm/utils/navigationStack.js +27 -0
- package/dist/esm/utils/navigationStack.js.map +1 -0
- package/dist/esm/utils/nodeMatchers.js +38 -0
- package/dist/esm/utils/nodeMatchers.js.map +1 -0
- package/dist/esm/utils/propsExtractor.js +58 -0
- package/dist/esm/utils/propsExtractor.js.map +1 -0
- package/dist/esm/utils/sessionManager.js +151 -0
- package/dist/esm/utils/sessionManager.js.map +1 -0
- package/dist/esm/utils/unifiedMarkdownParser.js +36 -0
- package/dist/esm/utils/unifiedMarkdownParser.js.map +1 -0
- package/dist/esm/utils/web5LinkValidator.js +52 -0
- package/dist/esm/utils/web5LinkValidator.js.map +1 -0
- package/dist/esm/utils/web5LinkValidator.test.js +113 -0
- package/dist/esm/utils/web5LinkValidator.test.js.map +1 -0
- package/dist/types/client/clientBundleOverride.d.ts +26 -0
- package/dist/types/client/clientBundleOverride.d.ts.map +1 -0
- package/dist/types/client/devEnvironment.d.ts +24 -0
- package/dist/types/client/devEnvironment.d.ts.map +1 -0
- package/dist/types/client/loadClientBundle.d.ts +27 -0
- package/dist/types/client/loadClientBundle.d.ts.map +1 -0
- package/dist/types/client/wixAuthFetch.d.ts +12 -0
- package/dist/types/client/wixAuthFetch.d.ts.map +1 -0
- package/dist/types/clients.d.ts +10 -0
- package/dist/types/clients.d.ts.map +1 -0
- package/dist/types/color/colorUtils.d.ts +9 -0
- package/dist/types/color/colorUtils.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts +12 -0
- package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts +16 -0
- package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts +23 -0
- package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts +12 -0
- package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts +10 -0
- package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts +12 -0
- package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/index.d.ts +26 -0
- package/dist/types/component/componentDefinitions/index.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts +11 -0
- package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/parse-utils.d.ts +88 -0
- package/dist/types/component/componentDefinitions/parse-utils.d.ts.map +1 -0
- package/dist/types/component/componentDefinitions/specHelpers.d.ts +16 -0
- package/dist/types/component/componentDefinitions/specHelpers.d.ts.map +1 -0
- package/dist/types/component/componentParser.d.ts +63 -0
- package/dist/types/component/componentParser.d.ts.map +1 -0
- package/dist/types/component/diagnosticTypes.d.ts +23 -0
- package/dist/types/component/diagnosticTypes.d.ts.map +1 -0
- package/dist/types/component/parser-types.d.ts +71 -0
- package/dist/types/component/parser-types.d.ts.map +1 -0
- package/dist/types/component/section-definition.d.ts +32 -0
- package/dist/types/component/section-definition.d.ts.map +1 -0
- package/dist/types/component/types.d.ts +315 -0
- package/dist/types/component/types.d.ts.map +1 -0
- package/dist/types/components/placement/PlacementPayloadContext.d.ts +20 -0
- package/dist/types/components/placement/PlacementPayloadContext.d.ts.map +1 -0
- package/dist/types/components/placement/PlacementResponseRenderer.d.ts +106 -0
- package/dist/types/components/placement/PlacementResponseRenderer.d.ts.map +1 -0
- package/dist/types/components/placement/buildPlacementDependencies.d.ts +44 -0
- package/dist/types/components/placement/buildPlacementDependencies.d.ts.map +1 -0
- package/dist/types/components/ui/BottomContainer.d.ts +9 -0
- package/dist/types/components/ui/BottomContainer.d.ts.map +1 -0
- package/dist/types/components/ui/CalloutBlock.d.ts +9 -0
- package/dist/types/components/ui/CalloutBlock.d.ts.map +1 -0
- package/dist/types/components/ui/Disclaimer.d.ts +21 -0
- package/dist/types/components/ui/Disclaimer.d.ts.map +1 -0
- package/dist/types/components/ui/FeedbackBar.d.ts +41 -0
- package/dist/types/components/ui/FeedbackBar.d.ts.map +1 -0
- package/dist/types/components/ui/Loader.d.ts +9 -0
- package/dist/types/components/ui/Loader.d.ts.map +1 -0
- package/dist/types/components/ui/MarkdownText.d.ts +9 -0
- package/dist/types/components/ui/MarkdownText.d.ts.map +1 -0
- package/dist/types/components/ui/OptimizedImage.d.ts +59 -0
- package/dist/types/components/ui/OptimizedImage.d.ts.map +1 -0
- package/dist/types/components/ui/PlacementLoader.d.ts +15 -0
- package/dist/types/components/ui/PlacementLoader.d.ts.map +1 -0
- package/dist/types/components/ui/PromptEntryEmptyState.d.ts +21 -0
- package/dist/types/components/ui/PromptEntryEmptyState.d.ts.map +1 -0
- package/dist/types/components/ui/SearchSection.d.ts +37 -0
- package/dist/types/components/ui/SearchSection.d.ts.map +1 -0
- package/dist/types/components/ui/SectionSkeleton.d.ts +27 -0
- package/dist/types/components/ui/SectionSkeleton.d.ts.map +1 -0
- package/dist/types/components/ui/SmartIcon.d.ts +19 -0
- package/dist/types/components/ui/SmartIcon.d.ts.map +1 -0
- package/dist/types/components/ui/UnifiedLink.d.ts +22 -0
- package/dist/types/components/ui/UnifiedLink.d.ts.map +1 -0
- package/dist/types/components/ui/UserQuery.d.ts +33 -0
- package/dist/types/components/ui/UserQuery.d.ts.map +1 -0
- package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/ArrowUpIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/ArrowUpIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/CheckIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/CheckIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/CommentIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/CommentIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/PlusIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/PlusIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/RedoIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/RedoIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/ShareIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/ShareIcon.d.ts.map +1 -0
- package/dist/types/components/ui/icons/UndoIcon.d.ts +3 -0
- package/dist/types/components/ui/icons/UndoIcon.d.ts.map +1 -0
- package/dist/types/components/ui/table.d.ts +11 -0
- package/dist/types/components/ui/table.d.ts.map +1 -0
- package/dist/types/context/ChipsContext.d.ts +8 -0
- package/dist/types/context/ChipsContext.d.ts.map +1 -0
- package/dist/types/context/ComponentDependenciesContext.d.ts +8 -0
- package/dist/types/context/ComponentDependenciesContext.d.ts.map +1 -0
- package/dist/types/entity/defaultExtractor.d.ts +14 -0
- package/dist/types/entity/defaultExtractor.d.ts.map +1 -0
- package/dist/types/entity/enrichEntitiesFromPayload.d.ts +27 -0
- package/dist/types/entity/enrichEntitiesFromPayload.d.ts.map +1 -0
- package/dist/types/entity/fetchEntityListData.d.ts +20 -0
- package/dist/types/entity/fetchEntityListData.d.ts.map +1 -0
- package/dist/types/entity/index.d.ts +16 -0
- package/dist/types/entity/index.d.ts.map +1 -0
- package/dist/types/entity/types.d.ts +13 -0
- package/dist/types/entity/types.d.ts.map +1 -0
- package/dist/types/errors/conversationErrorTypes.d.ts +20 -0
- package/dist/types/errors/conversationErrorTypes.d.ts.map +1 -0
- package/dist/types/errors/errorTemplates.d.ts +27 -0
- package/dist/types/errors/errorTemplates.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +3 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/featureToggles/FeatureToggleContext.d.ts +18 -0
- package/dist/types/featureToggles/FeatureToggleContext.d.ts.map +1 -0
- package/dist/types/hooks/useConversation.d.ts +3 -0
- package/dist/types/hooks/useConversation.d.ts.map +1 -0
- package/dist/types/hooks/useDebugImageContext.d.ts +2 -0
- package/dist/types/hooks/useDebugImageContext.d.ts.map +1 -0
- package/dist/types/hooks/useEntityTransforms.d.ts +3 -0
- package/dist/types/hooks/useEntityTransforms.d.ts.map +1 -0
- package/dist/types/hooks/useMarkdownUtils.d.ts +3 -0
- package/dist/types/hooks/useMarkdownUtils.d.ts.map +1 -0
- package/dist/types/hooks/useResolveGenericEntityData.d.ts +11 -0
- package/dist/types/hooks/useResolveGenericEntityData.d.ts.map +1 -0
- package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts +20 -0
- package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts.map +1 -0
- package/dist/types/hooks/useResolveShopifyEntityData.d.ts +21 -0
- package/dist/types/hooks/useResolveShopifyEntityData.d.ts.map +1 -0
- package/dist/types/hooks/useResolvedImageSources.d.ts +6 -0
- package/dist/types/hooks/useResolvedImageSources.d.ts.map +1 -0
- package/dist/types/hooks/useWeb5Link.d.ts +3 -0
- package/dist/types/hooks/useWeb5Link.d.ts.map +1 -0
- package/dist/types/image/contextualImageTypes.d.ts +17 -0
- package/dist/types/image/contextualImageTypes.d.ts.map +1 -0
- package/dist/types/image/imageSearchFilterTypes.d.ts +14 -0
- package/dist/types/image/imageSearchFilterTypes.d.ts.map +1 -0
- package/dist/types/image/imageSearchFilters.d.ts +16 -0
- package/dist/types/image/imageSearchFilters.d.ts.map +1 -0
- package/dist/types/index.d.ts +88 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/lib/utils.d.ts +3 -0
- package/dist/types/lib/utils.d.ts.map +1 -0
- package/dist/types/markdownBlocks.d.ts +44 -0
- package/dist/types/markdownBlocks.d.ts.map +1 -0
- package/dist/types/match/astToParts.d.ts +15 -0
- package/dist/types/match/astToParts.d.ts.map +1 -0
- package/dist/types/match/extractProps.d.ts +207 -0
- package/dist/types/match/extractProps.d.ts.map +1 -0
- package/dist/types/match/index.d.ts +4 -0
- package/dist/types/match/index.d.ts.map +1 -0
- package/dist/types/match/matchAllSections.d.ts +15 -0
- package/dist/types/match/matchAllSections.d.ts.map +1 -0
- package/dist/types/match/matchMarkdown.d.ts +25 -0
- package/dist/types/match/matchMarkdown.d.ts.map +1 -0
- package/dist/types/parts/parts.d.ts +144 -0
- package/dist/types/parts/parts.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/conflictDetector.d.ts +19 -0
- package/dist/types/patternAnalyzer/conflictDetector.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/index.d.ts +10 -0
- package/dist/types/patternAnalyzer/index.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/markdownGenerator.d.ts +9 -0
- package/dist/types/patternAnalyzer/markdownGenerator.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/mergeDetector.d.ts +14 -0
- package/dist/types/patternAnalyzer/mergeDetector.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/parserValidator.d.ts +13 -0
- package/dist/types/patternAnalyzer/parserValidator.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/patternWriter.d.ts +8 -0
- package/dist/types/patternAnalyzer/patternWriter.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/run.d.ts +2 -0
- package/dist/types/patternAnalyzer/run.d.ts.map +1 -0
- package/dist/types/patternAnalyzer/types.d.ts +59 -0
- package/dist/types/patternAnalyzer/types.d.ts.map +1 -0
- package/dist/types/patternValidator/automaton.d.ts +3 -0
- package/dist/types/patternValidator/automaton.d.ts.map +1 -0
- package/dist/types/patternValidator/index.d.ts +48 -0
- package/dist/types/patternValidator/index.d.ts.map +1 -0
- package/dist/types/patternValidator/lexer.d.ts +3 -0
- package/dist/types/patternValidator/lexer.d.ts.map +1 -0
- package/dist/types/patternValidator/matcher.d.ts +14 -0
- package/dist/types/patternValidator/matcher.d.ts.map +1 -0
- package/dist/types/patternValidator/parser.d.ts +14 -0
- package/dist/types/patternValidator/parser.d.ts.map +1 -0
- package/dist/types/patternValidator/types.d.ts +125 -0
- package/dist/types/patternValidator/types.d.ts.map +1 -0
- package/dist/types/patternValidator/validator.test.d.ts +2 -0
- package/dist/types/patternValidator/validator.test.d.ts.map +1 -0
- package/dist/types/registry/ComponentRegistry.d.ts +64 -0
- package/dist/types/registry/ComponentRegistry.d.ts.map +1 -0
- package/dist/types/registry/Intent.d.ts +12 -0
- package/dist/types/registry/Intent.d.ts.map +1 -0
- package/dist/types/registry/index.d.ts +4 -0
- package/dist/types/registry/index.d.ts.map +1 -0
- package/dist/types/registry/types.d.ts +99 -0
- package/dist/types/registry/types.d.ts.map +1 -0
- package/dist/types/services/cart/addToCart.d.ts +26 -0
- package/dist/types/services/cart/addToCart.d.ts.map +1 -0
- package/dist/types/services/cart/index.d.ts +2 -0
- package/dist/types/services/cart/index.d.ts.map +1 -0
- package/dist/types/services/searchspring/index.d.ts +4 -0
- package/dist/types/services/searchspring/index.d.ts.map +1 -0
- package/dist/types/services/searchspring/searchSpringClient.d.ts +13 -0
- package/dist/types/services/searchspring/searchSpringClient.d.ts.map +1 -0
- package/dist/types/services/searchspring/transformSSProduct.d.ts +7 -0
- package/dist/types/services/searchspring/transformSSProduct.d.ts.map +1 -0
- package/dist/types/services/searchspring/types.d.ts +48 -0
- package/dist/types/services/searchspring/types.d.ts.map +1 -0
- package/dist/types/services/shopify/index.d.ts +7 -0
- package/dist/types/services/shopify/index.d.ts.map +1 -0
- package/dist/types/services/shopify/queries.d.ts +13 -0
- package/dist/types/services/shopify/queries.d.ts.map +1 -0
- package/dist/types/services/shopify/resolveStoreDomain.d.ts +14 -0
- package/dist/types/services/shopify/resolveStoreDomain.d.ts.map +1 -0
- package/dist/types/services/shopify/shopifyEntityResolver.d.ts +21 -0
- package/dist/types/services/shopify/shopifyEntityResolver.d.ts.map +1 -0
- package/dist/types/services/shopify/shopifyStorefrontClient.d.ts +19 -0
- package/dist/types/services/shopify/shopifyStorefrontClient.d.ts.map +1 -0
- package/dist/types/services/shopify/transformShopifyEntity.d.ts +11 -0
- package/dist/types/services/shopify/transformShopifyEntity.d.ts.map +1 -0
- package/dist/types/services/shopify/types.d.ts +109 -0
- package/dist/types/services/shopify/types.d.ts.map +1 -0
- package/dist/types/testUtils.d.ts +7 -0
- package/dist/types/testUtils.d.ts.map +1 -0
- package/dist/types/types/answerUpdatedEvent.d.ts +29 -0
- package/dist/types/types/answerUpdatedEvent.d.ts.map +1 -0
- package/dist/types/types/blog.d.ts +22 -0
- package/dist/types/types/blog.d.ts.map +1 -0
- package/dist/types/types/callout.d.ts +7 -0
- package/dist/types/types/callout.d.ts.map +1 -0
- package/dist/types/types/dependencies.d.ts +191 -0
- package/dist/types/types/dependencies.d.ts.map +1 -0
- package/dist/types/types/entity.d.ts +38 -0
- package/dist/types/types/entity.d.ts.map +1 -0
- package/dist/types/types/link-types.d.ts +38 -0
- package/dist/types/types/link-types.d.ts.map +1 -0
- package/dist/types/types/page-section.d.ts +27 -0
- package/dist/types/types/page-section.d.ts.map +1 -0
- package/dist/types/types/placement.d.ts +94 -0
- package/dist/types/types/placement.d.ts.map +1 -0
- package/dist/types/types/redirectEvent.d.ts +42 -0
- package/dist/types/types/redirectEvent.d.ts.map +1 -0
- package/dist/types/types/userQueryEvent.d.ts +24 -0
- package/dist/types/types/userQueryEvent.d.ts.map +1 -0
- package/dist/types/utils/analyticsEvents.d.ts +24 -0
- package/dist/types/utils/analyticsEvents.d.ts.map +1 -0
- package/dist/types/utils/componentTracking.d.ts +55 -0
- package/dist/types/utils/componentTracking.d.ts.map +1 -0
- package/dist/types/utils/contentKeywordMatcher.d.ts +14 -0
- package/dist/types/utils/contentKeywordMatcher.d.ts.map +1 -0
- package/dist/types/utils/conversationApi.d.ts +26 -0
- package/dist/types/utils/conversationApi.d.ts.map +1 -0
- package/dist/types/utils/conversationMode.d.ts +16 -0
- package/dist/types/utils/conversationMode.d.ts.map +1 -0
- package/dist/types/utils/diagnosticsCollector.d.ts +33 -0
- package/dist/types/utils/diagnosticsCollector.d.ts.map +1 -0
- package/dist/types/utils/entityLinkParser.d.ts +97 -0
- package/dist/types/utils/entityLinkParser.d.ts.map +1 -0
- package/dist/types/utils/htmlCommentParser.d.ts +13 -0
- package/dist/types/utils/htmlCommentParser.d.ts.map +1 -0
- package/dist/types/utils/image-utils.d.ts +10 -0
- package/dist/types/utils/image-utils.d.ts.map +1 -0
- package/dist/types/utils/intentExtractor.d.ts +11 -0
- package/dist/types/utils/intentExtractor.d.ts.map +1 -0
- package/dist/types/utils/markdownPreprocessor.d.ts +95 -0
- package/dist/types/utils/markdownPreprocessor.d.ts.map +1 -0
- package/dist/types/utils/navigationStack.d.ts +6 -0
- package/dist/types/utils/navigationStack.d.ts.map +1 -0
- package/dist/types/utils/nodeMatchers.d.ts +10 -0
- package/dist/types/utils/nodeMatchers.d.ts.map +1 -0
- package/dist/types/utils/propsExtractor.d.ts +51 -0
- package/dist/types/utils/propsExtractor.d.ts.map +1 -0
- package/dist/types/utils/sessionManager.d.ts +57 -0
- package/dist/types/utils/sessionManager.d.ts.map +1 -0
- package/dist/types/utils/unifiedMarkdownParser.d.ts +9 -0
- package/dist/types/utils/unifiedMarkdownParser.d.ts.map +1 -0
- package/dist/types/utils/web5LinkValidator.d.ts +14 -0
- package/dist/types/utils/web5LinkValidator.d.ts.map +1 -0
- package/dist/types/utils/web5LinkValidator.test.d.ts +2 -0
- package/dist/types/utils/web5LinkValidator.test.d.ts.map +1 -0
- package/package.json +103 -0
- package/src/styles/base-tokens.css +152 -0
- package/src/styles/base-utilities.css +424 -0
- package/src/styles/components.css +6 -0
- package/src/styles/prompt-input-tokens.css +136 -0
- package/src/styles/tailwind-theme.css +138 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CONVERSATION_API_KEY","exports","DEFAULT_CONVERSATION_API","getConversationApi","value","localStorage","getItem","setConversationApi","api","setItem","usesTurnApi"],"sources":["../../../src/utils/conversationApi.ts"],"sourcesContent":["/**\n * Conversation API selection (debug-only).\n *\n * Switches the conversation between the default `Conversation` RPC\n * (`POST /v1/conversation`) and the parallel-safe `Turn` RPC\n * (`POST /v1/turn`, DL #110). Persisted in\n * `localStorage[\"web5_conversation_api\"]`, read at request time. Default\n * `conversation` (Turn is opt-in via the debug toggle for now).\n *\n * `Turn` returns a flat markdown stream (no sectioned page frames), so the\n * sectioned-stream consumption path only runs on the `Conversation` API. Lives\n * in web5-core so any surface can honor the same toggle.\n */\n\nexport type ConversationApiKind = 'turn' | 'conversation';\n\nexport const CONVERSATION_API_KEY = 'web5_conversation_api';\n\nexport const DEFAULT_CONVERSATION_API: ConversationApiKind = 'conversation';\n\n/**\n * Read the selected conversation API from localStorage. Falls back to the\n * default (`conversation`) when unset, invalid, or storage is unavailable.\n */\nexport const getConversationApi = (): ConversationApiKind => {\n try {\n const value = localStorage.getItem(CONVERSATION_API_KEY);\n if (value === 'turn' || value === 'conversation') {\n return value;\n }\n } catch {\n // localStorage can throw in privacy mode / non-DOM environments.\n }\n return DEFAULT_CONVERSATION_API;\n};\n\n/** Persist the selected conversation API to localStorage. */\nexport const setConversationApi = (api: ConversationApiKind): void => {\n try {\n localStorage.setItem(CONVERSATION_API_KEY, api);\n } catch {\n // Ignore — selection simply won't persist across reloads.\n }\n};\n\n/** Whether the conversation should use the Turn RPC (opt-in; default is Conversation). */\nexport const usesTurnApi = (): boolean => getConversationApi() === 'turn';\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIO,MAAMA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,uBAAuB;AAEpD,MAAME,wBAA6C,GAAAD,OAAA,CAAAC,wBAAA,GAAG,cAAc;;AAE3E;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,GAAGA,CAAA,KAA2B;EAC3D,IAAI;IACF,MAAMC,KAAK,GAAGC,YAAY,CAACC,OAAO,CAACN,oBAAoB,CAAC;IACxD,IAAII,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,cAAc,EAAE;MAChD,OAAOA,KAAK;IACd;EACF,CAAC,CAAC,MAAM;IACN;EAAA;EAEF,OAAOF,wBAAwB;AACjC,CAAC;;AAED;AAAAD,OAAA,CAAAE,kBAAA,GAAAA,kBAAA;AACO,MAAMI,kBAAkB,GAAIC,GAAwB,IAAW;EACpE,IAAI;IACFH,YAAY,CAACI,OAAO,CAACT,oBAAoB,EAAEQ,GAAG,CAAC;EACjD,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ,CAAC;;AAED;AAAAP,OAAA,CAAAM,kBAAA,GAAAA,kBAAA;AACO,MAAMG,WAAW,GAAGA,CAAA,KAAeP,kBAAkB,CAAC,CAAC,KAAK,MAAM;AAACF,OAAA,CAAAS,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.resolveConversationMode = exports.CONVERSATION_MODE = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* Conversation wire mode.
|
|
7
|
+
*
|
|
8
|
+
* There is a single conversation engine: the page streams section-by-section
|
|
9
|
+
* (each markdown frame tagged with a numeric section `id` + `status`). The
|
|
10
|
+
* `additionalData.mode` sent on every `/conversation` request is fixed.
|
|
11
|
+
*
|
|
12
|
+
* A `?mode=` query param, when present, overrides this value and is sent to the
|
|
13
|
+
* backend verbatim (callers read the param themselves); the frontend always
|
|
14
|
+
* uses the sectioned-stream consumption path regardless.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/** `additionalData.mode` sent on a `/conversation` request. */
|
|
18
|
+
const CONVERSATION_MODE = exports.CONVERSATION_MODE = 'markdown_history_v3';
|
|
19
|
+
|
|
20
|
+
/** Resolve the `additionalData.mode` to send on a `/conversation` request. */
|
|
21
|
+
const resolveConversationMode = () => CONVERSATION_MODE;
|
|
22
|
+
exports.resolveConversationMode = resolveConversationMode;
|
|
23
|
+
//# sourceMappingURL=conversationMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CONVERSATION_MODE","exports","resolveConversationMode"],"sources":["../../../src/utils/conversationMode.ts"],"sourcesContent":["/**\n * Conversation wire mode.\n *\n * There is a single conversation engine: the page streams section-by-section\n * (each markdown frame tagged with a numeric section `id` + `status`). The\n * `additionalData.mode` sent on every `/conversation` request is fixed.\n *\n * A `?mode=` query param, when present, overrides this value and is sent to the\n * backend verbatim (callers read the param themselves); the frontend always\n * uses the sectioned-stream consumption path regardless.\n */\n\n/** `additionalData.mode` sent on a `/conversation` request. */\nexport const CONVERSATION_MODE = 'markdown_history_v3';\n\n/** Resolve the `additionalData.mode` to send on a `/conversation` request. */\nexport const resolveConversationMode = (): string => CONVERSATION_MODE;\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,qBAAqB;;AAEtD;AACO,MAAME,uBAAuB,GAAGA,CAAA,KAAcF,iBAAiB;AAACC,OAAA,CAAAC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.DiagnosticsCollector = void 0;
|
|
6
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
/**
|
|
8
|
+
* Diagnostics collector — pure data class for buffering parser/render-time
|
|
9
|
+
* diagnostic entries with dedup. Lifted from `web50-server-ui` per DL #088 B9.4.
|
|
10
|
+
*
|
|
11
|
+
* The BI-firing + app-store-aware singleton wrapping (`fireDiagnosticEvent`,
|
|
12
|
+
* `setLastDiagnosticsCollector`, `flushDiagnostics`) stays in
|
|
13
|
+
* `web50-server-ui/src/utils/diagnosticsCollector.ts` because it depends on
|
|
14
|
+
* the BI logger + app store. After B9.5, the lifted `parseMarkdownToComponents`
|
|
15
|
+
* accepts a `DiagnosticsCollector` instance via options and never touches the
|
|
16
|
+
* singleton, so the placement bundle can construct its own collector and read
|
|
17
|
+
* the entries directly without involving BI.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
class DiagnosticsCollector {
|
|
21
|
+
constructor() {
|
|
22
|
+
(0, _defineProperty2.default)(this, "entries", []);
|
|
23
|
+
(0, _defineProperty2.default)(this, "seen", new Set());
|
|
24
|
+
}
|
|
25
|
+
static entryKey(entry) {
|
|
26
|
+
return `${entry.sectionType}:${entry.sectionIndex}:${entry.diagnosticType}:${entry.details}`;
|
|
27
|
+
}
|
|
28
|
+
report(entry) {
|
|
29
|
+
const key = DiagnosticsCollector.entryKey(entry);
|
|
30
|
+
if (this.seen.has(key)) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this.seen.add(key);
|
|
34
|
+
this.entries.push(entry);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Add to dedup set and return true if this is a new entry. Does NOT buffer —
|
|
39
|
+
* use for render-time diagnostics that fire immediately.
|
|
40
|
+
*/
|
|
41
|
+
reportIfNew(entry) {
|
|
42
|
+
const key = DiagnosticsCollector.entryKey(entry);
|
|
43
|
+
if (this.seen.has(key)) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
this.seen.add(key);
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
getEntries() {
|
|
50
|
+
return [...this.entries];
|
|
51
|
+
}
|
|
52
|
+
clear() {
|
|
53
|
+
this.entries = [];
|
|
54
|
+
this.seen.clear();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.DiagnosticsCollector = DiagnosticsCollector;
|
|
58
|
+
//# sourceMappingURL=diagnosticsCollector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DiagnosticsCollector","constructor","_defineProperty2","default","Set","entryKey","entry","sectionType","sectionIndex","diagnosticType","details","report","key","seen","has","add","entries","push","reportIfNew","getEntries","clear","exports"],"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;;AAUO,MAAMA,oBAAoB,CAAC;EAAAC,YAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,mBACK,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,gBACxB,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,GAAGZ,oBAAoB,CAACK,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,GAAGZ,oBAAoB,CAACK,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;AAACC,OAAA,CAAArB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.extractLinkMetadata = extractLinkMetadata;
|
|
5
|
+
exports.extractProtocol = extractProtocol;
|
|
6
|
+
exports.isEntityLink = isEntityLink;
|
|
7
|
+
exports.isValidWeb5Url = isValidWeb5Url;
|
|
8
|
+
exports.parseEntityLink = parseEntityLink;
|
|
9
|
+
exports.parseWeb5Url = parseWeb5Url;
|
|
10
|
+
exports.validateLinkUrl = validateLinkUrl;
|
|
11
|
+
var _linkTypes = require("../types/link-types");
|
|
12
|
+
const WEB5_TYPE_PREFIXES = Object.values(_linkTypes.Web5UrlType);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Central parser for unified web5:// URLs.
|
|
16
|
+
*
|
|
17
|
+
* Supported formats:
|
|
18
|
+
* - `web5://ask/msg` → `{ type: Web5UrlType.ASK, path: 'msg' }`
|
|
19
|
+
* - `web5://entity/solution/123` → `{ type: Web5UrlType.ENTITY, path: 'solution/123', entityType: 'solution', entityId: '123' }`
|
|
20
|
+
* - `web5://image/kw` → `{ type: Web5UrlType.IMAGE, path: 'kw' }`
|
|
21
|
+
* - `web5://icon/name` → `{ type: Web5UrlType.ICON, path: 'name' }`
|
|
22
|
+
* - `web5://action/name?param=val` → `{ type: Web5UrlType.ACTION, path: 'name?param=val', actionName: 'name', actionParams: { param: 'val' } }`
|
|
23
|
+
* - `web5://search/query` → `{ type: Web5UrlType.SEARCH, path: 'query', searchQuery: 'query' }`
|
|
24
|
+
*/
|
|
25
|
+
function parseWeb5Url(url) {
|
|
26
|
+
if (!url || typeof url !== 'string') {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
if (!url.startsWith('web5://')) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const fullPath = url.slice('web5://'.length);
|
|
33
|
+
if (!fullPath) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
for (const prefix of WEB5_TYPE_PREFIXES) {
|
|
37
|
+
if (fullPath === prefix || fullPath.startsWith(prefix + '/')) {
|
|
38
|
+
const path = fullPath.slice(prefix.length + 1);
|
|
39
|
+
switch (prefix) {
|
|
40
|
+
case _linkTypes.Web5UrlType.ENTITY:
|
|
41
|
+
{
|
|
42
|
+
const slashIndex = path.indexOf('/');
|
|
43
|
+
if (slashIndex === -1) {
|
|
44
|
+
return {
|
|
45
|
+
type: _linkTypes.Web5UrlType.ENTITY,
|
|
46
|
+
path,
|
|
47
|
+
entityType: path,
|
|
48
|
+
entityId: ''
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
type: _linkTypes.Web5UrlType.ENTITY,
|
|
53
|
+
path,
|
|
54
|
+
entityType: path.slice(0, slashIndex),
|
|
55
|
+
entityId: path.slice(slashIndex + 1)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
case _linkTypes.Web5UrlType.ACTION:
|
|
59
|
+
{
|
|
60
|
+
const qIndex = path.indexOf('?');
|
|
61
|
+
if (qIndex === -1) {
|
|
62
|
+
return {
|
|
63
|
+
type: _linkTypes.Web5UrlType.ACTION,
|
|
64
|
+
path,
|
|
65
|
+
actionName: path,
|
|
66
|
+
actionParams: {}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const params = {};
|
|
70
|
+
const searchParams = new URLSearchParams(path.slice(qIndex + 1));
|
|
71
|
+
searchParams.forEach((value, key) => {
|
|
72
|
+
params[key] = value;
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
type: _linkTypes.Web5UrlType.ACTION,
|
|
76
|
+
path,
|
|
77
|
+
actionName: path.slice(0, qIndex),
|
|
78
|
+
actionParams: params
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
case _linkTypes.Web5UrlType.SEARCH:
|
|
82
|
+
return {
|
|
83
|
+
type: _linkTypes.Web5UrlType.SEARCH,
|
|
84
|
+
path,
|
|
85
|
+
searchQuery: path ? decodeURIComponent(path.replace(/\+/g, ' ')) : ''
|
|
86
|
+
};
|
|
87
|
+
case _linkTypes.Web5UrlType.ASK:
|
|
88
|
+
return {
|
|
89
|
+
type: _linkTypes.Web5UrlType.ASK,
|
|
90
|
+
path
|
|
91
|
+
};
|
|
92
|
+
case _linkTypes.Web5UrlType.IMAGE:
|
|
93
|
+
return {
|
|
94
|
+
type: _linkTypes.Web5UrlType.IMAGE,
|
|
95
|
+
path
|
|
96
|
+
};
|
|
97
|
+
case _linkTypes.Web5UrlType.ICON:
|
|
98
|
+
return {
|
|
99
|
+
type: _linkTypes.Web5UrlType.ICON,
|
|
100
|
+
path
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Check if a URL is a valid web5:// URL with a recognized type prefix.
|
|
110
|
+
*/
|
|
111
|
+
function isValidWeb5Url(url) {
|
|
112
|
+
return parseWeb5Url(url) !== null;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/** Known legacy protocols that are no longer supported */
|
|
116
|
+
const LEGACY_PROTOCOLS = ['entity://', 'image://', 'action://', 'ask://'];
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Validate whether a URL is safe to render as a clickable link.
|
|
120
|
+
*
|
|
121
|
+
* - Standard protocols (http, https, mailto, relative paths) → allowed
|
|
122
|
+
* - Valid `web5://` URLs (recognized type prefix) → allowed
|
|
123
|
+
* - Invalid `web5://` URLs (unrecognized prefix) → rejected
|
|
124
|
+
* - Legacy protocols (`entity://`, `image://`, `action://`, `ask://`) → rejected
|
|
125
|
+
* - Other custom protocols → rejected
|
|
126
|
+
*
|
|
127
|
+
* @returns the URL as `ValidLinkUrl` if valid, or `undefined` if it should not be rendered.
|
|
128
|
+
* When invalid, logs a warning for observability.
|
|
129
|
+
*/
|
|
130
|
+
function validateLinkUrl(url) {
|
|
131
|
+
if (!url) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith('mailto:') || url.startsWith('/')) {
|
|
135
|
+
return url;
|
|
136
|
+
}
|
|
137
|
+
if (url.startsWith('web5://')) {
|
|
138
|
+
if (parseWeb5Url(url)) {
|
|
139
|
+
return url;
|
|
140
|
+
}
|
|
141
|
+
console.log(`[web5-link] Invalid web5:// URL rejected: "${url}"`);
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
if (LEGACY_PROTOCOLS.some(p => url.startsWith(p))) {
|
|
145
|
+
console.log(`[web5-link] Legacy protocol URL rejected: "${url}". Use web5:// format instead.`);
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
return undefined;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Check if a URL is a web5://entity/ link
|
|
153
|
+
* @param url - The URL to check
|
|
154
|
+
* @returns true if the URL is an entity link
|
|
155
|
+
*/
|
|
156
|
+
function isEntityLink(url) {
|
|
157
|
+
if (!url || typeof url !== 'string') {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
return (0, _linkTypes.isWeb5EntityUrl)(url);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Parse a web5://entity/ URL and extract entityType and entityId
|
|
165
|
+
* Format: web5://entity/{entityType}/{entityId}
|
|
166
|
+
*
|
|
167
|
+
* @param url - The web5://entity/ URL to parse
|
|
168
|
+
* @returns Object with entityType and entityId, or null if not a valid entity link
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* parseEntityLink('web5://entity/blog_post/abc123')
|
|
172
|
+
* // Returns: { entityType: 'blog_post', entityId: 'abc123' }
|
|
173
|
+
*/
|
|
174
|
+
function parseEntityLink(url) {
|
|
175
|
+
if (!isEntityLink(url)) {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
const path = url.slice('web5://entity/'.length);
|
|
179
|
+
|
|
180
|
+
// Split by '/' to get entityType and entityId
|
|
181
|
+
const slashIndex = path.indexOf('/');
|
|
182
|
+
if (slashIndex === -1) {
|
|
183
|
+
// No slash found - only entityType, no entityId
|
|
184
|
+
const entityType = path.trim();
|
|
185
|
+
if (entityType) {
|
|
186
|
+
return {
|
|
187
|
+
entityType,
|
|
188
|
+
entityId: ''
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
const entityType = path.slice(0, slashIndex).trim();
|
|
194
|
+
const entityId = path.slice(slashIndex + 1).trim();
|
|
195
|
+
if (!entityType) {
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
entityType,
|
|
200
|
+
entityId
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Extract protocol from a URL
|
|
206
|
+
* @param url - The URL to extract protocol from
|
|
207
|
+
* @returns The protocol (e.g., 'entity', 'http', 'https') or undefined
|
|
208
|
+
*/
|
|
209
|
+
function extractProtocol(url) {
|
|
210
|
+
if (!url || typeof url !== 'string') {
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
const match = url.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\/\//);
|
|
214
|
+
if (match) {
|
|
215
|
+
return match[1].toLowerCase();
|
|
216
|
+
}
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Extract LinkMetadata from a link AST node
|
|
222
|
+
* @param node - AST node of type 'link'
|
|
223
|
+
* @returns LinkMetadata object with url, protocol, and entity fields, or null
|
|
224
|
+
* when the URL is missing or whitespace-only (empty-href links are dropped
|
|
225
|
+
* by the upstream pipeline; see `markdownBlocks.ts`).
|
|
226
|
+
*/
|
|
227
|
+
function extractLinkMetadata(node) {
|
|
228
|
+
if (!node || node.type !== 'link') {
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
const url = node.url;
|
|
232
|
+
if (typeof url !== 'string' || url.trim() === '') {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
const metadata = {
|
|
236
|
+
url
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
// Extract protocol
|
|
240
|
+
const protocol = extractProtocol(url);
|
|
241
|
+
if (protocol) {
|
|
242
|
+
metadata.protocol = protocol;
|
|
243
|
+
}
|
|
244
|
+
if (protocol === 'web5') {
|
|
245
|
+
const parsed = parseWeb5Url(url);
|
|
246
|
+
if (parsed) {
|
|
247
|
+
metadata.web5Type = parsed.type;
|
|
248
|
+
if (parsed.type === _linkTypes.Web5UrlType.ENTITY) {
|
|
249
|
+
metadata.entityType = parsed.entityType;
|
|
250
|
+
metadata.entityId = parsed.entityId;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
return metadata;
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=entityLinkParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_linkTypes","require","WEB5_TYPE_PREFIXES","Object","values","Web5UrlType","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","isWeb5EntityUrl","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,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.extractHtmlCommentValue = extractHtmlCommentValue;
|
|
5
|
+
exports.parseHtmlComment = parseHtmlComment;
|
|
6
|
+
/**
|
|
7
|
+
* Parse an HTML comment string into a key-value object
|
|
8
|
+
* @param comment - The HTML comment string (e.g., "<!-- key: value, key: value -->")
|
|
9
|
+
* @returns Object with parsed key-value pairs, or empty object if parsing fails
|
|
10
|
+
*/
|
|
11
|
+
function parseHtmlComment(comment) {
|
|
12
|
+
if (!comment || typeof comment !== 'string') {
|
|
13
|
+
return {};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Remove HTML comment markers <!-- and -->
|
|
17
|
+
let content = comment.trim();
|
|
18
|
+
if (content.startsWith('<!--')) {
|
|
19
|
+
content = content.slice(4);
|
|
20
|
+
}
|
|
21
|
+
if (content.endsWith('-->')) {
|
|
22
|
+
content = content.slice(0, -3);
|
|
23
|
+
}
|
|
24
|
+
content = content.trim();
|
|
25
|
+
if (!content) {
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
const result = {};
|
|
29
|
+
|
|
30
|
+
// Split by comma, but handle commas within quoted values
|
|
31
|
+
const parts = [];
|
|
32
|
+
let currentPart = '';
|
|
33
|
+
let inQuotes = false;
|
|
34
|
+
let quoteChar = '';
|
|
35
|
+
for (let i = 0; i < content.length; i++) {
|
|
36
|
+
const char = content[i];
|
|
37
|
+
if ((char === '"' || char === "'") && (i === 0 || content[i - 1] !== '\\')) {
|
|
38
|
+
if (!inQuotes) {
|
|
39
|
+
inQuotes = true;
|
|
40
|
+
quoteChar = char;
|
|
41
|
+
} else if (char === quoteChar) {
|
|
42
|
+
inQuotes = false;
|
|
43
|
+
quoteChar = '';
|
|
44
|
+
}
|
|
45
|
+
currentPart += char;
|
|
46
|
+
} else if (char === ',' && !inQuotes) {
|
|
47
|
+
parts.push(currentPart.trim());
|
|
48
|
+
currentPart = '';
|
|
49
|
+
} else {
|
|
50
|
+
currentPart += char;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Add the last part
|
|
55
|
+
if (currentPart.trim()) {
|
|
56
|
+
parts.push(currentPart.trim());
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Parse each part as key: value or standalone identifier
|
|
60
|
+
for (const part of parts) {
|
|
61
|
+
const colonIndex = part.indexOf(':');
|
|
62
|
+
const equalsIndex = part.indexOf('=');
|
|
63
|
+
|
|
64
|
+
// Check for key=value format
|
|
65
|
+
if (equalsIndex !== -1 && (colonIndex === -1 || equalsIndex < colonIndex)) {
|
|
66
|
+
const key = part.slice(0, equalsIndex).trim();
|
|
67
|
+
let value = part.slice(equalsIndex + 1).trim();
|
|
68
|
+
|
|
69
|
+
// Remove quotes if present
|
|
70
|
+
if (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'")) {
|
|
71
|
+
value = value.slice(1, -1);
|
|
72
|
+
}
|
|
73
|
+
if (key) {
|
|
74
|
+
result[key] = value;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Check for key: value format
|
|
78
|
+
else if (colonIndex !== -1) {
|
|
79
|
+
const key = part.slice(0, colonIndex).trim();
|
|
80
|
+
let value = part.slice(colonIndex + 1).trim();
|
|
81
|
+
|
|
82
|
+
// Remove quotes if present
|
|
83
|
+
if (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'")) {
|
|
84
|
+
value = value.slice(1, -1);
|
|
85
|
+
}
|
|
86
|
+
if (key) {
|
|
87
|
+
result[key] = value;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Standalone identifier (e.g., <!-- Callout -->)
|
|
91
|
+
else {
|
|
92
|
+
const identifier = part.trim();
|
|
93
|
+
if (identifier && /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(identifier)) {
|
|
94
|
+
// Valid identifier: starts with letter or underscore, contains letters, numbers, underscores, or hyphens
|
|
95
|
+
result[identifier] = '';
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Extract HTML comment value from an AST html node
|
|
104
|
+
* @param node - AST node of type 'html'
|
|
105
|
+
* @returns The comment content string, or null if not an HTML comment
|
|
106
|
+
*/
|
|
107
|
+
function extractHtmlCommentValue(node) {
|
|
108
|
+
if (!node || node.type !== 'html') {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
const value = node.value;
|
|
112
|
+
if (typeof value !== 'string') {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Check if it's an HTML comment
|
|
117
|
+
if (value.trim().startsWith('<!--') && value.trim().endsWith('-->')) {
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
//# 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,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.getResizedImageUrl = getResizedImageUrl;
|
|
5
|
+
exports.normalizeImageUrl = normalizeImageUrl;
|
|
6
|
+
const WIX_MEDIA_STATIC = 'https://static.wixstatic.com/media/';
|
|
7
|
+
function normalizeImageUrl(imageUrl) {
|
|
8
|
+
if (!imageUrl) {
|
|
9
|
+
return imageUrl;
|
|
10
|
+
}
|
|
11
|
+
if (imageUrl.startsWith('http://') || imageUrl.startsWith('https://') || imageUrl.startsWith('data:') || imageUrl.startsWith('blob:')) {
|
|
12
|
+
return imageUrl;
|
|
13
|
+
}
|
|
14
|
+
if (imageUrl.startsWith(WIX_MEDIA_STATIC)) {
|
|
15
|
+
return imageUrl;
|
|
16
|
+
}
|
|
17
|
+
const cleanUrl = imageUrl.startsWith('/') ? imageUrl.slice(1) : imageUrl;
|
|
18
|
+
return `${WIX_MEDIA_STATIC}${cleanUrl}`;
|
|
19
|
+
}
|
|
20
|
+
function getResizedImageUrl(imageURI, width, height, params) {
|
|
21
|
+
return getResizedImagePartialUrl(WIX_MEDIA_STATIC, imageURI, width, height, params);
|
|
22
|
+
}
|
|
23
|
+
function getResizedImagePartialUrl(baseUrl, imageURI, width, height, {
|
|
24
|
+
usm_r = 0.66,
|
|
25
|
+
usm_a = 1.0,
|
|
26
|
+
usm_t = 0.01,
|
|
27
|
+
quality,
|
|
28
|
+
imageMode = 'fit'
|
|
29
|
+
} = {}) {
|
|
30
|
+
if (imageURI.includes('/')) {
|
|
31
|
+
return imageURI;
|
|
32
|
+
}
|
|
33
|
+
width = Math.round(width);
|
|
34
|
+
height = Math.round(height);
|
|
35
|
+
if (!quality) {
|
|
36
|
+
const HIGH_QUALITY_RESOLUTION = 1400 * 1400;
|
|
37
|
+
const MEDIUM_QUALITY_RESOLUTION = 600 * 600;
|
|
38
|
+
const dimension = width * height;
|
|
39
|
+
if (dimension > HIGH_QUALITY_RESOLUTION) {
|
|
40
|
+
quality = 90;
|
|
41
|
+
} else if (dimension > MEDIUM_QUALITY_RESOLUTION) {
|
|
42
|
+
quality = 85;
|
|
43
|
+
} else {
|
|
44
|
+
quality = 80;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
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}`;
|
|
48
|
+
}
|
|
49
|
+
//# 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","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;AAEvD,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;AAEO,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,EACd;EACEI,KAAK,GAAG,IAAI;EACZC,KAAK,GAAG,GAAG;EACXC,KAAK,GAAG,IAAI;EACZC,OAAO;EACPC,SAAS,GAAG;AACL,CAAC,GAAG,CAAC,CAAC,EACf;EACA,IAAIV,QAAQ,CAACW,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC1B,OAAOX,QAAQ;EACjB;EAEAC,KAAK,GAAGW,IAAI,CAACC,KAAK,CAACZ,KAAK,CAAC;EACzBC,MAAM,GAAGU,IAAI,CAACC,KAAK,CAACX,MAAM,CAAC;EAE3B,IAAI,CAACO,OAAO,EAAE;IACZ,MAAMK,uBAAuB,GAAG,IAAI,GAAG,IAAI;IAC3C,MAAMC,yBAAyB,GAAG,GAAG,GAAG,GAAG;IAC3C,MAAMC,SAAS,GAAGf,KAAK,GAAGC,MAAM;IAChC,IAAIc,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,GAAGJ,OAAO,GAAGL,QAAQ,OAAOU,SAAS,MAAMT,KAAK,MAAMC,MAAM,WAAWO,OAAO,QAAQH,KAAK,CAACW,OAAO,CACxG,CACF,CAAC,IAAIV,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC,IAAIT,KAAK,CAACS,OAAO,CAAC,CAAC,CAAC,IAAIjB,QAAQ,EAAE;AACzD","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.extractIntentFromMarkdown = extractIntentFromMarkdown;
|
|
5
|
+
exports.getIntentFromMarkdown = getIntentFromMarkdown;
|
|
6
|
+
var _Intent = require("../registry/Intent");
|
|
7
|
+
var _htmlCommentParser = require("./htmlCommentParser");
|
|
8
|
+
const INTENT_VALUES = new Set(Object.values(_Intent.Intent));
|
|
9
|
+
function normalizeIntent(intent) {
|
|
10
|
+
if (!intent) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
const normalized = intent.trim().toUpperCase();
|
|
14
|
+
return INTENT_VALUES.has(normalized) ? normalized : null;
|
|
15
|
+
}
|
|
16
|
+
function normalizeState(state) {
|
|
17
|
+
const normalized = state == null ? void 0 : state.trim().toLowerCase();
|
|
18
|
+
return normalized === 'partial' ? 'partial' : 'full';
|
|
19
|
+
}
|
|
20
|
+
function extractIntentFromMarkdown(markdown) {
|
|
21
|
+
if (!markdown) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const match = markdown.match(/^\s*<!--[\s\S]*?-->/);
|
|
25
|
+
if (!match) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
const comment = match[0];
|
|
29
|
+
const metadata = (0, _htmlCommentParser.parseHtmlComment)(comment);
|
|
30
|
+
const intent = normalizeIntent(metadata.intent);
|
|
31
|
+
if (!intent) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
intent,
|
|
36
|
+
stage: metadata.stage,
|
|
37
|
+
reason: metadata.reason,
|
|
38
|
+
state: normalizeState(metadata.state)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function getIntentFromMarkdown(markdown, defaultIntent = _Intent.Intent.DISCOVERY) {
|
|
42
|
+
return extractIntentFromMarkdown(markdown) ?? {
|
|
43
|
+
intent: defaultIntent,
|
|
44
|
+
state: 'full'
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=intentExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_Intent","require","_htmlCommentParser","INTENT_VALUES","Set","Object","values","Intent","normalizeIntent","intent","normalized","trim","toUpperCase","has","normalizeState","state","toLowerCase","extractIntentFromMarkdown","markdown","match","comment","metadata","parseHtmlComment","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,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAWA,MAAME,aAAa,GAAG,IAAIC,GAAG,CAASC,MAAM,CAACC,MAAM,CAACC,cAAM,CAAa,CAAC;AAExE,SAASC,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,OAAOT,aAAa,CAACU,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;AAEO,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,GAAG,IAAAC,mCAAgB,EAACF,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;IACNc,KAAK,EAAEF,QAAQ,CAACE,KAAK;IACrBC,MAAM,EAAEH,QAAQ,CAACG,MAAM;IACvBT,KAAK,EAAED,cAAc,CAACO,QAAQ,CAACN,KAAK;EACtC,CAAC;AACH;AAEO,SAASU,qBAAqBA,CACnCP,QAAgB,EAChBQ,aAAqB,GAAGnB,cAAM,CAACoB,SAAS,EAC5B;EACZ,OACEV,yBAAyB,CAACC,QAAQ,CAAC,IAAI;IACrCT,MAAM,EAAEiB,aAAa;IACrBX,KAAK,EAAE;EACT,CAAC;AAEL","ignoreList":[]}
|