@useinsider/guido 1.0.3-beta.ce3ed00 → 1.0.3-beta.cedc8cb

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 (344) hide show
  1. package/README.md +3 -173
  2. package/dist/{src/@types → @types}/generic.d.ts +0 -15
  3. package/dist/{src/components → components}/Guido.vue.d.ts +1 -1
  4. package/dist/components/Guido.vue.js +10 -12
  5. package/dist/components/Guido.vue2.js +90 -67
  6. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  7. package/dist/components/organisms/header/LeftSlot.vue2.js +15 -16
  8. package/dist/components/organisms/header/RightSlot.vue.js +11 -11
  9. package/dist/components/organisms/onboarding/NewVersionPopup.vue.js +9 -9
  10. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +17 -30
  11. package/dist/components/organisms/onboarding/OnboardingWrapper.vue.js +10 -12
  12. package/dist/components/organisms/onboarding/OnboardingWrapper.vue2.js +18 -19
  13. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts +2 -0
  14. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts +2 -0
  15. package/dist/composables/useApiErrorTracking.d.ts +26 -0
  16. package/dist/composables/useApiErrorTracking.js +120 -0
  17. package/dist/composables/useErrorTracking.d.ts +30 -0
  18. package/dist/composables/useErrorTracking.js +98 -0
  19. package/dist/composables/useHttp.js +89 -52
  20. package/dist/composables/useStripo.js +158 -57
  21. package/dist/composables/useStripoErrorCategory.d.ts +26 -0
  22. package/dist/composables/useStripoErrorCategory.js +86 -0
  23. package/dist/composables/useStripoSlackNotifier.d.ts +8 -0
  24. package/dist/composables/useStripoSlackNotifier.js +47 -0
  25. package/dist/config/migrator/index.js +6 -7
  26. package/dist/enums/defaults.js +8 -15
  27. package/dist/enums/extensions/recommendationBlock.js +2 -2
  28. package/dist/enums/onboarding.d.ts +1 -0
  29. package/dist/enums/onboarding.js +1 -2
  30. package/dist/{src/extensions → extensions}/Blocks/Checkbox/block.d.ts +0 -1
  31. package/dist/extensions/Blocks/Checkbox/block.js +2 -5
  32. package/dist/extensions/Blocks/Checkbox/extension.js +2 -2
  33. package/dist/extensions/Blocks/CouponBlock/extension.js +2 -2
  34. package/dist/{src/extensions → extensions}/Blocks/RadioButton/block.d.ts +0 -1
  35. package/dist/extensions/Blocks/RadioButton/block.js +2 -5
  36. package/dist/{src/extensions → extensions}/Blocks/Recommendation/block.d.ts +0 -1
  37. package/dist/extensions/Blocks/Recommendation/block.js +3 -6
  38. package/dist/{src/extensions → extensions}/Blocks/Recommendation/control.d.ts +0 -6
  39. package/dist/extensions/Blocks/Recommendation/control.js +40 -69
  40. package/dist/extensions/Blocks/Recommendation/extension.js +7 -42
  41. package/dist/extensions/Blocks/Recommendation/iconsRegistry.js +43 -43
  42. package/dist/extensions/Blocks/Recommendation/settingsPanel.js +22 -107
  43. package/dist/extensions/Blocks/Recommendation/template.d.ts +6 -0
  44. package/dist/extensions/Blocks/Recommendation/template.js +200 -0
  45. package/dist/{src/extensions → extensions}/Blocks/common-control.d.ts +5 -40
  46. package/dist/extensions/Blocks/common-control.js +60 -167
  47. package/dist/guido.css +1 -1
  48. package/dist/node_modules/@stripoinc/ui-editor-extensions/dist/esm/index.js +101 -343
  49. package/dist/services/recommendationApi.js +19 -13
  50. package/dist/services/slackNotificationService.d.ts +110 -0
  51. package/dist/services/slackNotificationService.js +167 -0
  52. package/dist/services/stripoApi.js +49 -19
  53. package/dist/services/stripoErrorDeduplicationService.d.ts +75 -0
  54. package/dist/services/stripoErrorDeduplicationService.js +91 -0
  55. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  56. package/dist/static/styles/customEditorStyle.css.js +0 -5
  57. package/dist/{src/stores → stores}/config.d.ts +0 -7
  58. package/dist/utils/dateUtil.d.ts +1 -0
  59. package/dist/utils/dateUtil.js +3 -24
  60. package/dist/utils/genericUtil.js +8 -7
  61. package/package.json +3 -15
  62. package/dist/composables/useBlocksConfig.js +0 -48
  63. package/dist/config/migrator/recommendationMigrator.js +0 -293
  64. package/dist/enums/date.js +0 -6
  65. package/dist/extensions/Blocks/Items/block.js +0 -70
  66. package/dist/extensions/Blocks/Items/controls/button/link.js +0 -60
  67. package/dist/extensions/Blocks/Items/controls/cardComposition.js +0 -99
  68. package/dist/extensions/Blocks/Items/controls/image/link.js +0 -60
  69. package/dist/extensions/Blocks/Items/controls/index.js +0 -217
  70. package/dist/extensions/Blocks/Items/controls/name/trimming.js +0 -63
  71. package/dist/extensions/Blocks/Items/controls/price/currencyLocation.js +0 -100
  72. package/dist/extensions/Blocks/Items/controls/price/currencySymbol.js +0 -113
  73. package/dist/extensions/Blocks/Items/controls/price/formattedPrice.js +0 -69
  74. package/dist/extensions/Blocks/Items/controls/price/hideDiscount.js +0 -38
  75. package/dist/extensions/Blocks/Items/controls/settingsControl.js +0 -279
  76. package/dist/extensions/Blocks/Items/enums/controlEnums.js +0 -5
  77. package/dist/extensions/Blocks/Items/enums/productEnums.js +0 -181
  78. package/dist/extensions/Blocks/Items/enums/settingsEnums.js +0 -63
  79. package/dist/extensions/Blocks/Items/extension.js +0 -19
  80. package/dist/extensions/Blocks/Items/iconsRegistry.js +0 -32
  81. package/dist/extensions/Blocks/Items/items.css.js +0 -23
  82. package/dist/extensions/Blocks/Items/layouts/horizontal.html.js +0 -64
  83. package/dist/extensions/Blocks/Items/layouts/vertical.html.js +0 -66
  84. package/dist/extensions/Blocks/Items/settingsPanel.js +0 -106
  85. package/dist/extensions/Blocks/Items/store/items-block.js +0 -67
  86. package/dist/extensions/Blocks/Items/template.js +0 -108
  87. package/dist/extensions/Blocks/Recommendation/cardCompositionControl.js +0 -103
  88. package/dist/extensions/Blocks/Recommendation/constants.js +0 -5
  89. package/dist/extensions/Blocks/Recommendation/controls/button/align.js +0 -13
  90. package/dist/extensions/Blocks/Recommendation/controls/button/border.js +0 -13
  91. package/dist/extensions/Blocks/Recommendation/controls/button/borderRadius.js +0 -13
  92. package/dist/extensions/Blocks/Recommendation/controls/button/color.js +0 -13
  93. package/dist/extensions/Blocks/Recommendation/controls/button/fitToContent.js +0 -13
  94. package/dist/extensions/Blocks/Recommendation/controls/button/fontFamily.js +0 -13
  95. package/dist/extensions/Blocks/Recommendation/controls/button/margins.js +0 -13
  96. package/dist/extensions/Blocks/Recommendation/controls/button/paddings.js +0 -13
  97. package/dist/extensions/Blocks/Recommendation/controls/button/text.js +0 -13
  98. package/dist/extensions/Blocks/Recommendation/controls/button/textSize.js +0 -13
  99. package/dist/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.js +0 -13
  100. package/dist/extensions/Blocks/Recommendation/controls/image/margins.js +0 -13
  101. package/dist/extensions/Blocks/Recommendation/controls/image/size.js +0 -13
  102. package/dist/extensions/Blocks/Recommendation/controls/name/align.js +0 -13
  103. package/dist/extensions/Blocks/Recommendation/controls/name/background.js +0 -13
  104. package/dist/extensions/Blocks/Recommendation/controls/name/color.js +0 -13
  105. package/dist/extensions/Blocks/Recommendation/controls/name/fontFamily.js +0 -13
  106. package/dist/extensions/Blocks/Recommendation/controls/name/paddings.js +0 -13
  107. package/dist/extensions/Blocks/Recommendation/controls/name/size.js +0 -13
  108. package/dist/extensions/Blocks/Recommendation/controls/name/style.js +0 -13
  109. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/align.js +0 -13
  110. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/background.js +0 -13
  111. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/color.js +0 -13
  112. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.js +0 -13
  113. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/paddings.js +0 -13
  114. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/size.js +0 -13
  115. package/dist/extensions/Blocks/Recommendation/controls/oldPrice/style.js +0 -13
  116. package/dist/extensions/Blocks/Recommendation/controls/price/align.js +0 -13
  117. package/dist/extensions/Blocks/Recommendation/controls/price/background.js +0 -13
  118. package/dist/extensions/Blocks/Recommendation/controls/price/color.js +0 -13
  119. package/dist/extensions/Blocks/Recommendation/controls/price/fontFamily.js +0 -13
  120. package/dist/extensions/Blocks/Recommendation/controls/price/paddings.js +0 -13
  121. package/dist/extensions/Blocks/Recommendation/controls/price/size.js +0 -13
  122. package/dist/extensions/Blocks/Recommendation/controls/price/style.js +0 -13
  123. package/dist/extensions/Blocks/Recommendation/templates/blockTemplate.js +0 -160
  124. package/dist/extensions/Blocks/Recommendation/templates/migrationTemplate.js +0 -152
  125. package/dist/extensions/Blocks/Recommendation/templates/templateUtils.js +0 -180
  126. package/dist/extensions/Blocks/controlFactories.js +0 -223
  127. package/dist/package.json.js +0 -7
  128. package/dist/src/components/organisms/onboarding/NewVersionPopup.vue.d.ts +0 -4
  129. package/dist/src/components/organisms/onboarding/OnboardingWrapper.vue.d.ts +0 -4
  130. package/dist/src/composables/useBlocksConfig.d.ts +0 -11
  131. package/dist/src/config/migrator/recommendationMigrator.d.ts +0 -1
  132. package/dist/src/enums/date.d.ts +0 -4
  133. package/dist/src/enums/onboarding.d.ts +0 -2
  134. package/dist/src/extensions/Blocks/Items/block.d.ts +0 -12
  135. package/dist/src/extensions/Blocks/Items/controls/button/link.d.ts +0 -14
  136. package/dist/src/extensions/Blocks/Items/controls/cardComposition.d.ts +0 -20
  137. package/dist/src/extensions/Blocks/Items/controls/image/link.d.ts +0 -14
  138. package/dist/src/extensions/Blocks/Items/controls/index.d.ts +0 -501
  139. package/dist/src/extensions/Blocks/Items/controls/name/trimming.d.ts +0 -14
  140. package/dist/src/extensions/Blocks/Items/controls/price/currencyLocation.d.ts +0 -19
  141. package/dist/src/extensions/Blocks/Items/controls/price/currencySymbol.d.ts +0 -20
  142. package/dist/src/extensions/Blocks/Items/controls/price/formattedPrice.d.ts +0 -14
  143. package/dist/src/extensions/Blocks/Items/controls/price/hideDiscount.d.ts +0 -9
  144. package/dist/src/extensions/Blocks/Items/controls/settingsControl.d.ts +0 -42
  145. package/dist/src/extensions/Blocks/Items/enums/controlEnums.d.ts +0 -61
  146. package/dist/src/extensions/Blocks/Items/enums/productEnums.d.ts +0 -143
  147. package/dist/src/extensions/Blocks/Items/enums/settingsEnums.d.ts +0 -35
  148. package/dist/src/extensions/Blocks/Items/iconsRegistry.d.ts +0 -4
  149. package/dist/src/extensions/Blocks/Items/store/items-block.d.ts +0 -39
  150. package/dist/src/extensions/Blocks/Items/template.d.ts +0 -16
  151. package/dist/src/extensions/Blocks/Recommendation/cardCompositionControl.d.ts +0 -28
  152. package/dist/src/extensions/Blocks/Recommendation/constants.d.ts +0 -51
  153. package/dist/src/extensions/Blocks/Recommendation/controls/button/align.d.ts +0 -5
  154. package/dist/src/extensions/Blocks/Recommendation/controls/button/border.d.ts +0 -5
  155. package/dist/src/extensions/Blocks/Recommendation/controls/button/borderRadius.d.ts +0 -5
  156. package/dist/src/extensions/Blocks/Recommendation/controls/button/color.d.ts +0 -5
  157. package/dist/src/extensions/Blocks/Recommendation/controls/button/fitToContent.d.ts +0 -5
  158. package/dist/src/extensions/Blocks/Recommendation/controls/button/fontFamily.d.ts +0 -5
  159. package/dist/src/extensions/Blocks/Recommendation/controls/button/margins.d.ts +0 -5
  160. package/dist/src/extensions/Blocks/Recommendation/controls/button/paddings.d.ts +0 -5
  161. package/dist/src/extensions/Blocks/Recommendation/controls/button/text.d.ts +0 -5
  162. package/dist/src/extensions/Blocks/Recommendation/controls/button/textSize.d.ts +0 -5
  163. package/dist/src/extensions/Blocks/Recommendation/controls/button/textStyleAndFontColor.d.ts +0 -5
  164. package/dist/src/extensions/Blocks/Recommendation/controls/image/margins.d.ts +0 -5
  165. package/dist/src/extensions/Blocks/Recommendation/controls/image/size.d.ts +0 -5
  166. package/dist/src/extensions/Blocks/Recommendation/controls/name/align.d.ts +0 -5
  167. package/dist/src/extensions/Blocks/Recommendation/controls/name/background.d.ts +0 -5
  168. package/dist/src/extensions/Blocks/Recommendation/controls/name/color.d.ts +0 -5
  169. package/dist/src/extensions/Blocks/Recommendation/controls/name/fontFamily.d.ts +0 -5
  170. package/dist/src/extensions/Blocks/Recommendation/controls/name/paddings.d.ts +0 -5
  171. package/dist/src/extensions/Blocks/Recommendation/controls/name/size.d.ts +0 -5
  172. package/dist/src/extensions/Blocks/Recommendation/controls/name/style.d.ts +0 -5
  173. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/align.d.ts +0 -5
  174. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/background.d.ts +0 -5
  175. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/color.d.ts +0 -5
  176. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/fontFamily.d.ts +0 -5
  177. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/paddings.d.ts +0 -5
  178. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/size.d.ts +0 -5
  179. package/dist/src/extensions/Blocks/Recommendation/controls/oldPrice/style.d.ts +0 -5
  180. package/dist/src/extensions/Blocks/Recommendation/controls/price/align.d.ts +0 -5
  181. package/dist/src/extensions/Blocks/Recommendation/controls/price/background.d.ts +0 -5
  182. package/dist/src/extensions/Blocks/Recommendation/controls/price/color.d.ts +0 -5
  183. package/dist/src/extensions/Blocks/Recommendation/controls/price/fontFamily.d.ts +0 -5
  184. package/dist/src/extensions/Blocks/Recommendation/controls/price/paddings.d.ts +0 -5
  185. package/dist/src/extensions/Blocks/Recommendation/controls/price/size.d.ts +0 -5
  186. package/dist/src/extensions/Blocks/Recommendation/controls/price/style.d.ts +0 -5
  187. package/dist/src/extensions/Blocks/Recommendation/templates/blockTemplate.d.ts +0 -16
  188. package/dist/src/extensions/Blocks/Recommendation/templates/migrationTemplate.d.ts +0 -16
  189. package/dist/src/extensions/Blocks/Recommendation/templates/templateUtils.d.ts +0 -44
  190. package/dist/src/extensions/Blocks/_Boilerplate/settingsPanel.d.ts +0 -4
  191. package/dist/src/extensions/Blocks/controlFactories.d.ts +0 -312
  192. package/dist/src/extensions/DynamicContent/extension.d.ts +0 -2
  193. package/dist/src/utils/dateUtil.d.ts +0 -22
  194. package/dist/{src/@types → @types}/events.d.ts +0 -0
  195. package/dist/{src/@types → @types}/save-as-template.d.ts +0 -0
  196. package/dist/{src/App.vue.d.ts → App.vue.d.ts} +0 -0
  197. package/dist/{src/components → components}/organisms/LoadingWrapper.vue.d.ts +0 -0
  198. package/dist/{src/components → components}/organisms/base/Toaster.vue.d.ts +0 -0
  199. package/dist/{src/components → components}/organisms/email-preview/PreviewContainer.vue.d.ts +0 -0
  200. package/dist/{src/components → components}/organisms/email-preview/amp/AmpErrorModal.vue.d.ts +0 -0
  201. package/dist/{src/components → components}/organisms/email-preview/amp/AmpToggle.vue.d.ts +0 -0
  202. package/dist/{src/components → components}/organisms/email-preview/desktop-preview/DesktopPreview.vue.d.ts +0 -0
  203. package/dist/{src/components → components}/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue.d.ts +0 -0
  204. package/dist/{src/components → components}/organisms/email-preview/desktop-preview/EmailSizeIndicator.vue.d.ts +0 -0
  205. package/dist/{src/components → components}/organisms/email-preview/mobile-preview/ContentView.vue.d.ts +0 -0
  206. package/dist/{src/components → components}/organisms/email-preview/mobile-preview/InboxView.vue.d.ts +0 -0
  207. package/dist/{src/components → components}/organisms/email-preview/mobile-preview/MobilePreview.vue.d.ts +0 -0
  208. package/dist/{src/components → components}/organisms/extensions/recommendation/FilterItem.vue.d.ts +0 -0
  209. package/dist/{src/components → components}/organisms/extensions/recommendation/FilterSelectionDrawer.vue.d.ts +0 -0
  210. package/dist/{src/components → components}/organisms/extensions/recommendation/Filters.vue.d.ts +0 -0
  211. package/dist/{src/components → components}/organisms/extensions/recommendation/LogicAdapter.vue.d.ts +0 -0
  212. package/dist/{src/components → components}/organisms/header/HeaderWrapper.vue.d.ts +0 -0
  213. package/dist/{src/components → components}/organisms/header/LeftSlot.vue.d.ts +0 -0
  214. package/dist/{src/components → components}/organisms/header/MiddleSlot.vue.d.ts +0 -0
  215. package/dist/{src/components → components}/organisms/header/RightSlot.vue.d.ts +0 -0
  216. package/dist/{src/components → components}/organisms/header/ViewOptions.vue.d.ts +0 -0
  217. package/dist/{src/components → components}/organisms/header/version-history/RestoreButton.vue.d.ts +0 -0
  218. package/dist/{src/components → components}/organisms/header/version-history/VersionHistory.vue.d.ts +0 -0
  219. package/dist/{src/components → components}/organisms/header/version-history/VersionHistoryItem.vue.d.ts +0 -0
  220. package/dist/{src/components → components}/organisms/header/version-history/ViewOptions.vue.d.ts +0 -0
  221. package/dist/{src/components → components}/organisms/onboarding/AMPOnboarding.vue.d.ts +0 -0
  222. package/dist/{src/components → components}/organisms/onboarding/GenericOnboarding.vue.d.ts +0 -0
  223. package/dist/{src/components/organisms/onboarding/TextBlockOnboarding.vue.d.ts → components/organisms/onboarding/NewVersionPopup.vue.d.ts} +0 -0
  224. package/dist/{src/components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts → components/organisms/onboarding/OnboardingWrapper.vue.d.ts} +0 -0
  225. package/dist/{src/components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts → components/organisms/onboarding/TextBlockOnboarding.vue.d.ts} +0 -0
  226. package/dist/{src/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts → components/organisms/onboarding/VersionHistoryOnboarding.vue.d.ts} +0 -0
  227. package/dist/{src/components/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts → components/organisms/save-as-template/SaveAsTemplateDrawer.vue.d.ts} +0 -0
  228. package/dist/{src/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.d.ts → components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.d.ts} +0 -0
  229. package/dist/{src/components/organisms/unsubscribe/UnsubscribeWrapper.vue.d.ts → components/organisms/unsubscribe/UnsubscribePageSelection.vue.d.ts} +0 -0
  230. package/dist/{src/components → components}/wrappers/WpDrawer.vue.d.ts +0 -0
  231. package/dist/{src/components → components}/wrappers/WpModal.vue.d.ts +1 -1
  232. /package/dist/{src/composables → composables}/useActionsApi.d.ts +0 -0
  233. /package/dist/{src/composables → composables}/useApiExample.d.ts +0 -0
  234. /package/dist/{src/composables → composables}/useCodeEditorApi.d.ts +0 -0
  235. /package/dist/{src/composables → composables}/useConfig.d.ts +0 -0
  236. /package/dist/{src/composables → composables}/useCustomInterfaceAppearance.d.ts +0 -0
  237. /package/dist/{src/composables → composables}/useDebounce.d.ts +0 -0
  238. /package/dist/{src/composables → composables}/useExport.d.ts +0 -0
  239. /package/dist/{src/composables → composables}/useGuidoActions.d.ts +0 -0
  240. /package/dist/{src/composables → composables}/useHtmlCompiler.d.ts +0 -0
  241. /package/dist/{src/composables → composables}/useHtmlValidator.d.ts +0 -0
  242. /package/dist/{src/composables → composables}/useHttp.d.ts +0 -0
  243. /package/dist/{src/composables → composables}/usePartner.d.ts +0 -0
  244. /package/dist/{src/composables → composables}/usePreviewMode.d.ts +0 -0
  245. /package/dist/{src/composables → composables}/useProvideInject.d.ts +0 -0
  246. /package/dist/{src/composables → composables}/useRecommendation.d.ts +0 -0
  247. /package/dist/{src/composables → composables}/useResponsivePreview.d.ts +0 -0
  248. /package/dist/{src/composables → composables}/useSave.d.ts +0 -0
  249. /package/dist/{src/composables → composables}/useStripo.d.ts +0 -0
  250. /package/dist/{src/composables → composables}/useStripoEventHandler.d.ts +0 -0
  251. /package/dist/{src/composables → composables}/useToaster.d.ts +0 -0
  252. /package/dist/{src/composables → composables}/useTranslations.d.ts +0 -0
  253. /package/dist/{src/composables → composables}/useValidation.d.ts +0 -0
  254. /package/dist/{src/composables → composables}/useVersionHistoryApi.d.ts +0 -0
  255. /package/dist/{src/composables → composables}/validators/saveAsTemplate.d.ts +0 -0
  256. /package/dist/{src/config → config}/compiler/htmlCompilerRules.d.ts +0 -0
  257. /package/dist/{src/config → config}/compiler/outlookCompilerRules.d.ts +0 -0
  258. /package/dist/{src/config → config}/compiler/recommendationCompilerRules.d.ts +0 -0
  259. /package/dist/{src/config → config}/compiler/socialCompilerRules.d.ts +0 -0
  260. /package/dist/{src/config → config}/compiler/unsubscribeCompilerRules.d.ts +0 -0
  261. /package/dist/{src/config → config}/migrator/checkboxMigrator.d.ts +0 -0
  262. /package/dist/{src/config → config}/migrator/couponBlockMigrator.d.ts +0 -0
  263. /package/dist/{src/config → config}/migrator/index.d.ts +0 -0
  264. /package/dist/{src/config → config}/migrator/radioButtonMigrator.d.ts +0 -0
  265. /package/dist/{src/config → config}/migrator/unsubscribeMigrator.d.ts +0 -0
  266. /package/dist/{src/enums → enums}/defaults.d.ts +0 -0
  267. /package/dist/{src/enums → enums}/displayConditions.d.ts +0 -0
  268. /package/dist/{src/enums → enums}/extensions/recommendationBlock.d.ts +0 -0
  269. /package/dist/{src/enums → enums}/html-validator.d.ts +0 -0
  270. /package/dist/{src/enums → enums}/preview.d.ts +0 -0
  271. /package/dist/{src/enums → enums}/recommendation.d.ts +0 -0
  272. /package/dist/{src/enums → enums}/toaster.d.ts +0 -0
  273. /package/dist/{src/enums → enums}/unsubscribe.d.ts +0 -0
  274. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/control.d.ts +0 -0
  275. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/extension.d.ts +0 -0
  276. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/iconsRegistry.d.ts +0 -0
  277. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/settingsPanel.d.ts +0 -0
  278. /package/dist/{src/extensions → extensions}/Blocks/Checkbox/template.d.ts +0 -0
  279. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/block.d.ts +0 -0
  280. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/extension.d.ts +0 -0
  281. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/iconsRegistry.d.ts +0 -0
  282. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/settingsPanel.d.ts +0 -0
  283. /package/dist/{src/extensions → extensions}/Blocks/CouponBlock/template.d.ts +0 -0
  284. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/control.d.ts +0 -0
  285. /package/dist/{src/extensions/Blocks/Items → extensions/Blocks/RadioButton}/extension.d.ts +0 -0
  286. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/iconsRegistry.d.ts +0 -0
  287. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/settingsPanel.d.ts +0 -0
  288. /package/dist/{src/extensions → extensions}/Blocks/RadioButton/template.d.ts +0 -0
  289. /package/dist/{src/extensions/Blocks/RadioButton → extensions/Blocks/Recommendation}/extension.d.ts +0 -0
  290. /package/dist/{src/extensions → extensions}/Blocks/Recommendation/iconsRegistry.d.ts +0 -0
  291. /package/dist/{src/extensions/Blocks/Items → extensions/Blocks/Recommendation}/settingsPanel.d.ts +0 -0
  292. /package/dist/{src/extensions → extensions}/Blocks/Recommendation/store/recommendation.d.ts +0 -0
  293. /package/dist/{src/extensions → extensions}/Blocks/Recommendation/utils/filterUtil.d.ts +0 -0
  294. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/block.d.ts +0 -0
  295. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/control.d.ts +0 -0
  296. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/elements/preview.d.ts +0 -0
  297. /package/dist/{src/extensions/Blocks/Recommendation → extensions/Blocks/Unsubscribe}/extension.d.ts +0 -0
  298. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/iconsRegistry.d.ts +0 -0
  299. /package/dist/{src/extensions/Blocks/Recommendation → extensions/Blocks/Unsubscribe}/settingsPanel.d.ts +0 -0
  300. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/tagRegistry.d.ts +0 -0
  301. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/template.d.ts +0 -0
  302. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/utils/constants.d.ts +0 -0
  303. /package/dist/{src/extensions → extensions}/Blocks/Unsubscribe/utils/utils.d.ts +0 -0
  304. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/block.d.ts +0 -0
  305. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/control.d.ts +0 -0
  306. /package/dist/{src/extensions/Blocks/Unsubscribe → extensions/Blocks/_Boilerplate}/extension.d.ts +0 -0
  307. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/iconsRegistry.d.ts +0 -0
  308. /package/dist/{src/extensions/Blocks/Unsubscribe → extensions/Blocks/_Boilerplate}/settingsPanel.d.ts +0 -0
  309. /package/dist/{src/extensions → extensions}/Blocks/_Boilerplate/template.d.ts +0 -0
  310. /package/dist/{src/extensions → extensions}/DynamicContent/dynamic-content-modal.d.ts +0 -0
  311. /package/dist/{src/extensions → extensions}/DynamicContent/dynamic-content.d.ts +0 -0
  312. /package/dist/{src/extensions/Blocks/_Boilerplate → extensions/DynamicContent}/extension.d.ts +0 -0
  313. /package/dist/{src/library.d.ts → library.d.ts} +0 -0
  314. /package/dist/{src/main.d.ts → main.d.ts} +0 -0
  315. /package/dist/{src/mock → mock}/api/auth.d.ts +0 -0
  316. /package/dist/{src/mock → mock}/api/custom-fonts.d.ts +0 -0
  317. /package/dist/{src/mock → mock}/api/default-template.d.ts +0 -0
  318. /package/dist/{src/mock → mock}/api/recommendation.d.ts +0 -0
  319. /package/dist/{src/mock → mock}/api/template-library.d.ts +0 -0
  320. /package/dist/{src/mock → mock}/api/unsubscribe.d.ts +0 -0
  321. /package/dist/{src/mock → mock}/api/user-modal-state.d.ts +0 -0
  322. /package/dist/{src/mock → mock}/api/validator.d.ts +0 -0
  323. /package/dist/{src/mock → mock}/browser.d.ts +0 -0
  324. /package/dist/{src/mock → mock}/handlers.d.ts +0 -0
  325. /package/dist/{src/services → services}/onboardingApi.d.ts +0 -0
  326. /package/dist/{src/services → services}/recommendationApi.d.ts +0 -0
  327. /package/dist/{src/services → services}/stripoApi.d.ts +0 -0
  328. /package/dist/{src/services → services}/templateLibraryApi.d.ts +0 -0
  329. /package/dist/{src/services → services}/unsubscribeApi.d.ts +0 -0
  330. /package/dist/{src/stores → stores}/dynamic-content.d.ts +0 -0
  331. /package/dist/{src/stores → stores}/editor.d.ts +0 -0
  332. /package/dist/{src/stores → stores}/onboarding.d.ts +0 -0
  333. /package/dist/{src/stores → stores}/preview.d.ts +0 -0
  334. /package/dist/{src/stores → stores}/recommendation.d.ts +0 -0
  335. /package/dist/{src/stores → stores}/save-as-template.d.ts +0 -0
  336. /package/dist/{src/stores → stores}/toaster.d.ts +0 -0
  337. /package/dist/{src/stores → stores}/unsubscribe.d.ts +0 -0
  338. /package/dist/{src/stores → stores}/version-history.d.ts +0 -0
  339. /package/dist/{src/utils → utils}/arrayUtil.d.ts +0 -0
  340. /package/dist/{src/utils → utils}/base64.d.ts +0 -0
  341. /package/dist/{src/utils → utils}/genericUtil.d.ts +0 -0
  342. /package/dist/{src/utils → utils}/htmlCompiler.d.ts +0 -0
  343. /package/dist/{src/utils → utils}/templatePreparation.d.ts +0 -0
  344. /package/dist/{src/utils → utils}/tooltipUtils.d.ts +0 -0
