@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,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.resolveShopifyEntity = resolveShopifyEntity;
|
|
5
|
+
var _queries = require("./queries");
|
|
6
|
+
/**
|
|
7
|
+
* Check if an entityId looks like a numeric Shopify ID (not a handle).
|
|
8
|
+
* Handles are URL slugs (e.g. "classic-cotton-tee"), IDs are numeric (e.g. "10260081213719").
|
|
9
|
+
*/
|
|
10
|
+
function isNumericId(entityId) {
|
|
11
|
+
return /^\d+$/.test(entityId);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Build a Shopify global ID from a numeric ID and resource type */
|
|
15
|
+
function toGlobalId(type, numericId) {
|
|
16
|
+
const capitalType = type.charAt(0).toUpperCase() + type.slice(1);
|
|
17
|
+
return `gid://shopify/${capitalType}/${numericId}`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a single Shopify entity by type and ID.
|
|
22
|
+
*
|
|
23
|
+
* The entityId can be either a **handle** (URL slug like "classic-cotton-tee")
|
|
24
|
+
* or a **numeric ID** (like "10260081213719"). The resolver tries the handle
|
|
25
|
+
* query first; if the entityId is numeric and the handle query returns null,
|
|
26
|
+
* it falls back to querying by global ID.
|
|
27
|
+
*
|
|
28
|
+
* - product: entityId = handle or numeric ID
|
|
29
|
+
* - collection: entityId = handle or numeric ID
|
|
30
|
+
* - article: entityId = "blogHandle/articleHandle" or just "articleHandle"
|
|
31
|
+
* (falls back to config.defaultBlogHandle when no blog prefix)
|
|
32
|
+
*
|
|
33
|
+
* Returns null if the entity is not found or on error.
|
|
34
|
+
*/
|
|
35
|
+
async function resolveShopifyEntity(client, entityType, entityId, config) {
|
|
36
|
+
try {
|
|
37
|
+
switch (entityType.toLowerCase()) {
|
|
38
|
+
case 'product':
|
|
39
|
+
{
|
|
40
|
+
// Try by handle first
|
|
41
|
+
const byHandle = await client.query(_queries.PRODUCT_BY_HANDLE_QUERY, {
|
|
42
|
+
handle: entityId
|
|
43
|
+
});
|
|
44
|
+
if (byHandle.productByHandle) {
|
|
45
|
+
return byHandle.productByHandle;
|
|
46
|
+
}
|
|
47
|
+
// Fall back to global ID if it looks numeric
|
|
48
|
+
if (isNumericId(entityId)) {
|
|
49
|
+
const byId = await client.query(_queries.PRODUCT_BY_ID_QUERY, {
|
|
50
|
+
id: toGlobalId('Product', entityId)
|
|
51
|
+
});
|
|
52
|
+
return byId.product ?? null;
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
case 'collection':
|
|
57
|
+
{
|
|
58
|
+
const byHandle = await client.query(_queries.COLLECTION_BY_HANDLE_QUERY, {
|
|
59
|
+
handle: entityId
|
|
60
|
+
});
|
|
61
|
+
if (byHandle.collectionByHandle) {
|
|
62
|
+
return byHandle.collectionByHandle;
|
|
63
|
+
}
|
|
64
|
+
if (isNumericId(entityId)) {
|
|
65
|
+
const byId = await client.query(_queries.COLLECTION_BY_ID_QUERY, {
|
|
66
|
+
id: toGlobalId('Collection', entityId)
|
|
67
|
+
});
|
|
68
|
+
return byId.collection ?? null;
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
case 'article':
|
|
73
|
+
{
|
|
74
|
+
var _data$blog;
|
|
75
|
+
const {
|
|
76
|
+
blogHandle,
|
|
77
|
+
articleHandle
|
|
78
|
+
} = parseArticleEntityId(entityId, config == null ? void 0 : config.defaultBlogHandle);
|
|
79
|
+
if (!blogHandle || !articleHandle) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const data = await client.query(_queries.ARTICLE_BY_HANDLE_QUERY, {
|
|
83
|
+
blogHandle,
|
|
84
|
+
articleHandle
|
|
85
|
+
});
|
|
86
|
+
return ((_data$blog = data.blog) == null ? void 0 : _data$blog.articleByHandle) ?? null;
|
|
87
|
+
}
|
|
88
|
+
default:
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
} catch (error) {
|
|
92
|
+
console.warn(`[shopify] Failed to resolve ${entityType}/${entityId}:`, error instanceof Error ? error.message : error);
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function parseArticleEntityId(entityId, defaultBlogHandle) {
|
|
97
|
+
const slashIndex = entityId.indexOf('/');
|
|
98
|
+
if (slashIndex !== -1) {
|
|
99
|
+
return {
|
|
100
|
+
blogHandle: entityId.slice(0, slashIndex),
|
|
101
|
+
articleHandle: entityId.slice(slashIndex + 1)
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
blogHandle: defaultBlogHandle,
|
|
106
|
+
articleHandle: entityId || undefined
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=shopifyEntityResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_queries","require","isNumericId","entityId","test","toGlobalId","type","numericId","capitalType","charAt","toUpperCase","slice","resolveShopifyEntity","client","entityType","config","toLowerCase","byHandle","query","PRODUCT_BY_HANDLE_QUERY","handle","productByHandle","byId","PRODUCT_BY_ID_QUERY","id","product","COLLECTION_BY_HANDLE_QUERY","collectionByHandle","COLLECTION_BY_ID_QUERY","collection","_data$blog","blogHandle","articleHandle","parseArticleEntityId","defaultBlogHandle","data","ARTICLE_BY_HANDLE_QUERY","blog","articleByHandle","error","console","warn","Error","message","slashIndex","indexOf","undefined"],"sources":["../../../../src/services/shopify/shopifyEntityResolver.ts"],"sourcesContent":["import type { ShopifyStorefrontClient } from './shopifyStorefrontClient';\nimport type {\n ShopifyStorefrontConfig,\n ShopifyProduct,\n ShopifyCollection,\n ShopifyArticle,\n ProductByHandleResponse,\n CollectionByHandleResponse,\n ArticleByHandleResponse,\n} from './types';\nimport {\n PRODUCT_BY_HANDLE_QUERY,\n PRODUCT_BY_ID_QUERY,\n COLLECTION_BY_HANDLE_QUERY,\n COLLECTION_BY_ID_QUERY,\n ARTICLE_BY_HANDLE_QUERY,\n} from './queries';\n\ntype ShopifyEntity = ShopifyProduct | ShopifyCollection | ShopifyArticle;\n\n/**\n * Check if an entityId looks like a numeric Shopify ID (not a handle).\n * Handles are URL slugs (e.g. \"classic-cotton-tee\"), IDs are numeric (e.g. \"10260081213719\").\n */\nfunction isNumericId(entityId: string): boolean {\n return /^\\d+$/.test(entityId);\n}\n\n/** Build a Shopify global ID from a numeric ID and resource type */\nfunction toGlobalId(type: string, numericId: string): string {\n const capitalType = type.charAt(0).toUpperCase() + type.slice(1);\n return `gid://shopify/${capitalType}/${numericId}`;\n}\n\n/**\n * Resolve a single Shopify entity by type and ID.\n *\n * The entityId can be either a **handle** (URL slug like \"classic-cotton-tee\")\n * or a **numeric ID** (like \"10260081213719\"). The resolver tries the handle\n * query first; if the entityId is numeric and the handle query returns null,\n * it falls back to querying by global ID.\n *\n * - product: entityId = handle or numeric ID\n * - collection: entityId = handle or numeric ID\n * - article: entityId = \"blogHandle/articleHandle\" or just \"articleHandle\"\n * (falls back to config.defaultBlogHandle when no blog prefix)\n *\n * Returns null if the entity is not found or on error.\n */\nexport async function resolveShopifyEntity(\n client: ShopifyStorefrontClient,\n entityType: string,\n entityId: string,\n config?: ShopifyStorefrontConfig,\n): Promise<ShopifyEntity | null> {\n try {\n switch (entityType.toLowerCase()) {\n case 'product': {\n // Try by handle first\n const byHandle = await client.query<ProductByHandleResponse>(\n PRODUCT_BY_HANDLE_QUERY,\n { handle: entityId },\n );\n if (byHandle.productByHandle) {\n return byHandle.productByHandle;\n }\n // Fall back to global ID if it looks numeric\n if (isNumericId(entityId)) {\n const byId = await client.query<{ product: ShopifyProduct | null }>(\n PRODUCT_BY_ID_QUERY,\n { id: toGlobalId('Product', entityId) },\n );\n return byId.product ?? null;\n }\n return null;\n }\n\n case 'collection': {\n const byHandle = await client.query<CollectionByHandleResponse>(\n COLLECTION_BY_HANDLE_QUERY,\n { handle: entityId },\n );\n if (byHandle.collectionByHandle) {\n return byHandle.collectionByHandle;\n }\n if (isNumericId(entityId)) {\n const byId = await client.query<{\n collection: ShopifyCollection | null;\n }>(COLLECTION_BY_ID_QUERY, {\n id: toGlobalId('Collection', entityId),\n });\n return byId.collection ?? null;\n }\n return null;\n }\n\n case 'article': {\n const { blogHandle, articleHandle } = parseArticleEntityId(\n entityId,\n config?.defaultBlogHandle,\n );\n if (!blogHandle || !articleHandle) {\n return null;\n }\n const data = await client.query<ArticleByHandleResponse>(\n ARTICLE_BY_HANDLE_QUERY,\n { blogHandle, articleHandle },\n );\n return data.blog?.articleByHandle ?? null;\n }\n\n default:\n return null;\n }\n } catch (error) {\n console.warn(\n `[shopify] Failed to resolve ${entityType}/${entityId}:`,\n error instanceof Error ? error.message : error,\n );\n return null;\n }\n}\n\nfunction parseArticleEntityId(\n entityId: string,\n defaultBlogHandle?: string,\n): { blogHandle: string | undefined; articleHandle: string | undefined } {\n const slashIndex = entityId.indexOf('/');\n if (slashIndex !== -1) {\n return {\n blogHandle: entityId.slice(0, slashIndex),\n articleHandle: entityId.slice(slashIndex + 1),\n };\n }\n return {\n blogHandle: defaultBlogHandle,\n articleHandle: entityId || undefined,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.ShopifyStorefrontClient = void 0;
|
|
6
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
const DEFAULT_API_VERSION = '2025-01';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Lightweight GraphQL client for the Shopify Storefront API.
|
|
11
|
+
*
|
|
12
|
+
* Uses native fetch — no external dependencies.
|
|
13
|
+
*
|
|
14
|
+
* When a `storefrontAccessToken` is provided, it's sent via
|
|
15
|
+
* the `X-Shopify-Storefront-Access-Token` header (required for
|
|
16
|
+
* cross-origin / localhost / headless access).
|
|
17
|
+
*
|
|
18
|
+
* Tokenless access (no token) only works from the store's own domain.
|
|
19
|
+
*/
|
|
20
|
+
class ShopifyStorefrontClient {
|
|
21
|
+
constructor(config) {
|
|
22
|
+
(0, _defineProperty2.default)(this, "endpoint", void 0);
|
|
23
|
+
(0, _defineProperty2.default)(this, "accessToken", void 0);
|
|
24
|
+
const domain = config.storeDomain.replace(/\/$/, '');
|
|
25
|
+
const version = config.apiVersion || DEFAULT_API_VERSION;
|
|
26
|
+
const protocol = domain.startsWith('http') ? '' : 'https://';
|
|
27
|
+
this.endpoint = `${protocol}${domain}/api/${version}/graphql.json`;
|
|
28
|
+
this.accessToken = config.storefrontAccessToken;
|
|
29
|
+
}
|
|
30
|
+
async query(graphql, variables) {
|
|
31
|
+
var _json$errors;
|
|
32
|
+
const headers = {
|
|
33
|
+
'Content-Type': 'application/json'
|
|
34
|
+
};
|
|
35
|
+
if (this.accessToken) {
|
|
36
|
+
headers['X-Shopify-Storefront-Access-Token'] = this.accessToken;
|
|
37
|
+
}
|
|
38
|
+
const res = await fetch(this.endpoint, {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
headers,
|
|
41
|
+
body: JSON.stringify({
|
|
42
|
+
query: graphql,
|
|
43
|
+
variables
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
if (!res.ok) {
|
|
47
|
+
throw new Error(`Shopify Storefront API error: ${res.status} ${res.statusText}`);
|
|
48
|
+
}
|
|
49
|
+
const json = await res.json();
|
|
50
|
+
if ((_json$errors = json.errors) != null && _json$errors.length) {
|
|
51
|
+
const messages = json.errors.map(e => e.message);
|
|
52
|
+
throw new Error(`Shopify GraphQL errors: ${messages.join('; ')}`);
|
|
53
|
+
}
|
|
54
|
+
return json.data;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ShopifyStorefrontClient = ShopifyStorefrontClient;
|
|
58
|
+
//# sourceMappingURL=shopifyStorefrontClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_API_VERSION","ShopifyStorefrontClient","constructor","config","_defineProperty2","default","domain","storeDomain","replace","version","apiVersion","protocol","startsWith","endpoint","accessToken","storefrontAccessToken","query","graphql","variables","_json$errors","headers","res","fetch","method","body","JSON","stringify","ok","Error","status","statusText","json","errors","length","messages","map","e","message","join","data","exports"],"sources":["../../../../src/services/shopify/shopifyStorefrontClient.ts"],"sourcesContent":["import type { ShopifyStorefrontConfig } from './types';\n\nconst DEFAULT_API_VERSION = '2025-01';\n\n/**\n * Lightweight GraphQL client for the Shopify Storefront API.\n *\n * Uses native fetch — no external dependencies.\n *\n * When a `storefrontAccessToken` is provided, it's sent via\n * the `X-Shopify-Storefront-Access-Token` header (required for\n * cross-origin / localhost / headless access).\n *\n * Tokenless access (no token) only works from the store's own domain.\n */\nexport class ShopifyStorefrontClient {\n private readonly endpoint: string;\n private readonly accessToken: string | undefined;\n\n constructor(config: ShopifyStorefrontConfig) {\n const domain = config.storeDomain.replace(/\\/$/, '');\n const version = config.apiVersion || DEFAULT_API_VERSION;\n const protocol = domain.startsWith('http') ? '' : 'https://';\n this.endpoint = `${protocol}${domain}/api/${version}/graphql.json`;\n this.accessToken = config.storefrontAccessToken;\n }\n\n async query<T>(\n graphql: string,\n variables?: Record<string, unknown>,\n ): Promise<T> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n };\n if (this.accessToken) {\n headers['X-Shopify-Storefront-Access-Token'] = this.accessToken;\n }\n\n const res = await fetch(this.endpoint, {\n method: 'POST',\n headers,\n body: JSON.stringify({ query: graphql, variables }),\n });\n\n if (!res.ok) {\n throw new Error(\n `Shopify Storefront API error: ${res.status} ${res.statusText}`,\n );\n }\n\n const json = await res.json();\n\n if (json.errors?.length) {\n const messages = json.errors.map((e: { message: string }) => e.message);\n throw new Error(`Shopify GraphQL errors: ${messages.join('; ')}`);\n }\n\n return json.data as T;\n }\n}\n"],"mappings":";;;;;;AAEA,MAAMA,mBAAmB,GAAG,SAAS;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,CAAC;EAInCC,WAAWA,CAACC,MAA+B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAC3C,MAAMC,MAAM,GAAGH,MAAM,CAACI,WAAW,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IACpD,MAAMC,OAAO,GAAGN,MAAM,CAACO,UAAU,IAAIV,mBAAmB;IACxD,MAAMW,QAAQ,GAAGL,MAAM,CAACM,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU;IAC5D,IAAI,CAACC,QAAQ,GAAG,GAAGF,QAAQ,GAAGL,MAAM,QAAQG,OAAO,eAAe;IAClE,IAAI,CAACK,WAAW,GAAGX,MAAM,CAACY,qBAAqB;EACjD;EAEA,MAAMC,KAAKA,CACTC,OAAe,EACfC,SAAmC,EACvB;IAAA,IAAAC,YAAA;IACZ,MAAMC,OAA+B,GAAG;MACtC,cAAc,EAAE;IAClB,CAAC;IACD,IAAI,IAAI,CAACN,WAAW,EAAE;MACpBM,OAAO,CAAC,mCAAmC,CAAC,GAAG,IAAI,CAACN,WAAW;IACjE;IAEA,MAAMO,GAAG,GAAG,MAAMC,KAAK,CAAC,IAAI,CAACT,QAAQ,EAAE;MACrCU,MAAM,EAAE,MAAM;MACdH,OAAO;MACPI,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;QAAEV,KAAK,EAAEC,OAAO;QAAEC;MAAU,CAAC;IACpD,CAAC,CAAC;IAEF,IAAI,CAACG,GAAG,CAACM,EAAE,EAAE;MACX,MAAM,IAAIC,KAAK,CACb,iCAAiCP,GAAG,CAACQ,MAAM,IAAIR,GAAG,CAACS,UAAU,EAC/D,CAAC;IACH;IAEA,MAAMC,IAAI,GAAG,MAAMV,GAAG,CAACU,IAAI,CAAC,CAAC;IAE7B,KAAAZ,YAAA,GAAIY,IAAI,CAACC,MAAM,aAAXb,YAAA,CAAac,MAAM,EAAE;MACvB,MAAMC,QAAQ,GAAGH,IAAI,CAACC,MAAM,CAACG,GAAG,CAAEC,CAAsB,IAAKA,CAAC,CAACC,OAAO,CAAC;MACvE,MAAM,IAAIT,KAAK,CAAC,2BAA2BM,QAAQ,CAACI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACnE;IAEA,OAAOP,IAAI,CAACQ,IAAI;EAClB;AACF;AAACC,OAAA,CAAAvC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.transformShopifyArticle = transformShopifyArticle;
|
|
5
|
+
exports.transformShopifyCollection = transformShopifyCollection;
|
|
6
|
+
exports.transformShopifyEntityToItemData = transformShopifyEntityToItemData;
|
|
7
|
+
exports.transformShopifyProduct = transformShopifyProduct;
|
|
8
|
+
function formatShopifyDate(isoDate) {
|
|
9
|
+
const date = new Date(isoDate);
|
|
10
|
+
if (isNaN(date.getTime())) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const day = date.getDate();
|
|
14
|
+
const month = date.toLocaleString('en-US', {
|
|
15
|
+
month: 'short'
|
|
16
|
+
});
|
|
17
|
+
const year = date.getFullYear();
|
|
18
|
+
return `${day} ${month} ${year}`;
|
|
19
|
+
}
|
|
20
|
+
function formatPrice(money) {
|
|
21
|
+
const amount = parseFloat(money.amount);
|
|
22
|
+
const formatted = amount.toFixed(2);
|
|
23
|
+
return `${formatted} ${money.currencyCode}`;
|
|
24
|
+
}
|
|
25
|
+
function extractSizes(product) {
|
|
26
|
+
const sizes = product.variants.edges.flatMap(e => e.node.selectedOptions.filter(o => o.name.toLowerCase() === 'size').map(o => o.value));
|
|
27
|
+
const unique = [...new Set(sizes)];
|
|
28
|
+
return unique.length > 0 ? unique : undefined;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Extract variant ID → size label mapping for add-to-cart.
|
|
33
|
+
* Shopify global IDs look like "gid://shopify/ProductVariant/12345" —
|
|
34
|
+
* we extract just the numeric part for the Ajax API.
|
|
35
|
+
*/
|
|
36
|
+
function extractVariants(product) {
|
|
37
|
+
const variants = product.variants.edges.map(e => {
|
|
38
|
+
const sizeOption = e.node.selectedOptions.find(o => o.name.toLowerCase() === 'size');
|
|
39
|
+
const numericId = e.node.id.replace(/^gid:\/\/shopify\/ProductVariant\//, '');
|
|
40
|
+
return {
|
|
41
|
+
label: (sizeOption == null ? void 0 : sizeOption.value) || e.node.title,
|
|
42
|
+
variantId: numericId,
|
|
43
|
+
available: e.node.availableForSale,
|
|
44
|
+
selectedOptions: e.node.selectedOptions.map(o => ({
|
|
45
|
+
name: o.name,
|
|
46
|
+
value: o.value
|
|
47
|
+
})),
|
|
48
|
+
price: formatPrice(e.node.price),
|
|
49
|
+
compareAtPrice: e.node.compareAtPrice ? formatPrice(e.node.compareAtPrice) : undefined
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
return variants.length > 0 ? variants : undefined;
|
|
53
|
+
}
|
|
54
|
+
function getSecondaryImage(product) {
|
|
55
|
+
const images = product.images.edges.map(e => e.node.url);
|
|
56
|
+
return images.length > 1 ? images[1] : undefined;
|
|
57
|
+
}
|
|
58
|
+
function getAllImages(product) {
|
|
59
|
+
const images = product.images.edges.map(e => e.node.url);
|
|
60
|
+
return images.length > 0 ? images : undefined;
|
|
61
|
+
}
|
|
62
|
+
function getCompareAtPrice(product) {
|
|
63
|
+
var _product$compareAtPri;
|
|
64
|
+
const compare = (_product$compareAtPri = product.compareAtPriceRange) == null ? void 0 : _product$compareAtPri.minVariantPrice;
|
|
65
|
+
if (!compare) {
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
const min = product.priceRange.minVariantPrice;
|
|
69
|
+
if (parseFloat(compare.amount) <= parseFloat(min.amount)) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
return formatPrice(compare);
|
|
73
|
+
}
|
|
74
|
+
function transformShopifyProduct(product) {
|
|
75
|
+
var _product$featuredImag, _product$options;
|
|
76
|
+
return {
|
|
77
|
+
url: product.onlineStoreUrl || '',
|
|
78
|
+
title: product.title,
|
|
79
|
+
type: 'product',
|
|
80
|
+
description: product.description,
|
|
81
|
+
imageUrl: (_product$featuredImag = product.featuredImage) == null ? void 0 : _product$featuredImag.url,
|
|
82
|
+
secondaryImageUrl: getSecondaryImage(product),
|
|
83
|
+
vendor: product.vendor,
|
|
84
|
+
price: formatPrice(product.priceRange.minVariantPrice),
|
|
85
|
+
compareAtPrice: getCompareAtPrice(product),
|
|
86
|
+
sizes: extractSizes(product),
|
|
87
|
+
variants: extractVariants(product),
|
|
88
|
+
allImages: getAllImages(product),
|
|
89
|
+
options: (_product$options = product.options) != null && _product$options.length ? product.options : undefined,
|
|
90
|
+
tags: product.tags.length ? product.tags : undefined
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function transformShopifyCollection(collection) {
|
|
94
|
+
var _collection$image;
|
|
95
|
+
return {
|
|
96
|
+
url: collection.onlineStoreUrl || '',
|
|
97
|
+
title: collection.title,
|
|
98
|
+
type: 'collection',
|
|
99
|
+
description: collection.description,
|
|
100
|
+
imageUrl: (_collection$image = collection.image) == null ? void 0 : _collection$image.url
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function transformShopifyArticle(article) {
|
|
104
|
+
var _article$image, _article$authorV;
|
|
105
|
+
return {
|
|
106
|
+
url: article.onlineStoreUrl || '',
|
|
107
|
+
title: article.title,
|
|
108
|
+
type: 'article',
|
|
109
|
+
description: article.excerpt || undefined,
|
|
110
|
+
imageUrl: (_article$image = article.image) == null ? void 0 : _article$image.url,
|
|
111
|
+
publishDate: formatShopifyDate(article.publishedAt),
|
|
112
|
+
author: ((_article$authorV = article.authorV2) == null ? void 0 : _article$authorV.name) || undefined,
|
|
113
|
+
tags: article.tags.length ? article.tags : undefined
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Transform any resolved Shopify entity to the standard EntityItemData shape.
|
|
119
|
+
* Detects the entity type by checking for type-specific fields.
|
|
120
|
+
*/
|
|
121
|
+
function transformShopifyEntityToItemData(entity, entityType) {
|
|
122
|
+
switch (entityType.toLowerCase()) {
|
|
123
|
+
case 'product':
|
|
124
|
+
return transformShopifyProduct(entity);
|
|
125
|
+
case 'collection':
|
|
126
|
+
return transformShopifyCollection(entity);
|
|
127
|
+
case 'article':
|
|
128
|
+
return transformShopifyArticle(entity);
|
|
129
|
+
default:
|
|
130
|
+
return {
|
|
131
|
+
url: '',
|
|
132
|
+
title: entity.title || '',
|
|
133
|
+
type: entityType
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=transformShopifyEntity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["formatShopifyDate","isoDate","date","Date","isNaN","getTime","undefined","day","getDate","month","toLocaleString","year","getFullYear","formatPrice","money","amount","parseFloat","formatted","toFixed","currencyCode","extractSizes","product","sizes","variants","edges","flatMap","e","node","selectedOptions","filter","o","name","toLowerCase","map","value","unique","Set","length","extractVariants","sizeOption","find","numericId","id","replace","label","title","variantId","available","availableForSale","price","compareAtPrice","getSecondaryImage","images","url","getAllImages","getCompareAtPrice","_product$compareAtPri","compare","compareAtPriceRange","minVariantPrice","min","priceRange","transformShopifyProduct","_product$featuredImag","_product$options","onlineStoreUrl","type","description","imageUrl","featuredImage","secondaryImageUrl","vendor","allImages","options","tags","transformShopifyCollection","collection","_collection$image","image","transformShopifyArticle","article","_article$image","_article$authorV","excerpt","publishDate","publishedAt","author","authorV2","transformShopifyEntityToItemData","entity","entityType"],"sources":["../../../../src/services/shopify/transformShopifyEntity.ts"],"sourcesContent":["import type { EntityItemData } from '../../component/types';\nimport type {\n ShopifyProduct,\n ShopifyCollection,\n ShopifyArticle,\n} from './types';\n\nfunction formatShopifyDate(isoDate: string): string | undefined {\n const date = new Date(isoDate);\n if (isNaN(date.getTime())) {\n return undefined;\n }\n const day = date.getDate();\n const month = date.toLocaleString('en-US', { month: 'short' });\n const year = date.getFullYear();\n return `${day} ${month} ${year}`;\n}\n\nfunction formatPrice(\n money: ShopifyProduct['priceRange']['minVariantPrice'],\n): string {\n const amount = parseFloat(money.amount);\n const formatted = amount.toFixed(2);\n return `${formatted} ${money.currencyCode}`;\n}\n\nfunction extractSizes(product: ShopifyProduct): string[] | undefined {\n const sizes = product.variants.edges.flatMap((e) =>\n e.node.selectedOptions\n .filter((o) => o.name.toLowerCase() === 'size')\n .map((o) => o.value),\n );\n const unique = [...new Set(sizes)];\n return unique.length > 0 ? unique : undefined;\n}\n\n/**\n * Extract variant ID → size label mapping for add-to-cart.\n * Shopify global IDs look like \"gid://shopify/ProductVariant/12345\" —\n * we extract just the numeric part for the Ajax API.\n */\nfunction extractVariants(product: ShopifyProduct): EntityItemData['variants'] {\n const variants = product.variants.edges.map((e) => {\n const sizeOption = e.node.selectedOptions.find(\n (o) => o.name.toLowerCase() === 'size',\n );\n const numericId = e.node.id.replace(\n /^gid:\\/\\/shopify\\/ProductVariant\\//,\n '',\n );\n return {\n label: sizeOption?.value || e.node.title,\n variantId: numericId,\n available: e.node.availableForSale,\n selectedOptions: e.node.selectedOptions.map((o) => ({\n name: o.name,\n value: o.value,\n })),\n price: formatPrice(e.node.price),\n compareAtPrice: e.node.compareAtPrice\n ? formatPrice(e.node.compareAtPrice)\n : undefined,\n };\n });\n return variants.length > 0 ? variants : undefined;\n}\n\nfunction getSecondaryImage(product: ShopifyProduct): string | undefined {\n const images = product.images.edges.map((e) => e.node.url);\n return images.length > 1 ? images[1] : undefined;\n}\n\nfunction getAllImages(product: ShopifyProduct): string[] | undefined {\n const images = product.images.edges.map((e) => e.node.url);\n return images.length > 0 ? images : undefined;\n}\n\nfunction getCompareAtPrice(product: ShopifyProduct): string | undefined {\n const compare = product.compareAtPriceRange?.minVariantPrice;\n if (!compare) {\n return undefined;\n }\n const min = product.priceRange.minVariantPrice;\n if (parseFloat(compare.amount) <= parseFloat(min.amount)) {\n return undefined;\n }\n return formatPrice(compare);\n}\n\nexport function transformShopifyProduct(\n product: ShopifyProduct,\n): EntityItemData {\n return {\n url: product.onlineStoreUrl || '',\n title: product.title,\n type: 'product',\n description: product.description,\n imageUrl: product.featuredImage?.url,\n secondaryImageUrl: getSecondaryImage(product),\n vendor: product.vendor,\n price: formatPrice(product.priceRange.minVariantPrice),\n compareAtPrice: getCompareAtPrice(product),\n sizes: extractSizes(product),\n variants: extractVariants(product),\n allImages: getAllImages(product),\n options: product.options?.length ? product.options : undefined,\n tags: product.tags.length ? product.tags : undefined,\n };\n}\n\nexport function transformShopifyCollection(\n collection: ShopifyCollection,\n): EntityItemData {\n return {\n url: collection.onlineStoreUrl || '',\n title: collection.title,\n type: 'collection',\n description: collection.description,\n imageUrl: collection.image?.url,\n };\n}\n\nexport function transformShopifyArticle(\n article: ShopifyArticle,\n): EntityItemData {\n return {\n url: article.onlineStoreUrl || '',\n title: article.title,\n type: 'article',\n description: article.excerpt || undefined,\n imageUrl: article.image?.url,\n publishDate: formatShopifyDate(article.publishedAt),\n author: article.authorV2?.name || undefined,\n tags: article.tags.length ? article.tags : undefined,\n };\n}\n\n/**\n * Transform any resolved Shopify entity to the standard EntityItemData shape.\n * Detects the entity type by checking for type-specific fields.\n */\nexport function transformShopifyEntityToItemData(\n entity: ShopifyProduct | ShopifyCollection | ShopifyArticle,\n entityType: string,\n): EntityItemData {\n switch (entityType.toLowerCase()) {\n case 'product':\n return transformShopifyProduct(entity as ShopifyProduct);\n case 'collection':\n return transformShopifyCollection(entity as ShopifyCollection);\n case 'article':\n return transformShopifyArticle(entity as ShopifyArticle);\n default:\n return {\n url: '',\n title: (entity as { title?: string }).title || '',\n type: entityType,\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/services/shopify/types.ts"],"sourcesContent":["/**\n * Configuration for connecting to a Shopify Storefront API instance.\n */\nexport interface ShopifyStorefrontConfig {\n /** The Shopify store domain, e.g. \"my-store.myshopify.com\" */\n storeDomain: string;\n /**\n * Public Storefront Access Token.\n * Required when calling from outside the store's own domain (e.g. localhost, headless apps).\n * Tokenless access only works from the store's own origin.\n *\n * Get one from: Shopify Admin → Settings → Apps → Develop apps → Storefront API access token,\n * or via the Headless channel.\n */\n storefrontAccessToken?: string;\n /** Storefront API version, e.g. \"2025-01\". Defaults to \"2025-01\". */\n apiVersion?: string;\n /** Default blog handle used when an article entityId has no blog prefix */\n defaultBlogHandle?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Storefront API GraphQL response shapes\n// ---------------------------------------------------------------------------\n\nexport interface ShopifyImage {\n url: string;\n altText: string | null;\n}\n\nexport interface ShopifyMoneyV2 {\n amount: string;\n currencyCode: string;\n}\n\nexport interface ShopifyVariantOption {\n name: string;\n value: string;\n}\n\nexport interface ShopifyVariant {\n id: string;\n title: string;\n availableForSale: boolean;\n selectedOptions: ShopifyVariantOption[];\n price: ShopifyMoneyV2;\n compareAtPrice: ShopifyMoneyV2 | null;\n image: ShopifyImage | null;\n}\n\nexport interface ShopifyProduct {\n id: string;\n title: string;\n handle: string;\n description: string;\n descriptionHtml: string;\n featuredImage: ShopifyImage | null;\n images: { edges: { node: ShopifyImage }[] };\n onlineStoreUrl: string | null;\n tags: string[];\n vendor: string;\n productType: string;\n priceRange: {\n minVariantPrice: ShopifyMoneyV2;\n maxVariantPrice: ShopifyMoneyV2;\n };\n compareAtPriceRange: {\n minVariantPrice: ShopifyMoneyV2;\n };\n options: { name: string; values: string[] }[];\n variants: { edges: { node: ShopifyVariant }[] };\n}\n\nexport interface ShopifyCollection {\n id: string;\n title: string;\n handle: string;\n description: string;\n descriptionHtml: string;\n image: ShopifyImage | null;\n onlineStoreUrl: string | null;\n}\n\nexport interface ShopifyArticle {\n id: string;\n title: string;\n handle: string;\n excerpt: string | null;\n contentHtml: string;\n image: ShopifyImage | null;\n authorV2: { name: string } | null;\n publishedAt: string;\n tags: string[];\n onlineStoreUrl: string | null;\n}\n\n// ---------------------------------------------------------------------------\n// GraphQL response wrappers\n// ---------------------------------------------------------------------------\n\nexport interface ProductByHandleResponse {\n productByHandle: ShopifyProduct | null;\n}\n\nexport interface CollectionByHandleResponse {\n collectionByHandle: ShopifyCollection | null;\n}\n\nexport interface ArticleByHandleResponse {\n blog: { articleByHandle: ShopifyArticle | null } | null;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Base design tokens — shared defaults for all client packages.
|
|
3
|
+
* Each client overrides these in their own globals.css :root block.
|
|
4
|
+
*/
|
|
5
|
+
@import './prompt-input-tokens.css';
|
|
6
|
+
|
|
7
|
+
:root {
|
|
8
|
+
/* Color tokens — HSL triplets */
|
|
9
|
+
--background: 0 0% 100%;
|
|
10
|
+
--foreground: 0 0% 3.9%;
|
|
11
|
+
--card: 0 0% 100%;
|
|
12
|
+
--card-foreground: 0 0% 3.9%;
|
|
13
|
+
--popover: 0 0% 100%;
|
|
14
|
+
--popover-foreground: 0 0% 3.9%;
|
|
15
|
+
--primary: 0 0% 9%;
|
|
16
|
+
--primary-foreground: 0 0% 98%;
|
|
17
|
+
--secondary: 0 0% 96.1%;
|
|
18
|
+
--secondary-foreground: 0 0% 9%;
|
|
19
|
+
--muted: 0 0% 96.1%;
|
|
20
|
+
--muted-foreground: 0 0% 45.1%;
|
|
21
|
+
--accent: 0 0% 96.1%;
|
|
22
|
+
--accent-foreground: 0 0% 9%;
|
|
23
|
+
--destructive: 0 84.2% 60.2%;
|
|
24
|
+
--destructive-foreground: 0 0% 98%;
|
|
25
|
+
--border: 0 0% 89.8%;
|
|
26
|
+
--input: 0 0% 89.8%;
|
|
27
|
+
--ring: 0 0% 3.9%;
|
|
28
|
+
|
|
29
|
+
/* Chart colors */
|
|
30
|
+
--chart-1: 180 60% 65%;
|
|
31
|
+
--chart-2: 120 50% 60%;
|
|
32
|
+
--chart-3: 40 50% 70%;
|
|
33
|
+
--chart-4: 200 70% 60%;
|
|
34
|
+
--chart-5: 320 60% 70%;
|
|
35
|
+
|
|
36
|
+
/* Sidebar colors */
|
|
37
|
+
--sidebar: 0 0% 100%;
|
|
38
|
+
--sidebar-foreground: 0 0% 3.9%;
|
|
39
|
+
--sidebar-primary: 0 0% 9%;
|
|
40
|
+
--sidebar-primary-foreground: 0 0% 98%;
|
|
41
|
+
--sidebar-accent: 0 0% 96.1%;
|
|
42
|
+
--sidebar-accent-foreground: 0 0% 9%;
|
|
43
|
+
--sidebar-border: 0 0% 89.8%;
|
|
44
|
+
--sidebar-ring: 0 0% 3.9%;
|
|
45
|
+
|
|
46
|
+
/* Typography tokens */
|
|
47
|
+
--font-sans: ui-sans-serif, system-ui, sans-serif;
|
|
48
|
+
--font-serif: serif;
|
|
49
|
+
--font-mono: ui-monospace, monospace;
|
|
50
|
+
/* Display font — used for headings and callouts. Defaults to the body font
|
|
51
|
+
* so non-overriding clients render identically; clients (e.g. circana) can
|
|
52
|
+
* set this to a distinct family. */
|
|
53
|
+
--font-display: var(--font-sans);
|
|
54
|
+
|
|
55
|
+
/* Spacing & shape tokens */
|
|
56
|
+
--radius: 0.5rem;
|
|
57
|
+
--tracking-normal: -0.02em;
|
|
58
|
+
--spacing: 0.25rem;
|
|
59
|
+
|
|
60
|
+
/* Shadow tokens */
|
|
61
|
+
--shadow-2xs: 0px 1px 2px 0px hsl(0 0% 0% / 0.03);
|
|
62
|
+
--shadow-xs: 0px 1px 3px 0px hsl(0 0% 0% / 0.04);
|
|
63
|
+
--shadow-sm: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), 0px 1px 2px -1px hsl(0 0% 0% / 0.1);
|
|
64
|
+
--shadow: 0px 1px 3px 0px hsl(0 0% 0% / 0.1), 0px 1px 2px -1px hsl(0 0% 0% / 0.1);
|
|
65
|
+
--shadow-md: 0px 4px 6px -1px hsl(0 0% 0% / 0.1), 0px 2px 4px -2px hsl(0 0% 0% / 0.1);
|
|
66
|
+
--shadow-lg: 0px 10px 15px -3px hsl(0 0% 0% / 0.1), 0px 4px 6px -4px hsl(0 0% 0% / 0.1);
|
|
67
|
+
--shadow-xl: 0px 20px 25px -5px hsl(0 0% 0% / 0.1), 0px 8px 10px -6px hsl(0 0% 0% / 0.1);
|
|
68
|
+
--shadow-2xl: 0px 25px 50px -12px hsl(0 0% 0% / 0.25);
|
|
69
|
+
|
|
70
|
+
/* Component-level typography tokens */
|
|
71
|
+
--heading-lg-color: hsl(var(--foreground));
|
|
72
|
+
--heading-lg-gradient-from: hsl(var(--primary));
|
|
73
|
+
--heading-lg-gradient-to: hsl(var(--primary));
|
|
74
|
+
--heading-h3-color: hsl(var(--primary));
|
|
75
|
+
--heading-feature-color: hsl(var(--primary));
|
|
76
|
+
--section-description-color: hsl(var(--muted-foreground));
|
|
77
|
+
--section-description-font-size: 20px;
|
|
78
|
+
--section-description-line-height: 30px;
|
|
79
|
+
--section-description-font-size-tablet: 24px;
|
|
80
|
+
--section-description-line-height-tablet: 36px;
|
|
81
|
+
--markdown-content-color: hsl(var(--muted-foreground));
|
|
82
|
+
--card-title-color: hsl(var(--primary));
|
|
83
|
+
--card-title-gradient-color: hsl(var(--primary));
|
|
84
|
+
--description-text-color: hsl(var(--foreground));
|
|
85
|
+
--body-text-color: hsl(var(--foreground));
|
|
86
|
+
--body-text-font-size: 18px;
|
|
87
|
+
--body-text-line-height: 28px;
|
|
88
|
+
--body-small-text-color: hsl(var(--foreground));
|
|
89
|
+
--body-small-text-font-size: 15px;
|
|
90
|
+
--body-small-text-line-height: 24px;
|
|
91
|
+
--hero-content-color: #FFF;
|
|
92
|
+
--hero-button-active-color: hsl(var(--primary));
|
|
93
|
+
--solution-label-color: hsl(var(--muted-foreground));
|
|
94
|
+
--view-solution-link-color: hsl(var(--primary));
|
|
95
|
+
|
|
96
|
+
/* Semantic text & border colors */
|
|
97
|
+
--text-muted: hsl(var(--muted-foreground));
|
|
98
|
+
--text-accent: hsl(var(--primary));
|
|
99
|
+
--text-accent-hover: hsl(var(--primary));
|
|
100
|
+
--accent-border: hsl(var(--primary));
|
|
101
|
+
--border-subtle: hsl(var(--border));
|
|
102
|
+
|
|
103
|
+
/* Section spacing tokens (responsive) */
|
|
104
|
+
--section-padding-y-mobile: 4rem;
|
|
105
|
+
--section-padding-y-tablet: 6rem;
|
|
106
|
+
--section-padding-y-desktop: 6rem;
|
|
107
|
+
--section-padding-x-mobile: 1.5rem;
|
|
108
|
+
--section-padding-x-desktop: 5rem;
|
|
109
|
+
|
|
110
|
+
/* Callout tokens */
|
|
111
|
+
--callout-icon-color: var(--body-text-color);
|
|
112
|
+
--callout-text-color: var(--body-text-color);
|
|
113
|
+
--callout-icon-size: 0.55em;
|
|
114
|
+
--callout-stream-delay: 0s;
|
|
115
|
+
--callout-star-duration: 2000;
|
|
116
|
+
--callout-star-delay: 400;
|
|
117
|
+
|
|
118
|
+
/* Prose defaults */
|
|
119
|
+
--tw-prose-body: hsl(var(--foreground));
|
|
120
|
+
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.dark {
|
|
124
|
+
--background: 0 0% 3.9%;
|
|
125
|
+
--foreground: 0 0% 98%;
|
|
126
|
+
--card: 0 0% 3.9%;
|
|
127
|
+
--card-foreground: 0 0% 98%;
|
|
128
|
+
--popover: 0 0% 3.9%;
|
|
129
|
+
--popover-foreground: 0 0% 98%;
|
|
130
|
+
--primary: 0 0% 98%;
|
|
131
|
+
--primary-foreground: 0 0% 9%;
|
|
132
|
+
--secondary: 0 0% 14.9%;
|
|
133
|
+
--secondary-foreground: 0 0% 98%;
|
|
134
|
+
--muted: 0 0% 14.9%;
|
|
135
|
+
--muted-foreground: 0 0% 63.9%;
|
|
136
|
+
--accent: 0 0% 14.9%;
|
|
137
|
+
--accent-foreground: 0 0% 98%;
|
|
138
|
+
--destructive: 0 62.8% 30.6%;
|
|
139
|
+
--destructive-foreground: 0 0% 98%;
|
|
140
|
+
--border: 0 0% 14.9%;
|
|
141
|
+
--input: 0 0% 14.9%;
|
|
142
|
+
--ring: 0 0% 83.1%;
|
|
143
|
+
|
|
144
|
+
--sidebar: 0 0% 3.9%;
|
|
145
|
+
--sidebar-foreground: 0 0% 98%;
|
|
146
|
+
--sidebar-primary: 0 0% 98%;
|
|
147
|
+
--sidebar-primary-foreground: 0 0% 9%;
|
|
148
|
+
--sidebar-accent: 0 0% 14.9%;
|
|
149
|
+
--sidebar-accent-foreground: 0 0% 98%;
|
|
150
|
+
--sidebar-border: 0 0% 14.9%;
|
|
151
|
+
--sidebar-ring: 0 0% 83.1%;
|
|
152
|
+
}
|