@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.
Files changed (947) hide show
  1. package/README.md +8 -0
  2. package/dist/cjs/client/clientBundleOverride.js +48 -0
  3. package/dist/cjs/client/clientBundleOverride.js.map +1 -0
  4. package/dist/cjs/client/devEnvironment.js +4 -0
  5. package/dist/cjs/client/devEnvironment.js.map +1 -0
  6. package/dist/cjs/client/loadClientBundle.js +85 -0
  7. package/dist/cjs/client/loadClientBundle.js.map +1 -0
  8. package/dist/cjs/client/wixAuthFetch.js +73 -0
  9. package/dist/cjs/client/wixAuthFetch.js.map +1 -0
  10. package/dist/cjs/clients.js +15 -0
  11. package/dist/cjs/clients.js.map +1 -0
  12. package/dist/cjs/color/colorUtils.js +126 -0
  13. package/dist/cjs/color/colorUtils.js.map +1 -0
  14. package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js +67 -0
  15. package/dist/cjs/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
  16. package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js +141 -0
  17. package/dist/cjs/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
  18. package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js +85 -0
  19. package/dist/cjs/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
  20. package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js +171 -0
  21. package/dist/cjs/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
  22. package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js +81 -0
  23. package/dist/cjs/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
  24. package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js +29 -0
  25. package/dist/cjs/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
  26. package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js +119 -0
  27. package/dist/cjs/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
  28. package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js +75 -0
  29. package/dist/cjs/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
  30. package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js +124 -0
  31. package/dist/cjs/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
  32. package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js +209 -0
  33. package/dist/cjs/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
  34. package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js +19 -0
  35. package/dist/cjs/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
  36. package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js +114 -0
  37. package/dist/cjs/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
  38. package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js +136 -0
  39. package/dist/cjs/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
  40. package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js +18 -0
  41. package/dist/cjs/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
  42. package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js +20 -0
  43. package/dist/cjs/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
  44. package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js +65 -0
  45. package/dist/cjs/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
  46. package/dist/cjs/component/componentDefinitions/index.js +48 -0
  47. package/dist/cjs/component/componentDefinitions/index.js.map +1 -0
  48. package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js +86 -0
  49. package/dist/cjs/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
  50. package/dist/cjs/component/componentDefinitions/parse-utils.js +434 -0
  51. package/dist/cjs/component/componentDefinitions/parse-utils.js.map +1 -0
  52. package/dist/cjs/component/componentDefinitions/specHelpers.js +36 -0
  53. package/dist/cjs/component/componentDefinitions/specHelpers.js.map +1 -0
  54. package/dist/cjs/component/componentParser.js +365 -0
  55. package/dist/cjs/component/componentParser.js.map +1 -0
  56. package/dist/cjs/component/diagnosticTypes.js +30 -0
  57. package/dist/cjs/component/diagnosticTypes.js.map +1 -0
  58. package/dist/cjs/component/parser-types.js +4 -0
  59. package/dist/cjs/component/parser-types.js.map +1 -0
  60. package/dist/cjs/component/section-definition.js +4 -0
  61. package/dist/cjs/component/section-definition.js.map +1 -0
  62. package/dist/cjs/component/types.js +4 -0
  63. package/dist/cjs/component/types.js.map +1 -0
  64. package/dist/cjs/components/placement/PlacementPayloadContext.js +29 -0
  65. package/dist/cjs/components/placement/PlacementPayloadContext.js.map +1 -0
  66. package/dist/cjs/components/placement/PlacementResponseRenderer.css +269 -0
  67. package/dist/cjs/components/placement/PlacementResponseRenderer.js +259 -0
  68. package/dist/cjs/components/placement/PlacementResponseRenderer.js.map +1 -0
  69. package/dist/cjs/components/placement/buildPlacementDependencies.js +214 -0
  70. package/dist/cjs/components/placement/buildPlacementDependencies.js.map +1 -0
  71. package/dist/cjs/components/ui/BottomContainer.js +26 -0
  72. package/dist/cjs/components/ui/BottomContainer.js.map +1 -0
  73. package/dist/cjs/components/ui/CalloutBlock.js +156 -0
  74. package/dist/cjs/components/ui/CalloutBlock.js.map +1 -0
  75. package/dist/cjs/components/ui/Disclaimer.css +35 -0
  76. package/dist/cjs/components/ui/Disclaimer.js +56 -0
  77. package/dist/cjs/components/ui/Disclaimer.js.map +1 -0
  78. package/dist/cjs/components/ui/FeedbackBar.css +267 -0
  79. package/dist/cjs/components/ui/FeedbackBar.js +417 -0
  80. package/dist/cjs/components/ui/FeedbackBar.js.map +1 -0
  81. package/dist/cjs/components/ui/Loader.js +73 -0
  82. package/dist/cjs/components/ui/Loader.js.map +1 -0
  83. package/dist/cjs/components/ui/MarkdownText.js +419 -0
  84. package/dist/cjs/components/ui/MarkdownText.js.map +1 -0
  85. package/dist/cjs/components/ui/OptimizedImage.js +414 -0
  86. package/dist/cjs/components/ui/OptimizedImage.js.map +1 -0
  87. package/dist/cjs/components/ui/PlacementLoader.css +101 -0
  88. package/dist/cjs/components/ui/PlacementLoader.js +62 -0
  89. package/dist/cjs/components/ui/PlacementLoader.js.map +1 -0
  90. package/dist/cjs/components/ui/PromptEntryEmptyState.css +172 -0
  91. package/dist/cjs/components/ui/PromptEntryEmptyState.js +96 -0
  92. package/dist/cjs/components/ui/PromptEntryEmptyState.js.map +1 -0
  93. package/dist/cjs/components/ui/SearchSection.css +538 -0
  94. package/dist/cjs/components/ui/SearchSection.js +550 -0
  95. package/dist/cjs/components/ui/SearchSection.js.map +1 -0
  96. package/dist/cjs/components/ui/SectionSkeleton.css +109 -0
  97. package/dist/cjs/components/ui/SectionSkeleton.js +190 -0
  98. package/dist/cjs/components/ui/SectionSkeleton.js.map +1 -0
  99. package/dist/cjs/components/ui/SmartIcon.js +122 -0
  100. package/dist/cjs/components/ui/SmartIcon.js.map +1 -0
  101. package/dist/cjs/components/ui/UnifiedLink.js +169 -0
  102. package/dist/cjs/components/ui/UnifiedLink.js.map +1 -0
  103. package/dist/cjs/components/ui/UserQuery.js +348 -0
  104. package/dist/cjs/components/ui/UserQuery.js.map +1 -0
  105. package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js +37 -0
  106. package/dist/cjs/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
  107. package/dist/cjs/components/ui/icons/ArrowUpIcon.js +61 -0
  108. package/dist/cjs/components/ui/icons/ArrowUpIcon.js.map +1 -0
  109. package/dist/cjs/components/ui/icons/CheckIcon.js +37 -0
  110. package/dist/cjs/components/ui/icons/CheckIcon.js.map +1 -0
  111. package/dist/cjs/components/ui/icons/CommentIcon.js +34 -0
  112. package/dist/cjs/components/ui/icons/CommentIcon.js.map +1 -0
  113. package/dist/cjs/components/ui/icons/PlusIcon.js +51 -0
  114. package/dist/cjs/components/ui/icons/PlusIcon.js.map +1 -0
  115. package/dist/cjs/components/ui/icons/RedoIcon.js +51 -0
  116. package/dist/cjs/components/ui/icons/RedoIcon.js.map +1 -0
  117. package/dist/cjs/components/ui/icons/ShareIcon.js +81 -0
  118. package/dist/cjs/components/ui/icons/ShareIcon.js.map +1 -0
  119. package/dist/cjs/components/ui/icons/UndoIcon.js +51 -0
  120. package/dist/cjs/components/ui/icons/UndoIcon.js.map +1 -0
  121. package/dist/cjs/components/ui/table.js +159 -0
  122. package/dist/cjs/components/ui/table.js.map +1 -0
  123. package/dist/cjs/context/ChipsContext.js +12 -0
  124. package/dist/cjs/context/ChipsContext.js.map +1 -0
  125. package/dist/cjs/context/ComponentDependenciesContext.js +32 -0
  126. package/dist/cjs/context/ComponentDependenciesContext.js.map +1 -0
  127. package/dist/cjs/entity/defaultExtractor.js +117 -0
  128. package/dist/cjs/entity/defaultExtractor.js.map +1 -0
  129. package/dist/cjs/entity/enrichEntitiesFromPayload.js +39 -0
  130. package/dist/cjs/entity/enrichEntitiesFromPayload.js.map +1 -0
  131. package/dist/cjs/entity/fetchEntityListData.js +78 -0
  132. package/dist/cjs/entity/fetchEntityListData.js.map +1 -0
  133. package/dist/cjs/entity/index.js +41 -0
  134. package/dist/cjs/entity/index.js.map +1 -0
  135. package/dist/cjs/entity/types.js +4 -0
  136. package/dist/cjs/entity/types.js.map +1 -0
  137. package/dist/cjs/errors/conversationErrorTypes.js +56 -0
  138. package/dist/cjs/errors/conversationErrorTypes.js.map +1 -0
  139. package/dist/cjs/errors/errorTemplates.js +86 -0
  140. package/dist/cjs/errors/errorTemplates.js.map +1 -0
  141. package/dist/cjs/errors/index.js +13 -0
  142. package/dist/cjs/errors/index.js.map +1 -0
  143. package/dist/cjs/external-types.d.js +2 -0
  144. package/dist/cjs/external-types.d.js.map +1 -0
  145. package/dist/cjs/featureToggles/FeatureToggleContext.js +44 -0
  146. package/dist/cjs/featureToggles/FeatureToggleContext.js.map +1 -0
  147. package/dist/cjs/hooks/useConversation.js +10 -0
  148. package/dist/cjs/hooks/useConversation.js.map +1 -0
  149. package/dist/cjs/hooks/useDebugImageContext.js +10 -0
  150. package/dist/cjs/hooks/useDebugImageContext.js.map +1 -0
  151. package/dist/cjs/hooks/useEntityTransforms.js +10 -0
  152. package/dist/cjs/hooks/useEntityTransforms.js.map +1 -0
  153. package/dist/cjs/hooks/useMarkdownUtils.js +10 -0
  154. package/dist/cjs/hooks/useMarkdownUtils.js.map +1 -0
  155. package/dist/cjs/hooks/useResolveGenericEntityData.js +10 -0
  156. package/dist/cjs/hooks/useResolveGenericEntityData.js.map +1 -0
  157. package/dist/cjs/hooks/useResolveSearchSpringEntityData.js +146 -0
  158. package/dist/cjs/hooks/useResolveSearchSpringEntityData.js.map +1 -0
  159. package/dist/cjs/hooks/useResolveShopifyEntityData.js +190 -0
  160. package/dist/cjs/hooks/useResolveShopifyEntityData.js.map +1 -0
  161. package/dist/cjs/hooks/useResolvedImageSources.js +160 -0
  162. package/dist/cjs/hooks/useResolvedImageSources.js.map +1 -0
  163. package/dist/cjs/hooks/useWeb5Link.js +10 -0
  164. package/dist/cjs/hooks/useWeb5Link.js.map +1 -0
  165. package/dist/cjs/image/contextualImageTypes.js +4 -0
  166. package/dist/cjs/image/contextualImageTypes.js.map +1 -0
  167. package/dist/cjs/image/imageSearchFilterTypes.js +19 -0
  168. package/dist/cjs/image/imageSearchFilterTypes.js.map +1 -0
  169. package/dist/cjs/image/imageSearchFilters.js +22 -0
  170. package/dist/cjs/image/imageSearchFilters.js.map +1 -0
  171. package/dist/cjs/index.js +285 -0
  172. package/dist/cjs/index.js.map +1 -0
  173. package/dist/cjs/lib/utils.js +33 -0
  174. package/dist/cjs/lib/utils.js.map +1 -0
  175. package/dist/cjs/markdownBlocks.js +645 -0
  176. package/dist/cjs/markdownBlocks.js.map +1 -0
  177. package/dist/cjs/match/astToParts.js +374 -0
  178. package/dist/cjs/match/astToParts.js.map +1 -0
  179. package/dist/cjs/match/extractProps.js +654 -0
  180. package/dist/cjs/match/extractProps.js.map +1 -0
  181. package/dist/cjs/match/index.js +11 -0
  182. package/dist/cjs/match/index.js.map +1 -0
  183. package/dist/cjs/match/matchAllSections.js +34 -0
  184. package/dist/cjs/match/matchAllSections.js.map +1 -0
  185. package/dist/cjs/match/matchMarkdown.js +39 -0
  186. package/dist/cjs/match/matchMarkdown.js.map +1 -0
  187. package/dist/cjs/parts/parts.js +183 -0
  188. package/dist/cjs/parts/parts.js.map +1 -0
  189. package/dist/cjs/patternAnalyzer/conflictDetector.js +103 -0
  190. package/dist/cjs/patternAnalyzer/conflictDetector.js.map +1 -0
  191. package/dist/cjs/patternAnalyzer/index.js +40 -0
  192. package/dist/cjs/patternAnalyzer/index.js.map +1 -0
  193. package/dist/cjs/patternAnalyzer/markdownGenerator.js +347 -0
  194. package/dist/cjs/patternAnalyzer/markdownGenerator.js.map +1 -0
  195. package/dist/cjs/patternAnalyzer/mergeDetector.js +505 -0
  196. package/dist/cjs/patternAnalyzer/mergeDetector.js.map +1 -0
  197. package/dist/cjs/patternAnalyzer/parserValidator.js +56 -0
  198. package/dist/cjs/patternAnalyzer/parserValidator.js.map +1 -0
  199. package/dist/cjs/patternAnalyzer/patternWriter.js +106 -0
  200. package/dist/cjs/patternAnalyzer/patternWriter.js.map +1 -0
  201. package/dist/cjs/patternAnalyzer/run.js +140 -0
  202. package/dist/cjs/patternAnalyzer/run.js.map +1 -0
  203. package/dist/cjs/patternAnalyzer/types.js +4 -0
  204. package/dist/cjs/patternAnalyzer/types.js.map +1 -0
  205. package/dist/cjs/patternValidator/ERROR_MESSAGES.md +110 -0
  206. package/dist/cjs/patternValidator/README.md +757 -0
  207. package/dist/cjs/patternValidator/automaton.js +349 -0
  208. package/dist/cjs/patternValidator/automaton.js.map +1 -0
  209. package/dist/cjs/patternValidator/index.js +196 -0
  210. package/dist/cjs/patternValidator/index.js.map +1 -0
  211. package/dist/cjs/patternValidator/lexer.js +218 -0
  212. package/dist/cjs/patternValidator/lexer.js.map +1 -0
  213. package/dist/cjs/patternValidator/matcher.js +722 -0
  214. package/dist/cjs/patternValidator/matcher.js.map +1 -0
  215. package/dist/cjs/patternValidator/parser.js +533 -0
  216. package/dist/cjs/patternValidator/parser.js.map +1 -0
  217. package/dist/cjs/patternValidator/types.js +4 -0
  218. package/dist/cjs/patternValidator/types.js.map +1 -0
  219. package/dist/cjs/patternValidator/validator.test.js +1277 -0
  220. package/dist/cjs/patternValidator/validator.test.js.map +1 -0
  221. package/dist/cjs/registry/ComponentRegistry.js +438 -0
  222. package/dist/cjs/registry/ComponentRegistry.js.map +1 -0
  223. package/dist/cjs/registry/Intent.js +19 -0
  224. package/dist/cjs/registry/Intent.js.map +1 -0
  225. package/dist/cjs/registry/index.js +9 -0
  226. package/dist/cjs/registry/index.js.map +1 -0
  227. package/dist/cjs/registry/types.js +4 -0
  228. package/dist/cjs/registry/types.js.map +1 -0
  229. package/dist/cjs/services/cart/addToCart.js +147 -0
  230. package/dist/cjs/services/cart/addToCart.js.map +1 -0
  231. package/dist/cjs/services/cart/index.js +7 -0
  232. package/dist/cjs/services/cart/index.js.map +1 -0
  233. package/dist/cjs/services/searchspring/index.js +10 -0
  234. package/dist/cjs/services/searchspring/index.js.map +1 -0
  235. package/dist/cjs/services/searchspring/searchSpringClient.js +49 -0
  236. package/dist/cjs/services/searchspring/searchSpringClient.js.map +1 -0
  237. package/dist/cjs/services/searchspring/transformSSProduct.js +70 -0
  238. package/dist/cjs/services/searchspring/transformSSProduct.js.map +1 -0
  239. package/dist/cjs/services/searchspring/types.js +4 -0
  240. package/dist/cjs/services/searchspring/types.js.map +1 -0
  241. package/dist/cjs/services/shopify/globals.d.js +4 -0
  242. package/dist/cjs/services/shopify/globals.d.js.map +1 -0
  243. package/dist/cjs/services/shopify/index.js +22 -0
  244. package/dist/cjs/services/shopify/index.js.map +1 -0
  245. package/dist/cjs/services/shopify/queries.js +214 -0
  246. package/dist/cjs/services/shopify/queries.js.map +1 -0
  247. package/dist/cjs/services/shopify/resolveStoreDomain.js +28 -0
  248. package/dist/cjs/services/shopify/resolveStoreDomain.js.map +1 -0
  249. package/dist/cjs/services/shopify/shopifyEntityResolver.js +109 -0
  250. package/dist/cjs/services/shopify/shopifyEntityResolver.js.map +1 -0
  251. package/dist/cjs/services/shopify/shopifyStorefrontClient.js +58 -0
  252. package/dist/cjs/services/shopify/shopifyStorefrontClient.js.map +1 -0
  253. package/dist/cjs/services/shopify/transformShopifyEntity.js +137 -0
  254. package/dist/cjs/services/shopify/transformShopifyEntity.js.map +1 -0
  255. package/dist/cjs/services/shopify/types.js +4 -0
  256. package/dist/cjs/services/shopify/types.js.map +1 -0
  257. package/dist/cjs/styles/base-tokens.css +152 -0
  258. package/dist/cjs/styles/base-utilities.css +424 -0
  259. package/dist/cjs/styles/components.css +6 -0
  260. package/dist/cjs/styles/prompt-input-tokens.css +136 -0
  261. package/dist/cjs/styles/tailwind-theme.css +138 -0
  262. package/dist/cjs/test-types.d.js +2 -0
  263. package/dist/cjs/test-types.d.js.map +1 -0
  264. package/dist/cjs/testUtils.js +25 -0
  265. package/dist/cjs/testUtils.js.map +1 -0
  266. package/dist/cjs/types/answerUpdatedEvent.js +20 -0
  267. package/dist/cjs/types/answerUpdatedEvent.js.map +1 -0
  268. package/dist/cjs/types/blog.js +4 -0
  269. package/dist/cjs/types/blog.js.map +1 -0
  270. package/dist/cjs/types/callout.js +6 -0
  271. package/dist/cjs/types/callout.js.map +1 -0
  272. package/dist/cjs/types/dependencies.js +4 -0
  273. package/dist/cjs/types/dependencies.js.map +1 -0
  274. package/dist/cjs/types/entity.js +4 -0
  275. package/dist/cjs/types/entity.js.map +1 -0
  276. package/dist/cjs/types/link-types.js +62 -0
  277. package/dist/cjs/types/link-types.js.map +1 -0
  278. package/dist/cjs/types/page-section.js +4 -0
  279. package/dist/cjs/types/page-section.js.map +1 -0
  280. package/dist/cjs/types/placement.js +4 -0
  281. package/dist/cjs/types/placement.js.map +1 -0
  282. package/dist/cjs/types/redirectEvent.js +27 -0
  283. package/dist/cjs/types/redirectEvent.js.map +1 -0
  284. package/dist/cjs/types/userQueryEvent.js +19 -0
  285. package/dist/cjs/types/userQueryEvent.js.map +1 -0
  286. package/dist/cjs/utils/analyticsEvents.js +91 -0
  287. package/dist/cjs/utils/analyticsEvents.js.map +1 -0
  288. package/dist/cjs/utils/componentTracking.js +90 -0
  289. package/dist/cjs/utils/componentTracking.js.map +1 -0
  290. package/dist/cjs/utils/contentKeywordMatcher.js +56 -0
  291. package/dist/cjs/utils/contentKeywordMatcher.js.map +1 -0
  292. package/dist/cjs/utils/conversationApi.js +52 -0
  293. package/dist/cjs/utils/conversationApi.js.map +1 -0
  294. package/dist/cjs/utils/conversationMode.js +23 -0
  295. package/dist/cjs/utils/conversationMode.js.map +1 -0
  296. package/dist/cjs/utils/diagnosticsCollector.js +58 -0
  297. package/dist/cjs/utils/diagnosticsCollector.js.map +1 -0
  298. package/dist/cjs/utils/entityLinkParser.js +256 -0
  299. package/dist/cjs/utils/entityLinkParser.js.map +1 -0
  300. package/dist/cjs/utils/htmlCommentParser.js +122 -0
  301. package/dist/cjs/utils/htmlCommentParser.js.map +1 -0
  302. package/dist/cjs/utils/image-utils.js +49 -0
  303. package/dist/cjs/utils/image-utils.js.map +1 -0
  304. package/dist/cjs/utils/intentExtractor.js +47 -0
  305. package/dist/cjs/utils/intentExtractor.js.map +1 -0
  306. package/dist/cjs/utils/markdownPreprocessor.js +268 -0
  307. package/dist/cjs/utils/markdownPreprocessor.js.map +1 -0
  308. package/dist/cjs/utils/navigationStack.js +35 -0
  309. package/dist/cjs/utils/navigationStack.js.map +1 -0
  310. package/dist/cjs/utils/nodeMatchers.js +43 -0
  311. package/dist/cjs/utils/nodeMatchers.js.map +1 -0
  312. package/dist/cjs/utils/propsExtractor.js +66 -0
  313. package/dist/cjs/utils/propsExtractor.js.map +1 -0
  314. package/dist/cjs/utils/sessionManager.js +161 -0
  315. package/dist/cjs/utils/sessionManager.js.map +1 -0
  316. package/dist/cjs/utils/unifiedMarkdownParser.js +44 -0
  317. package/dist/cjs/utils/unifiedMarkdownParser.js.map +1 -0
  318. package/dist/cjs/utils/web5LinkValidator.js +56 -0
  319. package/dist/cjs/utils/web5LinkValidator.js.map +1 -0
  320. package/dist/cjs/utils/web5LinkValidator.test.js +115 -0
  321. package/dist/cjs/utils/web5LinkValidator.test.js.map +1 -0
  322. package/dist/esm/client/clientBundleOverride.js +43 -0
  323. package/dist/esm/client/clientBundleOverride.js.map +1 -0
  324. package/dist/esm/client/devEnvironment.js +2 -0
  325. package/dist/esm/client/devEnvironment.js.map +1 -0
  326. package/dist/esm/client/loadClientBundle.js +82 -0
  327. package/dist/esm/client/loadClientBundle.js.map +1 -0
  328. package/dist/esm/client/wixAuthFetch.js +68 -0
  329. package/dist/esm/client/wixAuthFetch.js.map +1 -0
  330. package/dist/esm/clients.js +11 -0
  331. package/dist/esm/clients.js.map +1 -0
  332. package/dist/esm/color/colorUtils.js +118 -0
  333. package/dist/esm/color/colorUtils.js.map +1 -0
  334. package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js +61 -0
  335. package/dist/esm/component/componentDefinitions/CalloutSectionDefinition.js.map +1 -0
  336. package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js +135 -0
  337. package/dist/esm/component/componentDefinitions/ComparisonSectionDefinition.js.map +1 -0
  338. package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js +79 -0
  339. package/dist/esm/component/componentDefinitions/CtaBannerSectionDefinition.js.map +1 -0
  340. package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js +165 -0
  341. package/dist/esm/component/componentDefinitions/EntitySectionDefinition.js.map +1 -0
  342. package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js +75 -0
  343. package/dist/esm/component/componentDefinitions/ErrorSectionDefinition.js.map +1 -0
  344. package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js +23 -0
  345. package/dist/esm/component/componentDefinitions/FallbackSectionDefinition.js.map +1 -0
  346. package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js +113 -0
  347. package/dist/esm/component/componentDefinitions/FeatureCardsSectionDefinition.js.map +1 -0
  348. package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js +69 -0
  349. package/dist/esm/component/componentDefinitions/FeatureSection9PlusDefinition.js.map +1 -0
  350. package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js +119 -0
  351. package/dist/esm/component/componentDefinitions/HeroEntitySectionDefinition.js.map +1 -0
  352. package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js +203 -0
  353. package/dist/esm/component/componentDefinitions/HeroSectionDefinition.js.map +1 -0
  354. package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js +13 -0
  355. package/dist/esm/component/componentDefinitions/HtmlCommentSectionDefinition.js.map +1 -0
  356. package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js +108 -0
  357. package/dist/esm/component/componentDefinitions/KpiSectionDefinition.js.map +1 -0
  358. package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js +130 -0
  359. package/dist/esm/component/componentDefinitions/NextStepsSectionDefinition.js.map +1 -0
  360. package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js +12 -0
  361. package/dist/esm/component/componentDefinitions/SearchSectionDefinition.js.map +1 -0
  362. package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js +14 -0
  363. package/dist/esm/component/componentDefinitions/SkipNodesSectionDefinition.js.map +1 -0
  364. package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js +59 -0
  365. package/dist/esm/component/componentDefinitions/TextBlockSectionDefinition.js.map +1 -0
  366. package/dist/esm/component/componentDefinitions/index.js +45 -0
  367. package/dist/esm/component/componentDefinitions/index.js.map +1 -0
  368. package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js +80 -0
  369. package/dist/esm/component/componentDefinitions/listItemsSectionDefinition.js.map +1 -0
  370. package/dist/esm/component/componentDefinitions/parse-utils.js +412 -0
  371. package/dist/esm/component/componentDefinitions/parse-utils.js.map +1 -0
  372. package/dist/esm/component/componentDefinitions/specHelpers.js +31 -0
  373. package/dist/esm/component/componentDefinitions/specHelpers.js.map +1 -0
  374. package/dist/esm/component/componentParser.js +358 -0
  375. package/dist/esm/component/componentParser.js.map +1 -0
  376. package/dist/esm/component/diagnosticTypes.js +26 -0
  377. package/dist/esm/component/diagnosticTypes.js.map +1 -0
  378. package/dist/esm/component/parser-types.js +2 -0
  379. package/dist/esm/component/parser-types.js.map +1 -0
  380. package/dist/esm/component/section-definition.js +2 -0
  381. package/dist/esm/component/section-definition.js.map +1 -0
  382. package/dist/esm/component/types.js +2 -0
  383. package/dist/esm/component/types.js.map +1 -0
  384. package/dist/esm/components/placement/PlacementPayloadContext.js +24 -0
  385. package/dist/esm/components/placement/PlacementPayloadContext.js.map +1 -0
  386. package/dist/esm/components/placement/PlacementResponseRenderer.css +269 -0
  387. package/dist/esm/components/placement/PlacementResponseRenderer.js +173 -0
  388. package/dist/esm/components/placement/PlacementResponseRenderer.js.map +1 -0
  389. package/dist/esm/components/placement/buildPlacementDependencies.js +212 -0
  390. package/dist/esm/components/placement/buildPlacementDependencies.js.map +1 -0
  391. package/dist/esm/components/ui/BottomContainer.js +14 -0
  392. package/dist/esm/components/ui/BottomContainer.js.map +1 -0
  393. package/dist/esm/components/ui/CalloutBlock.js +118 -0
  394. package/dist/esm/components/ui/CalloutBlock.js.map +1 -0
  395. package/dist/esm/components/ui/Disclaimer.css +35 -0
  396. package/dist/esm/components/ui/Disclaimer.js +32 -0
  397. package/dist/esm/components/ui/Disclaimer.js.map +1 -0
  398. package/dist/esm/components/ui/FeedbackBar.css +267 -0
  399. package/dist/esm/components/ui/FeedbackBar.js +221 -0
  400. package/dist/esm/components/ui/FeedbackBar.js.map +1 -0
  401. package/dist/esm/components/ui/Loader.js +43 -0
  402. package/dist/esm/components/ui/Loader.js.map +1 -0
  403. package/dist/esm/components/ui/MarkdownText.js +283 -0
  404. package/dist/esm/components/ui/MarkdownText.js.map +1 -0
  405. package/dist/esm/components/ui/OptimizedImage.js +354 -0
  406. package/dist/esm/components/ui/OptimizedImage.js.map +1 -0
  407. package/dist/esm/components/ui/PlacementLoader.css +101 -0
  408. package/dist/esm/components/ui/PlacementLoader.js +28 -0
  409. package/dist/esm/components/ui/PlacementLoader.js.map +1 -0
  410. package/dist/esm/components/ui/PromptEntryEmptyState.css +172 -0
  411. package/dist/esm/components/ui/PromptEntryEmptyState.js +36 -0
  412. package/dist/esm/components/ui/PromptEntryEmptyState.js.map +1 -0
  413. package/dist/esm/components/ui/SearchSection.css +538 -0
  414. package/dist/esm/components/ui/SearchSection.js +317 -0
  415. package/dist/esm/components/ui/SearchSection.js.map +1 -0
  416. package/dist/esm/components/ui/SectionSkeleton.css +109 -0
  417. package/dist/esm/components/ui/SectionSkeleton.js +100 -0
  418. package/dist/esm/components/ui/SectionSkeleton.js.map +1 -0
  419. package/dist/esm/components/ui/SmartIcon.js +91 -0
  420. package/dist/esm/components/ui/SmartIcon.js.map +1 -0
  421. package/dist/esm/components/ui/UnifiedLink.js +105 -0
  422. package/dist/esm/components/ui/UnifiedLink.js.map +1 -0
  423. package/dist/esm/components/ui/UserQuery.js +167 -0
  424. package/dist/esm/components/ui/UserQuery.js.map +1 -0
  425. package/dist/esm/components/ui/icons/ArrowTopRightIcon.js +17 -0
  426. package/dist/esm/components/ui/icons/ArrowTopRightIcon.js.map +1 -0
  427. package/dist/esm/components/ui/icons/ArrowUpIcon.js +29 -0
  428. package/dist/esm/components/ui/icons/ArrowUpIcon.js.map +1 -0
  429. package/dist/esm/components/ui/icons/CheckIcon.js +17 -0
  430. package/dist/esm/components/ui/icons/CheckIcon.js.map +1 -0
  431. package/dist/esm/components/ui/icons/CommentIcon.js +15 -0
  432. package/dist/esm/components/ui/icons/CommentIcon.js.map +1 -0
  433. package/dist/esm/components/ui/icons/PlusIcon.js +25 -0
  434. package/dist/esm/components/ui/icons/PlusIcon.js.map +1 -0
  435. package/dist/esm/components/ui/icons/RedoIcon.js +25 -0
  436. package/dist/esm/components/ui/icons/RedoIcon.js.map +1 -0
  437. package/dist/esm/components/ui/icons/ShareIcon.js +37 -0
  438. package/dist/esm/components/ui/icons/ShareIcon.js.map +1 -0
  439. package/dist/esm/components/ui/icons/UndoIcon.js +25 -0
  440. package/dist/esm/components/ui/icons/UndoIcon.js.map +1 -0
  441. package/dist/esm/components/ui/table.js +92 -0
  442. package/dist/esm/components/ui/table.js.map +1 -0
  443. package/dist/esm/context/ChipsContext.js +7 -0
  444. package/dist/esm/context/ChipsContext.js.map +1 -0
  445. package/dist/esm/context/ComponentDependenciesContext.js +19 -0
  446. package/dist/esm/context/ComponentDependenciesContext.js.map +1 -0
  447. package/dist/esm/entity/defaultExtractor.js +111 -0
  448. package/dist/esm/entity/defaultExtractor.js.map +1 -0
  449. package/dist/esm/entity/enrichEntitiesFromPayload.js +35 -0
  450. package/dist/esm/entity/enrichEntitiesFromPayload.js.map +1 -0
  451. package/dist/esm/entity/fetchEntityListData.js +76 -0
  452. package/dist/esm/entity/fetchEntityListData.js.map +1 -0
  453. package/dist/esm/entity/index.js +29 -0
  454. package/dist/esm/entity/index.js.map +1 -0
  455. package/dist/esm/entity/types.js +2 -0
  456. package/dist/esm/entity/types.js.map +1 -0
  457. package/dist/esm/errors/conversationErrorTypes.js +50 -0
  458. package/dist/esm/errors/conversationErrorTypes.js.map +1 -0
  459. package/dist/esm/errors/errorTemplates.js +81 -0
  460. package/dist/esm/errors/errorTemplates.js.map +1 -0
  461. package/dist/esm/errors/index.js +3 -0
  462. package/dist/esm/errors/index.js.map +1 -0
  463. package/dist/esm/external-types.d.js +2 -0
  464. package/dist/esm/external-types.d.js.map +1 -0
  465. package/dist/esm/featureToggles/FeatureToggleContext.js +30 -0
  466. package/dist/esm/featureToggles/FeatureToggleContext.js.map +1 -0
  467. package/dist/esm/hooks/useConversation.js +6 -0
  468. package/dist/esm/hooks/useConversation.js.map +1 -0
  469. package/dist/esm/hooks/useDebugImageContext.js +6 -0
  470. package/dist/esm/hooks/useDebugImageContext.js.map +1 -0
  471. package/dist/esm/hooks/useEntityTransforms.js +6 -0
  472. package/dist/esm/hooks/useEntityTransforms.js.map +1 -0
  473. package/dist/esm/hooks/useMarkdownUtils.js +6 -0
  474. package/dist/esm/hooks/useMarkdownUtils.js.map +1 -0
  475. package/dist/esm/hooks/useResolveGenericEntityData.js +6 -0
  476. package/dist/esm/hooks/useResolveGenericEntityData.js.map +1 -0
  477. package/dist/esm/hooks/useResolveSearchSpringEntityData.js +146 -0
  478. package/dist/esm/hooks/useResolveSearchSpringEntityData.js.map +1 -0
  479. package/dist/esm/hooks/useResolveShopifyEntityData.js +191 -0
  480. package/dist/esm/hooks/useResolveShopifyEntityData.js.map +1 -0
  481. package/dist/esm/hooks/useResolvedImageSources.js +169 -0
  482. package/dist/esm/hooks/useResolvedImageSources.js.map +1 -0
  483. package/dist/esm/hooks/useWeb5Link.js +6 -0
  484. package/dist/esm/hooks/useWeb5Link.js.map +1 -0
  485. package/dist/esm/image/contextualImageTypes.js +2 -0
  486. package/dist/esm/image/contextualImageTypes.js.map +1 -0
  487. package/dist/esm/image/imageSearchFilterTypes.js +15 -0
  488. package/dist/esm/image/imageSearchFilterTypes.js.map +1 -0
  489. package/dist/esm/image/imageSearchFilters.js +18 -0
  490. package/dist/esm/image/imageSearchFilters.js.map +1 -0
  491. package/dist/esm/index.js +152 -0
  492. package/dist/esm/index.js.map +1 -0
  493. package/dist/esm/lib/utils.js +33 -0
  494. package/dist/esm/lib/utils.js.map +1 -0
  495. package/dist/esm/markdownBlocks.js +641 -0
  496. package/dist/esm/markdownBlocks.js.map +1 -0
  497. package/dist/esm/match/astToParts.js +371 -0
  498. package/dist/esm/match/astToParts.js.map +1 -0
  499. package/dist/esm/match/extractProps.js +634 -0
  500. package/dist/esm/match/extractProps.js.map +1 -0
  501. package/dist/esm/match/index.js +4 -0
  502. package/dist/esm/match/index.js.map +1 -0
  503. package/dist/esm/match/matchAllSections.js +31 -0
  504. package/dist/esm/match/matchAllSections.js.map +1 -0
  505. package/dist/esm/match/matchMarkdown.js +36 -0
  506. package/dist/esm/match/matchMarkdown.js.map +1 -0
  507. package/dist/esm/parts/parts.js +171 -0
  508. package/dist/esm/parts/parts.js.map +1 -0
  509. package/dist/esm/patternAnalyzer/conflictDetector.js +99 -0
  510. package/dist/esm/patternAnalyzer/conflictDetector.js.map +1 -0
  511. package/dist/esm/patternAnalyzer/index.js +36 -0
  512. package/dist/esm/patternAnalyzer/index.js.map +1 -0
  513. package/dist/esm/patternAnalyzer/markdownGenerator.js +344 -0
  514. package/dist/esm/patternAnalyzer/markdownGenerator.js.map +1 -0
  515. package/dist/esm/patternAnalyzer/mergeDetector.js +504 -0
  516. package/dist/esm/patternAnalyzer/mergeDetector.js.map +1 -0
  517. package/dist/esm/patternAnalyzer/parserValidator.js +52 -0
  518. package/dist/esm/patternAnalyzer/parserValidator.js.map +1 -0
  519. package/dist/esm/patternAnalyzer/patternWriter.js +102 -0
  520. package/dist/esm/patternAnalyzer/patternWriter.js.map +1 -0
  521. package/dist/esm/patternAnalyzer/run.js +138 -0
  522. package/dist/esm/patternAnalyzer/run.js.map +1 -0
  523. package/dist/esm/patternAnalyzer/types.js +2 -0
  524. package/dist/esm/patternAnalyzer/types.js.map +1 -0
  525. package/dist/esm/patternValidator/ERROR_MESSAGES.md +110 -0
  526. package/dist/esm/patternValidator/README.md +757 -0
  527. package/dist/esm/patternValidator/automaton.js +345 -0
  528. package/dist/esm/patternValidator/automaton.js.map +1 -0
  529. package/dist/esm/patternValidator/index.js +190 -0
  530. package/dist/esm/patternValidator/index.js.map +1 -0
  531. package/dist/esm/patternValidator/lexer.js +214 -0
  532. package/dist/esm/patternValidator/lexer.js.map +1 -0
  533. package/dist/esm/patternValidator/matcher.js +717 -0
  534. package/dist/esm/patternValidator/matcher.js.map +1 -0
  535. package/dist/esm/patternValidator/parser.js +531 -0
  536. package/dist/esm/patternValidator/parser.js.map +1 -0
  537. package/dist/esm/patternValidator/types.js +2 -0
  538. package/dist/esm/patternValidator/types.js.map +1 -0
  539. package/dist/esm/patternValidator/validator.test.js +1275 -0
  540. package/dist/esm/patternValidator/validator.test.js.map +1 -0
  541. package/dist/esm/registry/ComponentRegistry.js +435 -0
  542. package/dist/esm/registry/ComponentRegistry.js.map +1 -0
  543. package/dist/esm/registry/Intent.js +15 -0
  544. package/dist/esm/registry/Intent.js.map +1 -0
  545. package/dist/esm/registry/index.js +3 -0
  546. package/dist/esm/registry/index.js.map +1 -0
  547. package/dist/esm/registry/types.js +2 -0
  548. package/dist/esm/registry/types.js.map +1 -0
  549. package/dist/esm/services/cart/addToCart.js +146 -0
  550. package/dist/esm/services/cart/addToCart.js.map +1 -0
  551. package/dist/esm/services/cart/index.js +2 -0
  552. package/dist/esm/services/cart/index.js.map +1 -0
  553. package/dist/esm/services/searchspring/index.js +3 -0
  554. package/dist/esm/services/searchspring/index.js.map +1 -0
  555. package/dist/esm/services/searchspring/searchSpringClient.js +44 -0
  556. package/dist/esm/services/searchspring/searchSpringClient.js.map +1 -0
  557. package/dist/esm/services/searchspring/transformSSProduct.js +66 -0
  558. package/dist/esm/services/searchspring/transformSSProduct.js.map +1 -0
  559. package/dist/esm/services/searchspring/types.js +2 -0
  560. package/dist/esm/services/searchspring/types.js.map +1 -0
  561. package/dist/esm/services/shopify/globals.d.js +7 -0
  562. package/dist/esm/services/shopify/globals.d.js.map +1 -0
  563. package/dist/esm/services/shopify/index.js +6 -0
  564. package/dist/esm/services/shopify/index.js.map +1 -0
  565. package/dist/esm/services/shopify/queries.js +210 -0
  566. package/dist/esm/services/shopify/queries.js.map +1 -0
  567. package/dist/esm/services/shopify/resolveStoreDomain.js +25 -0
  568. package/dist/esm/services/shopify/resolveStoreDomain.js.map +1 -0
  569. package/dist/esm/services/shopify/shopifyEntityResolver.js +105 -0
  570. package/dist/esm/services/shopify/shopifyEntityResolver.js.map +1 -0
  571. package/dist/esm/services/shopify/shopifyStorefrontClient.js +52 -0
  572. package/dist/esm/services/shopify/shopifyStorefrontClient.js.map +1 -0
  573. package/dist/esm/services/shopify/transformShopifyEntity.js +130 -0
  574. package/dist/esm/services/shopify/transformShopifyEntity.js.map +1 -0
  575. package/dist/esm/services/shopify/types.js +2 -0
  576. package/dist/esm/services/shopify/types.js.map +1 -0
  577. package/dist/esm/styles/base-tokens.css +152 -0
  578. package/dist/esm/styles/base-utilities.css +424 -0
  579. package/dist/esm/styles/components.css +6 -0
  580. package/dist/esm/styles/prompt-input-tokens.css +136 -0
  581. package/dist/esm/styles/tailwind-theme.css +138 -0
  582. package/dist/esm/test-types.d.js +2 -0
  583. package/dist/esm/test-types.d.js.map +1 -0
  584. package/dist/esm/testUtils.js +20 -0
  585. package/dist/esm/testUtils.js.map +1 -0
  586. package/dist/esm/types/answerUpdatedEvent.js +16 -0
  587. package/dist/esm/types/answerUpdatedEvent.js.map +1 -0
  588. package/dist/esm/types/blog.js +2 -0
  589. package/dist/esm/types/blog.js.map +1 -0
  590. package/dist/esm/types/callout.js +2 -0
  591. package/dist/esm/types/callout.js.map +1 -0
  592. package/dist/esm/types/dependencies.js +2 -0
  593. package/dist/esm/types/dependencies.js.map +1 -0
  594. package/dist/esm/types/entity.js +2 -0
  595. package/dist/esm/types/entity.js.map +1 -0
  596. package/dist/esm/types/link-types.js +52 -0
  597. package/dist/esm/types/link-types.js.map +1 -0
  598. package/dist/esm/types/page-section.js +2 -0
  599. package/dist/esm/types/page-section.js.map +1 -0
  600. package/dist/esm/types/placement.js +2 -0
  601. package/dist/esm/types/placement.js.map +1 -0
  602. package/dist/esm/types/redirectEvent.js +23 -0
  603. package/dist/esm/types/redirectEvent.js.map +1 -0
  604. package/dist/esm/types/userQueryEvent.js +15 -0
  605. package/dist/esm/types/userQueryEvent.js.map +1 -0
  606. package/dist/esm/utils/analyticsEvents.js +84 -0
  607. package/dist/esm/utils/analyticsEvents.js.map +1 -0
  608. package/dist/esm/utils/componentTracking.js +84 -0
  609. package/dist/esm/utils/componentTracking.js.map +1 -0
  610. package/dist/esm/utils/contentKeywordMatcher.js +50 -0
  611. package/dist/esm/utils/contentKeywordMatcher.js.map +1 -0
  612. package/dist/esm/utils/conversationApi.js +45 -0
  613. package/dist/esm/utils/conversationApi.js.map +1 -0
  614. package/dist/esm/utils/conversationMode.js +18 -0
  615. package/dist/esm/utils/conversationMode.js.map +1 -0
  616. package/dist/esm/utils/diagnosticsCollector.js +52 -0
  617. package/dist/esm/utils/diagnosticsCollector.js.map +1 -0
  618. package/dist/esm/utils/entityLinkParser.js +246 -0
  619. package/dist/esm/utils/entityLinkParser.js.map +1 -0
  620. package/dist/esm/utils/htmlCommentParser.js +117 -0
  621. package/dist/esm/utils/htmlCommentParser.js.map +1 -0
  622. package/dist/esm/utils/image-utils.js +45 -0
  623. package/dist/esm/utils/image-utils.js.map +1 -0
  624. package/dist/esm/utils/intentExtractor.js +45 -0
  625. package/dist/esm/utils/intentExtractor.js.map +1 -0
  626. package/dist/esm/utils/markdownPreprocessor.js +257 -0
  627. package/dist/esm/utils/markdownPreprocessor.js.map +1 -0
  628. package/dist/esm/utils/navigationStack.js +27 -0
  629. package/dist/esm/utils/navigationStack.js.map +1 -0
  630. package/dist/esm/utils/nodeMatchers.js +38 -0
  631. package/dist/esm/utils/nodeMatchers.js.map +1 -0
  632. package/dist/esm/utils/propsExtractor.js +58 -0
  633. package/dist/esm/utils/propsExtractor.js.map +1 -0
  634. package/dist/esm/utils/sessionManager.js +151 -0
  635. package/dist/esm/utils/sessionManager.js.map +1 -0
  636. package/dist/esm/utils/unifiedMarkdownParser.js +36 -0
  637. package/dist/esm/utils/unifiedMarkdownParser.js.map +1 -0
  638. package/dist/esm/utils/web5LinkValidator.js +52 -0
  639. package/dist/esm/utils/web5LinkValidator.js.map +1 -0
  640. package/dist/esm/utils/web5LinkValidator.test.js +113 -0
  641. package/dist/esm/utils/web5LinkValidator.test.js.map +1 -0
  642. package/dist/types/client/clientBundleOverride.d.ts +26 -0
  643. package/dist/types/client/clientBundleOverride.d.ts.map +1 -0
  644. package/dist/types/client/devEnvironment.d.ts +24 -0
  645. package/dist/types/client/devEnvironment.d.ts.map +1 -0
  646. package/dist/types/client/loadClientBundle.d.ts +27 -0
  647. package/dist/types/client/loadClientBundle.d.ts.map +1 -0
  648. package/dist/types/client/wixAuthFetch.d.ts +12 -0
  649. package/dist/types/client/wixAuthFetch.d.ts.map +1 -0
  650. package/dist/types/clients.d.ts +10 -0
  651. package/dist/types/clients.d.ts.map +1 -0
  652. package/dist/types/color/colorUtils.d.ts +9 -0
  653. package/dist/types/color/colorUtils.d.ts.map +1 -0
  654. package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts +11 -0
  655. package/dist/types/component/componentDefinitions/CalloutSectionDefinition.d.ts.map +1 -0
  656. package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts +11 -0
  657. package/dist/types/component/componentDefinitions/ComparisonSectionDefinition.d.ts.map +1 -0
  658. package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts +11 -0
  659. package/dist/types/component/componentDefinitions/CtaBannerSectionDefinition.d.ts.map +1 -0
  660. package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts +11 -0
  661. package/dist/types/component/componentDefinitions/EntitySectionDefinition.d.ts.map +1 -0
  662. package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts +12 -0
  663. package/dist/types/component/componentDefinitions/ErrorSectionDefinition.d.ts.map +1 -0
  664. package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts +16 -0
  665. package/dist/types/component/componentDefinitions/FallbackSectionDefinition.d.ts.map +1 -0
  666. package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts +11 -0
  667. package/dist/types/component/componentDefinitions/FeatureCardsSectionDefinition.d.ts.map +1 -0
  668. package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts +11 -0
  669. package/dist/types/component/componentDefinitions/FeatureSection9PlusDefinition.d.ts.map +1 -0
  670. package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts +23 -0
  671. package/dist/types/component/componentDefinitions/HeroEntitySectionDefinition.d.ts.map +1 -0
  672. package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts +12 -0
  673. package/dist/types/component/componentDefinitions/HeroSectionDefinition.d.ts.map +1 -0
  674. package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts +11 -0
  675. package/dist/types/component/componentDefinitions/HtmlCommentSectionDefinition.d.ts.map +1 -0
  676. package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts +11 -0
  677. package/dist/types/component/componentDefinitions/KpiSectionDefinition.d.ts.map +1 -0
  678. package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts +11 -0
  679. package/dist/types/component/componentDefinitions/NextStepsSectionDefinition.d.ts.map +1 -0
  680. package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts +10 -0
  681. package/dist/types/component/componentDefinitions/SearchSectionDefinition.d.ts.map +1 -0
  682. package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts +12 -0
  683. package/dist/types/component/componentDefinitions/SkipNodesSectionDefinition.d.ts.map +1 -0
  684. package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts +11 -0
  685. package/dist/types/component/componentDefinitions/TextBlockSectionDefinition.d.ts.map +1 -0
  686. package/dist/types/component/componentDefinitions/index.d.ts +26 -0
  687. package/dist/types/component/componentDefinitions/index.d.ts.map +1 -0
  688. package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts +11 -0
  689. package/dist/types/component/componentDefinitions/listItemsSectionDefinition.d.ts.map +1 -0
  690. package/dist/types/component/componentDefinitions/parse-utils.d.ts +88 -0
  691. package/dist/types/component/componentDefinitions/parse-utils.d.ts.map +1 -0
  692. package/dist/types/component/componentDefinitions/specHelpers.d.ts +16 -0
  693. package/dist/types/component/componentDefinitions/specHelpers.d.ts.map +1 -0
  694. package/dist/types/component/componentParser.d.ts +63 -0
  695. package/dist/types/component/componentParser.d.ts.map +1 -0
  696. package/dist/types/component/diagnosticTypes.d.ts +23 -0
  697. package/dist/types/component/diagnosticTypes.d.ts.map +1 -0
  698. package/dist/types/component/parser-types.d.ts +71 -0
  699. package/dist/types/component/parser-types.d.ts.map +1 -0
  700. package/dist/types/component/section-definition.d.ts +32 -0
  701. package/dist/types/component/section-definition.d.ts.map +1 -0
  702. package/dist/types/component/types.d.ts +315 -0
  703. package/dist/types/component/types.d.ts.map +1 -0
  704. package/dist/types/components/placement/PlacementPayloadContext.d.ts +20 -0
  705. package/dist/types/components/placement/PlacementPayloadContext.d.ts.map +1 -0
  706. package/dist/types/components/placement/PlacementResponseRenderer.d.ts +106 -0
  707. package/dist/types/components/placement/PlacementResponseRenderer.d.ts.map +1 -0
  708. package/dist/types/components/placement/buildPlacementDependencies.d.ts +44 -0
  709. package/dist/types/components/placement/buildPlacementDependencies.d.ts.map +1 -0
  710. package/dist/types/components/ui/BottomContainer.d.ts +9 -0
  711. package/dist/types/components/ui/BottomContainer.d.ts.map +1 -0
  712. package/dist/types/components/ui/CalloutBlock.d.ts +9 -0
  713. package/dist/types/components/ui/CalloutBlock.d.ts.map +1 -0
  714. package/dist/types/components/ui/Disclaimer.d.ts +21 -0
  715. package/dist/types/components/ui/Disclaimer.d.ts.map +1 -0
  716. package/dist/types/components/ui/FeedbackBar.d.ts +41 -0
  717. package/dist/types/components/ui/FeedbackBar.d.ts.map +1 -0
  718. package/dist/types/components/ui/Loader.d.ts +9 -0
  719. package/dist/types/components/ui/Loader.d.ts.map +1 -0
  720. package/dist/types/components/ui/MarkdownText.d.ts +9 -0
  721. package/dist/types/components/ui/MarkdownText.d.ts.map +1 -0
  722. package/dist/types/components/ui/OptimizedImage.d.ts +59 -0
  723. package/dist/types/components/ui/OptimizedImage.d.ts.map +1 -0
  724. package/dist/types/components/ui/PlacementLoader.d.ts +15 -0
  725. package/dist/types/components/ui/PlacementLoader.d.ts.map +1 -0
  726. package/dist/types/components/ui/PromptEntryEmptyState.d.ts +21 -0
  727. package/dist/types/components/ui/PromptEntryEmptyState.d.ts.map +1 -0
  728. package/dist/types/components/ui/SearchSection.d.ts +37 -0
  729. package/dist/types/components/ui/SearchSection.d.ts.map +1 -0
  730. package/dist/types/components/ui/SectionSkeleton.d.ts +27 -0
  731. package/dist/types/components/ui/SectionSkeleton.d.ts.map +1 -0
  732. package/dist/types/components/ui/SmartIcon.d.ts +19 -0
  733. package/dist/types/components/ui/SmartIcon.d.ts.map +1 -0
  734. package/dist/types/components/ui/UnifiedLink.d.ts +22 -0
  735. package/dist/types/components/ui/UnifiedLink.d.ts.map +1 -0
  736. package/dist/types/components/ui/UserQuery.d.ts +33 -0
  737. package/dist/types/components/ui/UserQuery.d.ts.map +1 -0
  738. package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts +3 -0
  739. package/dist/types/components/ui/icons/ArrowTopRightIcon.d.ts.map +1 -0
  740. package/dist/types/components/ui/icons/ArrowUpIcon.d.ts +3 -0
  741. package/dist/types/components/ui/icons/ArrowUpIcon.d.ts.map +1 -0
  742. package/dist/types/components/ui/icons/CheckIcon.d.ts +3 -0
  743. package/dist/types/components/ui/icons/CheckIcon.d.ts.map +1 -0
  744. package/dist/types/components/ui/icons/CommentIcon.d.ts +3 -0
  745. package/dist/types/components/ui/icons/CommentIcon.d.ts.map +1 -0
  746. package/dist/types/components/ui/icons/PlusIcon.d.ts +3 -0
  747. package/dist/types/components/ui/icons/PlusIcon.d.ts.map +1 -0
  748. package/dist/types/components/ui/icons/RedoIcon.d.ts +3 -0
  749. package/dist/types/components/ui/icons/RedoIcon.d.ts.map +1 -0
  750. package/dist/types/components/ui/icons/ShareIcon.d.ts +3 -0
  751. package/dist/types/components/ui/icons/ShareIcon.d.ts.map +1 -0
  752. package/dist/types/components/ui/icons/UndoIcon.d.ts +3 -0
  753. package/dist/types/components/ui/icons/UndoIcon.d.ts.map +1 -0
  754. package/dist/types/components/ui/table.d.ts +11 -0
  755. package/dist/types/components/ui/table.d.ts.map +1 -0
  756. package/dist/types/context/ChipsContext.d.ts +8 -0
  757. package/dist/types/context/ChipsContext.d.ts.map +1 -0
  758. package/dist/types/context/ComponentDependenciesContext.d.ts +8 -0
  759. package/dist/types/context/ComponentDependenciesContext.d.ts.map +1 -0
  760. package/dist/types/entity/defaultExtractor.d.ts +14 -0
  761. package/dist/types/entity/defaultExtractor.d.ts.map +1 -0
  762. package/dist/types/entity/enrichEntitiesFromPayload.d.ts +27 -0
  763. package/dist/types/entity/enrichEntitiesFromPayload.d.ts.map +1 -0
  764. package/dist/types/entity/fetchEntityListData.d.ts +20 -0
  765. package/dist/types/entity/fetchEntityListData.d.ts.map +1 -0
  766. package/dist/types/entity/index.d.ts +16 -0
  767. package/dist/types/entity/index.d.ts.map +1 -0
  768. package/dist/types/entity/types.d.ts +13 -0
  769. package/dist/types/entity/types.d.ts.map +1 -0
  770. package/dist/types/errors/conversationErrorTypes.d.ts +20 -0
  771. package/dist/types/errors/conversationErrorTypes.d.ts.map +1 -0
  772. package/dist/types/errors/errorTemplates.d.ts +27 -0
  773. package/dist/types/errors/errorTemplates.d.ts.map +1 -0
  774. package/dist/types/errors/index.d.ts +3 -0
  775. package/dist/types/errors/index.d.ts.map +1 -0
  776. package/dist/types/featureToggles/FeatureToggleContext.d.ts +18 -0
  777. package/dist/types/featureToggles/FeatureToggleContext.d.ts.map +1 -0
  778. package/dist/types/hooks/useConversation.d.ts +3 -0
  779. package/dist/types/hooks/useConversation.d.ts.map +1 -0
  780. package/dist/types/hooks/useDebugImageContext.d.ts +2 -0
  781. package/dist/types/hooks/useDebugImageContext.d.ts.map +1 -0
  782. package/dist/types/hooks/useEntityTransforms.d.ts +3 -0
  783. package/dist/types/hooks/useEntityTransforms.d.ts.map +1 -0
  784. package/dist/types/hooks/useMarkdownUtils.d.ts +3 -0
  785. package/dist/types/hooks/useMarkdownUtils.d.ts.map +1 -0
  786. package/dist/types/hooks/useResolveGenericEntityData.d.ts +11 -0
  787. package/dist/types/hooks/useResolveGenericEntityData.d.ts.map +1 -0
  788. package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts +20 -0
  789. package/dist/types/hooks/useResolveSearchSpringEntityData.d.ts.map +1 -0
  790. package/dist/types/hooks/useResolveShopifyEntityData.d.ts +21 -0
  791. package/dist/types/hooks/useResolveShopifyEntityData.d.ts.map +1 -0
  792. package/dist/types/hooks/useResolvedImageSources.d.ts +6 -0
  793. package/dist/types/hooks/useResolvedImageSources.d.ts.map +1 -0
  794. package/dist/types/hooks/useWeb5Link.d.ts +3 -0
  795. package/dist/types/hooks/useWeb5Link.d.ts.map +1 -0
  796. package/dist/types/image/contextualImageTypes.d.ts +17 -0
  797. package/dist/types/image/contextualImageTypes.d.ts.map +1 -0
  798. package/dist/types/image/imageSearchFilterTypes.d.ts +14 -0
  799. package/dist/types/image/imageSearchFilterTypes.d.ts.map +1 -0
  800. package/dist/types/image/imageSearchFilters.d.ts +16 -0
  801. package/dist/types/image/imageSearchFilters.d.ts.map +1 -0
  802. package/dist/types/index.d.ts +88 -0
  803. package/dist/types/index.d.ts.map +1 -0
  804. package/dist/types/lib/utils.d.ts +3 -0
  805. package/dist/types/lib/utils.d.ts.map +1 -0
  806. package/dist/types/markdownBlocks.d.ts +44 -0
  807. package/dist/types/markdownBlocks.d.ts.map +1 -0
  808. package/dist/types/match/astToParts.d.ts +15 -0
  809. package/dist/types/match/astToParts.d.ts.map +1 -0
  810. package/dist/types/match/extractProps.d.ts +207 -0
  811. package/dist/types/match/extractProps.d.ts.map +1 -0
  812. package/dist/types/match/index.d.ts +4 -0
  813. package/dist/types/match/index.d.ts.map +1 -0
  814. package/dist/types/match/matchAllSections.d.ts +15 -0
  815. package/dist/types/match/matchAllSections.d.ts.map +1 -0
  816. package/dist/types/match/matchMarkdown.d.ts +25 -0
  817. package/dist/types/match/matchMarkdown.d.ts.map +1 -0
  818. package/dist/types/parts/parts.d.ts +144 -0
  819. package/dist/types/parts/parts.d.ts.map +1 -0
  820. package/dist/types/patternAnalyzer/conflictDetector.d.ts +19 -0
  821. package/dist/types/patternAnalyzer/conflictDetector.d.ts.map +1 -0
  822. package/dist/types/patternAnalyzer/index.d.ts +10 -0
  823. package/dist/types/patternAnalyzer/index.d.ts.map +1 -0
  824. package/dist/types/patternAnalyzer/markdownGenerator.d.ts +9 -0
  825. package/dist/types/patternAnalyzer/markdownGenerator.d.ts.map +1 -0
  826. package/dist/types/patternAnalyzer/mergeDetector.d.ts +14 -0
  827. package/dist/types/patternAnalyzer/mergeDetector.d.ts.map +1 -0
  828. package/dist/types/patternAnalyzer/parserValidator.d.ts +13 -0
  829. package/dist/types/patternAnalyzer/parserValidator.d.ts.map +1 -0
  830. package/dist/types/patternAnalyzer/patternWriter.d.ts +8 -0
  831. package/dist/types/patternAnalyzer/patternWriter.d.ts.map +1 -0
  832. package/dist/types/patternAnalyzer/run.d.ts +2 -0
  833. package/dist/types/patternAnalyzer/run.d.ts.map +1 -0
  834. package/dist/types/patternAnalyzer/types.d.ts +59 -0
  835. package/dist/types/patternAnalyzer/types.d.ts.map +1 -0
  836. package/dist/types/patternValidator/automaton.d.ts +3 -0
  837. package/dist/types/patternValidator/automaton.d.ts.map +1 -0
  838. package/dist/types/patternValidator/index.d.ts +48 -0
  839. package/dist/types/patternValidator/index.d.ts.map +1 -0
  840. package/dist/types/patternValidator/lexer.d.ts +3 -0
  841. package/dist/types/patternValidator/lexer.d.ts.map +1 -0
  842. package/dist/types/patternValidator/matcher.d.ts +14 -0
  843. package/dist/types/patternValidator/matcher.d.ts.map +1 -0
  844. package/dist/types/patternValidator/parser.d.ts +14 -0
  845. package/dist/types/patternValidator/parser.d.ts.map +1 -0
  846. package/dist/types/patternValidator/types.d.ts +125 -0
  847. package/dist/types/patternValidator/types.d.ts.map +1 -0
  848. package/dist/types/patternValidator/validator.test.d.ts +2 -0
  849. package/dist/types/patternValidator/validator.test.d.ts.map +1 -0
  850. package/dist/types/registry/ComponentRegistry.d.ts +64 -0
  851. package/dist/types/registry/ComponentRegistry.d.ts.map +1 -0
  852. package/dist/types/registry/Intent.d.ts +12 -0
  853. package/dist/types/registry/Intent.d.ts.map +1 -0
  854. package/dist/types/registry/index.d.ts +4 -0
  855. package/dist/types/registry/index.d.ts.map +1 -0
  856. package/dist/types/registry/types.d.ts +99 -0
  857. package/dist/types/registry/types.d.ts.map +1 -0
  858. package/dist/types/services/cart/addToCart.d.ts +26 -0
  859. package/dist/types/services/cart/addToCart.d.ts.map +1 -0
  860. package/dist/types/services/cart/index.d.ts +2 -0
  861. package/dist/types/services/cart/index.d.ts.map +1 -0
  862. package/dist/types/services/searchspring/index.d.ts +4 -0
  863. package/dist/types/services/searchspring/index.d.ts.map +1 -0
  864. package/dist/types/services/searchspring/searchSpringClient.d.ts +13 -0
  865. package/dist/types/services/searchspring/searchSpringClient.d.ts.map +1 -0
  866. package/dist/types/services/searchspring/transformSSProduct.d.ts +7 -0
  867. package/dist/types/services/searchspring/transformSSProduct.d.ts.map +1 -0
  868. package/dist/types/services/searchspring/types.d.ts +48 -0
  869. package/dist/types/services/searchspring/types.d.ts.map +1 -0
  870. package/dist/types/services/shopify/index.d.ts +7 -0
  871. package/dist/types/services/shopify/index.d.ts.map +1 -0
  872. package/dist/types/services/shopify/queries.d.ts +13 -0
  873. package/dist/types/services/shopify/queries.d.ts.map +1 -0
  874. package/dist/types/services/shopify/resolveStoreDomain.d.ts +14 -0
  875. package/dist/types/services/shopify/resolveStoreDomain.d.ts.map +1 -0
  876. package/dist/types/services/shopify/shopifyEntityResolver.d.ts +21 -0
  877. package/dist/types/services/shopify/shopifyEntityResolver.d.ts.map +1 -0
  878. package/dist/types/services/shopify/shopifyStorefrontClient.d.ts +19 -0
  879. package/dist/types/services/shopify/shopifyStorefrontClient.d.ts.map +1 -0
  880. package/dist/types/services/shopify/transformShopifyEntity.d.ts +11 -0
  881. package/dist/types/services/shopify/transformShopifyEntity.d.ts.map +1 -0
  882. package/dist/types/services/shopify/types.d.ts +109 -0
  883. package/dist/types/services/shopify/types.d.ts.map +1 -0
  884. package/dist/types/testUtils.d.ts +7 -0
  885. package/dist/types/testUtils.d.ts.map +1 -0
  886. package/dist/types/types/answerUpdatedEvent.d.ts +29 -0
  887. package/dist/types/types/answerUpdatedEvent.d.ts.map +1 -0
  888. package/dist/types/types/blog.d.ts +22 -0
  889. package/dist/types/types/blog.d.ts.map +1 -0
  890. package/dist/types/types/callout.d.ts +7 -0
  891. package/dist/types/types/callout.d.ts.map +1 -0
  892. package/dist/types/types/dependencies.d.ts +191 -0
  893. package/dist/types/types/dependencies.d.ts.map +1 -0
  894. package/dist/types/types/entity.d.ts +38 -0
  895. package/dist/types/types/entity.d.ts.map +1 -0
  896. package/dist/types/types/link-types.d.ts +38 -0
  897. package/dist/types/types/link-types.d.ts.map +1 -0
  898. package/dist/types/types/page-section.d.ts +27 -0
  899. package/dist/types/types/page-section.d.ts.map +1 -0
  900. package/dist/types/types/placement.d.ts +94 -0
  901. package/dist/types/types/placement.d.ts.map +1 -0
  902. package/dist/types/types/redirectEvent.d.ts +42 -0
  903. package/dist/types/types/redirectEvent.d.ts.map +1 -0
  904. package/dist/types/types/userQueryEvent.d.ts +24 -0
  905. package/dist/types/types/userQueryEvent.d.ts.map +1 -0
  906. package/dist/types/utils/analyticsEvents.d.ts +24 -0
  907. package/dist/types/utils/analyticsEvents.d.ts.map +1 -0
  908. package/dist/types/utils/componentTracking.d.ts +55 -0
  909. package/dist/types/utils/componentTracking.d.ts.map +1 -0
  910. package/dist/types/utils/contentKeywordMatcher.d.ts +14 -0
  911. package/dist/types/utils/contentKeywordMatcher.d.ts.map +1 -0
  912. package/dist/types/utils/conversationApi.d.ts +26 -0
  913. package/dist/types/utils/conversationApi.d.ts.map +1 -0
  914. package/dist/types/utils/conversationMode.d.ts +16 -0
  915. package/dist/types/utils/conversationMode.d.ts.map +1 -0
  916. package/dist/types/utils/diagnosticsCollector.d.ts +33 -0
  917. package/dist/types/utils/diagnosticsCollector.d.ts.map +1 -0
  918. package/dist/types/utils/entityLinkParser.d.ts +97 -0
  919. package/dist/types/utils/entityLinkParser.d.ts.map +1 -0
  920. package/dist/types/utils/htmlCommentParser.d.ts +13 -0
  921. package/dist/types/utils/htmlCommentParser.d.ts.map +1 -0
  922. package/dist/types/utils/image-utils.d.ts +10 -0
  923. package/dist/types/utils/image-utils.d.ts.map +1 -0
  924. package/dist/types/utils/intentExtractor.d.ts +11 -0
  925. package/dist/types/utils/intentExtractor.d.ts.map +1 -0
  926. package/dist/types/utils/markdownPreprocessor.d.ts +95 -0
  927. package/dist/types/utils/markdownPreprocessor.d.ts.map +1 -0
  928. package/dist/types/utils/navigationStack.d.ts +6 -0
  929. package/dist/types/utils/navigationStack.d.ts.map +1 -0
  930. package/dist/types/utils/nodeMatchers.d.ts +10 -0
  931. package/dist/types/utils/nodeMatchers.d.ts.map +1 -0
  932. package/dist/types/utils/propsExtractor.d.ts +51 -0
  933. package/dist/types/utils/propsExtractor.d.ts.map +1 -0
  934. package/dist/types/utils/sessionManager.d.ts +57 -0
  935. package/dist/types/utils/sessionManager.d.ts.map +1 -0
  936. package/dist/types/utils/unifiedMarkdownParser.d.ts +9 -0
  937. package/dist/types/utils/unifiedMarkdownParser.d.ts.map +1 -0
  938. package/dist/types/utils/web5LinkValidator.d.ts +14 -0
  939. package/dist/types/utils/web5LinkValidator.d.ts.map +1 -0
  940. package/dist/types/utils/web5LinkValidator.test.d.ts +2 -0
  941. package/dist/types/utils/web5LinkValidator.test.d.ts.map +1 -0
  942. package/package.json +103 -0
  943. package/src/styles/base-tokens.css +152 -0
  944. package/src/styles/base-utilities.css +424 -0
  945. package/src/styles/components.css +6 -0
  946. package/src/styles/prompt-input-tokens.css +136 -0
  947. package/src/styles/tailwind-theme.css +138 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CONVERSATION_API_KEY","exports","DEFAULT_CONVERSATION_API","getConversationApi","value","localStorage","getItem","setConversationApi","api","setItem","usesTurnApi"],"sources":["../../../src/utils/conversationApi.ts"],"sourcesContent":["/**\n * Conversation API selection (debug-only).\n *\n * Switches the conversation between the default `Conversation` RPC\n * (`POST /v1/conversation`) and the parallel-safe `Turn` RPC\n * (`POST /v1/turn`, DL #110). Persisted in\n * `localStorage[\"web5_conversation_api\"]`, read at request time. Default\n * `conversation` (Turn is opt-in via the debug toggle for now).\n *\n * `Turn` returns a flat markdown stream (no sectioned page frames), so the\n * sectioned-stream consumption path only runs on the `Conversation` API. Lives\n * in web5-core so any surface can honor the same toggle.\n */\n\nexport type ConversationApiKind = 'turn' | 'conversation';\n\nexport const CONVERSATION_API_KEY = 'web5_conversation_api';\n\nexport const DEFAULT_CONVERSATION_API: ConversationApiKind = 'conversation';\n\n/**\n * Read the selected conversation API from localStorage. Falls back to the\n * default (`conversation`) when unset, invalid, or storage is unavailable.\n */\nexport const getConversationApi = (): ConversationApiKind => {\n try {\n const value = localStorage.getItem(CONVERSATION_API_KEY);\n if (value === 'turn' || value === 'conversation') {\n return value;\n }\n } catch {\n // localStorage can throw in privacy mode / non-DOM environments.\n }\n return DEFAULT_CONVERSATION_API;\n};\n\n/** Persist the selected conversation API to localStorage. */\nexport const setConversationApi = (api: ConversationApiKind): void => {\n try {\n localStorage.setItem(CONVERSATION_API_KEY, api);\n } catch {\n // Ignore — selection simply won't persist across reloads.\n }\n};\n\n/** Whether the conversation should use the Turn RPC (opt-in; default is Conversation). */\nexport const usesTurnApi = (): boolean => getConversationApi() === 'turn';\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIO,MAAMA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,uBAAuB;AAEpD,MAAME,wBAA6C,GAAAD,OAAA,CAAAC,wBAAA,GAAG,cAAc;;AAE3E;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,GAAGA,CAAA,KAA2B;EAC3D,IAAI;IACF,MAAMC,KAAK,GAAGC,YAAY,CAACC,OAAO,CAACN,oBAAoB,CAAC;IACxD,IAAII,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,cAAc,EAAE;MAChD,OAAOA,KAAK;IACd;EACF,CAAC,CAAC,MAAM;IACN;EAAA;EAEF,OAAOF,wBAAwB;AACjC,CAAC;;AAED;AAAAD,OAAA,CAAAE,kBAAA,GAAAA,kBAAA;AACO,MAAMI,kBAAkB,GAAIC,GAAwB,IAAW;EACpE,IAAI;IACFH,YAAY,CAACI,OAAO,CAACT,oBAAoB,EAAEQ,GAAG,CAAC;EACjD,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ,CAAC;;AAED;AAAAP,OAAA,CAAAM,kBAAA,GAAAA,kBAAA;AACO,MAAMG,WAAW,GAAGA,CAAA,KAAeP,kBAAkB,CAAC,CAAC,KAAK,MAAM;AAACF,OAAA,CAAAS,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.resolveConversationMode = exports.CONVERSATION_MODE = void 0;
5
+ /**
6
+ * Conversation wire mode.
7
+ *
8
+ * There is a single conversation engine: the page streams section-by-section
9
+ * (each markdown frame tagged with a numeric section `id` + `status`). The
10
+ * `additionalData.mode` sent on every `/conversation` request is fixed.
11
+ *
12
+ * A `?mode=` query param, when present, overrides this value and is sent to the
13
+ * backend verbatim (callers read the param themselves); the frontend always
14
+ * uses the sectioned-stream consumption path regardless.
15
+ */
16
+
17
+ /** `additionalData.mode` sent on a `/conversation` request. */
18
+ const CONVERSATION_MODE = exports.CONVERSATION_MODE = 'markdown_history_v3';
19
+
20
+ /** Resolve the `additionalData.mode` to send on a `/conversation` request. */
21
+ const resolveConversationMode = () => CONVERSATION_MODE;
22
+ exports.resolveConversationMode = resolveConversationMode;
23
+ //# sourceMappingURL=conversationMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CONVERSATION_MODE","exports","resolveConversationMode"],"sources":["../../../src/utils/conversationMode.ts"],"sourcesContent":["/**\n * Conversation wire mode.\n *\n * There is a single conversation engine: the page streams section-by-section\n * (each markdown frame tagged with a numeric section `id` + `status`). The\n * `additionalData.mode` sent on every `/conversation` request is fixed.\n *\n * A `?mode=` query param, when present, overrides this value and is sent to the\n * backend verbatim (callers read the param themselves); the frontend always\n * uses the sectioned-stream consumption path regardless.\n */\n\n/** `additionalData.mode` sent on a `/conversation` request. */\nexport const CONVERSATION_MODE = 'markdown_history_v3';\n\n/** Resolve the `additionalData.mode` to send on a `/conversation` request. */\nexport const resolveConversationMode = (): string => CONVERSATION_MODE;\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO,MAAMA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,qBAAqB;;AAEtD;AACO,MAAME,uBAAuB,GAAGA,CAAA,KAAcF,iBAAiB;AAACC,OAAA,CAAAC,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.DiagnosticsCollector = void 0;
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ /**
8
+ * Diagnostics collector — pure data class for buffering parser/render-time
9
+ * diagnostic entries with dedup. Lifted from `web50-server-ui` per DL #088 B9.4.
10
+ *
11
+ * The BI-firing + app-store-aware singleton wrapping (`fireDiagnosticEvent`,
12
+ * `setLastDiagnosticsCollector`, `flushDiagnostics`) stays in
13
+ * `web50-server-ui/src/utils/diagnosticsCollector.ts` because it depends on
14
+ * the BI logger + app store. After B9.5, the lifted `parseMarkdownToComponents`
15
+ * accepts a `DiagnosticsCollector` instance via options and never touches the
16
+ * singleton, so the placement bundle can construct its own collector and read
17
+ * the entries directly without involving BI.
18
+ */
19
+
20
+ class DiagnosticsCollector {
21
+ constructor() {
22
+ (0, _defineProperty2.default)(this, "entries", []);
23
+ (0, _defineProperty2.default)(this, "seen", new Set());
24
+ }
25
+ static entryKey(entry) {
26
+ return `${entry.sectionType}:${entry.sectionIndex}:${entry.diagnosticType}:${entry.details}`;
27
+ }
28
+ report(entry) {
29
+ const key = DiagnosticsCollector.entryKey(entry);
30
+ if (this.seen.has(key)) {
31
+ return;
32
+ }
33
+ this.seen.add(key);
34
+ this.entries.push(entry);
35
+ }
36
+
37
+ /**
38
+ * Add to dedup set and return true if this is a new entry. Does NOT buffer —
39
+ * use for render-time diagnostics that fire immediately.
40
+ */
41
+ reportIfNew(entry) {
42
+ const key = DiagnosticsCollector.entryKey(entry);
43
+ if (this.seen.has(key)) {
44
+ return false;
45
+ }
46
+ this.seen.add(key);
47
+ return true;
48
+ }
49
+ getEntries() {
50
+ return [...this.entries];
51
+ }
52
+ clear() {
53
+ this.entries = [];
54
+ this.seen.clear();
55
+ }
56
+ }
57
+ exports.DiagnosticsCollector = DiagnosticsCollector;
58
+ //# sourceMappingURL=diagnosticsCollector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DiagnosticsCollector","constructor","_defineProperty2","default","Set","entryKey","entry","sectionType","sectionIndex","diagnosticType","details","report","key","seen","has","add","entries","push","reportIfNew","getEntries","clear","exports"],"sources":["../../../src/utils/diagnosticsCollector.ts"],"sourcesContent":["/**\n * Diagnostics collector — pure data class for buffering parser/render-time\n * diagnostic entries with dedup. Lifted from `web50-server-ui` per DL #088 B9.4.\n *\n * The BI-firing + app-store-aware singleton wrapping (`fireDiagnosticEvent`,\n * `setLastDiagnosticsCollector`, `flushDiagnostics`) stays in\n * `web50-server-ui/src/utils/diagnosticsCollector.ts` because it depends on\n * the BI logger + app store. After B9.5, the lifted `parseMarkdownToComponents`\n * accepts a `DiagnosticsCollector` instance via options and never touches the\n * singleton, so the placement bundle can construct its own collector and read\n * the entries directly without involving BI.\n */\nimport type { DiagnosticType } from '../component/diagnosticTypes';\n\nexport interface DiagnosticEntry {\n diagnosticType: DiagnosticType;\n sectionType: string;\n sectionIndex: number;\n details: string;\n}\n\nexport class DiagnosticsCollector {\n private entries: DiagnosticEntry[] = [];\n private seen = new Set<string>();\n\n private static entryKey(entry: DiagnosticEntry): string {\n return `${entry.sectionType}:${entry.sectionIndex}:${entry.diagnosticType}:${entry.details}`;\n }\n\n report(entry: DiagnosticEntry): void {\n const key = DiagnosticsCollector.entryKey(entry);\n if (this.seen.has(key)) {\n return;\n }\n this.seen.add(key);\n this.entries.push(entry);\n }\n\n /**\n * Add to dedup set and return true if this is a new entry. Does NOT buffer —\n * use for render-time diagnostics that fire immediately.\n */\n reportIfNew(entry: DiagnosticEntry): boolean {\n const key = DiagnosticsCollector.entryKey(entry);\n if (this.seen.has(key)) {\n return false;\n }\n this.seen.add(key);\n return true;\n }\n\n getEntries(): DiagnosticEntry[] {\n return [...this.entries];\n }\n\n clear(): void {\n this.entries = [];\n this.seen.clear();\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUO,MAAMA,oBAAoB,CAAC;EAAAC,YAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,mBACK,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,gBACxB,IAAIC,GAAG,CAAS,CAAC;EAAA;EAEhC,OAAeC,QAAQA,CAACC,KAAsB,EAAU;IACtD,OAAO,GAAGA,KAAK,CAACC,WAAW,IAAID,KAAK,CAACE,YAAY,IAAIF,KAAK,CAACG,cAAc,IAAIH,KAAK,CAACI,OAAO,EAAE;EAC9F;EAEAC,MAAMA,CAACL,KAAsB,EAAQ;IACnC,MAAMM,GAAG,GAAGZ,oBAAoB,CAACK,QAAQ,CAACC,KAAK,CAAC;IAChD,IAAI,IAAI,CAACO,IAAI,CAACC,GAAG,CAACF,GAAG,CAAC,EAAE;MACtB;IACF;IACA,IAAI,CAACC,IAAI,CAACE,GAAG,CAACH,GAAG,CAAC;IAClB,IAAI,CAACI,OAAO,CAACC,IAAI,CAACX,KAAK,CAAC;EAC1B;;EAEA;AACF;AACA;AACA;EACEY,WAAWA,CAACZ,KAAsB,EAAW;IAC3C,MAAMM,GAAG,GAAGZ,oBAAoB,CAACK,QAAQ,CAACC,KAAK,CAAC;IAChD,IAAI,IAAI,CAACO,IAAI,CAACC,GAAG,CAACF,GAAG,CAAC,EAAE;MACtB,OAAO,KAAK;IACd;IACA,IAAI,CAACC,IAAI,CAACE,GAAG,CAACH,GAAG,CAAC;IAClB,OAAO,IAAI;EACb;EAEAO,UAAUA,CAAA,EAAsB;IAC9B,OAAO,CAAC,GAAG,IAAI,CAACH,OAAO,CAAC;EAC1B;EAEAI,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACJ,OAAO,GAAG,EAAE;IACjB,IAAI,CAACH,IAAI,CAACO,KAAK,CAAC,CAAC;EACnB;AACF;AAACC,OAAA,CAAArB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.extractLinkMetadata = extractLinkMetadata;
5
+ exports.extractProtocol = extractProtocol;
6
+ exports.isEntityLink = isEntityLink;
7
+ exports.isValidWeb5Url = isValidWeb5Url;
8
+ exports.parseEntityLink = parseEntityLink;
9
+ exports.parseWeb5Url = parseWeb5Url;
10
+ exports.validateLinkUrl = validateLinkUrl;
11
+ var _linkTypes = require("../types/link-types");
12
+ const WEB5_TYPE_PREFIXES = Object.values(_linkTypes.Web5UrlType);
13
+
14
+ /**
15
+ * Central parser for unified web5:// URLs.
16
+ *
17
+ * Supported formats:
18
+ * - `web5://ask/msg` → `{ type: Web5UrlType.ASK, path: 'msg' }`
19
+ * - `web5://entity/solution/123` → `{ type: Web5UrlType.ENTITY, path: 'solution/123', entityType: 'solution', entityId: '123' }`
20
+ * - `web5://image/kw` → `{ type: Web5UrlType.IMAGE, path: 'kw' }`
21
+ * - `web5://icon/name` → `{ type: Web5UrlType.ICON, path: 'name' }`
22
+ * - `web5://action/name?param=val` → `{ type: Web5UrlType.ACTION, path: 'name?param=val', actionName: 'name', actionParams: { param: 'val' } }`
23
+ * - `web5://search/query` → `{ type: Web5UrlType.SEARCH, path: 'query', searchQuery: 'query' }`
24
+ */
25
+ function parseWeb5Url(url) {
26
+ if (!url || typeof url !== 'string') {
27
+ return null;
28
+ }
29
+ if (!url.startsWith('web5://')) {
30
+ return null;
31
+ }
32
+ const fullPath = url.slice('web5://'.length);
33
+ if (!fullPath) {
34
+ return null;
35
+ }
36
+ for (const prefix of WEB5_TYPE_PREFIXES) {
37
+ if (fullPath === prefix || fullPath.startsWith(prefix + '/')) {
38
+ const path = fullPath.slice(prefix.length + 1);
39
+ switch (prefix) {
40
+ case _linkTypes.Web5UrlType.ENTITY:
41
+ {
42
+ const slashIndex = path.indexOf('/');
43
+ if (slashIndex === -1) {
44
+ return {
45
+ type: _linkTypes.Web5UrlType.ENTITY,
46
+ path,
47
+ entityType: path,
48
+ entityId: ''
49
+ };
50
+ }
51
+ return {
52
+ type: _linkTypes.Web5UrlType.ENTITY,
53
+ path,
54
+ entityType: path.slice(0, slashIndex),
55
+ entityId: path.slice(slashIndex + 1)
56
+ };
57
+ }
58
+ case _linkTypes.Web5UrlType.ACTION:
59
+ {
60
+ const qIndex = path.indexOf('?');
61
+ if (qIndex === -1) {
62
+ return {
63
+ type: _linkTypes.Web5UrlType.ACTION,
64
+ path,
65
+ actionName: path,
66
+ actionParams: {}
67
+ };
68
+ }
69
+ const params = {};
70
+ const searchParams = new URLSearchParams(path.slice(qIndex + 1));
71
+ searchParams.forEach((value, key) => {
72
+ params[key] = value;
73
+ });
74
+ return {
75
+ type: _linkTypes.Web5UrlType.ACTION,
76
+ path,
77
+ actionName: path.slice(0, qIndex),
78
+ actionParams: params
79
+ };
80
+ }
81
+ case _linkTypes.Web5UrlType.SEARCH:
82
+ return {
83
+ type: _linkTypes.Web5UrlType.SEARCH,
84
+ path,
85
+ searchQuery: path ? decodeURIComponent(path.replace(/\+/g, ' ')) : ''
86
+ };
87
+ case _linkTypes.Web5UrlType.ASK:
88
+ return {
89
+ type: _linkTypes.Web5UrlType.ASK,
90
+ path
91
+ };
92
+ case _linkTypes.Web5UrlType.IMAGE:
93
+ return {
94
+ type: _linkTypes.Web5UrlType.IMAGE,
95
+ path
96
+ };
97
+ case _linkTypes.Web5UrlType.ICON:
98
+ return {
99
+ type: _linkTypes.Web5UrlType.ICON,
100
+ path
101
+ };
102
+ }
103
+ }
104
+ }
105
+ return null;
106
+ }
107
+
108
+ /**
109
+ * Check if a URL is a valid web5:// URL with a recognized type prefix.
110
+ */
111
+ function isValidWeb5Url(url) {
112
+ return parseWeb5Url(url) !== null;
113
+ }
114
+
115
+ /** Known legacy protocols that are no longer supported */
116
+ const LEGACY_PROTOCOLS = ['entity://', 'image://', 'action://', 'ask://'];
117
+
118
+ /**
119
+ * Validate whether a URL is safe to render as a clickable link.
120
+ *
121
+ * - Standard protocols (http, https, mailto, relative paths) → allowed
122
+ * - Valid `web5://` URLs (recognized type prefix) → allowed
123
+ * - Invalid `web5://` URLs (unrecognized prefix) → rejected
124
+ * - Legacy protocols (`entity://`, `image://`, `action://`, `ask://`) → rejected
125
+ * - Other custom protocols → rejected
126
+ *
127
+ * @returns the URL as `ValidLinkUrl` if valid, or `undefined` if it should not be rendered.
128
+ * When invalid, logs a warning for observability.
129
+ */
130
+ function validateLinkUrl(url) {
131
+ if (!url) {
132
+ return undefined;
133
+ }
134
+ if (url.startsWith('http://') || url.startsWith('https://') || url.startsWith('mailto:') || url.startsWith('/')) {
135
+ return url;
136
+ }
137
+ if (url.startsWith('web5://')) {
138
+ if (parseWeb5Url(url)) {
139
+ return url;
140
+ }
141
+ console.log(`[web5-link] Invalid web5:// URL rejected: "${url}"`);
142
+ return undefined;
143
+ }
144
+ if (LEGACY_PROTOCOLS.some(p => url.startsWith(p))) {
145
+ console.log(`[web5-link] Legacy protocol URL rejected: "${url}". Use web5:// format instead.`);
146
+ return undefined;
147
+ }
148
+ return undefined;
149
+ }
150
+
151
+ /**
152
+ * Check if a URL is a web5://entity/ link
153
+ * @param url - The URL to check
154
+ * @returns true if the URL is an entity link
155
+ */
156
+ function isEntityLink(url) {
157
+ if (!url || typeof url !== 'string') {
158
+ return false;
159
+ }
160
+ return (0, _linkTypes.isWeb5EntityUrl)(url);
161
+ }
162
+
163
+ /**
164
+ * Parse a web5://entity/ URL and extract entityType and entityId
165
+ * Format: web5://entity/{entityType}/{entityId}
166
+ *
167
+ * @param url - The web5://entity/ URL to parse
168
+ * @returns Object with entityType and entityId, or null if not a valid entity link
169
+ *
170
+ * @example
171
+ * parseEntityLink('web5://entity/blog_post/abc123')
172
+ * // Returns: { entityType: 'blog_post', entityId: 'abc123' }
173
+ */
174
+ function parseEntityLink(url) {
175
+ if (!isEntityLink(url)) {
176
+ return null;
177
+ }
178
+ const path = url.slice('web5://entity/'.length);
179
+
180
+ // Split by '/' to get entityType and entityId
181
+ const slashIndex = path.indexOf('/');
182
+ if (slashIndex === -1) {
183
+ // No slash found - only entityType, no entityId
184
+ const entityType = path.trim();
185
+ if (entityType) {
186
+ return {
187
+ entityType,
188
+ entityId: ''
189
+ };
190
+ }
191
+ return null;
192
+ }
193
+ const entityType = path.slice(0, slashIndex).trim();
194
+ const entityId = path.slice(slashIndex + 1).trim();
195
+ if (!entityType) {
196
+ return null;
197
+ }
198
+ return {
199
+ entityType,
200
+ entityId
201
+ };
202
+ }
203
+
204
+ /**
205
+ * Extract protocol from a URL
206
+ * @param url - The URL to extract protocol from
207
+ * @returns The protocol (e.g., 'entity', 'http', 'https') or undefined
208
+ */
209
+ function extractProtocol(url) {
210
+ if (!url || typeof url !== 'string') {
211
+ return undefined;
212
+ }
213
+ const match = url.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\/\//);
214
+ if (match) {
215
+ return match[1].toLowerCase();
216
+ }
217
+ return undefined;
218
+ }
219
+
220
+ /**
221
+ * Extract LinkMetadata from a link AST node
222
+ * @param node - AST node of type 'link'
223
+ * @returns LinkMetadata object with url, protocol, and entity fields, or null
224
+ * when the URL is missing or whitespace-only (empty-href links are dropped
225
+ * by the upstream pipeline; see `markdownBlocks.ts`).
226
+ */
227
+ function extractLinkMetadata(node) {
228
+ if (!node || node.type !== 'link') {
229
+ return null;
230
+ }
231
+ const url = node.url;
232
+ if (typeof url !== 'string' || url.trim() === '') {
233
+ return null;
234
+ }
235
+ const metadata = {
236
+ url
237
+ };
238
+
239
+ // Extract protocol
240
+ const protocol = extractProtocol(url);
241
+ if (protocol) {
242
+ metadata.protocol = protocol;
243
+ }
244
+ if (protocol === 'web5') {
245
+ const parsed = parseWeb5Url(url);
246
+ if (parsed) {
247
+ metadata.web5Type = parsed.type;
248
+ if (parsed.type === _linkTypes.Web5UrlType.ENTITY) {
249
+ metadata.entityType = parsed.entityType;
250
+ metadata.entityId = parsed.entityId;
251
+ }
252
+ }
253
+ }
254
+ return metadata;
255
+ }
256
+ //# sourceMappingURL=entityLinkParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_linkTypes","require","WEB5_TYPE_PREFIXES","Object","values","Web5UrlType","parseWeb5Url","url","startsWith","fullPath","slice","length","prefix","path","ENTITY","slashIndex","indexOf","type","entityType","entityId","ACTION","qIndex","actionName","actionParams","params","searchParams","URLSearchParams","forEach","value","key","SEARCH","searchQuery","decodeURIComponent","replace","ASK","IMAGE","ICON","isValidWeb5Url","LEGACY_PROTOCOLS","validateLinkUrl","undefined","console","log","some","p","isEntityLink","isWeb5EntityUrl","parseEntityLink","trim","extractProtocol","match","toLowerCase","extractLinkMetadata","node","metadata","protocol","parsed","web5Type"],"sources":["../../../src/utils/entityLinkParser.ts"],"sourcesContent":["import type { LinkMetadata } from '../patternValidator/types';\nimport {\n Web5UrlType,\n isWeb5EntityUrl,\n type ValidLinkUrl,\n} from '../types/link-types';\n\nexport interface Web5AskParsed {\n type: Web5UrlType.ASK;\n path: string;\n}\n\nexport interface Web5EntityParsed {\n type: Web5UrlType.ENTITY;\n path: string;\n entityType: string;\n entityId: string;\n}\n\nexport interface Web5ImageParsed {\n type: Web5UrlType.IMAGE;\n path: string;\n}\n\nexport interface Web5IconParsed {\n type: Web5UrlType.ICON;\n path: string;\n}\n\nexport interface Web5ActionParsed {\n type: Web5UrlType.ACTION;\n path: string;\n actionName: string;\n actionParams: Record<string, string>;\n}\n\nexport interface Web5SearchParsed {\n type: Web5UrlType.SEARCH;\n path: string;\n searchQuery: string;\n}\n\nexport type Web5UrlParsed =\n | Web5AskParsed\n | Web5EntityParsed\n | Web5ImageParsed\n | Web5IconParsed\n | Web5ActionParsed\n | Web5SearchParsed;\n\nconst WEB5_TYPE_PREFIXES = Object.values(Web5UrlType);\n\n/**\n * Central parser for unified web5:// URLs.\n *\n * Supported formats:\n * - `web5://ask/msg` → `{ type: Web5UrlType.ASK, path: 'msg' }`\n * - `web5://entity/solution/123` → `{ type: Web5UrlType.ENTITY, path: 'solution/123', entityType: 'solution', entityId: '123' }`\n * - `web5://image/kw` → `{ type: Web5UrlType.IMAGE, path: 'kw' }`\n * - `web5://icon/name` → `{ type: Web5UrlType.ICON, path: 'name' }`\n * - `web5://action/name?param=val` → `{ type: Web5UrlType.ACTION, path: 'name?param=val', actionName: 'name', actionParams: { param: 'val' } }`\n * - `web5://search/query` → `{ type: Web5UrlType.SEARCH, path: 'query', searchQuery: 'query' }`\n */\nexport function parseWeb5Url(url: string): Web5UrlParsed | null {\n if (!url || typeof url !== 'string') {\n return null;\n }\n\n if (!url.startsWith('web5://')) {\n return null;\n }\n\n const fullPath = url.slice('web5://'.length);\n if (!fullPath) {\n return null;\n }\n\n for (const prefix of WEB5_TYPE_PREFIXES) {\n if (fullPath === prefix || fullPath.startsWith(prefix + '/')) {\n const path = fullPath.slice(prefix.length + 1);\n\n switch (prefix) {\n case Web5UrlType.ENTITY: {\n const slashIndex = path.indexOf('/');\n if (slashIndex === -1) {\n return {\n type: Web5UrlType.ENTITY,\n path,\n entityType: path,\n entityId: '',\n };\n }\n return {\n type: Web5UrlType.ENTITY,\n path,\n entityType: path.slice(0, slashIndex),\n entityId: path.slice(slashIndex + 1),\n };\n }\n case Web5UrlType.ACTION: {\n const qIndex = path.indexOf('?');\n if (qIndex === -1) {\n return {\n type: Web5UrlType.ACTION,\n path,\n actionName: path,\n actionParams: {},\n };\n }\n const params: Record<string, string> = {};\n const searchParams = new URLSearchParams(path.slice(qIndex + 1));\n searchParams.forEach((value, key) => {\n params[key] = value;\n });\n return {\n type: Web5UrlType.ACTION,\n path,\n actionName: path.slice(0, qIndex),\n actionParams: params,\n };\n }\n case Web5UrlType.SEARCH:\n return {\n type: Web5UrlType.SEARCH,\n path,\n searchQuery: path\n ? decodeURIComponent(path.replace(/\\+/g, ' '))\n : '',\n };\n case Web5UrlType.ASK:\n return { type: Web5UrlType.ASK, path };\n case Web5UrlType.IMAGE:\n return { type: Web5UrlType.IMAGE, path };\n case Web5UrlType.ICON:\n return { type: Web5UrlType.ICON, path };\n }\n }\n }\n\n return null;\n}\n\n/**\n * Check if a URL is a valid web5:// URL with a recognized type prefix.\n */\nexport function isValidWeb5Url(url: string): boolean {\n return parseWeb5Url(url) !== null;\n}\n\n/** Known legacy protocols that are no longer supported */\nconst LEGACY_PROTOCOLS = ['entity://', 'image://', 'action://', 'ask://'];\n\n/**\n * Validate whether a URL is safe to render as a clickable link.\n *\n * - Standard protocols (http, https, mailto, relative paths) → allowed\n * - Valid `web5://` URLs (recognized type prefix) → allowed\n * - Invalid `web5://` URLs (unrecognized prefix) → rejected\n * - Legacy protocols (`entity://`, `image://`, `action://`, `ask://`) → rejected\n * - Other custom protocols → rejected\n *\n * @returns the URL as `ValidLinkUrl` if valid, or `undefined` if it should not be rendered.\n * When invalid, logs a warning for observability.\n */\nexport function validateLinkUrl(\n url: string | undefined,\n): ValidLinkUrl | undefined {\n if (!url) {\n return undefined;\n }\n\n if (\n url.startsWith('http://') ||\n url.startsWith('https://') ||\n url.startsWith('mailto:') ||\n url.startsWith('/')\n ) {\n return url as ValidLinkUrl;\n }\n\n if (url.startsWith('web5://')) {\n if (parseWeb5Url(url)) {\n return url as ValidLinkUrl;\n }\n console.log(`[web5-link] Invalid web5:// URL rejected: \"${url}\"`);\n return undefined;\n }\n\n if (LEGACY_PROTOCOLS.some((p) => url.startsWith(p))) {\n console.log(\n `[web5-link] Legacy protocol URL rejected: \"${url}\". Use web5:// format instead.`,\n );\n return undefined;\n }\n\n return undefined;\n}\n\n/**\n * Check if a URL is a web5://entity/ link\n * @param url - The URL to check\n * @returns true if the URL is an entity link\n */\nexport function isEntityLink(url: string): boolean {\n if (!url || typeof url !== 'string') {\n return false;\n }\n return isWeb5EntityUrl(url);\n}\n\n/**\n * Parse a web5://entity/ URL and extract entityType and entityId\n * Format: web5://entity/{entityType}/{entityId}\n *\n * @param url - The web5://entity/ URL to parse\n * @returns Object with entityType and entityId, or null if not a valid entity link\n *\n * @example\n * parseEntityLink('web5://entity/blog_post/abc123')\n * // Returns: { entityType: 'blog_post', entityId: 'abc123' }\n */\nexport function parseEntityLink(\n url: string,\n): { entityType: string; entityId: string } | null {\n if (!isEntityLink(url)) {\n return null;\n }\n\n const path = url.slice('web5://entity/'.length);\n\n // Split by '/' to get entityType and entityId\n const slashIndex = path.indexOf('/');\n if (slashIndex === -1) {\n // No slash found - only entityType, no entityId\n const entityType = path.trim();\n if (entityType) {\n return { entityType, entityId: '' };\n }\n return null;\n }\n\n const entityType = path.slice(0, slashIndex).trim();\n const entityId = path.slice(slashIndex + 1).trim();\n\n if (!entityType) {\n return null;\n }\n\n return { entityType, entityId };\n}\n\n/**\n * Extract protocol from a URL\n * @param url - The URL to extract protocol from\n * @returns The protocol (e.g., 'entity', 'http', 'https') or undefined\n */\nexport function extractProtocol(url: string): string | undefined {\n if (!url || typeof url !== 'string') {\n return undefined;\n }\n\n const match = url.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\\/\\//);\n if (match) {\n return match[1].toLowerCase();\n }\n\n return undefined;\n}\n\n/**\n * Extract LinkMetadata from a link AST node\n * @param node - AST node of type 'link'\n * @returns LinkMetadata object with url, protocol, and entity fields, or null\n * when the URL is missing or whitespace-only (empty-href links are dropped\n * by the upstream pipeline; see `markdownBlocks.ts`).\n */\nexport function extractLinkMetadata(node: any): LinkMetadata | null {\n if (!node || node.type !== 'link') {\n return null;\n }\n\n const url = node.url;\n if (typeof url !== 'string' || url.trim() === '') {\n return null;\n }\n\n const metadata: LinkMetadata = {\n url,\n };\n\n // Extract protocol\n const protocol = extractProtocol(url);\n if (protocol) {\n metadata.protocol = protocol;\n }\n\n if (protocol === 'web5') {\n const parsed = parseWeb5Url(url);\n if (parsed) {\n metadata.web5Type = parsed.type;\n if (parsed.type === Web5UrlType.ENTITY) {\n metadata.entityType = parsed.entityType;\n metadata.entityId = parsed.entityId;\n }\n }\n }\n\n return metadata;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.extractHtmlCommentValue = extractHtmlCommentValue;
5
+ exports.parseHtmlComment = parseHtmlComment;
6
+ /**
7
+ * Parse an HTML comment string into a key-value object
8
+ * @param comment - The HTML comment string (e.g., "<!-- key: value, key: value -->")
9
+ * @returns Object with parsed key-value pairs, or empty object if parsing fails
10
+ */
11
+ function parseHtmlComment(comment) {
12
+ if (!comment || typeof comment !== 'string') {
13
+ return {};
14
+ }
15
+
16
+ // Remove HTML comment markers <!-- and -->
17
+ let content = comment.trim();
18
+ if (content.startsWith('<!--')) {
19
+ content = content.slice(4);
20
+ }
21
+ if (content.endsWith('-->')) {
22
+ content = content.slice(0, -3);
23
+ }
24
+ content = content.trim();
25
+ if (!content) {
26
+ return {};
27
+ }
28
+ const result = {};
29
+
30
+ // Split by comma, but handle commas within quoted values
31
+ const parts = [];
32
+ let currentPart = '';
33
+ let inQuotes = false;
34
+ let quoteChar = '';
35
+ for (let i = 0; i < content.length; i++) {
36
+ const char = content[i];
37
+ if ((char === '"' || char === "'") && (i === 0 || content[i - 1] !== '\\')) {
38
+ if (!inQuotes) {
39
+ inQuotes = true;
40
+ quoteChar = char;
41
+ } else if (char === quoteChar) {
42
+ inQuotes = false;
43
+ quoteChar = '';
44
+ }
45
+ currentPart += char;
46
+ } else if (char === ',' && !inQuotes) {
47
+ parts.push(currentPart.trim());
48
+ currentPart = '';
49
+ } else {
50
+ currentPart += char;
51
+ }
52
+ }
53
+
54
+ // Add the last part
55
+ if (currentPart.trim()) {
56
+ parts.push(currentPart.trim());
57
+ }
58
+
59
+ // Parse each part as key: value or standalone identifier
60
+ for (const part of parts) {
61
+ const colonIndex = part.indexOf(':');
62
+ const equalsIndex = part.indexOf('=');
63
+
64
+ // Check for key=value format
65
+ if (equalsIndex !== -1 && (colonIndex === -1 || equalsIndex < colonIndex)) {
66
+ const key = part.slice(0, equalsIndex).trim();
67
+ let value = part.slice(equalsIndex + 1).trim();
68
+
69
+ // Remove quotes if present
70
+ if (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'")) {
71
+ value = value.slice(1, -1);
72
+ }
73
+ if (key) {
74
+ result[key] = value;
75
+ }
76
+ }
77
+ // Check for key: value format
78
+ else if (colonIndex !== -1) {
79
+ const key = part.slice(0, colonIndex).trim();
80
+ let value = part.slice(colonIndex + 1).trim();
81
+
82
+ // Remove quotes if present
83
+ if (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'")) {
84
+ value = value.slice(1, -1);
85
+ }
86
+ if (key) {
87
+ result[key] = value;
88
+ }
89
+ }
90
+ // Standalone identifier (e.g., <!-- Callout -->)
91
+ else {
92
+ const identifier = part.trim();
93
+ if (identifier && /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(identifier)) {
94
+ // Valid identifier: starts with letter or underscore, contains letters, numbers, underscores, or hyphens
95
+ result[identifier] = '';
96
+ }
97
+ }
98
+ }
99
+ return result;
100
+ }
101
+
102
+ /**
103
+ * Extract HTML comment value from an AST html node
104
+ * @param node - AST node of type 'html'
105
+ * @returns The comment content string, or null if not an HTML comment
106
+ */
107
+ function extractHtmlCommentValue(node) {
108
+ if (!node || node.type !== 'html') {
109
+ return null;
110
+ }
111
+ const value = node.value;
112
+ if (typeof value !== 'string') {
113
+ return null;
114
+ }
115
+
116
+ // Check if it's an HTML comment
117
+ if (value.trim().startsWith('<!--') && value.trim().endsWith('-->')) {
118
+ return value;
119
+ }
120
+ return null;
121
+ }
122
+ //# sourceMappingURL=htmlCommentParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseHtmlComment","comment","content","trim","startsWith","slice","endsWith","result","parts","currentPart","inQuotes","quoteChar","i","length","char","push","part","colonIndex","indexOf","equalsIndex","key","value","identifier","test","extractHtmlCommentValue","node","type"],"sources":["../../../src/utils/htmlCommentParser.ts"],"sourcesContent":["/**\n * Parse an HTML comment string into a key-value object\n * @param comment - The HTML comment string (e.g., \"<!-- key: value, key: value -->\")\n * @returns Object with parsed key-value pairs, or empty object if parsing fails\n */\nexport function parseHtmlComment(comment: string): Record<string, string> {\n if (!comment || typeof comment !== 'string') {\n return {};\n }\n\n // Remove HTML comment markers <!-- and -->\n let content = comment.trim();\n if (content.startsWith('<!--')) {\n content = content.slice(4);\n }\n if (content.endsWith('-->')) {\n content = content.slice(0, -3);\n }\n content = content.trim();\n\n if (!content) {\n return {};\n }\n\n const result: Record<string, string> = {};\n\n // Split by comma, but handle commas within quoted values\n const parts: string[] = [];\n let currentPart = '';\n let inQuotes = false;\n let quoteChar = '';\n\n for (let i = 0; i < content.length; i++) {\n const char = content[i];\n\n if (\n (char === '\"' || char === \"'\") &&\n (i === 0 || content[i - 1] !== '\\\\')\n ) {\n if (!inQuotes) {\n inQuotes = true;\n quoteChar = char;\n } else if (char === quoteChar) {\n inQuotes = false;\n quoteChar = '';\n }\n currentPart += char;\n } else if (char === ',' && !inQuotes) {\n parts.push(currentPart.trim());\n currentPart = '';\n } else {\n currentPart += char;\n }\n }\n\n // Add the last part\n if (currentPart.trim()) {\n parts.push(currentPart.trim());\n }\n\n // Parse each part as key: value or standalone identifier\n for (const part of parts) {\n const colonIndex = part.indexOf(':');\n const equalsIndex = part.indexOf('=');\n\n // Check for key=value format\n if (equalsIndex !== -1 && (colonIndex === -1 || equalsIndex < colonIndex)) {\n const key = part.slice(0, equalsIndex).trim();\n let value = part.slice(equalsIndex + 1).trim();\n\n // Remove quotes if present\n if (\n (value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\n ) {\n value = value.slice(1, -1);\n }\n\n if (key) {\n result[key] = value;\n }\n }\n // Check for key: value format\n else if (colonIndex !== -1) {\n const key = part.slice(0, colonIndex).trim();\n let value = part.slice(colonIndex + 1).trim();\n\n // Remove quotes if present\n if (\n (value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\n ) {\n value = value.slice(1, -1);\n }\n\n if (key) {\n result[key] = value;\n }\n }\n // Standalone identifier (e.g., <!-- Callout -->)\n else {\n const identifier = part.trim();\n if (identifier && /^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(identifier)) {\n // Valid identifier: starts with letter or underscore, contains letters, numbers, underscores, or hyphens\n result[identifier] = '';\n }\n }\n }\n\n return result;\n}\n\n/**\n * Extract HTML comment value from an AST html node\n * @param node - AST node of type 'html'\n * @returns The comment content string, or null if not an HTML comment\n */\nexport function extractHtmlCommentValue(node: any): string | null {\n if (!node || node.type !== 'html') {\n return null;\n }\n\n const value = node.value;\n if (typeof value !== 'string') {\n return null;\n }\n\n // Check if it's an HTML comment\n if (value.trim().startsWith('<!--') && value.trim().endsWith('-->')) {\n return value;\n }\n\n return null;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.getResizedImageUrl = getResizedImageUrl;
5
+ exports.normalizeImageUrl = normalizeImageUrl;
6
+ const WIX_MEDIA_STATIC = 'https://static.wixstatic.com/media/';
7
+ function normalizeImageUrl(imageUrl) {
8
+ if (!imageUrl) {
9
+ return imageUrl;
10
+ }
11
+ if (imageUrl.startsWith('http://') || imageUrl.startsWith('https://') || imageUrl.startsWith('data:') || imageUrl.startsWith('blob:')) {
12
+ return imageUrl;
13
+ }
14
+ if (imageUrl.startsWith(WIX_MEDIA_STATIC)) {
15
+ return imageUrl;
16
+ }
17
+ const cleanUrl = imageUrl.startsWith('/') ? imageUrl.slice(1) : imageUrl;
18
+ return `${WIX_MEDIA_STATIC}${cleanUrl}`;
19
+ }
20
+ function getResizedImageUrl(imageURI, width, height, params) {
21
+ return getResizedImagePartialUrl(WIX_MEDIA_STATIC, imageURI, width, height, params);
22
+ }
23
+ function getResizedImagePartialUrl(baseUrl, imageURI, width, height, {
24
+ usm_r = 0.66,
25
+ usm_a = 1.0,
26
+ usm_t = 0.01,
27
+ quality,
28
+ imageMode = 'fit'
29
+ } = {}) {
30
+ if (imageURI.includes('/')) {
31
+ return imageURI;
32
+ }
33
+ width = Math.round(width);
34
+ height = Math.round(height);
35
+ if (!quality) {
36
+ const HIGH_QUALITY_RESOLUTION = 1400 * 1400;
37
+ const MEDIUM_QUALITY_RESOLUTION = 600 * 600;
38
+ const dimension = width * height;
39
+ if (dimension > HIGH_QUALITY_RESOLUTION) {
40
+ quality = 90;
41
+ } else if (dimension > MEDIUM_QUALITY_RESOLUTION) {
42
+ quality = 85;
43
+ } else {
44
+ quality = 80;
45
+ }
46
+ }
47
+ return `${baseUrl}${imageURI}/v1/${imageMode}/w_${width},h_${height},al_c,q_${quality},usm_${usm_r.toFixed(2)}_${usm_a.toFixed(2)}_${usm_t.toFixed(2)}/${imageURI}`;
48
+ }
49
+ //# sourceMappingURL=image-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WIX_MEDIA_STATIC","normalizeImageUrl","imageUrl","startsWith","cleanUrl","slice","getResizedImageUrl","imageURI","width","height","params","getResizedImagePartialUrl","baseUrl","usm_r","usm_a","usm_t","quality","imageMode","includes","Math","round","HIGH_QUALITY_RESOLUTION","MEDIUM_QUALITY_RESOLUTION","dimension","toFixed"],"sources":["../../../src/utils/image-utils.ts"],"sourcesContent":["export type TParams = {\n quality?: number;\n usm_r?: number;\n usm_a?: number;\n usm_t?: number;\n imageMode?: 'fit' | 'fill';\n};\n\nconst WIX_MEDIA_STATIC = 'https://static.wixstatic.com/media/';\n\nexport function normalizeImageUrl(imageUrl: string): string {\n if (!imageUrl) {\n return imageUrl;\n }\n\n if (\n imageUrl.startsWith('http://') ||\n imageUrl.startsWith('https://') ||\n imageUrl.startsWith('data:') ||\n imageUrl.startsWith('blob:')\n ) {\n return imageUrl;\n }\n\n if (imageUrl.startsWith(WIX_MEDIA_STATIC)) {\n return imageUrl;\n }\n\n const cleanUrl = imageUrl.startsWith('/') ? imageUrl.slice(1) : imageUrl;\n return `${WIX_MEDIA_STATIC}${cleanUrl}`;\n}\n\nexport function getResizedImageUrl(\n imageURI: string,\n width: number,\n height: number,\n params?: TParams,\n) {\n return getResizedImagePartialUrl(\n WIX_MEDIA_STATIC,\n imageURI,\n width,\n height,\n params,\n );\n}\n\nfunction getResizedImagePartialUrl(\n baseUrl: string,\n imageURI: string,\n width: number,\n height: number,\n {\n usm_r = 0.66,\n usm_a = 1.0,\n usm_t = 0.01,\n quality,\n imageMode = 'fit',\n }: TParams = {},\n) {\n if (imageURI.includes('/')) {\n return imageURI;\n }\n\n width = Math.round(width);\n height = Math.round(height);\n\n if (!quality) {\n const HIGH_QUALITY_RESOLUTION = 1400 * 1400;\n const MEDIUM_QUALITY_RESOLUTION = 600 * 600;\n const dimension = width * height;\n if (dimension > HIGH_QUALITY_RESOLUTION) {\n quality = 90;\n } else if (dimension > MEDIUM_QUALITY_RESOLUTION) {\n quality = 85;\n } else {\n quality = 80;\n }\n }\n\n return `${baseUrl}${imageURI}/v1/${imageMode}/w_${width},h_${height},al_c,q_${quality},usm_${usm_r.toFixed(\n 2,\n )}_${usm_a.toFixed(2)}_${usm_t.toFixed(2)}/${imageURI}`;\n}\n"],"mappings":";;;;;AAQA,MAAMA,gBAAgB,GAAG,qCAAqC;AAEvD,SAASC,iBAAiBA,CAACC,QAAgB,EAAU;EAC1D,IAAI,CAACA,QAAQ,EAAE;IACb,OAAOA,QAAQ;EACjB;EAEA,IACEA,QAAQ,CAACC,UAAU,CAAC,SAAS,CAAC,IAC9BD,QAAQ,CAACC,UAAU,CAAC,UAAU,CAAC,IAC/BD,QAAQ,CAACC,UAAU,CAAC,OAAO,CAAC,IAC5BD,QAAQ,CAACC,UAAU,CAAC,OAAO,CAAC,EAC5B;IACA,OAAOD,QAAQ;EACjB;EAEA,IAAIA,QAAQ,CAACC,UAAU,CAACH,gBAAgB,CAAC,EAAE;IACzC,OAAOE,QAAQ;EACjB;EAEA,MAAME,QAAQ,GAAGF,QAAQ,CAACC,UAAU,CAAC,GAAG,CAAC,GAAGD,QAAQ,CAACG,KAAK,CAAC,CAAC,CAAC,GAAGH,QAAQ;EACxE,OAAO,GAAGF,gBAAgB,GAAGI,QAAQ,EAAE;AACzC;AAEO,SAASE,kBAAkBA,CAChCC,QAAgB,EAChBC,KAAa,EACbC,MAAc,EACdC,MAAgB,EAChB;EACA,OAAOC,yBAAyB,CAC9BX,gBAAgB,EAChBO,QAAQ,EACRC,KAAK,EACLC,MAAM,EACNC,MACF,CAAC;AACH;AAEA,SAASC,yBAAyBA,CAChCC,OAAe,EACfL,QAAgB,EAChBC,KAAa,EACbC,MAAc,EACd;EACEI,KAAK,GAAG,IAAI;EACZC,KAAK,GAAG,GAAG;EACXC,KAAK,GAAG,IAAI;EACZC,OAAO;EACPC,SAAS,GAAG;AACL,CAAC,GAAG,CAAC,CAAC,EACf;EACA,IAAIV,QAAQ,CAACW,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC1B,OAAOX,QAAQ;EACjB;EAEAC,KAAK,GAAGW,IAAI,CAACC,KAAK,CAACZ,KAAK,CAAC;EACzBC,MAAM,GAAGU,IAAI,CAACC,KAAK,CAACX,MAAM,CAAC;EAE3B,IAAI,CAACO,OAAO,EAAE;IACZ,MAAMK,uBAAuB,GAAG,IAAI,GAAG,IAAI;IAC3C,MAAMC,yBAAyB,GAAG,GAAG,GAAG,GAAG;IAC3C,MAAMC,SAAS,GAAGf,KAAK,GAAGC,MAAM;IAChC,IAAIc,SAAS,GAAGF,uBAAuB,EAAE;MACvCL,OAAO,GAAG,EAAE;IACd,CAAC,MAAM,IAAIO,SAAS,GAAGD,yBAAyB,EAAE;MAChDN,OAAO,GAAG,EAAE;IACd,CAAC,MAAM;MACLA,OAAO,GAAG,EAAE;IACd;EACF;EAEA,OAAO,GAAGJ,OAAO,GAAGL,QAAQ,OAAOU,SAAS,MAAMT,KAAK,MAAMC,MAAM,WAAWO,OAAO,QAAQH,KAAK,CAACW,OAAO,CACxG,CACF,CAAC,IAAIV,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC,IAAIT,KAAK,CAACS,OAAO,CAAC,CAAC,CAAC,IAAIjB,QAAQ,EAAE;AACzD","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.extractIntentFromMarkdown = extractIntentFromMarkdown;
5
+ exports.getIntentFromMarkdown = getIntentFromMarkdown;
6
+ var _Intent = require("../registry/Intent");
7
+ var _htmlCommentParser = require("./htmlCommentParser");
8
+ const INTENT_VALUES = new Set(Object.values(_Intent.Intent));
9
+ function normalizeIntent(intent) {
10
+ if (!intent) {
11
+ return null;
12
+ }
13
+ const normalized = intent.trim().toUpperCase();
14
+ return INTENT_VALUES.has(normalized) ? normalized : null;
15
+ }
16
+ function normalizeState(state) {
17
+ const normalized = state == null ? void 0 : state.trim().toLowerCase();
18
+ return normalized === 'partial' ? 'partial' : 'full';
19
+ }
20
+ function extractIntentFromMarkdown(markdown) {
21
+ if (!markdown) {
22
+ return null;
23
+ }
24
+ const match = markdown.match(/^\s*<!--[\s\S]*?-->/);
25
+ if (!match) {
26
+ return null;
27
+ }
28
+ const comment = match[0];
29
+ const metadata = (0, _htmlCommentParser.parseHtmlComment)(comment);
30
+ const intent = normalizeIntent(metadata.intent);
31
+ if (!intent) {
32
+ return null;
33
+ }
34
+ return {
35
+ intent,
36
+ stage: metadata.stage,
37
+ reason: metadata.reason,
38
+ state: normalizeState(metadata.state)
39
+ };
40
+ }
41
+ function getIntentFromMarkdown(markdown, defaultIntent = _Intent.Intent.DISCOVERY) {
42
+ return extractIntentFromMarkdown(markdown) ?? {
43
+ intent: defaultIntent,
44
+ state: 'full'
45
+ };
46
+ }
47
+ //# sourceMappingURL=intentExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Intent","require","_htmlCommentParser","INTENT_VALUES","Set","Object","values","Intent","normalizeIntent","intent","normalized","trim","toUpperCase","has","normalizeState","state","toLowerCase","extractIntentFromMarkdown","markdown","match","comment","metadata","parseHtmlComment","stage","reason","getIntentFromMarkdown","defaultIntent","DISCOVERY"],"sources":["../../../src/utils/intentExtractor.ts"],"sourcesContent":["import { Intent } from '../registry/Intent';\nimport { parseHtmlComment } from './htmlCommentParser';\n\nexport type ResponseState = 'full' | 'partial';\n\nexport interface IntentInfo {\n intent: Intent;\n stage?: string;\n reason?: string;\n state?: ResponseState;\n}\n\nconst INTENT_VALUES = new Set<Intent>(Object.values(Intent) as Intent[]);\n\nfunction normalizeIntent(intent?: string): Intent | null {\n if (!intent) {\n return null;\n }\n const normalized = intent.trim().toUpperCase() as Intent;\n return INTENT_VALUES.has(normalized) ? normalized : null;\n}\n\nfunction normalizeState(state?: string): ResponseState {\n const normalized = state?.trim().toLowerCase();\n return normalized === 'partial' ? 'partial' : 'full';\n}\n\nexport function extractIntentFromMarkdown(markdown: string): IntentInfo | null {\n if (!markdown) {\n return null;\n }\n\n const match = markdown.match(/^\\s*<!--[\\s\\S]*?-->/);\n if (!match) {\n return null;\n }\n\n const comment = match[0];\n const metadata = parseHtmlComment(comment);\n const intent = normalizeIntent(metadata.intent);\n\n if (!intent) {\n return null;\n }\n\n return {\n intent,\n stage: metadata.stage,\n reason: metadata.reason,\n state: normalizeState(metadata.state),\n };\n}\n\nexport function getIntentFromMarkdown(\n markdown: string,\n defaultIntent: Intent = Intent.DISCOVERY,\n): IntentInfo {\n return (\n extractIntentFromMarkdown(markdown) ?? {\n intent: defaultIntent,\n state: 'full',\n }\n );\n}\n"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAWA,MAAME,aAAa,GAAG,IAAIC,GAAG,CAASC,MAAM,CAACC,MAAM,CAACC,cAAM,CAAa,CAAC;AAExE,SAASC,eAAeA,CAACC,MAAe,EAAiB;EACvD,IAAI,CAACA,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EACA,MAAMC,UAAU,GAAGD,MAAM,CAACE,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAW;EACxD,OAAOT,aAAa,CAACU,GAAG,CAACH,UAAU,CAAC,GAAGA,UAAU,GAAG,IAAI;AAC1D;AAEA,SAASI,cAAcA,CAACC,KAAc,EAAiB;EACrD,MAAML,UAAU,GAAGK,KAAK,oBAALA,KAAK,CAAEJ,IAAI,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;EAC9C,OAAON,UAAU,KAAK,SAAS,GAAG,SAAS,GAAG,MAAM;AACtD;AAEO,SAASO,yBAAyBA,CAACC,QAAgB,EAAqB;EAC7E,IAAI,CAACA,QAAQ,EAAE;IACb,OAAO,IAAI;EACb;EAEA,MAAMC,KAAK,GAAGD,QAAQ,CAACC,KAAK,CAAC,qBAAqB,CAAC;EACnD,IAAI,CAACA,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAEA,MAAMC,OAAO,GAAGD,KAAK,CAAC,CAAC,CAAC;EACxB,MAAME,QAAQ,GAAG,IAAAC,mCAAgB,EAACF,OAAO,CAAC;EAC1C,MAAMX,MAAM,GAAGD,eAAe,CAACa,QAAQ,CAACZ,MAAM,CAAC;EAE/C,IAAI,CAACA,MAAM,EAAE;IACX,OAAO,IAAI;EACb;EAEA,OAAO;IACLA,MAAM;IACNc,KAAK,EAAEF,QAAQ,CAACE,KAAK;IACrBC,MAAM,EAAEH,QAAQ,CAACG,MAAM;IACvBT,KAAK,EAAED,cAAc,CAACO,QAAQ,CAACN,KAAK;EACtC,CAAC;AACH;AAEO,SAASU,qBAAqBA,CACnCP,QAAgB,EAChBQ,aAAqB,GAAGnB,cAAM,CAACoB,SAAS,EAC5B;EACZ,OACEV,yBAAyB,CAACC,QAAQ,CAAC,IAAI;IACrCT,MAAM,EAAEiB,aAAa;IACrBX,KAAK,EAAE;EACT,CAAC;AAEL","ignoreList":[]}