@@ -1,17 +1,17 @@
1
- import t from "./NewVersionPopup.vue2.js";
1
+ import s from "./NewVersionPopup.vue2.js";
2
2
  import n from "../../../_virtual/_plugin-vue2_normalizer.js";
3
- var i = function() {
4
- var e = this, s = e._self._c, o = e._self._setupProxy;
5
- return o.isVisible ? s(o.WpModal, { attrs: { id: "guido__new-version-popup", size: "medium", "close-on-outside-click": !1, "footer-button-options": o.footerButtonOptions, title: o.popupTitle }, on: { close: o.handleClose, "primary-action": o.handleDiscoverNow, "secondary-action": o.handleRemindLater } }, [s("div", { staticClass: "d-f f-d-c" }, [s("img", { staticClass: "w-1 h-1 d-b p-e-n mb-5", attrs: { src: o.onboardingImageSvg } }), s("p", { staticClass: "f-s-2 f-w-400", domProps: { innerHTML: e._s(o.popupDescription) } })])]) : e._e();
6
- }, r = [], a = /* @__PURE__ */ n(
7
- t,
8
- i,
3
+ var r = function() {
4
+ var e = this, t = e._self._c, o = e._self._setupProxy;
5
+ return o.isVisible ? t(o.WpModal, { attrs: { id: "guido__new-version-popup", "close-on-outside-click": !1, "footer-button-options": o.footerButtonOptions, title: o.trans("email-editor.onboarding-title") }, on: { close: o.handleClose, "primary-action": o.handleDiscoverNow, "secondary-action": o.handleRemindLater } }, [t("div", { staticClass: "d-f f-d-c" }, [t("img", { staticClass: "w-1 h-1 d-b p-e-n mb-5", attrs: { src: o.onboardingImageSvg } }), t("p", { staticClass: "f-s-2 f-w-400", domProps: { innerHTML: e._s(o.trans("email-editor.onboarding-description")) } })])]) : e._e();
6
+ }, i = [], a = /* @__PURE__ */ n(
7
+ s,
9
8
  r,
9
+ i,
10
10
  !1,
11
11
  null,
12
12
  null
13
13
  );
14
- const _ = a.exports;
14
+ const p = a.exports;
15
15
  export {
16
- _ as default
16
+ p as default
17
17
  };
@@ -1,43 +1,30 @@
1
- import { defineComponent as g, ref as b, computed as o } from "vue";
2
- import v from "../../wrappers/WpModal.vue.js";
3
- import { useConfig as D } from "../../../composables/useConfig.js";
4
- import { useTranslations as h } from "../../../composables/useTranslations.js";
5
- import { ACADEMY_LINK as l } from "../../../enums/onboarding.js";
6
- import y from "../../../static/assets/onboarding-img.svg.js";
7
- import { useOnboardingStore as _ } from "../../../stores/onboarding.js";
8
- import { isAfterDate as C, formatShortDate as L } from "../../../utils/dateUtil.js";
9
- const I = /* @__PURE__ */ g({
1
+ import { defineComponent as s, ref as r } from "vue";
2
+ import a from "../../wrappers/WpModal.vue.js";
3
+ import { useTranslations as i } from "../../../composables/useTranslations.js";
4
+ import l from "../../../static/assets/onboarding-img.svg.js";
5
+ import { useOnboardingStore as m } from "../../../stores/onboarding.js";
6
+ const w = /* @__PURE__ */ s({
10
7
  __name: "NewVersionPopup",
11
- emits: ["onboarding-finished"],
12
- setup(w, { emit: a }) {
13
- const e = h(), t = _(), s = b(!0), { config: p } = D(), i = o(() => p.migrationDate), n = o(() => C(i.value || 0)), d = o(() => L(
14
- i.value
15
- )), m = o(() => n.value ? e("email-editor.onboarding-popup-sunsetted-title") : e("email-editor.onboarding-title")), c = o(() => n.value ? e("email-editor.onboarding-popup-sunsetted-description", {
16
- sunsetDate: d.value,
17
- academyLink: l
18
- }) : e("email-editor.onboarding-description", {
19
- academyLink: l
20
- })), u = o(() => n.value ? e("products.cancel") : e("products.remind-me-later")), f = o(() => ({
8
+ setup(p) {
9
+ const n = i(), e = m(), o = r(!0), t = r({
21
10
  primaryButton: {
22
11
  type: "primary",
23
- labelText: e("left-menu.discover-now")
12
+ labelText: n("left-menu.discover-now")
24
13
  },
25
14
  secondaryButton: {
26
15
  type: "subtle-primary",
27
- labelText: u.value
16
+ labelText: n("products.remind-me-later")
28
17
  }
29
- })), r = () => {
30
- s.value = !1, a("onboarding-finished");
31
- };
32
- return { __sfc: !0, emit: a, trans: e, onboardingStore: t, isVisible: s, config: p, migrationDate: i, isAfterMigrationDate: n, formattedSunsetDate: d, popupTitle: m, popupDescription: c, secondaryButtonLabel: u, footerButtonOptions: f, closePopup: r, handleDiscoverNow: () => {
33
- t.onDiscoverNowClicked(), r();
18
+ });
19
+ return { __sfc: !0, trans: n, onboardingStore: e, isVisible: o, footerButtonOptions: t, handleDiscoverNow: () => {
20
+ e.onDiscoverNowClicked(), o.value = !1;
34
21
  }, handleRemindLater: () => {
35
- t.onRemindMeLater(), r();
22
+ e.onRemindMeLater(), o.value = !1;
36
23
  }, handleClose: () => {
37
- t.onNewVersionPopupClose(), r();
38
- }, WpModal: v, onboardingImageSvg: y };
24
+ e.onNewVersionPopupClose(), o.value = !1;
25
+ }, WpModal: a, onboardingImageSvg: l };
39
26
  }
40
27
  });
41
28
  export {
42
- I as default
29
+ w as default
43
30
  };
@@ -1,21 +1,19 @@
1
- import t from "./OnboardingWrapper.vue2.js";
2
- import i from "../../../_virtual/_plugin-vue2_normalizer.js";
1
+ import o from "./OnboardingWrapper.vue2.js";
2
+ import _ from "../../../_virtual/_plugin-vue2_normalizer.js";
3
3
  var s = function() {
4
- var n = this, e = n._self._c, r = n._self._setupProxy;
5
- return e("div", n._l(r.visibleOnboardings, function(o) {
6
- return e(o.component, { key: o.type, tag: "component", on: { "onboarding-finished": function(p) {
7
- return r.emit("onboarding-finished");
8
- } } });
4
+ var n = this, e = n._self._c, t = n._self._setupProxy;
5
+ return e("div", n._l(t.visibleOnboardings, function(r) {
6
+ return e(r.component, { key: r.type, tag: "component" });
9
7
  }), 1);
10
- }, _ = [], a = /* @__PURE__ */ i(
11
- t,
8
+ }, a = [], p = /* @__PURE__ */ _(
9
+ o,
12
10
  s,
13
- _,
11
+ a,
14
12
  !1,
15
13
  null,
16
14
  null
17
15
  );
18
- const d = a.exports;
16
+ const m = p.exports;
19
17
  export {
20
- d as default
18
+ m as default
21
19
  };
@@ -1,25 +1,24 @@
1
- import { defineComponent as b, computed as e, onMounted as O, watch as t } from "vue";
2
- import { usePartner as u } from "../../../composables/usePartner.js";
3
- import { useEditorStore as v } from "../../../stores/editor.js";
4
- import { useOnboardingStore as l } from "../../../stores/onboarding.js";
5
- import { usePreviewStore as y } from "../../../stores/preview.js";
6
- import S from "./AMPOnboarding.vue.js";
7
- import h from "./GenericOnboarding.vue.js";
1
+ import { defineComponent as g, computed as e, onMounted as b, watch as t } from "vue";
2
+ import { usePartner as O } from "../../../composables/usePartner.js";
3
+ import { useEditorStore as u } from "../../../stores/editor.js";
4
+ import { useOnboardingStore as v } from "../../../stores/onboarding.js";
5
+ import { usePreviewStore as l } from "../../../stores/preview.js";
6
+ import y from "./AMPOnboarding.vue.js";
7
+ import S from "./GenericOnboarding.vue.js";
8
8
  import w from "./NewVersionPopup.vue.js";
9
9
  import P from "./TextBlockOnboarding.vue.js";
10
- import _ from "./VersionHistoryOnboarding.vue.js";
11
- const F = /* @__PURE__ */ b({
10
+ import h from "./VersionHistoryOnboarding.vue.js";
11
+ const E = /* @__PURE__ */ g({
12
12
  __name: "OnboardingWrapper",
13
- emits: ["onboarding-finished"],
14
- setup(A, { emit: f }) {
15
- const o = l(), r = v(), s = y(), { isTestPartner: a } = u(), p = e(() => r.isStripoInitialized), d = e(() => a()), m = [
13
+ setup(_) {
14
+ const o = v(), r = u(), s = l(), { isTestPartner: a } = O(), p = e(() => r.isStripoInitialized), d = e(() => a()), m = [
16
15
  { type: "newVersionPopup", component: w },
17
- { type: "genericOnboarding", component: h },
16
+ { type: "genericOnboarding", component: S },
18
17
  { type: "textBlockOnboarding", component: P },
19
- { type: "versionHistoryOnboarding", component: _ },
20
- { type: "ampOnboarding", component: S }
21
- ], c = (n) => d.value || !p.value ? !1 : n === "newVersionPopup" ? o.shouldShowOnboarding(n) : o.isActive(n), g = e(() => m.filter((n) => c(n.type)));
22
- return O(async () => {
18
+ { type: "versionHistoryOnboarding", component: h },
19
+ { type: "ampOnboarding", component: y }
20
+ ], c = (n) => d.value || !p.value ? !1 : n === "newVersionPopup" ? o.shouldShowOnboarding(n) : o.isActive(n), f = e(() => m.filter((n) => c(n.type)));
21
+ return b(async () => {
23
22
  await o.fetchUserModalState();
24
23
  }), t(
25
24
  () => r.isVersionHistoryOpen,
@@ -36,9 +35,9 @@ const F = /* @__PURE__ */ b({
36
35
  (n) => {
37
36
  !n && o.isActive("ampOnboarding") && o.close("ampOnboarding");
38
37
  }
39
- ), { __sfc: !0, emit: f, onboardingStore: o, editorStore: r, previewStore: s, isTestPartner: a, isStripoReady: p, isTestPartnerActive: d, onboardingConfigs: m, shouldShow: c, visibleOnboardings: g };
38
+ ), { __sfc: !0, onboardingStore: o, editorStore: r, previewStore: s, isTestPartner: a, isStripoReady: p, isTestPartnerActive: d, onboardingConfigs: m, shouldShow: c, visibleOnboardings: f };
40
39
  }
41
40
  });
42
41
  export {
43
- F as default
42
+ E as default
44
43
  };
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
2
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import type { HttpError, HttpResponse } from '@@/Composables/useHttp';
2
+ /**
3
+ * API error context with request/response details
4
+ */
5
+ export interface ApiErrorContext {
6
+ endpoint: string;
7
+ method?: string;
8
+ statusCode?: number;
9
+ statusText?: string;
10
+ errorType?: 'http_error' | 'network_error' | 'parsing_error' | 'timeout';
11
+ attemptNumber?: number;
12
+ retryable?: boolean;
13
+ [key: string]: unknown;
14
+ }
15
+ /**
16
+ * Tracks API failures including HTTP errors, network issues, and data parsing failures
17
+ * Integrates with the main error tracking system (Sentry + FullStory)
18
+ */
19
+ export declare const useApiErrorTracking: () => {
20
+ captureHttpError: (error: HttpError, endpoint: string, options?: Omit<ApiErrorContext, "endpoint">) => ApiErrorContext;
21
+ captureNetworkError: (error: Error, endpoint: string, options?: Omit<ApiErrorContext, "endpoint">) => ApiErrorContext;
22
+ captureParsingError: (error: unknown, endpoint: string, responseData?: unknown, options?: Omit<ApiErrorContext, "endpoint">) => ApiErrorContext;
23
+ captureTimeoutError: (endpoint: string, timeoutMs: number, options?: Omit<ApiErrorContext, "endpoint">) => ApiErrorContext;
24
+ withApiErrorTracking: <T>(apiCall: () => Promise<HttpResponse<T>>, endpoint: string, method?: string, options?: Omit<ApiErrorContext, "endpoint">) => Promise<HttpResponse<T>>;
25
+ withParsingErrorTracking: <T>(parser: () => T, endpoint: string, rawResponse?: unknown, options?: Omit<ApiErrorContext, "endpoint">) => T;
26
+ };
@@ -0,0 +1,120 @@
1
+ import { useErrorTracking as p } from "./useErrorTracking.js";
2
+ const h = () => {
3
+ const { captureError: i } = p(), E = (e, t, o = {}) => {
4
+ const s = {
5
+ endpoint: t,
6
+ method: o.method,
7
+ statusCode: e.status,
8
+ statusText: e.statusText,
9
+ errorType: "http_error",
10
+ component: "api-client",
11
+ operation: `http_error_${e.status}`,
12
+ retryable: e.status ? e.status >= 500 : !1,
13
+ // 5xx errors are retryable
14
+ ...o
15
+ }, r = new Error(
16
+ `HTTP ${e.status} ${e.statusText} - ${t}`
17
+ );
18
+ return i(r, s), s;
19
+ }, u = (e, t, o = {}) => {
20
+ const s = e.message, r = s.toLowerCase().includes("timeout"), n = e.name === "AbortError";
21
+ let a;
22
+ r ? a = "network_timeout" : n ? a = "request_abort" : a = "network_error";
23
+ const c = {
24
+ endpoint: t,
25
+ errorType: "network_error",
26
+ component: "api-client",
27
+ operation: a,
28
+ retryable: !0,
29
+ ...o
30
+ }, l = new Error(
31
+ `Network Error (${String(c.operation)}) - ${String(t)}: ${s}`
32
+ );
33
+ return i(l, c), c;
34
+ }, g = (e, t, o, s = {}) => {
35
+ const r = e instanceof Error ? e.message : String(e), n = {
36
+ endpoint: t,
37
+ errorType: "parsing_error",
38
+ component: "api-client",
39
+ operation: "response_parsing_failed",
40
+ retryable: !1,
41
+ responsePreview: o instanceof Object ? JSON.stringify(o).slice(0, 200) : String(o).slice(0, 200),
42
+ ...s
43
+ }, a = new Error(
44
+ `Failed to parse API response from ${t}: ${r}`
45
+ );
46
+ return i(a, n), n;
47
+ }, m = (e, t, o = {}) => {
48
+ const s = {
49
+ endpoint: e,
50
+ errorType: "timeout",
51
+ component: "api-client",
52
+ operation: "request_timeout",
53
+ timeoutMs: t,
54
+ retryable: !0,
55
+ ...o
56
+ }, r = new Error(
57
+ `Request to ${e} timed out after ${t}ms`
58
+ );
59
+ return i(r, s), s;
60
+ };
61
+ return {
62
+ captureHttpError: E,
63
+ captureNetworkError: u,
64
+ captureParsingError: g,
65
+ captureTimeoutError: m,
66
+ withApiErrorTracking: async (e, t, o = "GET", s = {}) => {
67
+ try {
68
+ return await e();
69
+ } catch (r) {
70
+ if (r instanceof Error)
71
+ if (r.message === "Request timeout") {
72
+ const n = s.timeoutMs || 1e4;
73
+ m(t, n, {
74
+ method: o,
75
+ ...s
76
+ });
77
+ } else if (r.name === "AbortError" || r.message.includes("cancelled"))
78
+ u(r, t, {
79
+ method: o,
80
+ ...s
81
+ });
82
+ else if (r.message.includes("HTTP Error")) {
83
+ const n = r.message.match(/HTTP Error: (\d+)/), a = n ? parseInt(n[1]) : void 0, c = {
84
+ message: r.message,
85
+ status: a,
86
+ statusText: r.message
87
+ };
88
+ E(c, t, {
89
+ method: o,
90
+ ...s
91
+ });
92
+ } else
93
+ u(r, t, {
94
+ method: o,
95
+ ...s
96
+ });
97
+ else {
98
+ const n = new Error(String(r));
99
+ u(n, t, {
100
+ method: o,
101
+ ...s
102
+ });
103
+ }
104
+ throw r;
105
+ }
106
+ },
107
+ withParsingErrorTracking: (e, t, o, s = {}) => {
108
+ try {
109
+ return e();
110
+ } catch (r) {
111
+ throw g(r, t, o, {
112
+ ...s
113
+ }), r;
114
+ }
115
+ }
116
+ };
117
+ };
118
+ export {
119
+ h as useApiErrorTracking
120
+ };
@@ -0,0 +1,30 @@
1
+ import type { Ref } from 'vue';
2
+ /**
3
+ * Error context for error tracking and correlation
4
+ */
5
+ export interface ErrorContext {
6
+ component?: string;
7
+ operation?: string;
8
+ templateId?: string;
9
+ userId?: string;
10
+ [key: string]: unknown;
11
+ }
12
+ /**
13
+ * Error tracking service for capturing and reporting errors
14
+ * Integrates with Sentry and FullStory for comprehensive error tracking
15
+ */
16
+ export declare const useErrorTracking: () => {
17
+ traceId: string;
18
+ errorCount: Readonly<Ref<number>>;
19
+ lastError: Readonly<Ref<Error | null>>;
20
+ captureError: (error: Error, context?: ErrorContext) => ErrorContext;
21
+ captureStripoError: (error: unknown, operation: string, additionalContext?: Record<string, unknown>, shouldLogToSentry?: boolean) => ErrorContext;
22
+ captureTimeoutError: (operation: string, timeoutMs: number, additionalContext?: Record<string, unknown>) => ErrorContext;
23
+ createTimeoutPromise: <T>(ms: number, operation: string, additionalContext?: Record<string, unknown>) => Promise<T>;
24
+ withTimeout: <T>(promise: Promise<T>, ms: number, operation: string, additionalContext?: Record<string, unknown>) => Promise<T>;
25
+ getErrorSummary: () => {
26
+ errorCount: number;
27
+ lastError: Error | null;
28
+ };
29
+ resetErrorTracking: () => void;
30
+ };
@@ -0,0 +1,98 @@
1
+ import { inject as S, ref as g } from "vue";
2
+ const f = () => {
3
+ const s = S("traceId", ""), n = g(0), i = g(null), d = (r, e = {}) => {
4
+ const t = r instanceof Error ? r.message : String(r), o = {
5
+ ...e,
6
+ errorMessage: t,
7
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
8
+ userAgent: navigator.userAgent,
9
+ url: window.location.href,
10
+ traceId: s || void 0
11
+ };
12
+ return n.value += 1, r instanceof Error && (i.value = r), window.Sentry && window.Sentry.captureException(r, {
13
+ tags: {
14
+ component: e.component,
15
+ operation: e.operation,
16
+ source: "guido"
17
+ },
18
+ contexts: {
19
+ guido: o
20
+ },
21
+ extra: {
22
+ traceId: s || void 0
23
+ }
24
+ }), window.FS && window.FS("event", "guido_error", {
25
+ errorMessageStr: t,
26
+ componentStr: e.component || "unknown",
27
+ operationStr: e.operation || "unknown",
28
+ templateIdStr: e.templateId || "",
29
+ userIdStr: e.userId || "",
30
+ traceIdStr: s || "",
31
+ errorCountInt: n.value,
32
+ timestampInt: Date.now()
33
+ }), o;
34
+ }, c = (r, e, t = {}, o = !0) => {
35
+ const a = r instanceof Error ? r : new Error(String(r)), u = a.message, p = {
36
+ component: "stripo-wrapper",
37
+ operation: e,
38
+ ...t,
39
+ errorMessage: u,
40
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
41
+ userAgent: navigator.userAgent,
42
+ url: window.location.href
43
+ };
44
+ return n.value += 1, i.value = a, o && window.Sentry && window.Sentry.captureException(a, {
45
+ tags: {
46
+ component: "stripo-wrapper",
47
+ operation: e
48
+ },
49
+ contexts: {
50
+ guido: p
51
+ }
52
+ }), o && window.FS && window.FS("event", "guido_stripo_error", {
53
+ errorMessageStr: u,
54
+ operationStr: e || "unknown",
55
+ timestampInt: Date.now()
56
+ }), p;
57
+ }, w = (r, e, t = {}) => {
58
+ const o = new Error(
59
+ `Timeout waiting for Stripo ${r} (${e}ms)`
60
+ );
61
+ return c(o, `${r}_timeout`, {
62
+ timeoutMs: e,
63
+ ...t
64
+ });
65
+ }, m = (r, e, t = {}) => new Promise((o, a) => {
66
+ setTimeout(() => {
67
+ const u = w(
68
+ e,
69
+ r,
70
+ t
71
+ );
72
+ a(new Error(u.errorMessage));
73
+ }, r);
74
+ });
75
+ return {
76
+ traceId: s,
77
+ errorCount: n,
78
+ lastError: i,
79
+ captureError: d,
80
+ captureStripoError: c,
81
+ captureTimeoutError: w,
82
+ createTimeoutPromise: m,
83
+ withTimeout: (r, e, t, o = {}) => Promise.race([
84
+ r,
85
+ m(e, t, o)
86
+ ]),
87
+ getErrorSummary: () => ({
88
+ errorCount: n.value,
89
+ lastError: i.value
90
+ }),
91
+ resetErrorTracking: () => {
92
+ n.value = 0, i.value = null;
93
+ }
94
+ };
95
+ };
96
+ export {
97
+ f as useErrorTracking
98
+ };
@@ -1,86 +1,123 @@
1
- import { getCsrfToken as H } from "../utils/genericUtil.js";
2
- import { ref as p, computed as T } from "vue";
3
- const k = (b = {}) => {
4
- const h = p(!1), a = p(null), u = p(null), g = T(() => h.value), y = T(() => a.value !== null), v = {
1
+ import { getCsrfToken as S } from "../utils/genericUtil.js";
2
+ import { ref as h, computed as w } from "vue";
3
+ let b;
4
+ const g = async () => {
5
+ if (!b)
6
+ try {
7
+ const { useApiErrorTracking: E } = await import("./useApiErrorTracking.js");
8
+ b = E();
9
+ } catch {
10
+ }
11
+ return b;
12
+ }, M = (E = {}) => {
13
+ const d = h(!1), i = h(null), l = h(null), P = w(() => d.value), k = w(() => i.value !== null), v = {
5
14
  baseURL: "",
6
15
  timeout: 1e4,
7
16
  retry: 0,
8
17
  retryDelay: 1e3,
9
18
  headers: {
10
19
  "Content-Type": "application/json",
11
- "X-CSRF-TOKEN": H()
20
+ "X-CSRF-TOKEN": S()
12
21
  },
13
- ...b
14
- }, w = (e, s) => {
15
- if (e.startsWith("http://") || e.startsWith("https://"))
16
- return e;
17
- const t = s || v.baseURL || "";
18
- return t.endsWith("/") && e.startsWith("/") ? `${t}${e.slice(1)}` : t.endsWith("/") || e.startsWith("/") ? `${t}${e}` : `${t}/${e}`;
19
- }, P = (e) => new Promise((s, t) => {
22
+ ...E
23
+ }, C = (t, s) => {
24
+ if (t.startsWith("http://") || t.startsWith("https://"))
25
+ return t;
26
+ const e = s || v.baseURL || "";
27
+ return e.endsWith("/") && t.startsWith("/") ? `${e}${t.slice(1)}` : e.endsWith("/") || t.startsWith("/") ? `${e}${t}` : `${e}/${t}`;
28
+ }, A = (t) => new Promise((s, e) => {
20
29
  setTimeout(() => {
21
- t(new Error("Request timeout"));
22
- }, e);
23
- }), x = (e) => new Promise((s) => {
24
- setTimeout(s, e);
25
- }), i = async (e, s, t, D = {}) => {
26
- a.value = null, h.value = !0, u.value = new AbortController();
27
- const n = { ...v, ...D }, L = w(s, n.baseURL), c = {
28
- method: e,
30
+ e(new Error("Request timeout"));
31
+ }, t);
32
+ }), $ = (t) => new Promise((s) => {
33
+ setTimeout(() => {
34
+ s();
35
+ }, t);
36
+ }), c = async (t, s, e, L = {}) => {
37
+ i.value = null, d.value = !0, l.value = new AbortController();
38
+ const n = { ...v, ...L }, T = C(s, n.baseURL), m = {
39
+ method: t,
29
40
  headers: { ...n.headers },
30
- signal: u.value.signal,
41
+ signal: l.value.signal,
31
42
  ...n
32
43
  };
33
- t && ["POST", "PUT", "PATCH"].includes(e) && (t instanceof FormData ? (delete c.headers["Content-Type"], c.body = t) : c.body = JSON.stringify(t));
34
- const E = async (m = 0) => {
44
+ e && ["POST", "PUT", "PATCH"].includes(t) && (e instanceof FormData ? (delete m.headers["Content-Type"], m.body = e) : m.body = JSON.stringify(e));
45
+ const y = async (f = 0) => {
35
46
  try {
36
- const o = [fetch(L, c)];
37
- n.timeout && o.push(P(n.timeout));
47
+ const o = [fetch(T, m)];
48
+ n.timeout && o.push(A(n.timeout));
38
49
  const r = await Promise.race(o);
39
50
  if (!r.ok) {
40
- const O = `HTTP Error: ${r.status} ${r.statusText}`, d = new Error(O);
41
- throw d.status = r.status, d.statusText = r.statusText, d.response = r, d;
51
+ const O = `HTTP Error: ${r.status} ${r.statusText}`, p = new Error(O);
52
+ p.status = r.status, p.statusText = r.statusText, p.response = r;
53
+ const x = await g();
54
+ throw x && x.captureHttpError(p, T, {
55
+ method: t,
56
+ statusCode: r.status,
57
+ statusText: r.statusText
58
+ }), p;
42
59
  }
43
- let f;
44
- const l = r.headers.get("content-type");
45
- return l != null && l.includes("application/json") ? f = await r.json() : l != null && l.includes("text/") ? f = await r.text() : f = await r.blob(), {
46
- data: f,
60
+ let a;
61
+ const u = r.headers.get("content-type");
62
+ return u != null && u.includes("application/json") ? a = await r.json() : u != null && u.includes("text/") ? a = await r.text() : a = await r.blob(), {
63
+ data: a,
47
64
  status: r.status,
48
65
  statusText: r.statusText,
49
66
  headers: r.headers
50
67
  };
51
68
  } catch (o) {
52
69
  const r = o instanceof Error && o.name === "AbortError";
53
- if (m < (n.retry || 0) && !r)
54
- return await x(n.retryDelay || 1e3), E(m + 1);
55
- throw o instanceof Error ? o.name === "AbortError" ? a.value = { message: "Request was cancelled" } : a.value = { message: o.message } : a.value = o, o;
70
+ if (f < (n.retry || 0) && !r)
71
+ return await $(n.retryDelay || 1e3), y(f + 1);
72
+ if (o instanceof Error)
73
+ if (o.name === "AbortError")
74
+ i.value = { message: "Request was cancelled" };
75
+ else {
76
+ i.value = { message: o.message };
77
+ const a = await g();
78
+ a && a.captureNetworkError(o, T, {
79
+ method: t,
80
+ attemptNumber: f + 1,
81
+ timeoutMs: n.timeout
82
+ });
83
+ }
84
+ else {
85
+ i.value = o;
86
+ const a = await g();
87
+ a && o instanceof Error && a.captureNetworkError(o, T, {
88
+ method: t,
89
+ attemptNumber: f + 1
90
+ });
91
+ }
92
+ throw o;
56
93
  }
57
94
  };
58
95
  try {
59
- return await E();
96
+ return await y();
60
97
  } finally {
61
- h.value = !1, u.value = null;
98
+ d.value = !1, l.value = null;
62
99
  }
63
- }, C = (e, s) => i("GET", e, void 0, s), $ = (e, s, t) => i("POST", e, s, t), R = (e, s, t) => i("PUT", e, s, t), U = (e, s, t) => i("PATCH", e, s, t), A = (e, s) => i("DELETE", e, void 0, s), W = (e) => {
64
- u.value && u.value.abort(e);
65
- }, q = () => {
66
- a.value = null;
100
+ }, R = (t, s) => c("GET", t, void 0, s), U = (t, s, e) => c("POST", t, s, e), N = (t, s, e) => c("PUT", t, s, e), W = (t, s, e) => c("PATCH", t, s, e), q = (t, s) => c("DELETE", t, void 0, s), D = (t) => {
101
+ l.value && l.value.abort(t);
102
+ }, H = () => {
103
+ i.value = null;
67
104
  };
68
105
  return {
69
106
  // State
70
- loading: g,
71
- error: T(() => a.value),
72
- hasError: y,
107
+ loading: P,
108
+ error: w(() => i.value),
109
+ hasError: k,
73
110
  // Methods
74
- request: i,
75
- get: C,
76
- post: $,
77
- put: R,
78
- patch: U,
79
- delete: A,
80
- cancel: W,
81
- clearError: q
111
+ request: c,
112
+ get: R,
113
+ post: U,
114
+ put: N,
115
+ patch: W,
116
+ delete: q,
117
+ cancel: D,
118
+ clearError: H
82
119
  };
83
120
  };
84
121
  export {
85
- k as useHttp
122
+ M as useHttp
86
123
  };