@burdenoff/microfe-devportal 2026.1107.3 → 2026.1108.2

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 (1400) hide show
  1. package/dist/__tests__/utils/renderWithProviders.d.ts +0 -2
  2. package/dist/_virtual/_rolldown/runtime.js +4 -5
  3. package/dist/dev/main.d.ts +0 -1
  4. package/dist/devportal/AdminDevportalRoot.d.ts +0 -2
  5. package/dist/devportal/AdminDevportalRoot.js +9 -6
  6. package/dist/devportal/AdminDevportalRoot.js.map +1 -1
  7. package/dist/devportal/AdminDevportalRoutes.d.ts +1 -2
  8. package/dist/devportal/AdminDevportalRoutes.js +1 -2
  9. package/dist/devportal/AdminDevportalRoutes.js.map +1 -1
  10. package/dist/devportal/DevportalRoot.d.ts +0 -2
  11. package/dist/devportal/DevportalRoot.js +13 -10
  12. package/dist/devportal/DevportalRoot.js.map +1 -1
  13. package/dist/devportal/DevportalRoutes.d.ts +1 -2
  14. package/dist/devportal/DevportalRoutes.js +46 -40
  15. package/dist/devportal/DevportalRoutes.js.map +1 -1
  16. package/dist/devportal/components/AppCard.d.ts +0 -2
  17. package/dist/devportal/components/AppCard.js +21 -22
  18. package/dist/devportal/components/AppCard.js.map +1 -1
  19. package/dist/devportal/components/ConfirmDialog.d.ts +0 -2
  20. package/dist/devportal/components/ConfirmDialog.js +9 -10
  21. package/dist/devportal/components/ConfirmDialog.js.map +1 -1
  22. package/dist/devportal/components/DataTable.d.ts +1 -3
  23. package/dist/devportal/components/DataTable.js +20 -21
  24. package/dist/devportal/components/DataTable.js.map +1 -1
  25. package/dist/devportal/components/EmptyState.d.ts +0 -2
  26. package/dist/devportal/components/EmptyState.js +1 -2
  27. package/dist/devportal/components/EmptyState.js.map +1 -1
  28. package/dist/devportal/components/FeatureFlaggedRoute.d.ts +0 -2
  29. package/dist/devportal/components/FeatureFlaggedRoute.js +1 -2
  30. package/dist/devportal/components/FeatureFlaggedRoute.js.map +1 -1
  31. package/dist/devportal/components/FormField.d.ts +0 -2
  32. package/dist/devportal/components/FormField.js +23 -24
  33. package/dist/devportal/components/FormField.js.map +1 -1
  34. package/dist/devportal/components/GrantDelegationModal.d.ts +0 -2
  35. package/dist/devportal/components/GrantDelegationModal.js +1 -2
  36. package/dist/devportal/components/GrantDelegationModal.js.map +1 -1
  37. package/dist/devportal/components/ImageUploadField.d.ts +0 -2
  38. package/dist/devportal/components/ImageUploadField.js +1 -2
  39. package/dist/devportal/components/ImageUploadField.js.map +1 -1
  40. package/dist/devportal/components/LoadingState.d.ts +0 -2
  41. package/dist/devportal/components/LoadingState.js +6 -7
  42. package/dist/devportal/components/LoadingState.js.map +1 -1
  43. package/dist/devportal/components/ManifestViewer.d.ts +0 -2
  44. package/dist/devportal/components/ManifestViewer.js +1 -2
  45. package/dist/devportal/components/ManifestViewer.js.map +1 -1
  46. package/dist/devportal/components/MarkdownEditor.d.ts +0 -2
  47. package/dist/devportal/components/MarkdownEditor.js +1 -2
  48. package/dist/devportal/components/MarkdownEditor.js.map +1 -1
  49. package/dist/devportal/components/MultiSelectCombobox.d.ts +1 -2
  50. package/dist/devportal/components/MultiSelectCombobox.js +1 -2
  51. package/dist/devportal/components/MultiSelectCombobox.js.map +1 -1
  52. package/dist/devportal/components/NodeSmokePanel.d.ts +0 -2
  53. package/dist/devportal/components/NodeSmokePanel.js +17 -18
  54. package/dist/devportal/components/NodeSmokePanel.js.map +1 -1
  55. package/dist/devportal/components/OnboardingChecklist.d.ts +0 -2
  56. package/dist/devportal/components/OnboardingChecklist.js +15 -16
  57. package/dist/devportal/components/OnboardingChecklist.js.map +1 -1
  58. package/dist/devportal/components/PackageValidationPanel.d.ts +0 -2
  59. package/dist/devportal/components/PackageValidationPanel.js +12 -13
  60. package/dist/devportal/components/PackageValidationPanel.js.map +1 -1
  61. package/dist/devportal/components/PageLayout.d.ts +0 -2
  62. package/dist/devportal/components/PageLayout.js +16 -17
  63. package/dist/devportal/components/PageLayout.js.map +1 -1
  64. package/dist/devportal/components/PermissionGuard.d.ts +0 -2
  65. package/dist/devportal/components/PermissionGuard.js +5 -6
  66. package/dist/devportal/components/PermissionGuard.js.map +1 -1
  67. package/dist/devportal/components/RegisterPickupLocationModal.d.ts +0 -2
  68. package/dist/devportal/components/RegisterPickupLocationModal.js +13 -14
  69. package/dist/devportal/components/RegisterPickupLocationModal.js.map +1 -1
  70. package/dist/devportal/components/ReportOrderIssueModal.d.ts +0 -2
  71. package/dist/devportal/components/ReportOrderIssueModal.js +1 -2
  72. package/dist/devportal/components/ReportOrderIssueModal.js.map +1 -1
  73. package/dist/devportal/components/SecretDisplay.d.ts +0 -2
  74. package/dist/devportal/components/SecretDisplay.js +8 -9
  75. package/dist/devportal/components/SecretDisplay.js.map +1 -1
  76. package/dist/devportal/components/SectionNav.d.ts +0 -2
  77. package/dist/devportal/components/SectionNav.js +11 -12
  78. package/dist/devportal/components/SectionNav.js.map +1 -1
  79. package/dist/devportal/components/SelectionCheckbox.d.ts +1 -2
  80. package/dist/devportal/components/SelectionCheckbox.js +1 -2
  81. package/dist/devportal/components/SelectionCheckbox.js.map +1 -1
  82. package/dist/devportal/components/StatCard.d.ts +0 -2
  83. package/dist/devportal/components/StatCard.js +1 -2
  84. package/dist/devportal/components/StatCard.js.map +1 -1
  85. package/dist/devportal/components/StatusBadge.d.ts +0 -2
  86. package/dist/devportal/components/StatusBadge.js +18 -19
  87. package/dist/devportal/components/StatusBadge.js.map +1 -1
  88. package/dist/devportal/components/TelemetryErrorBoundary.d.ts +0 -2
  89. package/dist/devportal/components/TelemetryErrorBoundary.js +1 -2
  90. package/dist/devportal/components/TelemetryErrorBoundary.js.map +1 -1
  91. package/dist/devportal/components/index.d.ts +0 -1
  92. package/dist/devportal/components/index.js +22 -21
  93. package/dist/devportal/constants/appCategories.d.ts +0 -1
  94. package/dist/devportal/constants/appCategories.js +1 -2
  95. package/dist/devportal/constants/appCategories.js.map +1 -1
  96. package/dist/devportal/constants/developerLinks.d.ts +0 -1
  97. package/dist/devportal/constants/developerLinks.js +23 -23
  98. package/dist/devportal/constants/developerLinks.js.map +1 -1
  99. package/dist/devportal/constants/permissions.d.ts +0 -1
  100. package/dist/devportal/constants/permissions.js +1 -2
  101. package/dist/devportal/constants/permissions.js.map +1 -1
  102. package/dist/devportal/events/index.d.ts +0 -1
  103. package/dist/devportal/events/index.js +1 -2
  104. package/dist/devportal/events/index.js.map +1 -1
  105. package/dist/devportal/hooks/DevPortalProvider.d.ts +1 -3
  106. package/dist/devportal/hooks/DevPortalProvider.js +2 -3
  107. package/dist/devportal/hooks/DevPortalProvider.js.map +1 -1
  108. package/dist/devportal/hooks/index.d.ts +0 -1
  109. package/dist/devportal/hooks/index.js +6 -5
  110. package/dist/devportal/hooks/useCarrierPickupLocations.d.ts +0 -1
  111. package/dist/devportal/hooks/useCarrierPickupLocations.js +1 -2
  112. package/dist/devportal/hooks/useCarrierPickupLocations.js.map +1 -1
  113. package/dist/devportal/hooks/useGraphQL.d.ts +0 -2
  114. package/dist/devportal/hooks/useGraphQL.js +42 -53
  115. package/dist/devportal/hooks/useGraphQL.js.map +1 -1
  116. package/dist/devportal/hooks/useIsSellerSection.d.ts +0 -1
  117. package/dist/devportal/hooks/useIsSellerSection.js +1 -2
  118. package/dist/devportal/hooks/useIsSellerSection.js.map +1 -1
  119. package/dist/devportal/hooks/useOrganizationPickupAddresses.d.ts +0 -1
  120. package/dist/devportal/hooks/useOrganizationPickupAddresses.js +3 -8
  121. package/dist/devportal/hooks/useOrganizationPickupAddresses.js.map +1 -1
  122. package/dist/devportal/hooks/usePackageUpload.d.ts +0 -1
  123. package/dist/devportal/hooks/usePackageUpload.js +4 -4
  124. package/dist/devportal/hooks/usePackageUpload.js.map +1 -1
  125. package/dist/devportal/hooks/usePermission.d.ts +0 -2
  126. package/dist/devportal/hooks/usePermission.js +2 -3
  127. package/dist/devportal/hooks/usePermission.js.map +1 -1
  128. package/dist/devportal/hooks/useProducts.d.ts +0 -1
  129. package/dist/devportal/hooks/useProducts.js +1 -2
  130. package/dist/devportal/hooks/useProducts.js.map +1 -1
  131. package/dist/devportal/hooks/useSellerOrganization.d.ts +0 -1
  132. package/dist/devportal/hooks/useSellerOrganization.js +1 -2
  133. package/dist/devportal/hooks/useSellerOrganization.js.map +1 -1
  134. package/dist/devportal/index.d.ts +0 -1
  135. package/dist/devportal/index.js +13 -12
  136. package/dist/devportal/pages/AdminOrganizationVerificationPage.d.ts +0 -2
  137. package/dist/devportal/pages/AdminOrganizationVerificationPage.js +13 -13
  138. package/dist/devportal/pages/AdminOrganizationVerificationPage.js.map +1 -1
  139. package/dist/devportal/pages/AdminReviewPage.d.ts +0 -2
  140. package/dist/devportal/pages/AdminReviewPage.js +134 -135
  141. package/dist/devportal/pages/AdminReviewPage.js.map +1 -1
  142. package/dist/devportal/pages/AnalyticsDashboardPage.d.ts +0 -2
  143. package/dist/devportal/pages/AnalyticsDashboardPage.js +66 -67
  144. package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
  145. package/dist/devportal/pages/ApiKeysPage.d.ts +0 -2
  146. package/dist/devportal/pages/ApiKeysPage.js +127 -128
  147. package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
  148. package/dist/devportal/pages/AppLogsPage.d.ts +0 -2
  149. package/dist/devportal/pages/AppLogsPage.js +18 -19
  150. package/dist/devportal/pages/AppLogsPage.js.map +1 -1
  151. package/dist/devportal/pages/ApplicationDetailPage.d.ts +0 -2
  152. package/dist/devportal/pages/ApplicationDetailPage.js +779 -778
  153. package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
  154. package/dist/devportal/pages/ApplicationVersionsPage.d.ts +0 -2
  155. package/dist/devportal/pages/ApplicationVersionsPage.js +482 -483
  156. package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
  157. package/dist/devportal/pages/ApplicationsPage.d.ts +0 -2
  158. package/dist/devportal/pages/ApplicationsPage.js +35 -36
  159. package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
  160. package/dist/devportal/pages/CreateApiKeyPage.d.ts +0 -2
  161. package/dist/devportal/pages/CreateApiKeyPage.js +39 -39
  162. package/dist/devportal/pages/CreateApiKeyPage.js.map +1 -1
  163. package/dist/devportal/pages/CreateApplicationPage.d.ts +0 -2
  164. package/dist/devportal/pages/CreateApplicationPage.js +136 -137
  165. package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
  166. package/dist/devportal/pages/CreateOAuthClientPage.d.ts +0 -2
  167. package/dist/devportal/pages/CreateOAuthClientPage.js +25 -24
  168. package/dist/devportal/pages/CreateOAuthClientPage.js.map +1 -1
  169. package/dist/devportal/pages/CreateOrganizationPage.d.ts +0 -2
  170. package/dist/devportal/pages/CreateOrganizationPage.js +32 -39
  171. package/dist/devportal/pages/CreateOrganizationPage.js.map +1 -1
  172. package/dist/devportal/pages/CreatePhysicalItemPage.d.ts +0 -2
  173. package/dist/devportal/pages/CreatePhysicalItemPage.js +102 -103
  174. package/dist/devportal/pages/CreatePhysicalItemPage.js.map +1 -1
  175. package/dist/devportal/pages/CreateWebhookPage.d.ts +0 -2
  176. package/dist/devportal/pages/CreateWebhookPage.js +31 -32
  177. package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
  178. package/dist/devportal/pages/DashboardPage.d.ts +0 -2
  179. package/dist/devportal/pages/DashboardPage.js +21 -22
  180. package/dist/devportal/pages/DashboardPage.js.map +1 -1
  181. package/dist/devportal/pages/DelegationsPage.d.ts +0 -2
  182. package/dist/devportal/pages/DelegationsPage.js +83 -84
  183. package/dist/devportal/pages/DelegationsPage.js.map +1 -1
  184. package/dist/devportal/pages/DocumentationPage.d.ts +0 -2
  185. package/dist/devportal/pages/DocumentationPage.js +1 -2
  186. package/dist/devportal/pages/DocumentationPage.js.map +1 -1
  187. package/dist/devportal/pages/EditApplicationPage.d.ts +0 -2
  188. package/dist/devportal/pages/EditApplicationPage.js +69 -70
  189. package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
  190. package/dist/devportal/pages/EditPhysicalItemPage.d.ts +0 -2
  191. package/dist/devportal/pages/EditPhysicalItemPage.js +334 -335
  192. package/dist/devportal/pages/EditPhysicalItemPage.js.map +1 -1
  193. package/dist/devportal/pages/InvitationDecisionPage.d.ts +0 -2
  194. package/dist/devportal/pages/InvitationDecisionPage.js +16 -17
  195. package/dist/devportal/pages/InvitationDecisionPage.js.map +1 -1
  196. package/dist/devportal/pages/ListingPreviewPage.d.ts +0 -2
  197. package/dist/devportal/pages/ListingPreviewPage.js +14 -15
  198. package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
  199. package/dist/devportal/pages/NodeLifecyclePage.d.ts +0 -2
  200. package/dist/devportal/pages/NodeLifecyclePage.js +216 -221
  201. package/dist/devportal/pages/NodeLifecyclePage.js.map +1 -1
  202. package/dist/devportal/pages/OAuthCallbackPage.d.ts +0 -2
  203. package/dist/devportal/pages/OAuthCallbackPage.js +4 -5
  204. package/dist/devportal/pages/OAuthCallbackPage.js.map +1 -1
  205. package/dist/devportal/pages/OAuthClientDetailPage.d.ts +0 -2
  206. package/dist/devportal/pages/OAuthClientDetailPage.js +17 -16
  207. package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
  208. package/dist/devportal/pages/OAuthClientsPage.d.ts +0 -2
  209. package/dist/devportal/pages/OAuthClientsPage.js +18 -19
  210. package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
  211. package/dist/devportal/pages/OrganizationDetailPage.d.ts +0 -2
  212. package/dist/devportal/pages/OrganizationDetailPage.js +444 -450
  213. package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
  214. package/dist/devportal/pages/OrganizationMembersPage.d.ts +0 -2
  215. package/dist/devportal/pages/OrganizationMembersPage.js +240 -241
  216. package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
  217. package/dist/devportal/pages/OrganizationsPage.d.ts +0 -2
  218. package/dist/devportal/pages/OrganizationsPage.js +34 -35
  219. package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
  220. package/dist/devportal/pages/PublishPage.d.ts +0 -2
  221. package/dist/devportal/pages/PublishPage.js +90 -91
  222. package/dist/devportal/pages/PublishPage.js.map +1 -1
  223. package/dist/devportal/pages/PublisherPayoutsPage.d.ts +19 -0
  224. package/dist/devportal/pages/PublisherPayoutsPage.js +650 -0
  225. package/dist/devportal/pages/PublisherPayoutsPage.js.map +1 -0
  226. package/dist/devportal/pages/PublisherProfilePage.d.ts +0 -2
  227. package/dist/devportal/pages/PublisherProfilePage.js +175 -163
  228. package/dist/devportal/pages/PublisherProfilePage.js.map +1 -1
  229. package/dist/devportal/pages/ResourcesPage.d.ts +0 -2
  230. package/dist/devportal/pages/ResourcesPage.js +17 -18
  231. package/dist/devportal/pages/ResourcesPage.js.map +1 -1
  232. package/dist/devportal/pages/RevenueDashboardPage.d.ts +0 -2
  233. package/dist/devportal/pages/RevenueDashboardPage.js +308 -308
  234. package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
  235. package/dist/devportal/pages/RevenueRedirectPage.d.ts +0 -2
  236. package/dist/devportal/pages/SellerDashboardPage.d.ts +0 -2
  237. package/dist/devportal/pages/SellerDashboardPage.js +14 -15
  238. package/dist/devportal/pages/SellerDashboardPage.js.map +1 -1
  239. package/dist/devportal/pages/SellerItemsPage.d.ts +0 -2
  240. package/dist/devportal/pages/SellerItemsPage.js +8 -9
  241. package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
  242. package/dist/devportal/pages/SellerOrdersPage.d.ts +0 -2
  243. package/dist/devportal/pages/SellerOrdersPage.js +10 -14
  244. package/dist/devportal/pages/SellerOrdersPage.js.map +1 -1
  245. package/dist/devportal/pages/SettingsPage.d.ts +0 -2
  246. package/dist/devportal/pages/SettingsPage.js +20 -21
  247. package/dist/devportal/pages/SettingsPage.js.map +1 -1
  248. package/dist/devportal/pages/SetupPage.d.ts +0 -2
  249. package/dist/devportal/pages/SetupPage.js +276 -277
  250. package/dist/devportal/pages/SetupPage.js.map +1 -1
  251. package/dist/devportal/pages/StoreSubmissionPage.d.ts +0 -2
  252. package/dist/devportal/pages/StoreSubmissionPage.js +4 -5
  253. package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
  254. package/dist/devportal/pages/WebhookDetailPage.d.ts +0 -2
  255. package/dist/devportal/pages/WebhookDetailPage.js +62 -67
  256. package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
  257. package/dist/devportal/pages/WebhooksPage.d.ts +0 -2
  258. package/dist/devportal/pages/WebhooksPage.js +130 -131
  259. package/dist/devportal/pages/WebhooksPage.js.map +1 -1
  260. package/dist/devportal/providers/DevportalProvider.d.ts +0 -2
  261. package/dist/devportal/providers/DevportalProvider.js +2 -3
  262. package/dist/devportal/providers/DevportalProvider.js.map +1 -1
  263. package/dist/devportal/store/devportalStore.d.ts +0 -2
  264. package/dist/devportal/store/devportalStore.js +1 -2
  265. package/dist/devportal/store/devportalStore.js.map +1 -1
  266. package/dist/devportal/types/index.d.ts +0 -2
  267. package/dist/devportal/types/index.js +1 -2
  268. package/dist/devportal/types/index.js.map +1 -1
  269. package/dist/devportal/utils/cn.d.ts +0 -2
  270. package/dist/devportal/utils/cn.js +2 -3
  271. package/dist/devportal/utils/cn.js.map +1 -1
  272. package/dist/devportal/utils/constants.d.ts +0 -1
  273. package/dist/devportal/utils/constants.js +1 -2
  274. package/dist/devportal/utils/constants.js.map +1 -1
  275. package/dist/devportal/utils/currency.d.ts +0 -1
  276. package/dist/devportal/utils/currency.js +1 -2
  277. package/dist/devportal/utils/currency.js.map +1 -1
  278. package/dist/devportal/utils/developerOnboarding.d.ts +0 -1
  279. package/dist/devportal/utils/developerOnboarding.js +4 -5
  280. package/dist/devportal/utils/developerOnboarding.js.map +1 -1
  281. package/dist/devportal/utils/graphqlEndpoint.d.ts +0 -1
  282. package/dist/devportal/utils/graphqlEndpoint.js +1 -2
  283. package/dist/devportal/utils/graphqlEndpoint.js.map +1 -1
  284. package/dist/devportal/utils/i18n.d.ts +0 -1
  285. package/dist/devportal/utils/i18n.js +1 -2
  286. package/dist/devportal/utils/i18n.js.map +1 -1
  287. package/dist/devportal/utils/nodeLifecycle.d.ts +0 -2
  288. package/dist/devportal/utils/nodeLifecycle.js +6 -7
  289. package/dist/devportal/utils/nodeLifecycle.js.map +1 -1
  290. package/dist/devportal/utils/publisherPayouts.d.ts +136 -0
  291. package/dist/devportal/utils/publisherPayouts.js +166 -0
  292. package/dist/devportal/utils/publisherPayouts.js.map +1 -0
  293. package/dist/devportal/utils/recaptcha.d.ts +0 -1
  294. package/dist/devportal/utils/recaptcha.js +1 -2
  295. package/dist/devportal/utils/recaptcha.js.map +1 -1
  296. package/dist/devportal/utils/submitForReview.d.ts +0 -1
  297. package/dist/devportal/utils/submitForReview.js +15 -14
  298. package/dist/devportal/utils/submitForReview.js.map +1 -1
  299. package/dist/devportal/utils/uploadErrors.d.ts +0 -1
  300. package/dist/devportal/utils/uploadErrors.js +30 -30
  301. package/dist/devportal/utils/uploadErrors.js.map +1 -1
  302. package/dist/generated/global-operations.d.ts +2614 -2317
  303. package/dist/generated/global-operations.js +412 -272
  304. package/dist/generated/global-operations.js.map +1 -1
  305. package/dist/generated/global-types.d.ts +2288 -339
  306. package/dist/generated/global-types.js +4 -3
  307. package/dist/generated/global-types.js.map +1 -1
  308. package/dist/generated/wspace-operations.d.ts +31 -8
  309. package/dist/generated/wspace-operations.js +2 -3
  310. package/dist/generated/wspace-operations.js.map +1 -1
  311. package/dist/generated/wspace-types.d.ts +4 -24
  312. package/dist/index.d.ts +0 -1
  313. package/dist/index.js +1 -1
  314. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +1 -2
  315. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -1
  316. package/dist/node_modules/@apollo/client/errors/ServerError.js +1 -2
  317. package/dist/node_modules/@apollo/client/errors/ServerError.js.map +1 -1
  318. package/dist/node_modules/@apollo/client/errors/utils.js +1 -2
  319. package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -1
  320. package/dist/node_modules/@apollo/client/link/core/ApolloLink.js +7 -8
  321. package/dist/node_modules/@apollo/client/link/core/ApolloLink.js.map +1 -1
  322. package/dist/node_modules/@apollo/client/link/subscriptions/index.js +16 -17
  323. package/dist/node_modules/@apollo/client/link/subscriptions/index.js.map +1 -1
  324. package/dist/node_modules/@apollo/client/link/utils/createOperation.js +5 -6
  325. package/dist/node_modules/@apollo/client/link/utils/createOperation.js.map +1 -1
  326. package/dist/node_modules/@apollo/client/utilities/caching/sizes.js +0 -1
  327. package/dist/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -1
  328. package/dist/node_modules/@apollo/client/utilities/graphql/print.js +4 -5
  329. package/dist/node_modules/@apollo/client/utilities/graphql/print.js.map +1 -1
  330. package/dist/node_modules/@apollo/client/utilities/internal/caches.js +1 -2
  331. package/dist/node_modules/@apollo/client/utilities/internal/caches.js.map +1 -1
  332. package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js +1 -2
  333. package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +1 -1
  334. package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +2 -3
  335. package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +1 -1
  336. package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +1 -2
  337. package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -1
  338. package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js +1 -2
  339. package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +1 -1
  340. package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js +1 -2
  341. package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +1 -1
  342. package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js +1 -2
  343. package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js.map +1 -1
  344. package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js +1 -2
  345. package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +1 -1
  346. package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +1 -2
  347. package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +1 -1
  348. package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js +1 -2
  349. package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +1 -1
  350. package/dist/node_modules/@apollo/client/utilities/internal/memoize.js +1 -2
  351. package/dist/node_modules/@apollo/client/utilities/internal/memoize.js.map +1 -1
  352. package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js +1 -2
  353. package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +1 -1
  354. package/dist/node_modules/@apollo/client/utilities/invariant/index.js +2 -3
  355. package/dist/node_modules/@apollo/client/utilities/invariant/index.js.map +1 -1
  356. package/dist/node_modules/@apollo/client/version.js +2 -3
  357. package/dist/node_modules/@apollo/client/version.js.map +1 -1
  358. package/dist/node_modules/@wry/caches/lib/weak.js +1 -2
  359. package/dist/node_modules/@wry/caches/lib/weak.js.map +1 -1
  360. package/dist/node_modules/@wry/trie/lib/index.js +2 -3
  361. package/dist/node_modules/@wry/trie/lib/index.js.map +1 -1
  362. package/dist/node_modules/clsx/dist/clsx.js +8 -7
  363. package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
  364. package/dist/node_modules/d3-array/dist/d3-array.js +204 -0
  365. package/dist/node_modules/d3-array/dist/d3-array.js.map +1 -0
  366. package/dist/node_modules/d3-color/dist/d3-color.js +388 -0
  367. package/dist/node_modules/d3-color/dist/d3-color.js.map +1 -0
  368. package/dist/node_modules/d3-format/dist/d3-format.js +186 -0
  369. package/dist/node_modules/d3-format/dist/d3-format.js.map +1 -0
  370. package/dist/node_modules/d3-interpolate/dist/d3-interpolate.js +185 -0
  371. package/dist/node_modules/d3-interpolate/dist/d3-interpolate.js.map +1 -0
  372. package/dist/node_modules/d3-path/{src/path.js → dist/d3-path.js} +39 -14
  373. package/dist/node_modules/d3-path/dist/d3-path.js.map +1 -0
  374. package/dist/node_modules/d3-scale/dist/d3-scale.js +622 -0
  375. package/dist/node_modules/d3-scale/dist/d3-scale.js.map +1 -0
  376. package/dist/node_modules/d3-shape/dist/d3-shape.js +901 -0
  377. package/dist/node_modules/d3-shape/dist/d3-shape.js.map +1 -0
  378. package/dist/node_modules/d3-time/dist/d3-time.js +241 -0
  379. package/dist/node_modules/d3-time/dist/d3-time.js.map +1 -0
  380. package/dist/node_modules/d3-time-format/{src/locale.js → dist/d3-time-format.js} +229 -174
  381. package/dist/node_modules/d3-time-format/dist/d3-time-format.js.map +1 -0
  382. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +1 -2
  383. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -1
  384. package/dist/node_modules/date-fns/_lib/defaultOptions.js +1 -2
  385. package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -1
  386. package/dist/node_modules/date-fns/_lib/format/formatters.js +29 -22
  387. package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
  388. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +3 -4
  389. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
  390. package/dist/node_modules/date-fns/_lib/format/longFormatters.js +2 -5
  391. package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -1
  392. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +2 -3
  393. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -1
  394. package/dist/node_modules/date-fns/_lib/protectedTokens.js +1 -2
  395. package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +1 -1
  396. package/dist/node_modules/date-fns/constants.js +5 -5
  397. package/dist/node_modules/date-fns/constants.js.map +1 -1
  398. package/dist/node_modules/date-fns/constructFrom.js +2 -3
  399. package/dist/node_modules/date-fns/constructFrom.js.map +1 -1
  400. package/dist/node_modules/date-fns/differenceInCalendarDays.js +2 -3
  401. package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +1 -1
  402. package/dist/node_modules/date-fns/format.js +15 -16
  403. package/dist/node_modules/date-fns/format.js.map +1 -1
  404. package/dist/node_modules/date-fns/getDayOfYear.js +7 -8
  405. package/dist/node_modules/date-fns/getDayOfYear.js.map +1 -1
  406. package/dist/node_modules/date-fns/getISOWeek.js +8 -9
  407. package/dist/node_modules/date-fns/getISOWeek.js.map +1 -1
  408. package/dist/node_modules/date-fns/getISOWeekYear.js +8 -9
  409. package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -1
  410. package/dist/node_modules/date-fns/getWeek.js +8 -9
  411. package/dist/node_modules/date-fns/getWeek.js.map +1 -1
  412. package/dist/node_modules/date-fns/getWeekYear.js +9 -10
  413. package/dist/node_modules/date-fns/getWeekYear.js.map +1 -1
  414. package/dist/node_modules/date-fns/isDate.js +2 -3
  415. package/dist/node_modules/date-fns/isDate.js.map +1 -1
  416. package/dist/node_modules/date-fns/isValid.js +6 -7
  417. package/dist/node_modules/date-fns/isValid.js.map +1 -1
  418. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +1 -2
  419. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
  420. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +1 -2
  421. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
  422. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +1 -2
  423. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
  424. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +1 -2
  425. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
  426. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +1 -2
  427. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -1
  428. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +0 -1
  429. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -1
  430. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +1 -2
  431. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -1
  432. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +0 -1
  433. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -1
  434. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +0 -1
  435. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -1
  436. package/dist/node_modules/date-fns/locale/en-US.js +2 -3
  437. package/dist/node_modules/date-fns/locale/en-US.js.map +1 -1
  438. package/dist/node_modules/date-fns/startOfDay.js +2 -3
  439. package/dist/node_modules/date-fns/startOfDay.js.map +1 -1
  440. package/dist/node_modules/date-fns/startOfISOWeek.js +2 -3
  441. package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -1
  442. package/dist/node_modules/date-fns/startOfISOWeekYear.js +5 -6
  443. package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +1 -1
  444. package/dist/node_modules/date-fns/startOfWeek.js +2 -3
  445. package/dist/node_modules/date-fns/startOfWeek.js.map +1 -1
  446. package/dist/node_modules/date-fns/startOfWeekYear.js +6 -7
  447. package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -1
  448. package/dist/node_modules/date-fns/startOfYear.js +3 -4
  449. package/dist/node_modules/date-fns/startOfYear.js.map +1 -1
  450. package/dist/node_modules/date-fns/toDate.js +2 -3
  451. package/dist/node_modules/date-fns/toDate.js.map +1 -1
  452. package/dist/node_modules/decimal.js-light/decimal.js +33 -30
  453. package/dist/node_modules/decimal.js-light/decimal.js.map +1 -1
  454. package/dist/node_modules/eventemitter3/index.js +2 -3
  455. package/dist/node_modules/eventemitter3/index.js.map +1 -1
  456. package/dist/node_modules/fast-equals/dist/es/index.js +109 -79
  457. package/dist/node_modules/fast-equals/dist/es/index.js.map +1 -1
  458. package/dist/node_modules/graphql-ws/dist/client.js +76 -69
  459. package/dist/node_modules/graphql-ws/dist/client.js.map +1 -1
  460. package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js +2 -3
  461. package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +1 -1
  462. package/dist/node_modules/lodash/_DataView.js +4 -5
  463. package/dist/node_modules/lodash/_DataView.js.map +1 -1
  464. package/dist/node_modules/lodash/_Hash.js +1 -2
  465. package/dist/node_modules/lodash/_Hash.js.map +1 -1
  466. package/dist/node_modules/lodash/_ListCache.js +1 -2
  467. package/dist/node_modules/lodash/_ListCache.js.map +1 -1
  468. package/dist/node_modules/lodash/_Map.js +4 -5
  469. package/dist/node_modules/lodash/_Map.js.map +1 -1
  470. package/dist/node_modules/lodash/_MapCache.js +1 -2
  471. package/dist/node_modules/lodash/_MapCache.js.map +1 -1
  472. package/dist/node_modules/lodash/_Promise.js +4 -5
  473. package/dist/node_modules/lodash/_Promise.js.map +1 -1
  474. package/dist/node_modules/lodash/_Set.js +4 -5
  475. package/dist/node_modules/lodash/_Set.js.map +1 -1
  476. package/dist/node_modules/lodash/_SetCache.js +1 -2
  477. package/dist/node_modules/lodash/_SetCache.js.map +1 -1
  478. package/dist/node_modules/lodash/_Stack.js +3 -3
  479. package/dist/node_modules/lodash/_Stack.js.map +1 -1
  480. package/dist/node_modules/lodash/_Symbol.js +1 -2
  481. package/dist/node_modules/lodash/_Symbol.js.map +1 -1
  482. package/dist/node_modules/lodash/_Uint8Array.js +1 -2
  483. package/dist/node_modules/lodash/_Uint8Array.js.map +1 -1
  484. package/dist/node_modules/lodash/_WeakMap.js +4 -5
  485. package/dist/node_modules/lodash/_WeakMap.js.map +1 -1
  486. package/dist/node_modules/lodash/_apply.js +1 -2
  487. package/dist/node_modules/lodash/_apply.js.map +1 -1
  488. package/dist/node_modules/lodash/_arrayEvery.js +1 -2
  489. package/dist/node_modules/lodash/_arrayEvery.js.map +1 -1
  490. package/dist/node_modules/lodash/_arrayFilter.js +1 -2
  491. package/dist/node_modules/lodash/_arrayFilter.js.map +1 -1
  492. package/dist/node_modules/lodash/_arrayIncludes.js +1 -2
  493. package/dist/node_modules/lodash/_arrayIncludes.js.map +1 -1
  494. package/dist/node_modules/lodash/_arrayIncludesWith.js +1 -2
  495. package/dist/node_modules/lodash/_arrayIncludesWith.js.map +1 -1
  496. package/dist/node_modules/lodash/_arrayLikeKeys.js +5 -6
  497. package/dist/node_modules/lodash/_arrayLikeKeys.js.map +1 -1
  498. package/dist/node_modules/lodash/_arrayMap.js +1 -2
  499. package/dist/node_modules/lodash/_arrayMap.js.map +1 -1
  500. package/dist/node_modules/lodash/_arrayPush.js +1 -2
  501. package/dist/node_modules/lodash/_arrayPush.js.map +1 -1
  502. package/dist/node_modules/lodash/_arraySome.js +1 -2
  503. package/dist/node_modules/lodash/_arraySome.js.map +1 -1
  504. package/dist/node_modules/lodash/_asciiToArray.js +1 -2
  505. package/dist/node_modules/lodash/_asciiToArray.js.map +1 -1
  506. package/dist/node_modules/lodash/_assocIndexOf.js +1 -2
  507. package/dist/node_modules/lodash/_assocIndexOf.js.map +1 -1
  508. package/dist/node_modules/lodash/_baseAssignValue.js +1 -2
  509. package/dist/node_modules/lodash/_baseAssignValue.js.map +1 -1
  510. package/dist/node_modules/lodash/_baseEach.js +1 -2
  511. package/dist/node_modules/lodash/_baseEach.js.map +1 -1
  512. package/dist/node_modules/lodash/_baseEvery.js +1 -2
  513. package/dist/node_modules/lodash/_baseEvery.js.map +1 -1
  514. package/dist/node_modules/lodash/_baseExtremum.js +1 -2
  515. package/dist/node_modules/lodash/_baseExtremum.js.map +1 -1
  516. package/dist/node_modules/lodash/_baseFindIndex.js +1 -2
  517. package/dist/node_modules/lodash/_baseFindIndex.js.map +1 -1
  518. package/dist/node_modules/lodash/_baseFlatten.js +1 -2
  519. package/dist/node_modules/lodash/_baseFlatten.js.map +1 -1
  520. package/dist/node_modules/lodash/_baseFor.js +1 -2
  521. package/dist/node_modules/lodash/_baseFor.js.map +1 -1
  522. package/dist/node_modules/lodash/_baseForOwn.js +4 -5
  523. package/dist/node_modules/lodash/_baseForOwn.js.map +1 -1
  524. package/dist/node_modules/lodash/_baseGet.js +1 -2
  525. package/dist/node_modules/lodash/_baseGet.js.map +1 -1
  526. package/dist/node_modules/lodash/_baseGetAllKeys.js +4 -5
  527. package/dist/node_modules/lodash/_baseGetAllKeys.js.map +1 -1
  528. package/dist/node_modules/lodash/_baseGetTag.js +1 -2
  529. package/dist/node_modules/lodash/_baseGetTag.js.map +1 -1
  530. package/dist/node_modules/lodash/_baseGt.js +1 -2
  531. package/dist/node_modules/lodash/_baseGt.js.map +1 -1
  532. package/dist/node_modules/lodash/_baseHasIn.js +1 -2
  533. package/dist/node_modules/lodash/_baseHasIn.js.map +1 -1
  534. package/dist/node_modules/lodash/_baseIndexOf.js +1 -2
  535. package/dist/node_modules/lodash/_baseIndexOf.js.map +1 -1
  536. package/dist/node_modules/lodash/_baseIsArguments.js +1 -2
  537. package/dist/node_modules/lodash/_baseIsArguments.js.map +1 -1
  538. package/dist/node_modules/lodash/_baseIsEqual.js +4 -5
  539. package/dist/node_modules/lodash/_baseIsEqual.js.map +1 -1
  540. package/dist/node_modules/lodash/_baseIsEqualDeep.js +10 -11
  541. package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +1 -1
  542. package/dist/node_modules/lodash/_baseIsMatch.js +1 -2
  543. package/dist/node_modules/lodash/_baseIsMatch.js.map +1 -1
  544. package/dist/node_modules/lodash/_baseIsNaN.js +1 -2
  545. package/dist/node_modules/lodash/_baseIsNaN.js.map +1 -1
  546. package/dist/node_modules/lodash/_baseIsNative.js +5 -6
  547. package/dist/node_modules/lodash/_baseIsNative.js.map +1 -1
  548. package/dist/node_modules/lodash/_baseIsTypedArray.js +4 -5
  549. package/dist/node_modules/lodash/_baseIsTypedArray.js.map +1 -1
  550. package/dist/node_modules/lodash/_baseIteratee.js +6 -7
  551. package/dist/node_modules/lodash/_baseIteratee.js.map +1 -1
  552. package/dist/node_modules/lodash/_baseKeys.js +1 -2
  553. package/dist/node_modules/lodash/_baseKeys.js.map +1 -1
  554. package/dist/node_modules/lodash/_baseLt.js +1 -2
  555. package/dist/node_modules/lodash/_baseLt.js.map +1 -1
  556. package/dist/node_modules/lodash/_baseMap.js +4 -5
  557. package/dist/node_modules/lodash/_baseMap.js.map +1 -1
  558. package/dist/node_modules/lodash/_baseMatches.js +1 -2
  559. package/dist/node_modules/lodash/_baseMatches.js.map +1 -1
  560. package/dist/node_modules/lodash/_baseMatchesProperty.js +7 -8
  561. package/dist/node_modules/lodash/_baseMatchesProperty.js.map +1 -1
  562. package/dist/node_modules/lodash/_baseOrderBy.js +11 -12
  563. package/dist/node_modules/lodash/_baseOrderBy.js.map +1 -1
  564. package/dist/node_modules/lodash/_baseProperty.js +1 -2
  565. package/dist/node_modules/lodash/_baseProperty.js.map +1 -1
  566. package/dist/node_modules/lodash/_basePropertyDeep.js +1 -2
  567. package/dist/node_modules/lodash/_basePropertyDeep.js.map +1 -1
  568. package/dist/node_modules/lodash/_baseRange.js +1 -2
  569. package/dist/node_modules/lodash/_baseRange.js.map +1 -1
  570. package/dist/node_modules/lodash/_baseRest.js +1 -2
  571. package/dist/node_modules/lodash/_baseRest.js.map +1 -1
  572. package/dist/node_modules/lodash/_baseSetToString.js +5 -6
  573. package/dist/node_modules/lodash/_baseSetToString.js.map +1 -1
  574. package/dist/node_modules/lodash/_baseSlice.js +1 -2
  575. package/dist/node_modules/lodash/_baseSlice.js.map +1 -1
  576. package/dist/node_modules/lodash/_baseSome.js +1 -2
  577. package/dist/node_modules/lodash/_baseSome.js.map +1 -1
  578. package/dist/node_modules/lodash/_baseSortBy.js +1 -2
  579. package/dist/node_modules/lodash/_baseSortBy.js.map +1 -1
  580. package/dist/node_modules/lodash/_baseTimes.js +1 -2
  581. package/dist/node_modules/lodash/_baseTimes.js.map +1 -1
  582. package/dist/node_modules/lodash/_baseToString.js +6 -7
  583. package/dist/node_modules/lodash/_baseToString.js.map +1 -1
  584. package/dist/node_modules/lodash/_baseTrim.js +1 -2
  585. package/dist/node_modules/lodash/_baseTrim.js.map +1 -1
  586. package/dist/node_modules/lodash/_baseUnary.js +1 -2
  587. package/dist/node_modules/lodash/_baseUnary.js.map +1 -1
  588. package/dist/node_modules/lodash/_baseUniq.js +7 -8
  589. package/dist/node_modules/lodash/_baseUniq.js.map +1 -1
  590. package/dist/node_modules/lodash/_cacheHas.js +1 -2
  591. package/dist/node_modules/lodash/_cacheHas.js.map +1 -1
  592. package/dist/node_modules/lodash/_castPath.js +1 -2
  593. package/dist/node_modules/lodash/_castPath.js.map +1 -1
  594. package/dist/node_modules/lodash/_castSlice.js +1 -2
  595. package/dist/node_modules/lodash/_castSlice.js.map +1 -1
  596. package/dist/node_modules/lodash/_compareAscending.js +1 -2
  597. package/dist/node_modules/lodash/_compareAscending.js.map +1 -1
  598. package/dist/node_modules/lodash/_compareMultiple.js +1 -2
  599. package/dist/node_modules/lodash/_compareMultiple.js.map +1 -1
  600. package/dist/node_modules/lodash/_coreJsData.js +1 -2
  601. package/dist/node_modules/lodash/_coreJsData.js.map +1 -1
  602. package/dist/node_modules/lodash/_createBaseEach.js +1 -2
  603. package/dist/node_modules/lodash/_createBaseEach.js.map +1 -1
  604. package/dist/node_modules/lodash/_createBaseFor.js +1 -2
  605. package/dist/node_modules/lodash/_createBaseFor.js.map +1 -1
  606. package/dist/node_modules/lodash/_createCaseFirst.js +6 -7
  607. package/dist/node_modules/lodash/_createCaseFirst.js.map +1 -1
  608. package/dist/node_modules/lodash/_createFind.js +5 -6
  609. package/dist/node_modules/lodash/_createFind.js.map +1 -1
  610. package/dist/node_modules/lodash/_createRange.js +4 -5
  611. package/dist/node_modules/lodash/_createRange.js.map +1 -1
  612. package/dist/node_modules/lodash/_createSet.js +6 -7
  613. package/dist/node_modules/lodash/_createSet.js.map +1 -1
  614. package/dist/node_modules/lodash/_defineProperty.js +1 -2
  615. package/dist/node_modules/lodash/_defineProperty.js.map +1 -1
  616. package/dist/node_modules/lodash/_equalArrays.js +1 -2
  617. package/dist/node_modules/lodash/_equalArrays.js.map +1 -1
  618. package/dist/node_modules/lodash/_equalByTag.js +5 -6
  619. package/dist/node_modules/lodash/_equalByTag.js.map +1 -1
  620. package/dist/node_modules/lodash/_equalObjects.js +1 -2
  621. package/dist/node_modules/lodash/_equalObjects.js.map +1 -1
  622. package/dist/node_modules/lodash/_freeGlobal.js +1 -2
  623. package/dist/node_modules/lodash/_freeGlobal.js.map +1 -1
  624. package/dist/node_modules/lodash/_getAllKeys.js +1 -2
  625. package/dist/node_modules/lodash/_getAllKeys.js.map +1 -1
  626. package/dist/node_modules/lodash/_getMapData.js +1 -2
  627. package/dist/node_modules/lodash/_getMapData.js.map +1 -1
  628. package/dist/node_modules/lodash/_getMatchData.js +4 -5
  629. package/dist/node_modules/lodash/_getMatchData.js.map +1 -1
  630. package/dist/node_modules/lodash/_getNative.js +1 -2
  631. package/dist/node_modules/lodash/_getNative.js.map +1 -1
  632. package/dist/node_modules/lodash/_getPrototype.js +1 -2
  633. package/dist/node_modules/lodash/_getPrototype.js.map +1 -1
  634. package/dist/node_modules/lodash/_getRawTag.js +1 -2
  635. package/dist/node_modules/lodash/_getRawTag.js.map +1 -1
  636. package/dist/node_modules/lodash/_getSymbols.js +1 -2
  637. package/dist/node_modules/lodash/_getSymbols.js.map +1 -1
  638. package/dist/node_modules/lodash/_getTag.js +9 -10
  639. package/dist/node_modules/lodash/_getTag.js.map +1 -1
  640. package/dist/node_modules/lodash/_getValue.js +1 -2
  641. package/dist/node_modules/lodash/_getValue.js.map +1 -1
  642. package/dist/node_modules/lodash/_hasPath.js +8 -9
  643. package/dist/node_modules/lodash/_hasPath.js.map +1 -1
  644. package/dist/node_modules/lodash/_hasUnicode.js +1 -2
  645. package/dist/node_modules/lodash/_hasUnicode.js.map +1 -1
  646. package/dist/node_modules/lodash/_hashClear.js +1 -2
  647. package/dist/node_modules/lodash/_hashClear.js.map +1 -1
  648. package/dist/node_modules/lodash/_hashDelete.js +1 -2
  649. package/dist/node_modules/lodash/_hashDelete.js.map +1 -1
  650. package/dist/node_modules/lodash/_hashGet.js +1 -2
  651. package/dist/node_modules/lodash/_hashGet.js.map +1 -1
  652. package/dist/node_modules/lodash/_hashHas.js +1 -2
  653. package/dist/node_modules/lodash/_hashHas.js.map +1 -1
  654. package/dist/node_modules/lodash/_hashSet.js +1 -2
  655. package/dist/node_modules/lodash/_hashSet.js.map +1 -1
  656. package/dist/node_modules/lodash/_isFlattenable.js +5 -6
  657. package/dist/node_modules/lodash/_isFlattenable.js.map +1 -1
  658. package/dist/node_modules/lodash/_isIndex.js +6 -7
  659. package/dist/node_modules/lodash/_isIndex.js.map +1 -1
  660. package/dist/node_modules/lodash/_isIterateeCall.js +5 -6
  661. package/dist/node_modules/lodash/_isIterateeCall.js.map +1 -1
  662. package/dist/node_modules/lodash/_isKey.js +1 -2
  663. package/dist/node_modules/lodash/_isKey.js.map +1 -1
  664. package/dist/node_modules/lodash/_isKeyable.js +1 -2
  665. package/dist/node_modules/lodash/_isKeyable.js.map +1 -1
  666. package/dist/node_modules/lodash/_isMasked.js +1 -2
  667. package/dist/node_modules/lodash/_isMasked.js.map +1 -1
  668. package/dist/node_modules/lodash/_isPrototype.js +1 -2
  669. package/dist/node_modules/lodash/_isPrototype.js.map +1 -1
  670. package/dist/node_modules/lodash/_isStrictComparable.js +1 -2
  671. package/dist/node_modules/lodash/_isStrictComparable.js.map +1 -1
  672. package/dist/node_modules/lodash/_listCacheClear.js +1 -2
  673. package/dist/node_modules/lodash/_listCacheClear.js.map +1 -1
  674. package/dist/node_modules/lodash/_listCacheDelete.js +1 -2
  675. package/dist/node_modules/lodash/_listCacheDelete.js.map +1 -1
  676. package/dist/node_modules/lodash/_listCacheGet.js +1 -2
  677. package/dist/node_modules/lodash/_listCacheGet.js.map +1 -1
  678. package/dist/node_modules/lodash/_listCacheHas.js +1 -2
  679. package/dist/node_modules/lodash/_listCacheHas.js.map +1 -1
  680. package/dist/node_modules/lodash/_listCacheSet.js +1 -2
  681. package/dist/node_modules/lodash/_listCacheSet.js.map +1 -1
  682. package/dist/node_modules/lodash/_mapCacheClear.js +1 -2
  683. package/dist/node_modules/lodash/_mapCacheClear.js.map +1 -1
  684. package/dist/node_modules/lodash/_mapCacheDelete.js +1 -2
  685. package/dist/node_modules/lodash/_mapCacheDelete.js.map +1 -1
  686. package/dist/node_modules/lodash/_mapCacheGet.js +1 -2
  687. package/dist/node_modules/lodash/_mapCacheGet.js.map +1 -1
  688. package/dist/node_modules/lodash/_mapCacheHas.js +1 -2
  689. package/dist/node_modules/lodash/_mapCacheHas.js.map +1 -1
  690. package/dist/node_modules/lodash/_mapCacheSet.js +1 -2
  691. package/dist/node_modules/lodash/_mapCacheSet.js.map +1 -1
  692. package/dist/node_modules/lodash/_mapToArray.js +1 -2
  693. package/dist/node_modules/lodash/_mapToArray.js.map +1 -1
  694. package/dist/node_modules/lodash/_matchesStrictComparable.js +2 -3
  695. package/dist/node_modules/lodash/_matchesStrictComparable.js.map +1 -1
  696. package/dist/node_modules/lodash/_memoizeCapped.js +1 -2
  697. package/dist/node_modules/lodash/_memoizeCapped.js.map +1 -1
  698. package/dist/node_modules/lodash/_nativeCreate.js +1 -2
  699. package/dist/node_modules/lodash/_nativeCreate.js.map +1 -1
  700. package/dist/node_modules/lodash/_nativeKeys.js +1 -2
  701. package/dist/node_modules/lodash/_nativeKeys.js.map +1 -1
  702. package/dist/node_modules/lodash/_nodeUtil.js +1 -2
  703. package/dist/node_modules/lodash/_nodeUtil.js.map +1 -1
  704. package/dist/node_modules/lodash/_objectToString.js +1 -2
  705. package/dist/node_modules/lodash/_objectToString.js.map +1 -1
  706. package/dist/node_modules/lodash/_overArg.js +1 -2
  707. package/dist/node_modules/lodash/_overArg.js.map +1 -1
  708. package/dist/node_modules/lodash/_overRest.js +1 -2
  709. package/dist/node_modules/lodash/_overRest.js.map +1 -1
  710. package/dist/node_modules/lodash/_root.js +1 -2
  711. package/dist/node_modules/lodash/_root.js.map +1 -1
  712. package/dist/node_modules/lodash/_setCacheAdd.js +4 -6
  713. package/dist/node_modules/lodash/_setCacheAdd.js.map +1 -1
  714. package/dist/node_modules/lodash/_setCacheHas.js +1 -2
  715. package/dist/node_modules/lodash/_setCacheHas.js.map +1 -1
  716. package/dist/node_modules/lodash/_setToArray.js +1 -2
  717. package/dist/node_modules/lodash/_setToArray.js.map +1 -1
  718. package/dist/node_modules/lodash/_setToString.js +1 -2
  719. package/dist/node_modules/lodash/_setToString.js.map +1 -1
  720. package/dist/node_modules/lodash/_shortOut.js +8 -9
  721. package/dist/node_modules/lodash/_shortOut.js.map +1 -1
  722. package/dist/node_modules/lodash/_stackClear.js +1 -2
  723. package/dist/node_modules/lodash/_stackClear.js.map +1 -1
  724. package/dist/node_modules/lodash/_stackDelete.js +1 -2
  725. package/dist/node_modules/lodash/_stackDelete.js.map +1 -1
  726. package/dist/node_modules/lodash/_stackGet.js +1 -2
  727. package/dist/node_modules/lodash/_stackGet.js.map +1 -1
  728. package/dist/node_modules/lodash/_stackHas.js +1 -2
  729. package/dist/node_modules/lodash/_stackHas.js.map +1 -1
  730. package/dist/node_modules/lodash/_stackSet.js +1 -2
  731. package/dist/node_modules/lodash/_stackSet.js.map +1 -1
  732. package/dist/node_modules/lodash/_strictIndexOf.js +1 -2
  733. package/dist/node_modules/lodash/_strictIndexOf.js.map +1 -1
  734. package/dist/node_modules/lodash/_stringToArray.js +4 -5
  735. package/dist/node_modules/lodash/_stringToArray.js.map +1 -1
  736. package/dist/node_modules/lodash/_stringToPath.js +1 -2
  737. package/dist/node_modules/lodash/_stringToPath.js.map +1 -1
  738. package/dist/node_modules/lodash/_toKey.js +2 -3
  739. package/dist/node_modules/lodash/_toKey.js.map +1 -1
  740. package/dist/node_modules/lodash/_toSource.js +1 -2
  741. package/dist/node_modules/lodash/_toSource.js.map +1 -1
  742. package/dist/node_modules/lodash/_trimmedEndIndex.js +1 -2
  743. package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -1
  744. package/dist/node_modules/lodash/_unicodeToArray.js +1 -2
  745. package/dist/node_modules/lodash/_unicodeToArray.js.map +1 -1
  746. package/dist/node_modules/lodash/constant.js +1 -2
  747. package/dist/node_modules/lodash/constant.js.map +1 -1
  748. package/dist/node_modules/lodash/debounce.js +1 -2
  749. package/dist/node_modules/lodash/debounce.js.map +1 -1
  750. package/dist/node_modules/lodash/eq.js +1 -2
  751. package/dist/node_modules/lodash/eq.js.map +1 -1
  752. package/dist/node_modules/lodash/every.js +7 -8
  753. package/dist/node_modules/lodash/every.js.map +1 -1
  754. package/dist/node_modules/lodash/find.js +1 -2
  755. package/dist/node_modules/lodash/find.js.map +1 -1
  756. package/dist/node_modules/lodash/findIndex.js +4 -5
  757. package/dist/node_modules/lodash/findIndex.js.map +1 -1
  758. package/dist/node_modules/lodash/flatMap.js +1 -2
  759. package/dist/node_modules/lodash/flatMap.js.map +1 -1
  760. package/dist/node_modules/lodash/get.js +1 -2
  761. package/dist/node_modules/lodash/get.js.map +1 -1
  762. package/dist/node_modules/lodash/hasIn.js +1 -2
  763. package/dist/node_modules/lodash/hasIn.js.map +1 -1
  764. package/dist/node_modules/lodash/identity.js +1 -2
  765. package/dist/node_modules/lodash/identity.js.map +1 -1
  766. package/dist/node_modules/lodash/isArguments.js +4 -5
  767. package/dist/node_modules/lodash/isArguments.js.map +1 -1
  768. package/dist/node_modules/lodash/isArray.js +1 -2
  769. package/dist/node_modules/lodash/isArray.js.map +1 -1
  770. package/dist/node_modules/lodash/isArrayLike.js +1 -2
  771. package/dist/node_modules/lodash/isArrayLike.js.map +1 -1
  772. package/dist/node_modules/lodash/isBoolean.js +1 -2
  773. package/dist/node_modules/lodash/isBoolean.js.map +1 -1
  774. package/dist/node_modules/lodash/isBuffer.js +1 -2
  775. package/dist/node_modules/lodash/isBuffer.js.map +1 -1
  776. package/dist/node_modules/lodash/isEqual.js +1 -2
  777. package/dist/node_modules/lodash/isEqual.js.map +1 -1
  778. package/dist/node_modules/lodash/isFunction.js +1 -2
  779. package/dist/node_modules/lodash/isFunction.js.map +1 -1
  780. package/dist/node_modules/lodash/isLength.js +4 -6
  781. package/dist/node_modules/lodash/isLength.js.map +1 -1
  782. package/dist/node_modules/lodash/isNaN.js +1 -2
  783. package/dist/node_modules/lodash/isNaN.js.map +1 -1
  784. package/dist/node_modules/lodash/isNil.js +1 -2
  785. package/dist/node_modules/lodash/isNil.js.map +1 -1
  786. package/dist/node_modules/lodash/isNumber.js +1 -2
  787. package/dist/node_modules/lodash/isNumber.js.map +1 -1
  788. package/dist/node_modules/lodash/isObject.js +1 -2
  789. package/dist/node_modules/lodash/isObject.js.map +1 -1
  790. package/dist/node_modules/lodash/isObjectLike.js +1 -2
  791. package/dist/node_modules/lodash/isObjectLike.js.map +1 -1
  792. package/dist/node_modules/lodash/isPlainObject.js +4 -5
  793. package/dist/node_modules/lodash/isPlainObject.js.map +1 -1
  794. package/dist/node_modules/lodash/isString.js +4 -5
  795. package/dist/node_modules/lodash/isString.js.map +1 -1
  796. package/dist/node_modules/lodash/isSymbol.js +1 -2
  797. package/dist/node_modules/lodash/isSymbol.js.map +1 -1
  798. package/dist/node_modules/lodash/isTypedArray.js +1 -2
  799. package/dist/node_modules/lodash/isTypedArray.js.map +1 -1
  800. package/dist/node_modules/lodash/keys.js +1 -2
  801. package/dist/node_modules/lodash/keys.js.map +1 -1
  802. package/dist/node_modules/lodash/last.js +1 -2
  803. package/dist/node_modules/lodash/last.js.map +1 -1
  804. package/dist/node_modules/lodash/map.js +6 -7
  805. package/dist/node_modules/lodash/map.js.map +1 -1
  806. package/dist/node_modules/lodash/mapValues.js +4 -5
  807. package/dist/node_modules/lodash/mapValues.js.map +1 -1
  808. package/dist/node_modules/lodash/max.js +5 -6
  809. package/dist/node_modules/lodash/max.js.map +1 -1
  810. package/dist/node_modules/lodash/memoize.js +1 -2
  811. package/dist/node_modules/lodash/memoize.js.map +1 -1
  812. package/dist/node_modules/lodash/min.js +5 -6
  813. package/dist/node_modules/lodash/min.js.map +1 -1
  814. package/dist/node_modules/lodash/noop.js +1 -2
  815. package/dist/node_modules/lodash/noop.js.map +1 -1
  816. package/dist/node_modules/lodash/now.js +1 -2
  817. package/dist/node_modules/lodash/now.js.map +1 -1
  818. package/dist/node_modules/lodash/property.js +6 -7
  819. package/dist/node_modules/lodash/property.js.map +1 -1
  820. package/dist/node_modules/lodash/range.js +1 -2
  821. package/dist/node_modules/lodash/range.js.map +1 -1
  822. package/dist/node_modules/lodash/some.js +7 -8
  823. package/dist/node_modules/lodash/some.js.map +1 -1
  824. package/dist/node_modules/lodash/sortBy.js +1 -2
  825. package/dist/node_modules/lodash/sortBy.js.map +1 -1
  826. package/dist/node_modules/lodash/stubArray.js +1 -2
  827. package/dist/node_modules/lodash/stubArray.js.map +1 -1
  828. package/dist/node_modules/lodash/stubFalse.js +1 -2
  829. package/dist/node_modules/lodash/stubFalse.js.map +1 -1
  830. package/dist/node_modules/lodash/throttle.js +4 -5
  831. package/dist/node_modules/lodash/throttle.js.map +1 -1
  832. package/dist/node_modules/lodash/toFinite.js +2 -3
  833. package/dist/node_modules/lodash/toFinite.js.map +1 -1
  834. package/dist/node_modules/lodash/toInteger.js +1 -2
  835. package/dist/node_modules/lodash/toInteger.js.map +1 -1
  836. package/dist/node_modules/lodash/toNumber.js +4 -5
  837. package/dist/node_modules/lodash/toNumber.js.map +1 -1
  838. package/dist/node_modules/lodash/toString.js +1 -2
  839. package/dist/node_modules/lodash/toString.js.map +1 -1
  840. package/dist/node_modules/lodash/uniqBy.js +1 -2
  841. package/dist/node_modules/lodash/uniqBy.js.map +1 -1
  842. package/dist/node_modules/lodash/upperFirst.js +1 -2
  843. package/dist/node_modules/lodash/upperFirst.js.map +1 -1
  844. package/dist/node_modules/object-assign/index.js +1 -2
  845. package/dist/node_modules/object-assign/index.js.map +1 -1
  846. package/dist/node_modules/prop-types/checkPropTypes.js +1 -2
  847. package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -1
  848. package/dist/node_modules/prop-types/factoryWithThrowingShims.js +1 -2
  849. package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -1
  850. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +3 -3
  851. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
  852. package/dist/node_modules/prop-types/index.js +1 -2
  853. package/dist/node_modules/prop-types/index.js.map +1 -1
  854. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +1 -2
  855. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -1
  856. package/dist/node_modules/prop-types/lib/has.js +1 -2
  857. package/dist/node_modules/prop-types/lib/has.js.map +1 -1
  858. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +1 -2
  859. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  860. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +1 -2
  861. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  862. package/dist/node_modules/prop-types/node_modules/react-is/index.js +2 -3
  863. package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -1
  864. package/dist/node_modules/react-is/cjs/react-is.development.js +31 -32
  865. package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  866. package/dist/node_modules/react-is/cjs/react-is.production.min.js +1 -2
  867. package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  868. package/dist/node_modules/react-is/index.js +2 -3
  869. package/dist/node_modules/react-is/index.js.map +1 -1
  870. package/dist/node_modules/react-smooth/es6/Animate.js +33 -41
  871. package/dist/node_modules/react-smooth/es6/Animate.js.map +1 -1
  872. package/dist/node_modules/react-smooth/es6/AnimateManager.js +2 -5
  873. package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +1 -1
  874. package/dist/node_modules/react-smooth/es6/configUpdate.js +1 -2
  875. package/dist/node_modules/react-smooth/es6/configUpdate.js.map +1 -1
  876. package/dist/node_modules/react-smooth/es6/easing.js +1 -2
  877. package/dist/node_modules/react-smooth/es6/easing.js.map +1 -1
  878. package/dist/node_modules/react-smooth/es6/index.js +1 -2
  879. package/dist/node_modules/react-smooth/es6/index.js.map +1 -1
  880. package/dist/node_modules/react-smooth/es6/setRafTimeout.js +1 -2
  881. package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -1
  882. package/dist/node_modules/react-smooth/es6/util.js +17 -16
  883. package/dist/node_modules/react-smooth/es6/util.js.map +1 -1
  884. package/dist/node_modules/recharts/es6/cartesian/Bar.js +103 -104
  885. package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +1 -1
  886. package/dist/node_modules/recharts/es6/cartesian/Brush.js +35 -36
  887. package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -1
  888. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +60 -67
  889. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -1
  890. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +45 -46
  891. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +1 -1
  892. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +20 -21
  893. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -1
  894. package/dist/node_modules/recharts/es6/cartesian/Line.js +79 -80
  895. package/dist/node_modules/recharts/es6/cartesian/Line.js.map +1 -1
  896. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +29 -30
  897. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -1
  898. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +23 -24
  899. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -1
  900. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +31 -32
  901. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -1
  902. package/dist/node_modules/recharts/es6/cartesian/XAxis.js +10 -11
  903. package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -1
  904. package/dist/node_modules/recharts/es6/cartesian/YAxis.js +10 -11
  905. package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -1
  906. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +5 -6
  907. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -1
  908. package/dist/node_modules/recharts/es6/cartesian/getTicks.js +7 -8
  909. package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -1
  910. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +2 -5
  911. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -1
  912. package/dist/node_modules/recharts/es6/chart/BarChart.js +7 -8
  913. package/dist/node_modules/recharts/es6/chart/BarChart.js.map +1 -1
  914. package/dist/node_modules/recharts/es6/chart/LineChart.js +5 -6
  915. package/dist/node_modules/recharts/es6/chart/LineChart.js.map +1 -1
  916. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +534 -533
  917. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -1
  918. package/dist/node_modules/recharts/es6/component/Cell.js +1 -2
  919. package/dist/node_modules/recharts/es6/component/Cell.js.map +1 -1
  920. package/dist/node_modules/recharts/es6/component/Cursor.js +17 -18
  921. package/dist/node_modules/recharts/es6/component/Cursor.js.map +1 -1
  922. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +35 -36
  923. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -1
  924. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +16 -17
  925. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -1
  926. package/dist/node_modules/recharts/es6/component/Label.js +85 -86
  927. package/dist/node_modules/recharts/es6/component/Label.js.map +1 -1
  928. package/dist/node_modules/recharts/es6/component/LabelList.js +20 -21
  929. package/dist/node_modules/recharts/es6/component/LabelList.js.map +1 -1
  930. package/dist/node_modules/recharts/es6/component/Legend.js +26 -23
  931. package/dist/node_modules/recharts/es6/component/Legend.js.map +1 -1
  932. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +16 -17
  933. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -1
  934. package/dist/node_modules/recharts/es6/component/Text.js +18 -21
  935. package/dist/node_modules/recharts/es6/component/Text.js.map +1 -1
  936. package/dist/node_modules/recharts/es6/component/Tooltip.js +16 -17
  937. package/dist/node_modules/recharts/es6/component/Tooltip.js.map +1 -1
  938. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +3 -4
  939. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -1
  940. package/dist/node_modules/recharts/es6/container/Layer.js +5 -6
  941. package/dist/node_modules/recharts/es6/container/Layer.js.map +1 -1
  942. package/dist/node_modules/recharts/es6/container/Surface.js +5 -6
  943. package/dist/node_modules/recharts/es6/container/Surface.js.map +1 -1
  944. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +21 -21
  945. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -1
  946. package/dist/node_modules/recharts/es6/shape/Cross.js +4 -5
  947. package/dist/node_modules/recharts/es6/shape/Cross.js.map +1 -1
  948. package/dist/node_modules/recharts/es6/shape/Curve.js +38 -49
  949. package/dist/node_modules/recharts/es6/shape/Curve.js.map +1 -1
  950. package/dist/node_modules/recharts/es6/shape/Dot.js +3 -4
  951. package/dist/node_modules/recharts/es6/shape/Dot.js.map +1 -1
  952. package/dist/node_modules/recharts/es6/shape/Rectangle.js +8 -9
  953. package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +1 -1
  954. package/dist/node_modules/recharts/es6/shape/Sector.js +33 -34
  955. package/dist/node_modules/recharts/es6/shape/Sector.js.map +1 -1
  956. package/dist/node_modules/recharts/es6/shape/Symbols.js +26 -34
  957. package/dist/node_modules/recharts/es6/shape/Symbols.js.map +1 -1
  958. package/dist/node_modules/recharts/es6/shape/Trapezoid.js +8 -9
  959. package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -1
  960. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +24 -25
  961. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -1
  962. package/dist/node_modules/recharts/es6/util/BarUtils.js +10 -11
  963. package/dist/node_modules/recharts/es6/util/BarUtils.js.map +1 -1
  964. package/dist/node_modules/recharts/es6/util/CartesianUtils.js +33 -34
  965. package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -1
  966. package/dist/node_modules/recharts/es6/util/ChartUtils.js +231 -236
  967. package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +1 -1
  968. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +1 -2
  969. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -1
  970. package/dist/node_modules/recharts/es6/util/DOMUtils.js +1 -2
  971. package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +1 -1
  972. package/dist/node_modules/recharts/es6/util/DataUtils.js +7 -8
  973. package/dist/node_modules/recharts/es6/util/DataUtils.js.map +1 -1
  974. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +20 -21
  975. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -1
  976. package/dist/node_modules/recharts/es6/util/Events.js +0 -1
  977. package/dist/node_modules/recharts/es6/util/Events.js.map +1 -1
  978. package/dist/node_modules/recharts/es6/util/Global.js +0 -1
  979. package/dist/node_modules/recharts/es6/util/Global.js.map +1 -1
  980. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +1 -2
  981. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -1
  982. package/dist/node_modules/recharts/es6/util/LogUtils.js +9 -8
  983. package/dist/node_modules/recharts/es6/util/LogUtils.js.map +1 -1
  984. package/dist/node_modules/recharts/es6/util/PolarUtils.js +4 -5
  985. package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +1 -1
  986. package/dist/node_modules/recharts/es6/util/ReactUtils.js +11 -12
  987. package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +1 -1
  988. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +5 -6
  989. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -1
  990. package/dist/node_modules/recharts/es6/util/ShallowEqual.js +1 -2
  991. package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -1
  992. package/dist/node_modules/recharts/es6/util/TickUtils.js +4 -4
  993. package/dist/node_modules/recharts/es6/util/TickUtils.js.map +1 -1
  994. package/dist/node_modules/recharts/es6/util/calculateViewBox.js +0 -1
  995. package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -1
  996. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +7 -6
  997. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -1
  998. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +1 -2
  999. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -1
  1000. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +1 -2
  1001. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -1
  1002. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +1 -2
  1003. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -1
  1004. package/dist/node_modules/recharts/es6/util/getLegendProps.js +9 -10
  1005. package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +1 -1
  1006. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +1 -2
  1007. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -1
  1008. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +4 -5
  1009. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -1
  1010. package/dist/node_modules/recharts/es6/util/tooltip/translate.js +3 -4
  1011. package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -1
  1012. package/dist/node_modules/recharts/es6/util/types.js +2 -3
  1013. package/dist/node_modules/recharts/es6/util/types.js.map +1 -1
  1014. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +2 -3
  1015. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -1
  1016. package/dist/node_modules/recharts-scale/es6/index.js +1 -1
  1017. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +1 -2
  1018. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -1
  1019. package/dist/node_modules/recharts-scale/es6/util/utils.js +3 -4
  1020. package/dist/node_modules/recharts-scale/es6/util/utils.js.map +1 -1
  1021. package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js +2 -3
  1022. package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +1 -1
  1023. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js +41 -42
  1024. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +1 -1
  1025. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js +14 -15
  1026. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +1 -1
  1027. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js +21 -18
  1028. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +1 -1
  1029. package/dist/node_modules/rxjs/dist/esm5/internal/config.js +1 -2
  1030. package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +1 -1
  1031. package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js +1 -2
  1032. package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +1 -1
  1033. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +2 -3
  1034. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +1 -1
  1035. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +1 -2
  1036. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +1 -1
  1037. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +1 -2
  1038. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +1 -1
  1039. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +1 -2
  1040. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +1 -1
  1041. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +1 -2
  1042. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +1 -1
  1043. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +1 -2
  1044. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +1 -1
  1045. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +1 -2
  1046. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +1 -1
  1047. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +1 -2
  1048. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +1 -1
  1049. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +1 -2
  1050. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +1 -1
  1051. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js +1 -2
  1052. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +1 -1
  1053. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +1 -2
  1054. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +1 -1
  1055. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +229 -167
  1056. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  1057. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +2 -3
  1058. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -1
  1059. package/dist/node_modules/{rxjs/node_modules/tslib → tslib}/tslib.es6.js +1 -2
  1060. package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
  1061. package/dist/node_modules/victory-vendor/es/d3-scale.js +28 -45
  1062. package/dist/node_modules/victory-vendor/es/d3-scale.js.map +1 -1
  1063. package/dist/test/happydom.d.ts +1 -0
  1064. package/dist/translations/en.d.ts +91 -1
  1065. package/dist/translations/en.js +92 -2
  1066. package/dist/translations/en.js.map +1 -1
  1067. package/dist/utils/nativeBridge.d.ts +0 -1
  1068. package/dist/utils/nativeBridge.js +1 -2
  1069. package/package.json +76 -60
  1070. package/dist/__tests__/setup.d.ts +0 -2
  1071. package/dist/__tests__/setup.d.ts.map +0 -1
  1072. package/dist/__tests__/utils/renderWithProviders.d.ts.map +0 -1
  1073. package/dist/dev/main.d.ts.map +0 -1
  1074. package/dist/devportal/AdminDevportalRoot.d.ts.map +0 -1
  1075. package/dist/devportal/AdminDevportalRoutes.d.ts.map +0 -1
  1076. package/dist/devportal/DevportalRoot.d.ts.map +0 -1
  1077. package/dist/devportal/DevportalRoutes.d.ts.map +0 -1
  1078. package/dist/devportal/components/AppCard.d.ts.map +0 -1
  1079. package/dist/devportal/components/ConfirmDialog.d.ts.map +0 -1
  1080. package/dist/devportal/components/DataTable.d.ts.map +0 -1
  1081. package/dist/devportal/components/EmptyState.d.ts.map +0 -1
  1082. package/dist/devportal/components/FeatureFlaggedRoute.d.ts.map +0 -1
  1083. package/dist/devportal/components/FormField.d.ts.map +0 -1
  1084. package/dist/devportal/components/GrantDelegationModal.d.ts.map +0 -1
  1085. package/dist/devportal/components/ImageUploadField.d.ts.map +0 -1
  1086. package/dist/devportal/components/LoadingState.d.ts.map +0 -1
  1087. package/dist/devportal/components/ManifestViewer.d.ts.map +0 -1
  1088. package/dist/devportal/components/MarkdownEditor.d.ts.map +0 -1
  1089. package/dist/devportal/components/MultiSelectCombobox.d.ts.map +0 -1
  1090. package/dist/devportal/components/NodeSmokePanel.d.ts.map +0 -1
  1091. package/dist/devportal/components/OnboardingChecklist.d.ts.map +0 -1
  1092. package/dist/devportal/components/PackageValidationPanel.d.ts.map +0 -1
  1093. package/dist/devportal/components/PageLayout.d.ts.map +0 -1
  1094. package/dist/devportal/components/PermissionGuard.d.ts.map +0 -1
  1095. package/dist/devportal/components/RegisterPickupLocationModal.d.ts.map +0 -1
  1096. package/dist/devportal/components/ReportOrderIssueModal.d.ts.map +0 -1
  1097. package/dist/devportal/components/SecretDisplay.d.ts.map +0 -1
  1098. package/dist/devportal/components/SectionNav.d.ts.map +0 -1
  1099. package/dist/devportal/components/SelectionCheckbox.d.ts.map +0 -1
  1100. package/dist/devportal/components/StatCard.d.ts.map +0 -1
  1101. package/dist/devportal/components/StatusBadge.d.ts.map +0 -1
  1102. package/dist/devportal/components/TelemetryErrorBoundary.d.ts.map +0 -1
  1103. package/dist/devportal/components/index.d.ts.map +0 -1
  1104. package/dist/devportal/constants/appCategories.d.ts.map +0 -1
  1105. package/dist/devportal/constants/developerLinks.d.ts.map +0 -1
  1106. package/dist/devportal/constants/permissions.d.ts.map +0 -1
  1107. package/dist/devportal/events/index.d.ts.map +0 -1
  1108. package/dist/devportal/hooks/DevPortalProvider.d.ts.map +0 -1
  1109. package/dist/devportal/hooks/index.d.ts.map +0 -1
  1110. package/dist/devportal/hooks/useCarrierPickupLocations.d.ts.map +0 -1
  1111. package/dist/devportal/hooks/useGraphQL.d.ts.map +0 -1
  1112. package/dist/devportal/hooks/useIsSellerSection.d.ts.map +0 -1
  1113. package/dist/devportal/hooks/useOrganizationPickupAddresses.d.ts.map +0 -1
  1114. package/dist/devportal/hooks/usePackageUpload.d.ts.map +0 -1
  1115. package/dist/devportal/hooks/usePermission.d.ts.map +0 -1
  1116. package/dist/devportal/hooks/useProducts.d.ts.map +0 -1
  1117. package/dist/devportal/hooks/useSellerOrganization.d.ts.map +0 -1
  1118. package/dist/devportal/index.d.ts.map +0 -1
  1119. package/dist/devportal/pages/AdminOrganizationVerificationPage.d.ts.map +0 -1
  1120. package/dist/devportal/pages/AdminReviewPage.d.ts.map +0 -1
  1121. package/dist/devportal/pages/AnalyticsDashboardPage.d.ts.map +0 -1
  1122. package/dist/devportal/pages/ApiKeysPage.d.ts.map +0 -1
  1123. package/dist/devportal/pages/AppLogsPage.d.ts.map +0 -1
  1124. package/dist/devportal/pages/ApplicationDetailPage.d.ts.map +0 -1
  1125. package/dist/devportal/pages/ApplicationVersionsPage.d.ts.map +0 -1
  1126. package/dist/devportal/pages/ApplicationsPage.d.ts.map +0 -1
  1127. package/dist/devportal/pages/CreateApiKeyPage.d.ts.map +0 -1
  1128. package/dist/devportal/pages/CreateApplicationPage.d.ts.map +0 -1
  1129. package/dist/devportal/pages/CreateOAuthClientPage.d.ts.map +0 -1
  1130. package/dist/devportal/pages/CreateOrganizationPage.d.ts.map +0 -1
  1131. package/dist/devportal/pages/CreatePhysicalItemPage.d.ts.map +0 -1
  1132. package/dist/devportal/pages/CreateWebhookPage.d.ts.map +0 -1
  1133. package/dist/devportal/pages/DashboardPage.d.ts.map +0 -1
  1134. package/dist/devportal/pages/DelegationsPage.d.ts.map +0 -1
  1135. package/dist/devportal/pages/DocumentationPage.d.ts.map +0 -1
  1136. package/dist/devportal/pages/EditApplicationPage.d.ts.map +0 -1
  1137. package/dist/devportal/pages/EditPhysicalItemPage.d.ts.map +0 -1
  1138. package/dist/devportal/pages/InvitationDecisionPage.d.ts.map +0 -1
  1139. package/dist/devportal/pages/ListingPreviewPage.d.ts.map +0 -1
  1140. package/dist/devportal/pages/NodeLifecyclePage.d.ts.map +0 -1
  1141. package/dist/devportal/pages/OAuthCallbackPage.d.ts.map +0 -1
  1142. package/dist/devportal/pages/OAuthClientDetailPage.d.ts.map +0 -1
  1143. package/dist/devportal/pages/OAuthClientsPage.d.ts.map +0 -1
  1144. package/dist/devportal/pages/OrganizationDetailPage.d.ts.map +0 -1
  1145. package/dist/devportal/pages/OrganizationMembersPage.d.ts.map +0 -1
  1146. package/dist/devportal/pages/OrganizationsPage.d.ts.map +0 -1
  1147. package/dist/devportal/pages/PublishPage.d.ts.map +0 -1
  1148. package/dist/devportal/pages/PublisherProfilePage.d.ts.map +0 -1
  1149. package/dist/devportal/pages/ResourcesPage.d.ts.map +0 -1
  1150. package/dist/devportal/pages/RevenueDashboardPage.d.ts.map +0 -1
  1151. package/dist/devportal/pages/RevenueRedirectPage.d.ts.map +0 -1
  1152. package/dist/devportal/pages/SellerDashboardPage.d.ts.map +0 -1
  1153. package/dist/devportal/pages/SellerItemsPage.d.ts.map +0 -1
  1154. package/dist/devportal/pages/SellerOrdersPage.d.ts.map +0 -1
  1155. package/dist/devportal/pages/SettingsPage.d.ts.map +0 -1
  1156. package/dist/devportal/pages/SetupPage.d.ts.map +0 -1
  1157. package/dist/devportal/pages/StoreSubmissionPage.d.ts.map +0 -1
  1158. package/dist/devportal/pages/WebhookDetailPage.d.ts.map +0 -1
  1159. package/dist/devportal/pages/WebhooksPage.d.ts.map +0 -1
  1160. package/dist/devportal/providers/DevportalProvider.d.ts.map +0 -1
  1161. package/dist/devportal/store/devportalStore.d.ts.map +0 -1
  1162. package/dist/devportal/types/index.d.ts.map +0 -1
  1163. package/dist/devportal/utils/cn.d.ts.map +0 -1
  1164. package/dist/devportal/utils/constants.d.ts.map +0 -1
  1165. package/dist/devportal/utils/currency.d.ts.map +0 -1
  1166. package/dist/devportal/utils/developerOnboarding.d.ts.map +0 -1
  1167. package/dist/devportal/utils/graphqlEndpoint.d.ts.map +0 -1
  1168. package/dist/devportal/utils/i18n.d.ts.map +0 -1
  1169. package/dist/devportal/utils/nodeLifecycle.d.ts.map +0 -1
  1170. package/dist/devportal/utils/recaptcha.d.ts.map +0 -1
  1171. package/dist/devportal/utils/submitForReview.d.ts.map +0 -1
  1172. package/dist/devportal/utils/uploadErrors.d.ts.map +0 -1
  1173. package/dist/generated/global-operations.d.ts.map +0 -1
  1174. package/dist/generated/global-types.d.ts.map +0 -1
  1175. package/dist/generated/wspace-operations.d.ts.map +0 -1
  1176. package/dist/generated/wspace-types.d.ts.map +0 -1
  1177. package/dist/index.d.ts.map +0 -1
  1178. package/dist/node_modules/d3-array/src/ascending.js +0 -8
  1179. package/dist/node_modules/d3-array/src/ascending.js.map +0 -1
  1180. package/dist/node_modules/d3-array/src/bisect.js +0 -10
  1181. package/dist/node_modules/d3-array/src/bisect.js.map +0 -1
  1182. package/dist/node_modules/d3-array/src/bisector.js +0 -43
  1183. package/dist/node_modules/d3-array/src/bisector.js.map +0 -1
  1184. package/dist/node_modules/d3-array/src/descending.js +0 -8
  1185. package/dist/node_modules/d3-array/src/descending.js.map +0 -1
  1186. package/dist/node_modules/d3-array/src/max.js +0 -14
  1187. package/dist/node_modules/d3-array/src/max.js.map +0 -1
  1188. package/dist/node_modules/d3-array/src/min.js +0 -14
  1189. package/dist/node_modules/d3-array/src/min.js.map +0 -1
  1190. package/dist/node_modules/d3-array/src/number.js +0 -15
  1191. package/dist/node_modules/d3-array/src/number.js.map +0 -1
  1192. package/dist/node_modules/d3-array/src/quantile.js +0 -25
  1193. package/dist/node_modules/d3-array/src/quantile.js.map +0 -1
  1194. package/dist/node_modules/d3-array/src/quickselect.js +0 -26
  1195. package/dist/node_modules/d3-array/src/quickselect.js.map +0 -1
  1196. package/dist/node_modules/d3-array/src/range.js +0 -10
  1197. package/dist/node_modules/d3-array/src/range.js.map +0 -1
  1198. package/dist/node_modules/d3-array/src/sort.js +0 -17
  1199. package/dist/node_modules/d3-array/src/sort.js.map +0 -1
  1200. package/dist/node_modules/d3-array/src/ticks.js +0 -34
  1201. package/dist/node_modules/d3-array/src/ticks.js.map +0 -1
  1202. package/dist/node_modules/d3-color/src/color.js +0 -291
  1203. package/dist/node_modules/d3-color/src/color.js.map +0 -1
  1204. package/dist/node_modules/d3-color/src/define.js +0 -13
  1205. package/dist/node_modules/d3-color/src/define.js.map +0 -1
  1206. package/dist/node_modules/d3-format/src/defaultLocale.js +0 -15
  1207. package/dist/node_modules/d3-format/src/defaultLocale.js.map +0 -1
  1208. package/dist/node_modules/d3-format/src/exponent.js +0 -9
  1209. package/dist/node_modules/d3-format/src/exponent.js.map +0 -1
  1210. package/dist/node_modules/d3-format/src/formatDecimal.js +0 -13
  1211. package/dist/node_modules/d3-format/src/formatDecimal.js.map +0 -1
  1212. package/dist/node_modules/d3-format/src/formatGroup.js +0 -11
  1213. package/dist/node_modules/d3-format/src/formatGroup.js.map +0 -1
  1214. package/dist/node_modules/d3-format/src/formatNumerals.js +0 -12
  1215. package/dist/node_modules/d3-format/src/formatNumerals.js.map +0 -1
  1216. package/dist/node_modules/d3-format/src/formatPrefixAuto.js +0 -13
  1217. package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
  1218. package/dist/node_modules/d3-format/src/formatRounded.js +0 -12
  1219. package/dist/node_modules/d3-format/src/formatRounded.js.map +0 -1
  1220. package/dist/node_modules/d3-format/src/formatSpecifier.js +0 -29
  1221. package/dist/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
  1222. package/dist/node_modules/d3-format/src/formatTrim.js +0 -20
  1223. package/dist/node_modules/d3-format/src/formatTrim.js.map +0 -1
  1224. package/dist/node_modules/d3-format/src/formatTypes.js +0 -23
  1225. package/dist/node_modules/d3-format/src/formatTypes.js.map +0 -1
  1226. package/dist/node_modules/d3-format/src/identity.js +0 -8
  1227. package/dist/node_modules/d3-format/src/identity.js.map +0 -1
  1228. package/dist/node_modules/d3-format/src/locale.js +0 -86
  1229. package/dist/node_modules/d3-format/src/locale.js.map +0 -1
  1230. package/dist/node_modules/d3-format/src/precisionFixed.js +0 -9
  1231. package/dist/node_modules/d3-format/src/precisionFixed.js.map +0 -1
  1232. package/dist/node_modules/d3-format/src/precisionPrefix.js +0 -9
  1233. package/dist/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
  1234. package/dist/node_modules/d3-format/src/precisionRound.js +0 -9
  1235. package/dist/node_modules/d3-format/src/precisionRound.js.map +0 -1
  1236. package/dist/node_modules/d3-interpolate/src/array.js +0 -15
  1237. package/dist/node_modules/d3-interpolate/src/array.js.map +0 -1
  1238. package/dist/node_modules/d3-interpolate/src/basis.js +0 -16
  1239. package/dist/node_modules/d3-interpolate/src/basis.js.map +0 -1
  1240. package/dist/node_modules/d3-interpolate/src/basisClosed.js +0 -13
  1241. package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +0 -1
  1242. package/dist/node_modules/d3-interpolate/src/color.js +0 -25
  1243. package/dist/node_modules/d3-interpolate/src/color.js.map +0 -1
  1244. package/dist/node_modules/d3-interpolate/src/constant.js +0 -6
  1245. package/dist/node_modules/d3-interpolate/src/constant.js.map +0 -1
  1246. package/dist/node_modules/d3-interpolate/src/date.js +0 -11
  1247. package/dist/node_modules/d3-interpolate/src/date.js.map +0 -1
  1248. package/dist/node_modules/d3-interpolate/src/number.js +0 -10
  1249. package/dist/node_modules/d3-interpolate/src/number.js.map +0 -1
  1250. package/dist/node_modules/d3-interpolate/src/numberArray.js +0 -16
  1251. package/dist/node_modules/d3-interpolate/src/numberArray.js.map +0 -1
  1252. package/dist/node_modules/d3-interpolate/src/object.js +0 -14
  1253. package/dist/node_modules/d3-interpolate/src/object.js.map +0 -1
  1254. package/dist/node_modules/d3-interpolate/src/piecewise.js +0 -14
  1255. package/dist/node_modules/d3-interpolate/src/piecewise.js.map +0 -1
  1256. package/dist/node_modules/d3-interpolate/src/rgb.js +0 -19
  1257. package/dist/node_modules/d3-interpolate/src/rgb.js.map +0 -1
  1258. package/dist/node_modules/d3-interpolate/src/round.js +0 -10
  1259. package/dist/node_modules/d3-interpolate/src/round.js.map +0 -1
  1260. package/dist/node_modules/d3-interpolate/src/string.js +0 -28
  1261. package/dist/node_modules/d3-interpolate/src/string.js.map +0 -1
  1262. package/dist/node_modules/d3-interpolate/src/value.js +0 -18
  1263. package/dist/node_modules/d3-interpolate/src/value.js.map +0 -1
  1264. package/dist/node_modules/d3-path/src/path.js.map +0 -1
  1265. package/dist/node_modules/d3-scale/src/band.js +0 -52
  1266. package/dist/node_modules/d3-scale/src/band.js.map +0 -1
  1267. package/dist/node_modules/d3-scale/src/constant.js +0 -10
  1268. package/dist/node_modules/d3-scale/src/constant.js.map +0 -1
  1269. package/dist/node_modules/d3-scale/src/continuous.js +0 -73
  1270. package/dist/node_modules/d3-scale/src/continuous.js.map +0 -1
  1271. package/dist/node_modules/d3-scale/src/diverging.js +0 -82
  1272. package/dist/node_modules/d3-scale/src/diverging.js.map +0 -1
  1273. package/dist/node_modules/d3-scale/src/identity.js +0 -20
  1274. package/dist/node_modules/d3-scale/src/identity.js.map +0 -1
  1275. package/dist/node_modules/d3-scale/src/init.js +0 -29
  1276. package/dist/node_modules/d3-scale/src/init.js.map +0 -1
  1277. package/dist/node_modules/d3-scale/src/linear.js +0 -36
  1278. package/dist/node_modules/d3-scale/src/linear.js.map +0 -1
  1279. package/dist/node_modules/d3-scale/src/log.js +0 -77
  1280. package/dist/node_modules/d3-scale/src/log.js.map +0 -1
  1281. package/dist/node_modules/d3-scale/src/nice.js +0 -10
  1282. package/dist/node_modules/d3-scale/src/nice.js.map +0 -1
  1283. package/dist/node_modules/d3-scale/src/number.js +0 -8
  1284. package/dist/node_modules/d3-scale/src/number.js.map +0 -1
  1285. package/dist/node_modules/d3-scale/src/ordinal.js +0 -31
  1286. package/dist/node_modules/d3-scale/src/ordinal.js.map +0 -1
  1287. package/dist/node_modules/d3-scale/src/pow.js +0 -37
  1288. package/dist/node_modules/d3-scale/src/pow.js.map +0 -1
  1289. package/dist/node_modules/d3-scale/src/quantile.js +0 -37
  1290. package/dist/node_modules/d3-scale/src/quantile.js.map +0 -1
  1291. package/dist/node_modules/d3-scale/src/quantize.js +0 -33
  1292. package/dist/node_modules/d3-scale/src/quantize.js.map +0 -1
  1293. package/dist/node_modules/d3-scale/src/radial.js +0 -39
  1294. package/dist/node_modules/d3-scale/src/radial.js.map +0 -1
  1295. package/dist/node_modules/d3-scale/src/sequential.js +0 -67
  1296. package/dist/node_modules/d3-scale/src/sequential.js.map +0 -1
  1297. package/dist/node_modules/d3-scale/src/sequentialQuantile.js +0 -30
  1298. package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +0 -1
  1299. package/dist/node_modules/d3-scale/src/symlog.js +0 -30
  1300. package/dist/node_modules/d3-scale/src/symlog.js.map +0 -1
  1301. package/dist/node_modules/d3-scale/src/threshold.js +0 -25
  1302. package/dist/node_modules/d3-scale/src/threshold.js.map +0 -1
  1303. package/dist/node_modules/d3-scale/src/tickFormat.js +0 -31
  1304. package/dist/node_modules/d3-scale/src/tickFormat.js.map +0 -1
  1305. package/dist/node_modules/d3-scale/src/time.js +0 -47
  1306. package/dist/node_modules/d3-scale/src/time.js.map +0 -1
  1307. package/dist/node_modules/d3-scale/src/utcTime.js +0 -19
  1308. package/dist/node_modules/d3-scale/src/utcTime.js.map +0 -1
  1309. package/dist/node_modules/d3-shape/src/area.js +0 -55
  1310. package/dist/node_modules/d3-shape/src/area.js.map +0 -1
  1311. package/dist/node_modules/d3-shape/src/array.js +0 -8
  1312. package/dist/node_modules/d3-shape/src/array.js.map +0 -1
  1313. package/dist/node_modules/d3-shape/src/constant.js +0 -10
  1314. package/dist/node_modules/d3-shape/src/constant.js.map +0 -1
  1315. package/dist/node_modules/d3-shape/src/curve/basis.js +0 -49
  1316. package/dist/node_modules/d3-shape/src/curve/basis.js.map +0 -1
  1317. package/dist/node_modules/d3-shape/src/curve/basisClosed.js +0 -50
  1318. package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +0 -1
  1319. package/dist/node_modules/d3-shape/src/curve/basisOpen.js +0 -46
  1320. package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +0 -1
  1321. package/dist/node_modules/d3-shape/src/curve/bump.js +0 -40
  1322. package/dist/node_modules/d3-shape/src/curve/bump.js.map +0 -1
  1323. package/dist/node_modules/d3-shape/src/curve/linear.js +0 -36
  1324. package/dist/node_modules/d3-shape/src/curve/linear.js.map +0 -1
  1325. package/dist/node_modules/d3-shape/src/curve/linearClosed.js +0 -25
  1326. package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +0 -1
  1327. package/dist/node_modules/d3-shape/src/curve/monotone.js +0 -94
  1328. package/dist/node_modules/d3-shape/src/curve/monotone.js.map +0 -1
  1329. package/dist/node_modules/d3-shape/src/curve/natural.js +0 -39
  1330. package/dist/node_modules/d3-shape/src/curve/natural.js.map +0 -1
  1331. package/dist/node_modules/d3-shape/src/curve/step.js +0 -47
  1332. package/dist/node_modules/d3-shape/src/curve/step.js.map +0 -1
  1333. package/dist/node_modules/d3-shape/src/line.js +0 -30
  1334. package/dist/node_modules/d3-shape/src/line.js.map +0 -1
  1335. package/dist/node_modules/d3-shape/src/math.js +0 -8
  1336. package/dist/node_modules/d3-shape/src/math.js.map +0 -1
  1337. package/dist/node_modules/d3-shape/src/noop.js +0 -6
  1338. package/dist/node_modules/d3-shape/src/noop.js.map +0 -1
  1339. package/dist/node_modules/d3-shape/src/offset/expand.js +0 -15
  1340. package/dist/node_modules/d3-shape/src/offset/expand.js.map +0 -1
  1341. package/dist/node_modules/d3-shape/src/offset/none.js +0 -8
  1342. package/dist/node_modules/d3-shape/src/offset/none.js.map +0 -1
  1343. package/dist/node_modules/d3-shape/src/offset/silhouette.js +0 -15
  1344. package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +0 -1
  1345. package/dist/node_modules/d3-shape/src/offset/wiggle.js +0 -21
  1346. package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +0 -1
  1347. package/dist/node_modules/d3-shape/src/order/none.js +0 -9
  1348. package/dist/node_modules/d3-shape/src/order/none.js.map +0 -1
  1349. package/dist/node_modules/d3-shape/src/path.js +0 -19
  1350. package/dist/node_modules/d3-shape/src/path.js.map +0 -1
  1351. package/dist/node_modules/d3-shape/src/point.js +0 -11
  1352. package/dist/node_modules/d3-shape/src/point.js.map +0 -1
  1353. package/dist/node_modules/d3-shape/src/stack.js +0 -34
  1354. package/dist/node_modules/d3-shape/src/stack.js.map +0 -1
  1355. package/dist/node_modules/d3-shape/src/symbol/circle.js +0 -10
  1356. package/dist/node_modules/d3-shape/src/symbol/circle.js.map +0 -1
  1357. package/dist/node_modules/d3-shape/src/symbol/cross.js +0 -10
  1358. package/dist/node_modules/d3-shape/src/symbol/cross.js.map +0 -1
  1359. package/dist/node_modules/d3-shape/src/symbol/diamond.js +0 -10
  1360. package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +0 -1
  1361. package/dist/node_modules/d3-shape/src/symbol/square.js +0 -10
  1362. package/dist/node_modules/d3-shape/src/symbol/square.js.map +0 -1
  1363. package/dist/node_modules/d3-shape/src/symbol/star.js +0 -15
  1364. package/dist/node_modules/d3-shape/src/symbol/star.js.map +0 -1
  1365. package/dist/node_modules/d3-shape/src/symbol/triangle.js +0 -10
  1366. package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +0 -1
  1367. package/dist/node_modules/d3-shape/src/symbol/wye.js +0 -10
  1368. package/dist/node_modules/d3-shape/src/symbol/wye.js.map +0 -1
  1369. package/dist/node_modules/d3-shape/src/symbol.js +0 -23
  1370. package/dist/node_modules/d3-shape/src/symbol.js.map +0 -1
  1371. package/dist/node_modules/d3-time/src/day.js +0 -21
  1372. package/dist/node_modules/d3-time/src/day.js.map +0 -1
  1373. package/dist/node_modules/d3-time/src/duration.js +0 -6
  1374. package/dist/node_modules/d3-time/src/duration.js.map +0 -1
  1375. package/dist/node_modules/d3-time/src/hour.js +0 -19
  1376. package/dist/node_modules/d3-time/src/hour.js.map +0 -1
  1377. package/dist/node_modules/d3-time/src/interval.js +0 -28
  1378. package/dist/node_modules/d3-time/src/interval.js.map +0 -1
  1379. package/dist/node_modules/d3-time/src/millisecond.js +0 -14
  1380. package/dist/node_modules/d3-time/src/millisecond.js.map +0 -1
  1381. package/dist/node_modules/d3-time/src/minute.js +0 -19
  1382. package/dist/node_modules/d3-time/src/minute.js.map +0 -1
  1383. package/dist/node_modules/d3-time/src/month.js +0 -18
  1384. package/dist/node_modules/d3-time/src/month.js.map +0 -1
  1385. package/dist/node_modules/d3-time/src/second.js +0 -13
  1386. package/dist/node_modules/d3-time/src/second.js.map +0 -1
  1387. package/dist/node_modules/d3-time/src/ticks.js +0 -125
  1388. package/dist/node_modules/d3-time/src/ticks.js.map +0 -1
  1389. package/dist/node_modules/d3-time/src/week.js +0 -25
  1390. package/dist/node_modules/d3-time/src/week.js.map +0 -1
  1391. package/dist/node_modules/d3-time/src/year.js +0 -26
  1392. package/dist/node_modules/d3-time/src/year.js.map +0 -1
  1393. package/dist/node_modules/d3-time-format/src/defaultLocale.js +0 -62
  1394. package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +0 -1
  1395. package/dist/node_modules/d3-time-format/src/locale.js.map +0 -1
  1396. package/dist/node_modules/internmap/src/index.js +0 -40
  1397. package/dist/node_modules/internmap/src/index.js.map +0 -1
  1398. package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js.map +0 -1
  1399. package/dist/translations/en.d.ts.map +0 -1
  1400. package/dist/utils/nativeBridge.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WebhooksPage.js","names":[],"sources":["../../../src/devportal/pages/WebhooksPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useState, useEffect } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Plus,\n Search,\n Webhook,\n CheckCircle,\n XCircle,\n PauseCircle,\n AlertTriangle,\n Loader2,\n AlertCircle,\n AppWindow,\n} from \"lucide-react\";\nimport { useParams } from \"react-router\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { DataTable } from \"../components/DataTable\";\nimport { StatusBadge } from \"../components/StatusBadge\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { AppListItem } from \"../components/AppCard\";\nimport { PermissionGuard } from \"../components\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\nimport type {\n Application,\n Webhook as WebhookType,\n WebhookStatus,\n} from \"../types\";\nimport { cn } from \"../utils/cn\";\nimport {\n useGetApplicationsQuery,\n useGetApplicationQuery,\n useGetWebhooksQuery,\n getErrorMessage,\n useDevportalPermission,\n type ApplicationFieldsFragment,\n type DevportalWebhookFieldsFragment,\n} from \"../hooks\";\n\n/**\n * Map GraphQL webhook to local Webhook type\n */\nfunction mapWebhook(webhook: DevportalWebhookFieldsFragment): WebhookType {\n return {\n id: webhook.id,\n applicationId: webhook.applicationId,\n name: webhook.name,\n description: webhook.description ?? undefined,\n url: webhook.url,\n secret: undefined,\n events: webhook.events ?? [],\n isActive: webhook.isActive,\n status: webhook.status as WebhookStatus,\n maxRetries: webhook.maxRetries ?? 3,\n retryDelay: webhook.retryDelay ?? 60,\n retryEnabled: webhook.retryEnabled ?? true,\n lastTriggeredAt: webhook.lastTriggeredAt ?? undefined,\n lastSuccessAt: webhook.lastSuccessAt ?? undefined,\n lastFailureAt: webhook.lastFailureAt ?? undefined,\n lastFailureReason: webhook.lastFailureReason ?? undefined,\n failureCount: webhook.failureCount ?? 0,\n successCount: webhook.successCount ?? 0,\n createdAt: webhook.createdAt,\n updatedAt: webhook.updatedAt,\n };\n}\n\n/**\n * Webhooks listing page\n *\n * Displays webhooks for a specific application.\n * Uses GraphQL to fetch real data from the DevPortal backend.\n */\nexport const WebhooksPage: FC = () => {\n const { appId } = useParams<{ appId: string }>();\n const { navigate, basePath, activeOrgId } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const createPerm = useDevportalPermission(\n DEVPORTAL_PERMISSIONS.WEBHOOK_CREATE,\n );\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [statusFilter, setStatusFilter] = useState<WebhookStatus | \"\">(\"\");\n\n // Fetch app name for breadcrumb when viewing webhooks for a specific app\n const { data: singleAppData } = useGetApplicationQuery({\n variables: { id: appId ?? \"\" },\n skip: !appId,\n fetchPolicy: \"cache-first\",\n });\n\n useEffect(() => {\n const name = singleAppData?.application?.name;\n if (!appId || !name) return;\n const reg = (\n window as unknown as {\n __breadcrumbRegistry?: {\n register: (id: string, name: string) => void;\n unregister: (id: string) => void;\n };\n }\n ).__breadcrumbRegistry;\n reg?.register(appId, name);\n return () => reg?.unregister(appId);\n }, [appId, singleAppData?.application?.name]);\n\n const {\n data: appsData,\n loading: appsLoading,\n error: appsError,\n refetch: refetchApps,\n } = useGetApplicationsQuery({\n variables: { limit: 100 },\n skip: !!appId,\n fetchPolicy: \"cache-and-network\",\n });\n\n // Fetch webhooks from GraphQL API (only if we have an applicationId)\n const { data, loading, error, refetch } = useGetWebhooksQuery({\n variables: {\n applicationId: appId || \"\",\n },\n skip: !appId,\n fetchPolicy: \"cache-and-network\",\n });\n\n const webhooks = data?.webhooks?.map(mapWebhook) ?? [];\n const allApplications: Application[] =\n appsData?.applications?.edges?.map(\n (edge: { node: ApplicationFieldsFragment }) => edge.node as Application,\n ) ?? [];\n // Scope app picker to active org\n const applications = activeOrgId\n ? allApplications.filter((a) => a.developerOrganizationId === activeOrgId)\n : allApplications;\n\n const handleNavigate = (path: string) => {\n navigate?.(`${basePath}${path}`);\n };\n\n // Filter webhooks\n const filteredWebhooks = webhooks.filter((webhook: WebhookType) => {\n const matchesSearch =\n !searchQuery ||\n webhook.name.toLowerCase().includes(searchQuery.toLowerCase()) ||\n webhook.url.toLowerCase().includes(searchQuery.toLowerCase());\n const matchesStatus = !statusFilter || webhook.status === statusFilter;\n return matchesSearch && matchesStatus;\n });\n\n const getStatusIcon = (status: WebhookStatus) => {\n switch (status) {\n case \"ACTIVE\":\n return <CheckCircle size={16} className=\"text-status-success-text\" />;\n case \"PAUSED\":\n return <PauseCircle size={16} className=\"text-status-warning-text\" />;\n case \"FAILED\":\n return <XCircle size={16} className=\"text-status-error-text\" />;\n case \"DISABLED\":\n return <AlertTriangle size={16} className=\"text-text-tertiary\" />;\n default:\n return null;\n }\n };\n\n const calculateSuccessRate = (webhook: WebhookType): number => {\n const total = webhook.successCount + webhook.failureCount;\n if (total === 0) return 100;\n return Math.round((webhook.successCount / total) * 100);\n };\n\n // If no applicationId, show prompt to select an application\n if (!appId) {\n const filteredApplications = applications.filter((application) => {\n if (!searchQuery) return true;\n\n const normalizedQuery = searchQuery.toLowerCase();\n return (\n application.name.toLowerCase().includes(normalizedQuery) ||\n (application.slug ?? \"\").toLowerCase().includes(normalizedQuery)\n );\n });\n\n return (\n <PermissionGuard authOnly>\n <PageLayout\n title={tr(\"devportal.webhooks\", \"Webhooks\")}\n description={tr(\n \"devportal.manageWebhooksApps\",\n \"Manage webhooks for your applications\",\n )}\n purpose={tr(\n \"devportal.webhooksPickerPurpose\",\n \"Webhooks push real-time events (installs, payments, app updates) to a URL you host, so your backend can react without polling. Pick an application to view, add, or test the webhook endpoints it delivers to.\",\n )}\n >\n <div className=\"space-y-4\">\n <p className=\"text-sm text-text-secondary\">\n {tr(\n \"devportal.webhooksSelectAppHint\",\n \"Select an application below to view and manage its webhooks.\",\n )}\n </p>\n <div className=\"max-w-md\">\n <div className=\"relative\">\n <Search\n size={16}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <input\n type=\"text\"\n placeholder=\"Search applications...\"\n value={searchQuery}\n onChange={(event) => setSearchQuery(event.target.value)}\n className=\"w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </div>\n </div>\n\n {appsLoading ? (\n <div className=\"flex items-center justify-center py-12 text-text-secondary\">\n <Loader2 className=\"h-8 w-8 animate-spin\" />\n </div>\n ) : appsError ? (\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center\">\n <AlertCircle className=\"mx-auto h-8 w-8 text-status-error-text\" />\n <h3 className=\"mt-2 font-medium text-status-error-text\">\n Failed to load applications\n </h3>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {getErrorMessage(appsError)}\n </p>\n <button\n onClick={() => refetchApps()}\n className=\"mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n Try Again\n </button>\n </div>\n ) : filteredApplications.length > 0 ? (\n <div className=\"space-y-2\">\n {filteredApplications.map((application) => (\n <AppListItem\n key={application.id}\n app={application}\n onClick={() =>\n handleNavigate(`/apps/${application.id}/webhooks`)\n }\n />\n ))}\n </div>\n ) : (\n <EmptyState\n illustration={searchQuery ? \"empty-search\" : \"empty-data\"}\n icon={<AppWindow size={32} />}\n title=\"No applications available\"\n description={\n searchQuery\n ? \"No applications matched your search.\"\n : \"Create an application before configuring webhooks.\"\n }\n action={\n <button\n onClick={() => handleNavigate(\"/apps/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n Create Application\n </button>\n }\n />\n )}\n </div>\n </PageLayout>\n </PermissionGuard>\n );\n }\n\n // Loading state\n if (loading && !data) {\n return (\n <PageLayout\n title={tr(\"devportal.webhooks\", \"Webhooks\")}\n description={tr(\n \"devportal.manageWebhooksApp\",\n \"Manage webhooks for this application\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n <span className=\"ml-2 text-text-secondary\">\n {tr(\"devportal.loadingWebhooks\", \"Loading webhooks...\")}\n </span>\n </div>\n </PageLayout>\n );\n }\n\n // Error state\n if (error) {\n return (\n <PageLayout\n title={tr(\"devportal.webhooks\", \"Webhooks\")}\n description={tr(\n \"devportal.manageWebhooksApp\",\n \"Manage webhooks for this application\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center\">\n <AlertCircle className=\"mx-auto h-8 w-8 text-status-error-text\" />\n <h3 className=\"mt-2 font-medium text-status-error-text\">\n {tr(\"devportal.failedToLoadWebhooks\", \"Failed to load webhooks\")}\n </h3>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {getErrorMessage(error)}\n </p>\n <button\n onClick={() => refetch()}\n className=\"mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n {tr(\"devportal.tryAgain\", \"Try Again\")}\n </button>\n </div>\n </PageLayout>\n );\n }\n\n const columns = [\n {\n key: \"name\",\n header: \"Webhook\",\n render: (webhook: WebhookType) => (\n <div className=\"flex items-center gap-3\">\n <div\n className={cn(\n \"flex h-10 w-10 items-center justify-center rounded-lg\",\n webhook.status === \"ACTIVE\"\n ? \"bg-status-success-bg-subtle text-status-success-text\"\n : webhook.status === \"FAILED\"\n ? \"bg-status-error-bg-subtle text-status-error-text\"\n : webhook.status === \"PAUSED\"\n ? \"bg-status-warning-bg-subtle text-status-warning-text\"\n : \"bg-bg-sunken text-text-tertiary\",\n )}\n >\n <Webhook size={20} />\n </div>\n <div>\n <p className=\"font-medium\">{webhook.name}</p>\n <p className=\"text-xs text-text-secondary truncate max-w-xs\">\n {webhook.url}\n </p>\n </div>\n </div>\n ),\n },\n {\n key: \"events\",\n header: \"Events\",\n render: (webhook: WebhookType) => (\n <div className=\"flex flex-wrap gap-1\">\n {webhook.events.slice(0, 2).map((event) => (\n <span\n key={event}\n className=\"inline-flex rounded bg-bg-sunken px-1.5 py-0.5 text-xs\"\n >\n {event.split(\".\")[0]}\n </span>\n ))}\n {webhook.events.length > 2 && (\n <span className=\"text-xs text-text-secondary\">\n +{webhook.events.length - 2} more\n </span>\n )}\n </div>\n ),\n },\n {\n key: \"status\",\n header: \"Status\",\n render: (webhook: WebhookType) => (\n <div className=\"flex items-center gap-2\">\n {getStatusIcon(webhook.status)}\n <StatusBadge status={webhook.status} type=\"webhook\" />\n </div>\n ),\n },\n {\n key: \"successRate\",\n header: \"Success Rate\",\n render: (webhook: WebhookType) => {\n const rate = calculateSuccessRate(webhook);\n return (\n <div className=\"w-24\">\n <div className=\"flex items-center justify-between text-xs mb-1\">\n <span\n className={cn(\n rate >= 95\n ? \"text-status-success-text\"\n : rate >= 80\n ? \"text-status-warning-text\"\n : \"text-status-error-text\",\n )}\n >\n {rate}%\n </span>\n </div>\n <div className=\"h-1.5 rounded-full bg-bg-sunken\">\n <div\n className={cn(\n \"h-full rounded-full transition-all\",\n rate >= 95\n ? \"bg-status-success-bg-subtle\"\n : rate >= 80\n ? \"bg-status-warning-bg-subtle\"\n : \"bg-status-error-bg-subtle\",\n )}\n style={{ width: `${rate}%` }}\n />\n </div>\n </div>\n );\n },\n },\n {\n key: \"deliveries\",\n header: \"Deliveries\",\n render: (webhook: WebhookType) => (\n <div className=\"text-sm\">\n <span className=\"text-status-success-text\">\n {webhook.successCount.toLocaleString()}\n </span>\n <span className=\"text-text-secondary\"> / </span>\n <span className=\"text-status-error-text\">\n {webhook.failureCount.toLocaleString()}\n </span>\n </div>\n ),\n },\n {\n key: \"lastTriggered\",\n header: \"Last Triggered\",\n render: (webhook: WebhookType) => (\n <span className=\"text-sm text-text-secondary\">\n {webhook.lastTriggeredAt\n ? formatRelativeTime(webhook.lastTriggeredAt)\n : \"Never\"}\n </span>\n ),\n },\n ];\n\n // Stats calculation\n const stats = {\n total: webhooks.length,\n active: webhooks.filter((w: WebhookType) => w.status === \"ACTIVE\").length,\n failed: webhooks.filter((w: WebhookType) => w.status === \"FAILED\").length,\n paused: webhooks.filter((w: WebhookType) => w.status === \"PAUSED\").length,\n };\n\n return (\n <PermissionGuard authOnly>\n <PageLayout\n title={tr(\"devportal.webhooks\", \"Webhooks\")}\n description={tr(\n \"devportal.manageWebhooksApp\",\n \"Manage webhooks for this application\",\n )}\n purpose={tr(\n \"devportal.webhooksAppPurpose\",\n \"These webhooks deliver this application's events to your endpoints. Add a URL, choose which events to subscribe to, and send a test delivery to confirm your server receives and verifies the signed payload.\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n actions={\n <button\n onClick={() => handleNavigate(`/apps/${appId}/webhooks/new`)}\n disabled={!createPerm.allowed}\n aria-disabled={!createPerm.allowed}\n title={\n !createPerm.allowed\n ? tr(\n \"devportal.common.noPermission\",\n \"You do not have permission to perform this action\",\n )\n : undefined\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <Plus size={16} aria-hidden=\"true\" />\n {tr(\"devportal.createWebhook\", \"Create Webhook\")}\n </button>\n }\n >\n {/* Filters */}\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex flex-1 items-center gap-4\">\n {/* Search */}\n <div className=\"relative flex-1 max-w-md\">\n <Search\n size={16}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <input\n type=\"text\"\n placeholder=\"Search by name or URL...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </div>\n\n {/* Status Filter */}\n <select\n value={statusFilter}\n onChange={(e) =>\n setStatusFilter(e.target.value as WebhookStatus | \"\")\n }\n className=\"rounded-md border bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary\"\n >\n <option value=\"\">All Status</option>\n <option value=\"ACTIVE\">Active</option>\n <option value=\"PAUSED\">Paused</option>\n <option value=\"FAILED\">Failed</option>\n <option value=\"DISABLED\">Disabled</option>\n </select>\n </div>\n </div>\n\n {/* Summary Stats — primary emphasis zone */}\n <EmphasisPanel>\n <div className=\"grid grid-cols-2 gap-4 sm:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-text-secondary\">\n <Webhook size={16} />\n <span className=\"text-sm\">Total Webhooks</span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {stats.total}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-status-success-text\">\n <CheckCircle size={16} />\n <span className=\"text-sm\">Active</span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {stats.active}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-status-warning-text\">\n <PauseCircle size={16} />\n <span className=\"text-sm\">Paused</span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {stats.paused}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-status-error-text\">\n <XCircle size={16} />\n <span className=\"text-sm\">Failed</span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {stats.failed}\n </p>\n </GlassCard>\n </div>\n </EmphasisPanel>\n\n {/* Results count */}\n <p className=\"text-sm text-text-secondary\">\n {filteredWebhooks.length} webhook\n {filteredWebhooks.length !== 1 ? \"s\" : \"\"} found\n </p>\n\n {/* Webhooks Table */}\n {filteredWebhooks.length > 0 ? (\n <DataTable\n data={filteredWebhooks}\n columns={columns}\n keyField=\"id\"\n onRowClick={(webhook) =>\n handleNavigate(`/apps/${appId}/webhooks/${webhook.id}`)\n }\n />\n ) : (\n <EmptyState\n illustration=\"empty-notifications\"\n title={tr(\"devportal.noWebhooksFound\", \"No webhooks found\")}\n description={\n searchQuery || statusFilter\n ? tr(\n \"devportal.tryAdjustingFilters\",\n \"Try adjusting your filters\",\n )\n : tr(\n \"devportal.createFirstWebhook\",\n \"Create your first webhook to receive real-time event notifications\",\n )\n }\n action={\n !searchQuery && !statusFilter ? (\n <button\n onClick={() => handleNavigate(`/apps/${appId}/webhooks/new`)}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\"devportal.createWebhook\", \"Create Webhook\")}\n </button>\n ) : undefined\n }\n />\n )}\n </PageLayout>\n </PermissionGuard>\n );\n};\n\nfunction formatRelativeTime(dateString: string): string {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n const diffMins = Math.floor(diffMs / 60000);\n const diffHours = Math.floor(diffMins / 60);\n const diffDays = Math.floor(diffHours / 24);\n\n if (diffMins < 1) return \"Just now\";\n if (diffMins < 60) return `${diffMins}m ago`;\n if (diffHours < 24) return `${diffHours}h ago`;\n if (diffDays < 7) return `${diffDays}d ago`;\n return date.toLocaleDateString();\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"WebhooksPage.js","names":["EmptyState","EmptyState$1","mapWebhook","webhook","WebhooksPage","useParams","useDevportal","useI18n","tr","value","t","key","fallback","createPerm","useDevportalPermission","DEVPORTAL_PERMISSIONS","searchQuery","setSearchQuery","useState","statusFilter","setStatusFilter","singleAppData","useGetApplicationQuery","appId","name","reg","appsData","appsLoading","appsError","refetchApps","useGetApplicationsQuery","useGetWebhooksQuery","webhooks","data","allApplications","edge","applications","activeOrgId","a","handleNavigate","basePath","path","filteredWebhooks","matchesSearch","matchesStatus","getStatusIcon","status","CheckCircle","PauseCircle","XCircle","AlertTriangle","calculateSuccessRate","total","filteredApplications","normalizedQuery","application","PermissionGuard","PageLayout","Search","event","Loader2","AlertCircle","getErrorMessage","AppListItem","AppWindow","Plus","loading","error","refetch","columns","cn","Webhook","StatusBadge","rate","formatRelativeTime","stats","w","EmphasisPanel","GlassCard","DataTable","date","dateString","diffMs","diffMins","diffHours","diffDays"],"sources":["../../../src/devportal/pages/WebhooksPage.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { useState, useEffect } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\nimport {\n Plus,\n Search,\n Webhook,\n CheckCircle,\n XCircle,\n PauseCircle,\n AlertTriangle,\n Loader2,\n AlertCircle,\n AppWindow,\n} from \"lucide-react\";\nimport { useParams } from \"react-router\";\nimport { EmphasisPanel, GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../components/PageLayout\";\nimport { DataTable } from \"../components/DataTable\";\nimport { StatusBadge } from \"../components/StatusBadge\";\nimport { EmptyState } from \"../components/EmptyState\";\nimport { AppListItem } from \"../components/AppCard\";\nimport { PermissionGuard } from \"../components\";\nimport { useDevportal } from \"../providers/DevportalProvider\";\nimport { DEVPORTAL_PERMISSIONS } from \"../constants/permissions\";\nimport type {\n Application,\n Webhook as WebhookType,\n WebhookStatus,\n} from \"../types\";\nimport { cn } from \"../utils/cn\";\nimport {\n useGetApplicationsQuery,\n useGetApplicationQuery,\n useGetWebhooksQuery,\n getErrorMessage,\n useDevportalPermission,\n type ApplicationFieldsFragment,\n type DevportalWebhookFieldsFragment,\n} from \"../hooks\";\n\n/**\n * Map GraphQL webhook to local Webhook type\n */\nfunction mapWebhook(webhook: DevportalWebhookFieldsFragment): WebhookType {\n return {\n id: webhook.id,\n applicationId: webhook.applicationId,\n name: webhook.name,\n description: webhook.description ?? undefined,\n url: webhook.url,\n secret: undefined,\n events: webhook.events ?? [],\n isActive: webhook.isActive,\n status: webhook.status as WebhookStatus,\n maxRetries: webhook.maxRetries ?? 3,\n retryDelay: webhook.retryDelay ?? 60,\n retryEnabled: webhook.retryEnabled ?? true,\n lastTriggeredAt: webhook.lastTriggeredAt ?? undefined,\n lastSuccessAt: webhook.lastSuccessAt ?? undefined,\n lastFailureAt: webhook.lastFailureAt ?? undefined,\n lastFailureReason: webhook.lastFailureReason ?? undefined,\n failureCount: webhook.failureCount ?? 0,\n successCount: webhook.successCount ?? 0,\n createdAt: webhook.createdAt,\n updatedAt: webhook.updatedAt,\n };\n}\n\n/**\n * Webhooks listing page\n *\n * Displays webhooks for a specific application.\n * Uses GraphQL to fetch real data from the DevPortal backend.\n */\nexport const WebhooksPage: FC = () => {\n const { appId } = useParams<{ appId: string }>();\n const { navigate, basePath, activeOrgId } = useDevportal();\n const { t } = useI18n();\n const tr = (key: string, fallback: string): string => {\n const value = t(key);\n return value === key ? fallback : value;\n };\n const createPerm = useDevportalPermission(\n DEVPORTAL_PERMISSIONS.WEBHOOK_CREATE,\n );\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [statusFilter, setStatusFilter] = useState<WebhookStatus | \"\">(\"\");\n\n // Fetch app name for breadcrumb when viewing webhooks for a specific app\n const { data: singleAppData } = useGetApplicationQuery({\n variables: { id: appId ?? \"\" },\n skip: !appId,\n fetchPolicy: \"cache-first\",\n });\n\n useEffect(() => {\n const name = singleAppData?.application?.name;\n if (!appId || !name) return;\n const reg = (\n window as unknown as {\n __breadcrumbRegistry?: {\n register: (id: string, name: string) => void;\n unregister: (id: string) => void;\n };\n }\n ).__breadcrumbRegistry;\n reg?.register(appId, name);\n return () => reg?.unregister(appId);\n }, [appId, singleAppData?.application?.name]);\n\n const {\n data: appsData,\n loading: appsLoading,\n error: appsError,\n refetch: refetchApps,\n } = useGetApplicationsQuery({\n variables: { limit: 100 },\n skip: !!appId,\n fetchPolicy: \"cache-and-network\",\n });\n\n // Fetch webhooks from GraphQL API (only if we have an applicationId)\n const { data, loading, error, refetch } = useGetWebhooksQuery({\n variables: {\n applicationId: appId || \"\",\n },\n skip: !appId,\n fetchPolicy: \"cache-and-network\",\n });\n\n const webhooks = data?.webhooks?.map(mapWebhook) ?? [];\n const allApplications: Application[] =\n appsData?.applications?.edges?.map(\n (edge: { node: ApplicationFieldsFragment }) => edge.node as Application,\n ) ?? [];\n // Scope app picker to active org\n const applications = activeOrgId\n ? allApplications.filter((a) => a.developerOrganizationId === activeOrgId)\n : allApplications;\n\n const handleNavigate = (path: string) => {\n navigate?.(`${basePath}${path}`);\n };\n\n // Filter webhooks\n const filteredWebhooks = webhooks.filter((webhook: WebhookType) => {\n const matchesSearch =\n !searchQuery ||\n webhook.name.toLowerCase().includes(searchQuery.toLowerCase()) ||\n webhook.url.toLowerCase().includes(searchQuery.toLowerCase());\n const matchesStatus = !statusFilter || webhook.status === statusFilter;\n return matchesSearch && matchesStatus;\n });\n\n const getStatusIcon = (status: WebhookStatus) => {\n switch (status) {\n case \"ACTIVE\":\n return <CheckCircle size={16} className=\"text-status-success-text\" />;\n case \"PAUSED\":\n return <PauseCircle size={16} className=\"text-status-warning-text\" />;\n case \"FAILED\":\n return <XCircle size={16} className=\"text-status-error-text\" />;\n case \"DISABLED\":\n return <AlertTriangle size={16} className=\"text-text-tertiary\" />;\n default:\n return null;\n }\n };\n\n const calculateSuccessRate = (webhook: WebhookType): number => {\n const total = webhook.successCount + webhook.failureCount;\n if (total === 0) return 100;\n return Math.round((webhook.successCount / total) * 100);\n };\n\n // If no applicationId, show prompt to select an application\n if (!appId) {\n const filteredApplications = applications.filter((application) => {\n if (!searchQuery) return true;\n\n const normalizedQuery = searchQuery.toLowerCase();\n return (\n application.name.toLowerCase().includes(normalizedQuery) ||\n (application.slug ?? \"\").toLowerCase().includes(normalizedQuery)\n );\n });\n\n return (\n <PermissionGuard authOnly>\n <PageLayout\n title={tr(\"devportal.webhooks\", \"Webhooks\")}\n description={tr(\n \"devportal.manageWebhooksApps\",\n \"Manage webhooks for your applications\",\n )}\n purpose={tr(\n \"devportal.webhooksPickerPurpose\",\n \"Webhooks push real-time events (installs, payments, app updates) to a URL you host, so your backend can react without polling. Pick an application to view, add, or test the webhook endpoints it delivers to.\",\n )}\n >\n <div className=\"space-y-4\">\n <p className=\"text-sm text-text-secondary\">\n {tr(\n \"devportal.webhooksSelectAppHint\",\n \"Select an application below to view and manage its webhooks.\",\n )}\n </p>\n <div className=\"max-w-md\">\n <div className=\"relative\">\n <Search\n size={16}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <input\n type=\"text\"\n placeholder=\"Search applications...\"\n value={searchQuery}\n onChange={(event) => setSearchQuery(event.target.value)}\n className=\"w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </div>\n </div>\n\n {appsLoading ? (\n <div className=\"flex items-center justify-center py-12 text-text-secondary\">\n <Loader2 className=\"h-8 w-8 animate-spin\" />\n </div>\n ) : appsError ? (\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center\">\n <AlertCircle className=\"mx-auto h-8 w-8 text-status-error-text\" />\n <h3 className=\"mt-2 font-medium text-status-error-text\">\n Failed to load applications\n </h3>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {getErrorMessage(appsError)}\n </p>\n <button\n onClick={() => refetchApps()}\n className=\"mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n Try Again\n </button>\n </div>\n ) : filteredApplications.length > 0 ? (\n <div className=\"space-y-2\">\n {filteredApplications.map((application) => (\n <AppListItem\n key={application.id}\n app={application}\n onClick={() =>\n handleNavigate(`/apps/${application.id}/webhooks`)\n }\n />\n ))}\n </div>\n ) : (\n <EmptyState\n illustration={searchQuery ? \"empty-search\" : \"empty-data\"}\n icon={<AppWindow size={32} />}\n title=\"No applications available\"\n description={\n searchQuery\n ? \"No applications matched your search.\"\n : \"Create an application before configuring webhooks.\"\n }\n action={\n <button\n onClick={() => handleNavigate(\"/apps/new\")}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n Create Application\n </button>\n }\n />\n )}\n </div>\n </PageLayout>\n </PermissionGuard>\n );\n }\n\n // Loading state\n if (loading && !data) {\n return (\n <PageLayout\n title={tr(\"devportal.webhooks\", \"Webhooks\")}\n description={tr(\n \"devportal.manageWebhooksApp\",\n \"Manage webhooks for this application\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <div className=\"flex items-center justify-center py-12\">\n <Loader2 className=\"h-8 w-8 animate-spin text-text-secondary\" />\n <span className=\"ml-2 text-text-secondary\">\n {tr(\"devportal.loadingWebhooks\", \"Loading webhooks...\")}\n </span>\n </div>\n </PageLayout>\n );\n }\n\n // Error state\n if (error) {\n return (\n <PageLayout\n title={tr(\"devportal.webhooks\", \"Webhooks\")}\n description={tr(\n \"devportal.manageWebhooksApp\",\n \"Manage webhooks for this application\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n >\n <div className=\"rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center\">\n <AlertCircle className=\"mx-auto h-8 w-8 text-status-error-text\" />\n <h3 className=\"mt-2 font-medium text-status-error-text\">\n {tr(\"devportal.failedToLoadWebhooks\", \"Failed to load webhooks\")}\n </h3>\n <p className=\"mt-1 text-sm text-text-secondary\">\n {getErrorMessage(error)}\n </p>\n <button\n onClick={() => refetch()}\n className=\"mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n {tr(\"devportal.tryAgain\", \"Try Again\")}\n </button>\n </div>\n </PageLayout>\n );\n }\n\n const columns = [\n {\n key: \"name\",\n header: \"Webhook\",\n render: (webhook: WebhookType) => (\n <div className=\"flex items-center gap-3\">\n <div\n className={cn(\n \"flex h-10 w-10 items-center justify-center rounded-lg\",\n webhook.status === \"ACTIVE\"\n ? \"bg-status-success-bg-subtle text-status-success-text\"\n : webhook.status === \"FAILED\"\n ? \"bg-status-error-bg-subtle text-status-error-text\"\n : webhook.status === \"PAUSED\"\n ? \"bg-status-warning-bg-subtle text-status-warning-text\"\n : \"bg-bg-sunken text-text-tertiary\",\n )}\n >\n <Webhook size={20} />\n </div>\n <div>\n <p className=\"font-medium\">{webhook.name}</p>\n <p className=\"text-xs text-text-secondary truncate max-w-xs\">\n {webhook.url}\n </p>\n </div>\n </div>\n ),\n },\n {\n key: \"events\",\n header: \"Events\",\n render: (webhook: WebhookType) => (\n <div className=\"flex flex-wrap gap-1\">\n {webhook.events.slice(0, 2).map((event) => (\n <span\n key={event}\n className=\"inline-flex rounded bg-bg-sunken px-1.5 py-0.5 text-xs\"\n >\n {event.split(\".\")[0]}\n </span>\n ))}\n {webhook.events.length > 2 && (\n <span className=\"text-xs text-text-secondary\">\n +{webhook.events.length - 2} more\n </span>\n )}\n </div>\n ),\n },\n {\n key: \"status\",\n header: \"Status\",\n render: (webhook: WebhookType) => (\n <div className=\"flex items-center gap-2\">\n {getStatusIcon(webhook.status)}\n <StatusBadge status={webhook.status} type=\"webhook\" />\n </div>\n ),\n },\n {\n key: \"successRate\",\n header: \"Success Rate\",\n render: (webhook: WebhookType) => {\n const rate = calculateSuccessRate(webhook);\n return (\n <div className=\"w-24\">\n <div className=\"flex items-center justify-between text-xs mb-1\">\n <span\n className={cn(\n rate >= 95\n ? \"text-status-success-text\"\n : rate >= 80\n ? \"text-status-warning-text\"\n : \"text-status-error-text\",\n )}\n >\n {rate}%\n </span>\n </div>\n <div className=\"h-1.5 rounded-full bg-bg-sunken\">\n <div\n className={cn(\n \"h-full rounded-full transition-all\",\n rate >= 95\n ? \"bg-status-success-bg-subtle\"\n : rate >= 80\n ? \"bg-status-warning-bg-subtle\"\n : \"bg-status-error-bg-subtle\",\n )}\n style={{ width: `${rate}%` }}\n />\n </div>\n </div>\n );\n },\n },\n {\n key: \"deliveries\",\n header: \"Deliveries\",\n render: (webhook: WebhookType) => (\n <div className=\"text-sm\">\n <span className=\"text-status-success-text\">\n {webhook.successCount.toLocaleString()}\n </span>\n <span className=\"text-text-secondary\"> / </span>\n <span className=\"text-status-error-text\">\n {webhook.failureCount.toLocaleString()}\n </span>\n </div>\n ),\n },\n {\n key: \"lastTriggered\",\n header: \"Last Triggered\",\n render: (webhook: WebhookType) => (\n <span className=\"text-sm text-text-secondary\">\n {webhook.lastTriggeredAt\n ? formatRelativeTime(webhook.lastTriggeredAt)\n : \"Never\"}\n </span>\n ),\n },\n ];\n\n // Stats calculation\n const stats = {\n total: webhooks.length,\n active: webhooks.filter((w: WebhookType) => w.status === \"ACTIVE\").length,\n failed: webhooks.filter((w: WebhookType) => w.status === \"FAILED\").length,\n paused: webhooks.filter((w: WebhookType) => w.status === \"PAUSED\").length,\n };\n\n return (\n <PermissionGuard authOnly>\n <PageLayout\n title={tr(\"devportal.webhooks\", \"Webhooks\")}\n description={tr(\n \"devportal.manageWebhooksApp\",\n \"Manage webhooks for this application\",\n )}\n purpose={tr(\n \"devportal.webhooksAppPurpose\",\n \"These webhooks deliver this application's events to your endpoints. Add a URL, choose which events to subscribe to, and send a test delivery to confirm your server receives and verifies the signed payload.\",\n )}\n backLink={`/apps/${appId}`}\n backLabel={tr(\"devportal.backToApplication\", \"Back to Application\")}\n actions={\n <button\n onClick={() => handleNavigate(`/apps/${appId}/webhooks/new`)}\n disabled={!createPerm.allowed}\n aria-disabled={!createPerm.allowed}\n title={\n !createPerm.allowed\n ? tr(\n \"devportal.common.noPermission\",\n \"You do not have permission to perform this action\",\n )\n : undefined\n }\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary\"\n >\n <Plus size={16} aria-hidden=\"true\" />\n {tr(\"devportal.createWebhook\", \"Create Webhook\")}\n </button>\n }\n >\n {/* Filters */}\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex flex-1 items-center gap-4\">\n {/* Search */}\n <div className=\"relative flex-1 max-w-md\">\n <Search\n size={16}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary\"\n />\n <input\n type=\"text\"\n placeholder=\"Search by name or URL...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary\"\n />\n </div>\n\n {/* Status Filter */}\n <select\n value={statusFilter}\n onChange={(e) =>\n setStatusFilter(e.target.value as WebhookStatus | \"\")\n }\n className=\"rounded-md border bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary scheme-normal dark:scheme-dark [&_option]:bg-bg-surface [&_option]:text-text-primary\"\n >\n <option value=\"\">All Status</option>\n <option value=\"ACTIVE\">Active</option>\n <option value=\"PAUSED\">Paused</option>\n <option value=\"FAILED\">Failed</option>\n <option value=\"DISABLED\">Disabled</option>\n </select>\n </div>\n </div>\n\n {/* Summary Stats — primary emphasis zone */}\n <EmphasisPanel>\n <div className=\"grid grid-cols-2 gap-4 sm:grid-cols-4\">\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-text-secondary\">\n <Webhook size={16} />\n <span className=\"text-sm\">Total Webhooks</span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {stats.total}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-status-success-text\">\n <CheckCircle size={16} />\n <span className=\"text-sm\">Active</span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {stats.active}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-status-warning-text\">\n <PauseCircle size={16} />\n <span className=\"text-sm\">Paused</span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {stats.paused}\n </p>\n </GlassCard>\n <GlassCard treatment=\"metric\" className=\"p-4\">\n <div className=\"flex items-center gap-2 text-status-error-text\">\n <XCircle size={16} />\n <span className=\"text-sm\">Failed</span>\n </div>\n <p className=\"mt-1 text-2xl font-semibold tabular-nums\">\n {stats.failed}\n </p>\n </GlassCard>\n </div>\n </EmphasisPanel>\n\n {/* Results count */}\n <p className=\"text-sm text-text-secondary\">\n {filteredWebhooks.length} webhook\n {filteredWebhooks.length !== 1 ? \"s\" : \"\"} found\n </p>\n\n {/* Webhooks Table */}\n {filteredWebhooks.length > 0 ? (\n <DataTable\n data={filteredWebhooks}\n columns={columns}\n keyField=\"id\"\n onRowClick={(webhook) =>\n handleNavigate(`/apps/${appId}/webhooks/${webhook.id}`)\n }\n />\n ) : (\n <EmptyState\n illustration=\"empty-notifications\"\n title={tr(\"devportal.noWebhooksFound\", \"No webhooks found\")}\n description={\n searchQuery || statusFilter\n ? tr(\n \"devportal.tryAdjustingFilters\",\n \"Try adjusting your filters\",\n )\n : tr(\n \"devportal.createFirstWebhook\",\n \"Create your first webhook to receive real-time event notifications\",\n )\n }\n action={\n !searchQuery && !statusFilter ? (\n <button\n onClick={() => handleNavigate(`/apps/${appId}/webhooks/new`)}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Plus size={16} />\n {tr(\"devportal.createWebhook\", \"Create Webhook\")}\n </button>\n ) : undefined\n }\n />\n )}\n </PageLayout>\n </PermissionGuard>\n );\n};\n\nfunction formatRelativeTime(dateString: string): string {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n const diffMins = Math.floor(diffMs / 60000);\n const diffHours = Math.floor(diffMins / 60);\n const diffDays = Math.floor(diffHours / 24);\n\n if (diffMins < 1) return \"Just now\";\n if (diffMins < 60) return `${diffMins}m ago`;\n if (diffHours < 24) return `${diffHours}h ago`;\n if (diffDays < 7) return `${diffDays}d ago`;\n return date.toLocaleDateString();\n}\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { FC, PropsWithChildren } from 'react';
2
2
  import { DevportalRootProps } from '../types';
3
-
4
3
  /**
5
4
  * Context value for Developer Portal microfrontend.
6
5
  * Extends root props with org-scoping state shared across all devportal pages.
@@ -27,4 +26,3 @@ export declare const useDevportal: () => DevportalContextValue;
27
26
  */
28
27
  export declare const DevportalProvider: FC<PropsWithChildren<DevportalRootProps>>;
29
28
  export {};
30
- //# sourceMappingURL=DevportalProvider.d.ts.map
@@ -3,7 +3,7 @@ import { BrowserRouter as i } from "react-router";
3
3
  import { MutationCache as a, QueryClient as o, QueryClientProvider as s } from "@tanstack/react-query";
4
4
  import { PermissionProvider as c } from "@burdenoff/fe-libs/shared/providers/shell";
5
5
  import { jsx as l } from "react/jsx-runtime";
6
- //#region src/devportal/providers/DevportalProvider.tsx
6
+ // src/devportal/providers/DevportalProvider.tsx
7
7
  var u = "devportal_active_org_v1", d = "devportal_active_physical_org_v1", f = e(null), p = () => {
8
8
  let e = t(f);
9
9
  if (!e) throw Error("useDevportal must be used within DevportalProvider");
@@ -59,7 +59,7 @@ var u = "devportal_active_org_v1", d = "devportal_active_physical_org_v1", f = e
59
59
  defaultOptions: { queries: {
60
60
  retry: 1,
61
61
  refetchOnWindowFocus: !1,
62
- staleTime: 300 * 1e3
62
+ staleTime: 3e5
63
63
  } }
64
64
  });
65
65
  return e;
@@ -76,7 +76,6 @@ var u = "devportal_active_org_v1", d = "devportal_active_physical_org_v1", f = e
76
76
  });
77
77
  return P ? F : /* @__PURE__ */ l(i, { children: F });
78
78
  };
79
- //#endregion
80
79
  export { m as DevportalProvider, p as useDevportal };
81
80
 
82
81
  //# sourceMappingURL=DevportalProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DevportalProvider.js","names":[],"sources":["../../../src/devportal/providers/DevportalProvider.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport { createContext, useContext, useMemo, useState } from \"react\";\nimport { BrowserRouter } from \"react-router\";\nimport {\n MutationCache,\n QueryClient,\n QueryClientProvider,\n} from \"@tanstack/react-query\";\nimport { PermissionProvider } from \"@burdenoff/fe-libs/shared/providers/shell\";\nimport type { DevportalRootProps } from \"../types\";\n\nconst ORG_STORAGE_KEY = \"devportal_active_org_v1\";\nconst PHYSICAL_ORG_STORAGE_KEY = \"devportal_active_physical_org_v1\";\n\n/**\n * Context value for Developer Portal microfrontend.\n * Extends root props with org-scoping state shared across all devportal pages.\n */\ntype DevportalContextValue = DevportalRootProps & {\n activeOrgId: string | null;\n setActiveOrgId: (id: string | null) => void;\n /**\n * The seller portal's currently-selected PHYSICAL-kind org. Kept separate\n * from activeOrgId (which the rest of devportal treats as DIGITAL) so\n * switching between the seller portal and the regular devportal never\n * mixes up which kind of org is \"active\" — see DeveloperOrgKind (BOFF-7285).\n */\n activePhysicalOrgId: string | null;\n setActivePhysicalOrgId: (id: string | null) => void;\n};\n\nconst DevportalContext = createContext<DevportalContextValue | null>(null);\n\n/**\n * Hook to access Developer Portal context\n */\nexport const useDevportal = () => {\n const context = useContext(DevportalContext);\n if (!context) {\n throw new Error(\"useDevportal must be used within DevportalProvider\");\n }\n return context;\n};\n\n/**\n * Provider component for Developer Portal microfrontend\n * Sets up routing, context, and React Query client\n */\nexport const DevportalProvider: FC<PropsWithChildren<DevportalRootProps>> = ({\n children,\n basePath,\n productId,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n workspacesGatewayUrl,\n authToken,\n workspaceToken,\n getWorkspaceToken,\n registerNavItems,\n registerFooterItems,\n onApplicationSelect,\n onOrganizationSelect,\n}) => {\n const [activeOrgId, setActiveOrgIdState] = useState<string | null>(() => {\n try {\n return localStorage.getItem(ORG_STORAGE_KEY) ?? null;\n } catch {\n return null;\n }\n });\n\n const setActiveOrgId = (id: string | null) => {\n setActiveOrgIdState(id);\n try {\n if (id) {\n localStorage.setItem(ORG_STORAGE_KEY, id);\n } else {\n localStorage.removeItem(ORG_STORAGE_KEY);\n }\n } catch {\n // ignore storage errors\n }\n };\n\n const [activePhysicalOrgId, setActivePhysicalOrgIdState] = useState<\n string | null\n >(() => {\n try {\n return localStorage.getItem(PHYSICAL_ORG_STORAGE_KEY) ?? null;\n } catch {\n return null;\n }\n });\n\n const setActivePhysicalOrgId = (id: string | null) => {\n setActivePhysicalOrgIdState(id);\n try {\n if (id) {\n localStorage.setItem(PHYSICAL_ORG_STORAGE_KEY, id);\n } else {\n localStorage.removeItem(PHYSICAL_ORG_STORAGE_KEY);\n }\n } catch {\n // ignore storage errors\n }\n };\n\n const contextValue: DevportalContextValue = {\n basePath,\n productId,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n workspacesGatewayUrl,\n authToken,\n workspaceToken,\n getWorkspaceToken,\n registerNavItems,\n registerFooterItems,\n onApplicationSelect,\n onOrganizationSelect,\n activeOrgId,\n setActiveOrgId,\n activePhysicalOrgId,\n setActivePhysicalOrgId,\n };\n\n // Create QueryClient instance (memoized to avoid recreation on re-renders)\n const queryClient = useMemo(() => {\n const client = new QueryClient({\n mutationCache: new MutationCache({\n onSuccess: () => {\n void client.invalidateQueries();\n },\n }),\n defaultOptions: {\n queries: {\n retry: 1,\n refetchOnWindowFocus: false,\n staleTime: 5 * 60 * 1000, // 5 minutes\n },\n },\n });\n return client;\n }, []);\n\n // PermissionProvider requires the shell's AuthProvider — only mount it in integrated mode.\n // In standalone/dev mode (MemoryRouter path), there's no AuthProvider, so we skip it\n // and pages will use a fallback that allows access (dev-only behaviour).\n const isIntegrated = !!basePath;\n\n // Wrap content with QueryClientProvider\n const content = (\n <QueryClientProvider client={queryClient}>\n <DevportalContext.Provider value={contextValue}>\n {isIntegrated ? (\n <PermissionProvider scopeId={tenantId ?? null} gateway=\"global\">\n {children}\n </PermissionProvider>\n ) : (\n children\n )}\n </DevportalContext.Provider>\n </QueryClientProvider>\n );\n\n // When integrated into a shell (basePath provided), the shell already has a router\n // so we don't create another one. When standalone (no basePath), use BrowserRouter.\n if (isIntegrated) {\n return content;\n }\n\n // Standalone mode: create BrowserRouter for independent operation\n return <BrowserRouter>{content}</BrowserRouter>;\n};\n"],"mappings":";;;;;;AAWA,IAAM,IAAkB,2BAClB,IAA2B,oCAmB3B,IAAmB,EAA4C,KAAK,EAK7D,UAAqB;CAChC,IAAM,IAAU,EAAW,EAAiB;AAC5C,KAAI,CAAC,EACH,OAAU,MAAM,qDAAqD;AAEvE,QAAO;GAOI,KAAgE,EAC3E,aACA,aACA,cACA,aACA,gBACA,aACA,gBACA,kBACA,yBACA,cACA,mBACA,sBACA,qBACA,wBACA,wBACA,8BACI;CACJ,IAAM,CAAC,GAAa,KAAuB,QAA8B;AACvE,MAAI;AACF,UAAO,aAAa,QAAQ,EAAgB,IAAI;UAC1C;AACN,UAAO;;GAET,EAEI,KAAkB,MAAsB;AAC5C,IAAoB,EAAG;AACvB,MAAI;AACF,GAAI,IACF,aAAa,QAAQ,GAAiB,EAAG,GAEzC,aAAa,WAAW,EAAgB;UAEpC;IAKJ,CAAC,GAAqB,KAA+B,QAEnD;AACN,MAAI;AACF,UAAO,aAAa,QAAQ,EAAyB,IAAI;UACnD;AACN,UAAO;;GAET,EAeI,IAAsC;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,yBAhC8B,MAAsB;AACpD,KAA4B,EAAG;AAC/B,OAAI;AACF,IAAI,IACF,aAAa,QAAQ,GAA0B,EAAG,GAElD,aAAa,WAAW,EAAyB;WAE7C;;EAyBT,EAGK,IAAc,QAAc;EAChC,IAAM,IAAS,IAAI,EAAY;GAC7B,eAAe,IAAI,EAAc,EAC/B,iBAAiB;AACV,MAAO,mBAAmB;MAElC,CAAC;GACF,gBAAgB,EACd,SAAS;IACP,OAAO;IACP,sBAAsB;IACtB,WAAW,MAAS;IACrB,EACF;GACF,CAAC;AACF,SAAO;IACN,EAAE,CAAC,EAKA,IAAe,CAAC,CAAC,GAGjB,IACJ,kBAAC,GAAD;EAAqB,QAAQ;YAC3B,kBAAC,EAAiB,UAAlB;GAA2B,OAAO;aAC/B,IACC,kBAAC,GAAD;IAAoB,SAAS,KAAY;IAAM,SAAQ;IACpD;IACkB,CAAA,GAErB;GAEwB,CAAA;EACR,CAAA;AAUxB,QALI,IACK,IAIF,kBAAC,GAAD,EAAA,UAAgB,GAAwB,CAAA"}
1
+ {"version":3,"file":"DevportalProvider.js","names":["ORG_STORAGE_KEY","PHYSICAL_ORG_STORAGE_KEY","DevportalContext","createContext","useDevportal","context","useContext","DevportalProvider","activeOrgId","setActiveOrgIdState","useState","setActiveOrgId","id","activePhysicalOrgId","setActivePhysicalOrgIdState","contextValue","queryClient","useMemo","client","QueryClient","MutationCache","isIntegrated","basePath","content","QueryClientProvider","PermissionProvider","tenantId","children","BrowserRouter"],"sources":["../../../src/devportal/providers/DevportalProvider.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\";\nimport { createContext, useContext, useMemo, useState } from \"react\";\nimport { BrowserRouter } from \"react-router\";\nimport {\n MutationCache,\n QueryClient,\n QueryClientProvider,\n} from \"@tanstack/react-query\";\nimport { PermissionProvider } from \"@burdenoff/fe-libs/shared/providers/shell\";\nimport type { DevportalRootProps } from \"../types\";\n\nconst ORG_STORAGE_KEY = \"devportal_active_org_v1\";\nconst PHYSICAL_ORG_STORAGE_KEY = \"devportal_active_physical_org_v1\";\n\n/**\n * Context value for Developer Portal microfrontend.\n * Extends root props with org-scoping state shared across all devportal pages.\n */\ntype DevportalContextValue = DevportalRootProps & {\n activeOrgId: string | null;\n setActiveOrgId: (id: string | null) => void;\n /**\n * The seller portal's currently-selected PHYSICAL-kind org. Kept separate\n * from activeOrgId (which the rest of devportal treats as DIGITAL) so\n * switching between the seller portal and the regular devportal never\n * mixes up which kind of org is \"active\" — see DeveloperOrgKind (BOFF-7285).\n */\n activePhysicalOrgId: string | null;\n setActivePhysicalOrgId: (id: string | null) => void;\n};\n\nconst DevportalContext = createContext<DevportalContextValue | null>(null);\n\n/**\n * Hook to access Developer Portal context\n */\nexport const useDevportal = () => {\n const context = useContext(DevportalContext);\n if (!context) {\n throw new Error(\"useDevportal must be used within DevportalProvider\");\n }\n return context;\n};\n\n/**\n * Provider component for Developer Portal microfrontend\n * Sets up routing, context, and React Query client\n */\nexport const DevportalProvider: FC<PropsWithChildren<DevportalRootProps>> = ({\n children,\n basePath,\n productId,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n workspacesGatewayUrl,\n authToken,\n workspaceToken,\n getWorkspaceToken,\n registerNavItems,\n registerFooterItems,\n onApplicationSelect,\n onOrganizationSelect,\n}) => {\n const [activeOrgId, setActiveOrgIdState] = useState<string | null>(() => {\n try {\n return localStorage.getItem(ORG_STORAGE_KEY) ?? null;\n } catch {\n return null;\n }\n });\n\n const setActiveOrgId = (id: string | null) => {\n setActiveOrgIdState(id);\n try {\n if (id) {\n localStorage.setItem(ORG_STORAGE_KEY, id);\n } else {\n localStorage.removeItem(ORG_STORAGE_KEY);\n }\n } catch {\n // ignore storage errors\n }\n };\n\n const [activePhysicalOrgId, setActivePhysicalOrgIdState] = useState<\n string | null\n >(() => {\n try {\n return localStorage.getItem(PHYSICAL_ORG_STORAGE_KEY) ?? null;\n } catch {\n return null;\n }\n });\n\n const setActivePhysicalOrgId = (id: string | null) => {\n setActivePhysicalOrgIdState(id);\n try {\n if (id) {\n localStorage.setItem(PHYSICAL_ORG_STORAGE_KEY, id);\n } else {\n localStorage.removeItem(PHYSICAL_ORG_STORAGE_KEY);\n }\n } catch {\n // ignore storage errors\n }\n };\n\n const contextValue: DevportalContextValue = {\n basePath,\n productId,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n workspacesGatewayUrl,\n authToken,\n workspaceToken,\n getWorkspaceToken,\n registerNavItems,\n registerFooterItems,\n onApplicationSelect,\n onOrganizationSelect,\n activeOrgId,\n setActiveOrgId,\n activePhysicalOrgId,\n setActivePhysicalOrgId,\n };\n\n // Create QueryClient instance (memoized to avoid recreation on re-renders)\n const queryClient = useMemo(() => {\n const client = new QueryClient({\n mutationCache: new MutationCache({\n onSuccess: () => {\n void client.invalidateQueries();\n },\n }),\n defaultOptions: {\n queries: {\n retry: 1,\n refetchOnWindowFocus: false,\n staleTime: 5 * 60 * 1000, // 5 minutes\n },\n },\n });\n return client;\n }, []);\n\n // PermissionProvider requires the shell's AuthProvider — only mount it in integrated mode.\n // In standalone/dev mode (MemoryRouter path), there's no AuthProvider, so we skip it\n // and pages will use a fallback that allows access (dev-only behaviour).\n const isIntegrated = !!basePath;\n\n // Wrap content with QueryClientProvider\n const content = (\n <QueryClientProvider client={queryClient}>\n <DevportalContext.Provider value={contextValue}>\n {isIntegrated ? (\n <PermissionProvider scopeId={tenantId ?? null} gateway=\"global\">\n {children}\n </PermissionProvider>\n ) : (\n children\n )}\n </DevportalContext.Provider>\n </QueryClientProvider>\n );\n\n // When integrated into a shell (basePath provided), the shell already has a router\n // so we don't create another one. When standalone (no basePath), use BrowserRouter.\n if (isIntegrated) {\n return content;\n }\n\n // Standalone mode: create BrowserRouter for independent operation\n return <BrowserRouter>{content}</BrowserRouter>;\n};\n"],"mappings":";;;;;;AAWA,IAAMA,IAAkB,2BAClBC,IAA2B,oCAmB3BC,IAAmBC,EAA4C,IAAI,GAK5DC,UAAqB;CAChC,IAAMC,IAAUC,EAAWJ,CAAgB;CAC3C,IAAI,CAACG,GACH,MAAU,MAAM,oDAAoD;CAEtE,OAAOA;AACT,GAMaE,KAAgE,EAC3E,aACA,aACA,cACA,aACA,gBACA,aACA,gBACA,kBACA,yBACA,cACA,mBACA,sBACA,qBACA,wBACA,wBACA,8BACI;CACJ,IAAM,CAACC,GAAaC,KAAuBC,QAA8B;EACvE,IAAI;GACF,OAAO,aAAa,QAAQV,CAAe,KAAK;EAClD,QAAQ;GACN,OAAO;EACT;CACF,CAAC,GAEKW,KAAkB,MAAsB;EAC5C,EAAoBC,CAAE;EACtB,IAAI;GACF,AAAIA,IACF,aAAa,QAAQZ,GAAiBY,CAAE,IAExC,aAAa,WAAWZ,CAAe;EAE3C,QAAQ,CAER;CACF,GAEM,CAACa,GAAqBC,KAA+BJ,QAEnD;EACN,IAAI;GACF,OAAO,aAAa,QAAQT,CAAwB,KAAK;EAC3D,QAAQ;GACN,OAAO;EACT;CACF,CAAC,GAeKc,IAAsC;EAC1C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,yBAhC8B,MAAsB;GACpD,EAA4BH,CAAE;GAC9B,IAAI;IACF,AAAIA,IACF,aAAa,QAAQX,GAA0BW,CAAE,IAEjD,aAAa,WAAWX,CAAwB;GAEpD,QAAQ,CAER;EACF;CAsBA,GAGMe,IAAcC,QAAc;EAChC,IAAMC,IAAS,IAAIC,EAAY;GAC7B,eAAe,IAAIC,EAAc,EAC/B,iBAAiB;IACf,EAAY,kBAAkB;GAChC,EACF,CAAC;GACD,gBAAgB,EACd,SAAS;IACP,OAAO;IACP,sBAAsB;IACtB,WAAW;GACb,EACF;EACF,CAAC;EACD,OAAOF;CACT,GAAG,CAAC,CAAC,GAKCG,IAAe,CAAC,CAACC,GAGjBC,IACJ,kBAACC,GAAD;EAAqB,QAAQR;EAC3B,UAAA,kBAACd,EAAiB,UAAlB;GAA2B,OAAOa;GAC/B,UAAAM,IACC,kBAACI,GAAD;IAAoB,SAASC,KAAY;IAAM,SAAQ;IACpD;GACiB,CAAA,IAEpBC;EAEuB,CAAA;CACR,CAAA;CAUvB,OALIN,IACKE,IAIF,kBAACK,GAAD,EAAA,UAAgBL,EAAuB,CAAA;AAChD"}
@@ -1,5 +1,4 @@
1
1
  import { Application, DeveloperOrganization, OAuthClient, ApiKey, Webhook, ApplicationFilter, AppUserDelegation, AuthApp, AuthApiKey } from '../types';
2
-
3
2
  /**
4
3
  * Developer Portal store state
5
4
  */
@@ -57,4 +56,3 @@ interface DevportalState {
57
56
  */
58
57
  export declare const useDevportalStore: import('zustand').UseBoundStore<import('zustand').StoreApi<DevportalState>>;
59
58
  export {};
60
- //# sourceMappingURL=devportalStore.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { create as e } from "zustand";
2
- //#region src/devportal/store/devportalStore.ts
2
+ // src/devportal/store/devportalStore.ts
3
3
  var t = {
4
4
  search: "",
5
5
  status: void 0,
@@ -87,7 +87,6 @@ var t = {
87
87
  isCreatingWebhook: !1
88
88
  })
89
89
  }));
90
- //#endregion
91
90
  export { n as useDevportalStore };
92
91
 
93
92
  //# sourceMappingURL=devportalStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devportalStore.js","names":[],"sources":["../../../src/devportal/store/devportalStore.ts"],"sourcesContent":["import { create } from \"zustand\";\nimport type {\n Application,\n DeveloperOrganization,\n OAuthClient,\n ApiKey,\n Webhook,\n ApplicationFilter,\n AppUserDelegation,\n AuthApp,\n AuthApiKey,\n} from \"../types\";\n\n/**\n * Developer Portal store state\n */\ninterface DevportalState {\n // Current selections\n selectedOrganization: DeveloperOrganization | null;\n selectedApplication: Application | null;\n selectedOAuthClient: OAuthClient | null;\n selectedApiKey: ApiKey | null;\n selectedWebhook: Webhook | null;\n\n // Data caches\n organizations: DeveloperOrganization[];\n applications: Application[];\n\n // Auth-layer data (from auth-svc)\n authApps: AuthApp[];\n currentAuthApp: AuthApp | null;\n authApiKeys: AuthApiKey[];\n delegations: AppUserDelegation[];\n grantedDelegations: AppUserDelegation[];\n\n // UI state\n applicationFilter: ApplicationFilter;\n isCreatingApp: boolean;\n isCreatingOrg: boolean;\n isCreatingOAuthClient: boolean;\n isCreatingApiKey: boolean;\n isCreatingWebhook: boolean;\n\n // Sidebar state\n sidebarCollapsed: boolean;\n\n // Actions\n setSelectedOrganization: (org: DeveloperOrganization | null) => void;\n setSelectedApplication: (app: Application | null) => void;\n setSelectedOAuthClient: (client: OAuthClient | null) => void;\n setSelectedApiKey: (key: ApiKey | null) => void;\n setSelectedWebhook: (webhook: Webhook | null) => void;\n setOrganizations: (orgs: DeveloperOrganization[]) => void;\n setApplications: (apps: Application[]) => void;\n setApplicationFilter: (filter: Partial<ApplicationFilter>) => void;\n resetApplicationFilter: () => void;\n setIsCreatingApp: (value: boolean) => void;\n setIsCreatingOrg: (value: boolean) => void;\n setIsCreatingOAuthClient: (value: boolean) => void;\n setIsCreatingApiKey: (value: boolean) => void;\n setIsCreatingWebhook: (value: boolean) => void;\n setSidebarCollapsed: (collapsed: boolean) => void;\n toggleSidebar: () => void;\n\n // Auth-layer actions\n setAuthApps: (apps: AuthApp[]) => void;\n setCurrentAuthApp: (app: AuthApp | null) => void;\n addAuthApp: (app: AuthApp) => void;\n updateAuthApp: (app: AuthApp) => void;\n removeAuthApp: (appId: string) => void;\n setAuthApiKeys: (keys: AuthApiKey[]) => void;\n removeAuthApiKey: (keyId: string) => void;\n setDelegations: (delegations: AppUserDelegation[]) => void;\n setGrantedDelegations: (delegations: AppUserDelegation[]) => void;\n addDelegation: (delegation: AppUserDelegation) => void;\n removeDelegation: (delegationId: string) => void;\n\n reset: () => void;\n}\n\nconst initialApplicationFilter: ApplicationFilter = {\n search: \"\",\n status: undefined,\n visibility: undefined,\n appType: undefined,\n organizationId: undefined,\n isFeatured: undefined,\n};\n\n/**\n * Developer Portal Zustand store\n */\nexport const useDevportalStore = create<DevportalState>((set) => ({\n // Initial state\n selectedOrganization: null,\n selectedApplication: null,\n selectedOAuthClient: null,\n selectedApiKey: null,\n selectedWebhook: null,\n organizations: [],\n applications: [],\n authApps: [],\n currentAuthApp: null,\n authApiKeys: [],\n delegations: [],\n grantedDelegations: [],\n applicationFilter: initialApplicationFilter,\n isCreatingApp: false,\n isCreatingOrg: false,\n isCreatingOAuthClient: false,\n isCreatingApiKey: false,\n isCreatingWebhook: false,\n sidebarCollapsed: false,\n\n // Actions\n setSelectedOrganization: (org) => set({ selectedOrganization: org }),\n setSelectedApplication: (app) => set({ selectedApplication: app }),\n setSelectedOAuthClient: (client) => set({ selectedOAuthClient: client }),\n setSelectedApiKey: (key) => set({ selectedApiKey: key }),\n setSelectedWebhook: (webhook) => set({ selectedWebhook: webhook }),\n setOrganizations: (orgs) => set({ organizations: orgs }),\n setApplications: (apps) => set({ applications: apps }),\n setApplicationFilter: (filter) =>\n set((state) => ({\n applicationFilter: { ...state.applicationFilter, ...filter },\n })),\n resetApplicationFilter: () =>\n set({ applicationFilter: initialApplicationFilter }),\n setIsCreatingApp: (value) => set({ isCreatingApp: value }),\n setIsCreatingOrg: (value) => set({ isCreatingOrg: value }),\n setIsCreatingOAuthClient: (value) => set({ isCreatingOAuthClient: value }),\n setIsCreatingApiKey: (value) => set({ isCreatingApiKey: value }),\n setIsCreatingWebhook: (value) => set({ isCreatingWebhook: value }),\n setSidebarCollapsed: (collapsed) => set({ sidebarCollapsed: collapsed }),\n toggleSidebar: () =>\n set((state) => ({ sidebarCollapsed: !state.sidebarCollapsed })),\n\n // Auth-layer actions\n setAuthApps: (apps) => set({ authApps: apps }),\n setCurrentAuthApp: (app) => set({ currentAuthApp: app }),\n addAuthApp: (app) => set((state) => ({ authApps: [...state.authApps, app] })),\n updateAuthApp: (app) =>\n set((state) => ({\n authApps: state.authApps.map((a) => (a.id === app.id ? app : a)),\n currentAuthApp:\n state.currentAuthApp?.id === app.id ? app : state.currentAuthApp,\n })),\n removeAuthApp: (appId) =>\n set((state) => ({\n authApps: state.authApps.filter((a) => a.id !== appId),\n currentAuthApp:\n state.currentAuthApp?.id === appId ? null : state.currentAuthApp,\n })),\n setAuthApiKeys: (keys) => set({ authApiKeys: keys }),\n removeAuthApiKey: (keyId) =>\n set((state) => ({\n authApiKeys: state.authApiKeys.filter((k) => k.id !== keyId),\n })),\n setDelegations: (delegations) => set({ delegations }),\n setGrantedDelegations: (delegations) =>\n set({ grantedDelegations: delegations }),\n addDelegation: (delegation) =>\n set((state) => ({ delegations: [...state.delegations, delegation] })),\n removeDelegation: (delegationId) =>\n set((state) => ({\n delegations: state.delegations.filter((d) => d.id !== delegationId),\n grantedDelegations: state.grantedDelegations.filter(\n (d) => d.id !== delegationId,\n ),\n })),\n\n reset: () =>\n set({\n selectedOrganization: null,\n selectedApplication: null,\n selectedOAuthClient: null,\n selectedApiKey: null,\n selectedWebhook: null,\n organizations: [],\n applications: [],\n authApps: [],\n currentAuthApp: null,\n authApiKeys: [],\n delegations: [],\n grantedDelegations: [],\n applicationFilter: initialApplicationFilter,\n isCreatingApp: false,\n isCreatingOrg: false,\n isCreatingOAuthClient: false,\n isCreatingApiKey: false,\n isCreatingWebhook: false,\n }),\n}));\n"],"mappings":"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"}
1
+ {"version":3,"file":"devportalStore.js","names":["initialApplicationFilter","useDevportalStore","create","set","org","app","client","key","webhook","orgs","apps","state","filter","value","collapsed","a","appId","keys","k","keyId","delegations","delegation","d","delegationId"],"sources":["../../../src/devportal/store/devportalStore.ts"],"sourcesContent":["import { create } from \"zustand\";\nimport type {\n Application,\n DeveloperOrganization,\n OAuthClient,\n ApiKey,\n Webhook,\n ApplicationFilter,\n AppUserDelegation,\n AuthApp,\n AuthApiKey,\n} from \"../types\";\n\n/**\n * Developer Portal store state\n */\ninterface DevportalState {\n // Current selections\n selectedOrganization: DeveloperOrganization | null;\n selectedApplication: Application | null;\n selectedOAuthClient: OAuthClient | null;\n selectedApiKey: ApiKey | null;\n selectedWebhook: Webhook | null;\n\n // Data caches\n organizations: DeveloperOrganization[];\n applications: Application[];\n\n // Auth-layer data (from auth-svc)\n authApps: AuthApp[];\n currentAuthApp: AuthApp | null;\n authApiKeys: AuthApiKey[];\n delegations: AppUserDelegation[];\n grantedDelegations: AppUserDelegation[];\n\n // UI state\n applicationFilter: ApplicationFilter;\n isCreatingApp: boolean;\n isCreatingOrg: boolean;\n isCreatingOAuthClient: boolean;\n isCreatingApiKey: boolean;\n isCreatingWebhook: boolean;\n\n // Sidebar state\n sidebarCollapsed: boolean;\n\n // Actions\n setSelectedOrganization: (org: DeveloperOrganization | null) => void;\n setSelectedApplication: (app: Application | null) => void;\n setSelectedOAuthClient: (client: OAuthClient | null) => void;\n setSelectedApiKey: (key: ApiKey | null) => void;\n setSelectedWebhook: (webhook: Webhook | null) => void;\n setOrganizations: (orgs: DeveloperOrganization[]) => void;\n setApplications: (apps: Application[]) => void;\n setApplicationFilter: (filter: Partial<ApplicationFilter>) => void;\n resetApplicationFilter: () => void;\n setIsCreatingApp: (value: boolean) => void;\n setIsCreatingOrg: (value: boolean) => void;\n setIsCreatingOAuthClient: (value: boolean) => void;\n setIsCreatingApiKey: (value: boolean) => void;\n setIsCreatingWebhook: (value: boolean) => void;\n setSidebarCollapsed: (collapsed: boolean) => void;\n toggleSidebar: () => void;\n\n // Auth-layer actions\n setAuthApps: (apps: AuthApp[]) => void;\n setCurrentAuthApp: (app: AuthApp | null) => void;\n addAuthApp: (app: AuthApp) => void;\n updateAuthApp: (app: AuthApp) => void;\n removeAuthApp: (appId: string) => void;\n setAuthApiKeys: (keys: AuthApiKey[]) => void;\n removeAuthApiKey: (keyId: string) => void;\n setDelegations: (delegations: AppUserDelegation[]) => void;\n setGrantedDelegations: (delegations: AppUserDelegation[]) => void;\n addDelegation: (delegation: AppUserDelegation) => void;\n removeDelegation: (delegationId: string) => void;\n\n reset: () => void;\n}\n\nconst initialApplicationFilter: ApplicationFilter = {\n search: \"\",\n status: undefined,\n visibility: undefined,\n appType: undefined,\n organizationId: undefined,\n isFeatured: undefined,\n};\n\n/**\n * Developer Portal Zustand store\n */\nexport const useDevportalStore = create<DevportalState>((set) => ({\n // Initial state\n selectedOrganization: null,\n selectedApplication: null,\n selectedOAuthClient: null,\n selectedApiKey: null,\n selectedWebhook: null,\n organizations: [],\n applications: [],\n authApps: [],\n currentAuthApp: null,\n authApiKeys: [],\n delegations: [],\n grantedDelegations: [],\n applicationFilter: initialApplicationFilter,\n isCreatingApp: false,\n isCreatingOrg: false,\n isCreatingOAuthClient: false,\n isCreatingApiKey: false,\n isCreatingWebhook: false,\n sidebarCollapsed: false,\n\n // Actions\n setSelectedOrganization: (org) => set({ selectedOrganization: org }),\n setSelectedApplication: (app) => set({ selectedApplication: app }),\n setSelectedOAuthClient: (client) => set({ selectedOAuthClient: client }),\n setSelectedApiKey: (key) => set({ selectedApiKey: key }),\n setSelectedWebhook: (webhook) => set({ selectedWebhook: webhook }),\n setOrganizations: (orgs) => set({ organizations: orgs }),\n setApplications: (apps) => set({ applications: apps }),\n setApplicationFilter: (filter) =>\n set((state) => ({\n applicationFilter: { ...state.applicationFilter, ...filter },\n })),\n resetApplicationFilter: () =>\n set({ applicationFilter: initialApplicationFilter }),\n setIsCreatingApp: (value) => set({ isCreatingApp: value }),\n setIsCreatingOrg: (value) => set({ isCreatingOrg: value }),\n setIsCreatingOAuthClient: (value) => set({ isCreatingOAuthClient: value }),\n setIsCreatingApiKey: (value) => set({ isCreatingApiKey: value }),\n setIsCreatingWebhook: (value) => set({ isCreatingWebhook: value }),\n setSidebarCollapsed: (collapsed) => set({ sidebarCollapsed: collapsed }),\n toggleSidebar: () =>\n set((state) => ({ sidebarCollapsed: !state.sidebarCollapsed })),\n\n // Auth-layer actions\n setAuthApps: (apps) => set({ authApps: apps }),\n setCurrentAuthApp: (app) => set({ currentAuthApp: app }),\n addAuthApp: (app) => set((state) => ({ authApps: [...state.authApps, app] })),\n updateAuthApp: (app) =>\n set((state) => ({\n authApps: state.authApps.map((a) => (a.id === app.id ? app : a)),\n currentAuthApp:\n state.currentAuthApp?.id === app.id ? app : state.currentAuthApp,\n })),\n removeAuthApp: (appId) =>\n set((state) => ({\n authApps: state.authApps.filter((a) => a.id !== appId),\n currentAuthApp:\n state.currentAuthApp?.id === appId ? null : state.currentAuthApp,\n })),\n setAuthApiKeys: (keys) => set({ authApiKeys: keys }),\n removeAuthApiKey: (keyId) =>\n set((state) => ({\n authApiKeys: state.authApiKeys.filter((k) => k.id !== keyId),\n })),\n setDelegations: (delegations) => set({ delegations }),\n setGrantedDelegations: (delegations) =>\n set({ grantedDelegations: delegations }),\n addDelegation: (delegation) =>\n set((state) => ({ delegations: [...state.delegations, delegation] })),\n removeDelegation: (delegationId) =>\n set((state) => ({\n delegations: state.delegations.filter((d) => d.id !== delegationId),\n grantedDelegations: state.grantedDelegations.filter(\n (d) => d.id !== delegationId,\n ),\n })),\n\n reset: () =>\n set({\n selectedOrganization: null,\n selectedApplication: null,\n selectedOAuthClient: null,\n selectedApiKey: null,\n selectedWebhook: null,\n organizations: [],\n applications: [],\n authApps: [],\n currentAuthApp: null,\n authApiKeys: [],\n delegations: [],\n grantedDelegations: [],\n applicationFilter: initialApplicationFilter,\n isCreatingApp: false,\n isCreatingOrg: false,\n isCreatingOAuthClient: false,\n isCreatingApiKey: false,\n isCreatingWebhook: false,\n }),\n}));\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { ReactNode } from 'react';
2
-
3
2
  /**
4
3
  * Navigation item for shell integration
5
4
  */
@@ -718,4 +717,3 @@ export declare const AVAILABLE_SCOPES: readonly [{
718
717
  readonly category: "Access";
719
718
  }];
720
719
  export type AvailableScope = (typeof AVAILABLE_SCOPES)[number]["scope"];
721
- //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- //#region src/devportal/types/index.ts
1
+ // src/devportal/types/index.ts
2
2
  var e = /* @__PURE__ */ "application.created,application.updated,application.deleted,application.published,application.unpublished,application.suspended,installation.created,installation.updated,installation.deleted,user.created,user.updated,user.deleted,workspace.created,workspace.updated,workspace.deleted,project.created,project.updated,project.deleted,task.created,task.updated,task.deleted,task.completed,comment.created,comment.updated,comment.deleted,file.uploaded,file.deleted,member.added,member.removed,member.role_changed".split(","), t = [
3
3
  {
4
4
  scope: "user:read",
@@ -101,7 +101,6 @@ var e = /* @__PURE__ */ "application.created,application.updated,application.del
101
101
  category: "Access"
102
102
  }
103
103
  ];
104
- //#endregion
105
104
  export { t as AVAILABLE_SCOPES, e as WEBHOOK_EVENTS };
106
105
 
107
106
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/devportal/types/index.ts"],"sourcesContent":["/**\n * Developer Portal Types\n *\n * Core type definitions for the Developer Portal microfrontend\n */\n\nimport type { ReactNode } from \"react\";\n\n// =============================================================================\n// NAVIGATION TYPES\n// =============================================================================\n\n/**\n * Navigation item for shell integration\n */\nexport interface NavItem {\n id: string;\n label: string;\n path: string;\n icon?: ReactNode;\n badge?: number;\n order?: number;\n group?: string;\n visible?: boolean;\n children?: NavItem[];\n}\n\n/**\n * Footer item for shell integration\n */\nexport interface FooterItem {\n id: string;\n label: string;\n type: \"status\" | \"action\";\n order?: number;\n section: \"left\" | \"center\" | \"right\";\n}\n\n// =============================================================================\n// ROOT PROPS\n// =============================================================================\n\n/**\n * Props for the DevportalRoot component\n */\nexport interface DevportalRootProps {\n /**\n * Base path for the devportal microfrontend\n */\n basePath?: string;\n\n /**\n * Slug of the platform product hosting this devportal instance (e.g.\n * \"healthybowl\", \"vibecontrols\"). Optional — when a host shell doesn't\n * pass it, product-scoped behavior (like tagging a seller-portal physical\n * item's compatibleProducts) simply stays inert for that shell, matching\n * today's behavior. Never hardcode a specific product's slug in this\n * package; read it from this prop instead.\n */\n productId?: string;\n\n /**\n * Tenant ID for scoping operations\n */\n tenantId?: string;\n\n /**\n * Workspace ID (optional, for workspace-scoped features)\n */\n workspaceId?: string;\n\n /**\n * API Gateway URL for GraphQL requests (global gateway)\n */\n apiGatewayUrl?: string;\n\n /**\n * Workspace gateway URL for workspace-layer operations (e.g. wspace-files-svc uploads)\n * e.g. \"https://graphqlworkspaces.burdenoff.com\" or \"http://localhost:4003\"\n */\n workspacesGatewayUrl?: string;\n\n /**\n * Authentication token for API requests\n */\n authToken?: string;\n\n /**\n * Workspace authentication token for workspace-gateway requests (X-Workspace-Authorization).\n * May be a cached/stale value — use getWorkspaceToken() for upload flows that need a fresh token.\n */\n workspaceToken?: string;\n\n /**\n * Async getter that always returns a valid (non-expired) workspace token.\n * Call this instead of reading workspaceToken directly for workspace-layer mutations.\n */\n getWorkspaceToken?: () => Promise<string | null>;\n\n /**\n * Navigation function provided by the shell\n */\n navigate?: (path: string) => void;\n\n /**\n * Current user information\n */\n currentUser?: {\n id: string;\n email: string;\n firstName?: string;\n lastName?: string;\n avatar?: string;\n };\n\n /**\n * Optional function to register navigation items with the shell\n */\n registerNavItems?: (items: NavItem | NavItem[]) => () => void;\n\n /**\n * Optional function to register footer items with the shell\n */\n registerFooterItems?: (items: FooterItem | FooterItem[]) => () => void;\n\n /**\n * Optional callback when an application is selected\n */\n onApplicationSelect?: (app: Application) => void;\n\n /**\n * Optional callback when an organization is selected\n */\n onOrganizationSelect?: (org: DeveloperOrganization) => void;\n}\n\n// =============================================================================\n// APPLICATION TYPES\n// =============================================================================\n\nexport type AppType =\n | \"WEB_APP\"\n | \"MOBILE_APP\"\n | \"DESKTOP_APP\"\n | \"CLI_TOOL\"\n | \"API_INTEGRATION\"\n | \"WORKFLOW\"\n | \"AUTOMATION\"\n | \"WIDGET\"\n | \"BOT\"\n | \"SERVICE\"\n | \"INTEGRATION\"\n | \"ANALYST\"\n | \"ASSISTANT\"\n | \"SPECIALIST\"\n | \"NODE\"\n | \"VIBEMODULE\"\n | \"CONSOLE\"\n | \"DASHBOARD\"\n | \"PARSER\"\n | \"DATASINK\";\n\nexport type AppStatus =\n | \"DRAFT\"\n | \"SUBMITTED\"\n | \"IN_REVIEW\"\n | \"APPROVED\"\n | \"PUBLISHED\"\n | \"UNLISTED\"\n | \"REJECTED\"\n | \"SUSPENDED\"\n | \"DEPRECATED\"\n | \"ACTIVE\"\n | \"INACTIVE\"\n | \"REVOKED\";\n\nexport type AppVisibility = \"PUBLIC\" | \"PRIVATE\" | \"UNLISTED\" | \"INTERNAL\";\n\nexport type AppSubmissionReviewStatus =\n | \"PENDING\"\n | \"IN_PROGRESS\"\n | \"APPROVED\"\n | \"REJECTED\"\n | \"CHANGES_REQUESTED\";\n\nexport interface Application {\n id: string;\n name: string;\n slug: string;\n shortDescription?: string;\n description?: string;\n appType: AppType;\n status: AppStatus;\n visibility: AppVisibility;\n tenantId: string;\n developerId: string;\n developerOrganizationId?: string;\n developerOrganization?: DeveloperOrganization;\n category?: string;\n tags: string[];\n keywords: string[];\n iconUrl?: string;\n bannerUrl?: string;\n videoUrl?: string;\n screenshots?: Record<string, unknown>;\n websiteUrl?: string;\n documentationUrl?: string;\n supportUrl?: string;\n privacyPolicyUrl?: string;\n termsOfServiceUrl?: string;\n githubUrl?: string;\n pricingType?: string;\n pricingDetails?: Record<string, unknown>;\n installCount: number;\n activeInstallCount: number;\n averageRating?: number;\n reviewCount: number;\n submittedAt?: string;\n publishedAt?: string;\n lastReviewedAt?: string;\n reviewStatus: AppSubmissionReviewStatus;\n reviewNotes?: string;\n reviewedBy?: string;\n isFeatured: boolean;\n isVerified: boolean;\n requiresApproval: boolean;\n manifest?: Record<string, unknown>;\n config?: Record<string, unknown>;\n metadata?: Record<string, unknown>;\n appId?: string;\n oauthAuthUrl?: string;\n oauthRevokeUrl?: string;\n createdAt: string;\n updatedAt: string;\n versions?: ApplicationVersion[];\n oauthClients?: OAuthClient[];\n apiKeys?: ApiKey[];\n webhooks?: Webhook[];\n scopes?: ApplicationScope[];\n}\n\nexport interface ApplicationVersion {\n id: string;\n applicationId: string;\n version: string;\n releaseNotes?: string;\n changelog?: string;\n status: string;\n isLatest: boolean;\n isStable: boolean;\n packageUrl?: string;\n packageSize?: string;\n packageHash?: string;\n manifest?: Record<string, unknown>;\n minPlatformVersion?: string;\n maxPlatformVersion?: string;\n requiredScopes: string[];\n publishedAt?: string;\n deprecatedAt?: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ApplicationScope {\n id: string;\n applicationId: string;\n scope: string;\n description?: string;\n isRequired: boolean;\n createdAt: string;\n}\n\n// =============================================================================\n// OAUTH TYPES\n// =============================================================================\n\nexport type OAuthClientType = \"PUBLIC\" | \"CONFIDENTIAL\";\n\nexport type OAuthGrantType =\n | \"AUTHORIZATION_CODE\"\n | \"REFRESH_TOKEN\"\n | \"CLIENT_CREDENTIALS\"\n | \"IMPLICIT\"\n | \"PASSWORD\";\n\nexport interface OAuthClient {\n id: string;\n applicationId: string;\n name: string;\n clientId: string;\n clientSecret: string;\n clientType: OAuthClientType;\n redirectUris: string[];\n allowedGrantTypes: OAuthGrantType[];\n allowedScopes: string[];\n accessTokenLifetime: number;\n refreshTokenLifetime: number;\n isActive: boolean;\n requirePKCE: boolean;\n requireConsent: boolean;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface OAuthToken {\n id: string;\n clientId: string;\n userId: string;\n tenantId: string;\n workspaceId?: string;\n accessToken: string;\n refreshToken?: string;\n tokenType: string;\n scopes: string[];\n expiresAt: string;\n refreshExpiresAt?: string;\n isRevoked: boolean;\n revokedAt?: string;\n createdAt: string;\n lastUsedAt?: string;\n}\n\n// =============================================================================\n// API KEY TYPES\n// =============================================================================\n\nexport type ApiKeyType = \"PUBLISHABLE\" | \"SECRET\" | \"RESTRICTED\";\n\nexport interface ApiKey {\n id: string;\n applicationId: string;\n name: string;\n description?: string;\n keyId: string;\n keyHash?: string; // Hash is not always returned by API for security\n keyPrefix: string;\n keyType: ApiKeyType;\n scopes: string[];\n permissions?: Record<string, unknown>;\n rateLimit?: number;\n quotaLimit?: number;\n quotaUsed: number;\n quotaResetAt?: string;\n allowedIps: string[];\n allowedDomains: string[];\n environment?: string;\n isActive: boolean;\n isRevoked: boolean;\n createdAt: string;\n lastUsedAt?: string;\n expiresAt?: string;\n revokedAt?: string;\n}\n\nexport interface ApiKeyPayload {\n apiKey: ApiKey;\n plainTextKey: string;\n}\n\n// =============================================================================\n// WEBHOOK TYPES\n// =============================================================================\n\nexport type WebhookStatus = \"ACTIVE\" | \"PAUSED\" | \"FAILED\" | \"DISABLED\";\n\nexport type WebhookDeliveryStatus =\n | \"PENDING\"\n | \"DELIVERING\"\n | \"DELIVERED\"\n | \"FAILED\"\n | \"RETRYING\";\n\nexport interface Webhook {\n id: string;\n applicationId: string;\n name: string;\n description?: string;\n url: string;\n secret?: string;\n events: string[];\n filters?: Record<string, unknown>;\n retryEnabled: boolean;\n maxRetries: number;\n retryDelay: number;\n status: WebhookStatus;\n isActive: boolean;\n successCount: number;\n failureCount: number;\n lastTriggeredAt?: string;\n lastSuccessAt?: string;\n lastFailureAt?: string;\n lastFailureReason?: string;\n createdAt: string;\n updatedAt: string;\n deliveries?: WebhookDelivery[];\n}\n\nexport interface WebhookDelivery {\n id: string;\n webhookId: string;\n eventType: string;\n eventId: string;\n payload: Record<string, unknown>;\n attemptNumber: number;\n status: WebhookDeliveryStatus;\n requestHeaders?: Record<string, unknown>;\n requestBody?: Record<string, unknown>;\n responseStatus?: number;\n responseHeaders?: Record<string, unknown>;\n responseBody?: string;\n deliveredAt?: string;\n failedAt?: string;\n nextRetryAt?: string;\n errorMessage?: string;\n errorCode?: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface WebhookTestResult {\n success: boolean;\n statusCode?: number;\n response?: string;\n error?: string;\n}\n\n// =============================================================================\n// DEVELOPER ORGANIZATION TYPES\n// =============================================================================\n\nexport type DeveloperOrgRole = \"OWNER\" | \"ADMIN\" | \"DEVELOPER\" | \"VIEWER\";\n\nexport type DeveloperOrgTier =\n | \"FREE\"\n | \"DEVELOPER\"\n | \"PROFESSIONAL\"\n | \"ENTERPRISE\";\n\nexport type PartnerTier = \"REGISTERED\" | \"SELECT\" | \"PREMIER\";\n\nexport type InvitationStatus =\n | \"PENDING\"\n | \"ACCEPTED\"\n | \"REJECTED\"\n | \"EXPIRED\"\n | \"CANCELLED\";\n\nexport interface DeveloperOrganization {\n id: string;\n name: string;\n slug: string;\n kind?: \"DIGITAL\" | \"PHYSICAL\";\n description?: string;\n logoUrl?: string;\n bannerUrl?: string;\n websiteUrl?: string;\n contactEmail?: string;\n supportEmail?: string;\n tier: DeveloperOrgTier;\n partnerTier?: PartnerTier;\n partnerSince?: string;\n isVerified: boolean;\n verifiedAt?: string;\n verificationMethod?: string;\n verificationRequestedAt?: string;\n verificationStatus?: \"UNVERIFIED\" | \"PENDING\" | \"VERIFIED\" | \"REJECTED\";\n verificationRequestNotes?: string;\n verificationEvidenceUrl?: string;\n verificationDomain?: string;\n verificationRequestedBy?: string;\n verificationReviewedAt?: string;\n verificationReviewedBy?: string;\n verificationReviewNotes?: string;\n verificationRejectedReason?: string;\n isCertified: boolean;\n certifiedAt?: string;\n certificationExpiry?: string;\n totalApps: number;\n publishedApps: number;\n totalInstalls: number;\n activeInstalls: number;\n totalApiCalls: string;\n averageRating?: number;\n totalRevenue: number;\n totalPlatformFees: number;\n totalPayouts: number;\n pendingBalance: number;\n lifetimeRevenue: number;\n platformFeeRate: number;\n apiCallsLimit: number;\n storageLimit: string;\n apiCallsUsed: string;\n storageUsed: string;\n quotaResetAt?: string;\n taxId?: string;\n taxCountry?: string;\n taxFormType?: string;\n taxFormVerified: boolean;\n legalEntityName?: string;\n legalEntityType?: string;\n legalAddress?: Record<string, unknown>;\n settings?: Record<string, unknown>;\n billingAccountId?: string;\n billingLinkedAt?: string;\n pickupPostalCode?: string;\n createdAt: string;\n updatedAt: string;\n members?: DeveloperOrgMember[];\n invitations?: DeveloperOrgInvitation[];\n applications?: Application[];\n}\n\nexport interface DeveloperOrgMember {\n id: string;\n organizationId: string;\n userId: string;\n email?: string;\n role: DeveloperOrgRole;\n permissions?: Record<string, unknown>;\n invitedBy?: string;\n invitationId?: string;\n isActive: boolean;\n isSuspended: boolean;\n suspendedAt?: string;\n suspendedReason?: string;\n joinedAt: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface DeveloperOrgInvitation {\n id: string;\n organizationId: string;\n invitedUserId?: string;\n invitedEmail: string;\n role: DeveloperOrgRole;\n permissions?: Record<string, unknown>;\n invitedBy: string;\n message?: string;\n token: string;\n status: InvitationStatus;\n expiresAt: string;\n respondedAt?: string;\n memberId?: string;\n createdAt: string;\n updatedAt: string;\n}\n\n// =============================================================================\n// ANALYTICS TYPES (MOCKED)\n// =============================================================================\n\nexport interface ApplicationAnalytics {\n id: string;\n applicationId: string;\n date: string;\n period: string;\n activeUsers: number;\n newUsers: number;\n apiCalls: number;\n errors: number;\n avgResponseTime?: number;\n sessions: number;\n avgSessionDuration?: number;\n createdAt: string;\n}\n\nexport interface DeveloperOrgRevenueAnalytics {\n id: string;\n organizationId: string;\n period: string;\n periodStart: string;\n periodEnd: string;\n grossRevenue: number;\n platformFees: number;\n netRevenue: number;\n salesCount: number;\n refundsCount: number;\n refundsAmount: number;\n newSubscribers: number;\n churnedSubscribers: number;\n activeSubscribers: number;\n avgRevenuePerUser: number;\n topApps?: Array<{ appId: string; revenue: number }>;\n createdAt: string;\n}\n\n// =============================================================================\n// MONETIZATION TYPES (MOCKED)\n// =============================================================================\n\nexport type DevPortalPricingModel =\n | \"FREE\"\n | \"FREEMIUM\"\n | \"SUBSCRIPTION\"\n | \"ONE_TIME\"\n | \"USAGE_BASED\"\n | \"ENTERPRISE\";\n\nexport type SaleStatus =\n | \"PENDING\"\n | \"COMPLETED\"\n | \"REFUNDED\"\n | \"PARTIAL_REFUND\"\n | \"DISPUTED\"\n | \"CHARGEBACK\"\n | \"CANCELLED\";\n\nexport type PayoutStatus =\n | \"PENDING\"\n | \"PROCESSING\"\n | \"COMPLETED\"\n | \"FAILED\"\n | \"CANCELLED\";\n\nexport interface DeveloperOrgSale {\n id: string;\n organizationId: string;\n applicationId: string;\n buyerUserId: string;\n buyerTenantId?: string;\n installationScope: string;\n pricingModel: DevPortalPricingModel;\n planName?: string;\n grossAmount: number;\n platformFeeRate: number;\n platformFee: number;\n netAmount: number;\n currency: string;\n taxAmount?: number;\n discountAmount?: number;\n status: SaleStatus;\n createdAt: string;\n}\n\nexport interface DeveloperOrgPayout {\n id: string;\n organizationId: string;\n periodStart: string;\n periodEnd: string;\n grossAmount: number;\n platformFees: number;\n netAmount: number;\n currency: string;\n status: PayoutStatus;\n processedAt?: string;\n failedAt?: string;\n failureReason?: string;\n createdAt: string;\n}\n\n// =============================================================================\n// APP INSTALLATION TYPES\n// =============================================================================\n\nexport type AppInstallationStatus =\n | \"ACTIVE\"\n | \"SUSPENDED\"\n | \"TRIAL\"\n | \"EXPIRED\"\n | \"UNINSTALLED\";\n\nexport interface AppInstallation {\n id: string;\n applicationId: string;\n userId: string;\n tenantId?: string;\n workspaceId?: string;\n organizationId?: string;\n scope: string;\n installedVersion: string;\n status: AppInstallationStatus;\n grantedScopes: string[];\n settings?: Record<string, unknown>;\n installedAt: string;\n updatedAt: string;\n}\n\n// =============================================================================\n// REVIEW TYPES\n// =============================================================================\n\nexport type ReviewStatus =\n | \"PENDING\"\n | \"PUBLISHED\"\n | \"HIDDEN\"\n | \"FLAGGED\"\n | \"REMOVED\";\n\nexport interface AppReview {\n id: string;\n applicationId: string;\n userId: string;\n rating: number;\n title?: string;\n body?: string;\n status: ReviewStatus;\n isFeatured: boolean;\n helpfulCount: number;\n notHelpfulCount: number;\n developerResponse?: string;\n developerResponseAt?: string;\n createdAt: string;\n updatedAt: string;\n}\n\n// =============================================================================\n// DELEGATION TYPES\n// =============================================================================\n\nexport type DelegationStatus = \"ACTIVE\" | \"REVOKED\" | \"EXPIRED\";\n\nexport interface AppUserDelegation {\n id: string;\n appId: string;\n app?: {\n id: string;\n name: string;\n description?: string;\n type: string;\n status: string;\n };\n userId: string;\n scopes: string[];\n workspaceIds: string[];\n status: DelegationStatus;\n grantedAt: string;\n grantedBy: string;\n expiresAt?: string;\n revokedAt?: string;\n revokedBy?: string;\n}\n\nexport interface GrantDelegationInput {\n appId: string;\n userId?: string;\n workspaceIds: string[];\n scopes: string[];\n expiresAt?: string;\n}\n\n// =============================================================================\n// AUTH APP TYPES (from auth-svc layer)\n// =============================================================================\n\nexport type AuthAppType =\n | \"ANALYST\"\n | \"API_INTEGRATION\"\n | \"ASSISTANT\"\n | \"AUTOMATION\"\n | \"BOT\"\n | \"CLI_TOOL\"\n | \"DESKTOP_APP\"\n | \"INTEGRATION\"\n | \"MOBILE_APP\"\n | \"SERVICE\"\n | \"SPECIALIST\"\n | \"WEB_APP\"\n | \"WIDGET\"\n | \"WORKFLOW\";\nexport type AuthAppStatus = \"ACTIVE\" | \"INACTIVE\" | \"REVOKED\";\n\nexport interface AuthApp {\n id: string;\n name: string;\n description?: string;\n clientId: string;\n type: AuthAppType;\n status: AuthAppStatus;\n scopes: string[];\n redirectUris: string[];\n ownerUserId: string;\n tenantId: string;\n delegations?: AppUserDelegation[];\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface AuthAppCreateResponse {\n app: AuthApp;\n clientSecret: string;\n}\n\nexport interface CreateAuthAppInput {\n name: string;\n description?: string;\n type: AuthAppType;\n scopes: string[];\n redirectUris?: string[];\n tenantId?: string;\n}\n\nexport interface UpdateAuthAppInput {\n name?: string;\n description?: string;\n scopes?: string[];\n redirectUris?: string[];\n}\n\n// =============================================================================\n// AUTH API KEY TYPES (from auth-svc layer)\n// =============================================================================\n\nexport interface AuthApiKey {\n id: string;\n name: string;\n prefix: string;\n scopes: string[];\n appId: string;\n appName?: string;\n createdAt: string;\n expiresAt?: string;\n lastUsedAt?: string;\n}\n\nexport interface AuthApiKeyResult {\n apiKey: string;\n apiSecret: string;\n keyId: string;\n}\n\nexport interface AuthApiKeyRotateResult {\n apiSecret: string;\n}\n\nexport interface GenerateAuthApiKeyInput {\n appId: string;\n name: string;\n scope: string[];\n expiresAt?: string;\n}\n\n// =============================================================================\n// AUDIT LOG TYPES\n// =============================================================================\n\nexport interface AuditLog {\n id: string;\n actorId: string;\n actorType: string;\n tenantId: string;\n action: string;\n resource: string;\n resourceId?: string;\n changes?: Record<string, unknown>;\n ipAddress?: string;\n userAgent?: string;\n createdAt: string;\n}\n\n// =============================================================================\n// VIEW TYPES\n// =============================================================================\n\nexport type DevportalView =\n | \"dashboard\"\n | \"organizations\"\n | \"apps\"\n | \"oauth\"\n | \"api-keys\"\n | \"webhooks\"\n | \"delegations\"\n | \"analytics\"\n | \"revenue\"\n | \"docs\"\n | \"profile\"\n | \"settings\";\n\n// =============================================================================\n// FILTER TYPES\n// =============================================================================\n\nexport interface ApplicationFilter {\n search?: string;\n status?: AppStatus;\n visibility?: AppVisibility;\n appType?: AppType;\n organizationId?: string;\n isFeatured?: boolean;\n}\n\nexport interface WebhookFilter {\n status?: WebhookStatus;\n event?: string;\n}\n\n// =============================================================================\n// WEBHOOK EVENT TYPES\n// =============================================================================\n\nexport const WEBHOOK_EVENTS = [\n // Application events\n \"application.created\",\n \"application.updated\",\n \"application.deleted\",\n \"application.published\",\n \"application.unpublished\",\n \"application.suspended\",\n // Installation events\n \"installation.created\",\n \"installation.updated\",\n \"installation.deleted\",\n // User events\n \"user.created\",\n \"user.updated\",\n \"user.deleted\",\n // Workspace events\n \"workspace.created\",\n \"workspace.updated\",\n \"workspace.deleted\",\n // Project events\n \"project.created\",\n \"project.updated\",\n \"project.deleted\",\n // Task events\n \"task.created\",\n \"task.updated\",\n \"task.deleted\",\n \"task.completed\",\n // Comment events\n \"comment.created\",\n \"comment.updated\",\n \"comment.deleted\",\n // File events\n \"file.uploaded\",\n \"file.deleted\",\n // Member events\n \"member.added\",\n \"member.removed\",\n \"member.role_changed\",\n] as const;\n\nexport type WebhookEvent = (typeof WEBHOOK_EVENTS)[number];\n\n// =============================================================================\n// SCOPE DEFINITIONS\n// =============================================================================\n\nexport const AVAILABLE_SCOPES = [\n // User scopes\n {\n scope: \"user:read\",\n description: \"Read user profile information\",\n category: \"User\",\n },\n {\n scope: \"user:write\",\n description: \"Modify user profile information\",\n category: \"User\",\n },\n {\n scope: \"user:email\",\n description: \"Access user email address\",\n category: \"User\",\n },\n // Workspace scopes\n {\n scope: \"workspace:read\",\n description: \"Read workspace information\",\n category: \"Workspace\",\n },\n {\n scope: \"workspace:write\",\n description: \"Create and modify workspaces\",\n category: \"Workspace\",\n },\n {\n scope: \"workspace:delete\",\n description: \"Delete workspaces\",\n category: \"Workspace\",\n },\n {\n scope: \"workspace:members\",\n description: \"Manage workspace members\",\n category: \"Workspace\",\n },\n // Project scopes\n {\n scope: \"project:read\",\n description: \"Read project information\",\n category: \"Project\",\n },\n {\n scope: \"project:write\",\n description: \"Create and modify projects\",\n category: \"Project\",\n },\n {\n scope: \"project:delete\",\n description: \"Delete projects\",\n category: \"Project\",\n },\n // Task scopes\n { scope: \"task:read\", description: \"Read tasks\", category: \"Task\" },\n {\n scope: \"task:write\",\n description: \"Create and modify tasks\",\n category: \"Task\",\n },\n { scope: \"task:delete\", description: \"Delete tasks\", category: \"Task\" },\n // File scopes\n { scope: \"file:read\", description: \"Read files\", category: \"File\" },\n {\n scope: \"file:write\",\n description: \"Upload and modify files\",\n category: \"File\",\n },\n { scope: \"file:delete\", description: \"Delete files\", category: \"File\" },\n // Comment scopes\n { scope: \"comment:read\", description: \"Read comments\", category: \"Comment\" },\n {\n scope: \"comment:write\",\n description: \"Create and modify comments\",\n category: \"Comment\",\n },\n {\n scope: \"comment:delete\",\n description: \"Delete comments\",\n category: \"Comment\",\n },\n // Offline access\n {\n scope: \"offline_access\",\n description: \"Access data while user is offline\",\n category: \"Access\",\n },\n] as const;\n\nexport type AvailableScope = (typeof AVAILABLE_SCOPES)[number][\"scope\"];\n"],"mappings":";AA23BA,IAAa,IAAiB,yhBAwC7B,EAQY,IAAmB;CAE9B;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CAED;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CAED;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CAED;EAAE,OAAO;EAAa,aAAa;EAAc,UAAU;EAAQ;CACnE;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EAAE,OAAO;EAAe,aAAa;EAAgB,UAAU;EAAQ;CAEvE;EAAE,OAAO;EAAa,aAAa;EAAc,UAAU;EAAQ;CACnE;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EAAE,OAAO;EAAe,aAAa;EAAgB,UAAU;EAAQ;CAEvE;EAAE,OAAO;EAAgB,aAAa;EAAiB,UAAU;EAAW;CAC5E;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACD;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CAED;EACE,OAAO;EACP,aAAa;EACb,UAAU;EACX;CACF"}
1
+ {"version":3,"file":"index.js","names":["WEBHOOK_EVENTS","AVAILABLE_SCOPES"],"sources":["../../../src/devportal/types/index.ts"],"sourcesContent":["/**\n * Developer Portal Types\n *\n * Core type definitions for the Developer Portal microfrontend\n */\n\nimport type { ReactNode } from \"react\";\n\n// =============================================================================\n// NAVIGATION TYPES\n// =============================================================================\n\n/**\n * Navigation item for shell integration\n */\nexport interface NavItem {\n id: string;\n label: string;\n path: string;\n icon?: ReactNode;\n badge?: number;\n order?: number;\n group?: string;\n visible?: boolean;\n children?: NavItem[];\n}\n\n/**\n * Footer item for shell integration\n */\nexport interface FooterItem {\n id: string;\n label: string;\n type: \"status\" | \"action\";\n order?: number;\n section: \"left\" | \"center\" | \"right\";\n}\n\n// =============================================================================\n// ROOT PROPS\n// =============================================================================\n\n/**\n * Props for the DevportalRoot component\n */\nexport interface DevportalRootProps {\n /**\n * Base path for the devportal microfrontend\n */\n basePath?: string;\n\n /**\n * Slug of the platform product hosting this devportal instance (e.g.\n * \"healthybowl\", \"vibecontrols\"). Optional — when a host shell doesn't\n * pass it, product-scoped behavior (like tagging a seller-portal physical\n * item's compatibleProducts) simply stays inert for that shell, matching\n * today's behavior. Never hardcode a specific product's slug in this\n * package; read it from this prop instead.\n */\n productId?: string;\n\n /**\n * Tenant ID for scoping operations\n */\n tenantId?: string;\n\n /**\n * Workspace ID (optional, for workspace-scoped features)\n */\n workspaceId?: string;\n\n /**\n * API Gateway URL for GraphQL requests (global gateway)\n */\n apiGatewayUrl?: string;\n\n /**\n * Workspace gateway URL for workspace-layer operations (e.g. wspace-files-svc uploads)\n * e.g. \"https://graphqlworkspaces.burdenoff.com\" or \"http://localhost:4003\"\n */\n workspacesGatewayUrl?: string;\n\n /**\n * Authentication token for API requests\n */\n authToken?: string;\n\n /**\n * Workspace authentication token for workspace-gateway requests (X-Workspace-Authorization).\n * May be a cached/stale value — use getWorkspaceToken() for upload flows that need a fresh token.\n */\n workspaceToken?: string;\n\n /**\n * Async getter that always returns a valid (non-expired) workspace token.\n * Call this instead of reading workspaceToken directly for workspace-layer mutations.\n */\n getWorkspaceToken?: () => Promise<string | null>;\n\n /**\n * Navigation function provided by the shell\n */\n navigate?: (path: string) => void;\n\n /**\n * Current user information\n */\n currentUser?: {\n id: string;\n email: string;\n firstName?: string;\n lastName?: string;\n avatar?: string;\n };\n\n /**\n * Optional function to register navigation items with the shell\n */\n registerNavItems?: (items: NavItem | NavItem[]) => () => void;\n\n /**\n * Optional function to register footer items with the shell\n */\n registerFooterItems?: (items: FooterItem | FooterItem[]) => () => void;\n\n /**\n * Optional callback when an application is selected\n */\n onApplicationSelect?: (app: Application) => void;\n\n /**\n * Optional callback when an organization is selected\n */\n onOrganizationSelect?: (org: DeveloperOrganization) => void;\n}\n\n// =============================================================================\n// APPLICATION TYPES\n// =============================================================================\n\nexport type AppType =\n | \"WEB_APP\"\n | \"MOBILE_APP\"\n | \"DESKTOP_APP\"\n | \"CLI_TOOL\"\n | \"API_INTEGRATION\"\n | \"WORKFLOW\"\n | \"AUTOMATION\"\n | \"WIDGET\"\n | \"BOT\"\n | \"SERVICE\"\n | \"INTEGRATION\"\n | \"ANALYST\"\n | \"ASSISTANT\"\n | \"SPECIALIST\"\n | \"NODE\"\n | \"VIBEMODULE\"\n | \"CONSOLE\"\n | \"DASHBOARD\"\n | \"PARSER\"\n | \"DATASINK\";\n\nexport type AppStatus =\n | \"DRAFT\"\n | \"SUBMITTED\"\n | \"IN_REVIEW\"\n | \"APPROVED\"\n | \"PUBLISHED\"\n | \"UNLISTED\"\n | \"REJECTED\"\n | \"SUSPENDED\"\n | \"DEPRECATED\"\n | \"ACTIVE\"\n | \"INACTIVE\"\n | \"REVOKED\";\n\nexport type AppVisibility = \"PUBLIC\" | \"PRIVATE\" | \"UNLISTED\" | \"INTERNAL\";\n\nexport type AppSubmissionReviewStatus =\n \"PENDING\" | \"IN_PROGRESS\" | \"APPROVED\" | \"REJECTED\" | \"CHANGES_REQUESTED\";\n\nexport interface Application {\n id: string;\n name: string;\n slug: string;\n shortDescription?: string;\n description?: string;\n appType: AppType;\n status: AppStatus;\n visibility: AppVisibility;\n tenantId: string;\n developerId: string;\n developerOrganizationId?: string;\n developerOrganization?: DeveloperOrganization;\n category?: string;\n tags: string[];\n keywords: string[];\n iconUrl?: string;\n bannerUrl?: string;\n videoUrl?: string;\n screenshots?: Record<string, unknown>;\n websiteUrl?: string;\n documentationUrl?: string;\n supportUrl?: string;\n privacyPolicyUrl?: string;\n termsOfServiceUrl?: string;\n githubUrl?: string;\n pricingType?: string;\n pricingDetails?: Record<string, unknown>;\n installCount: number;\n activeInstallCount: number;\n averageRating?: number;\n reviewCount: number;\n submittedAt?: string;\n publishedAt?: string;\n lastReviewedAt?: string;\n reviewStatus: AppSubmissionReviewStatus;\n reviewNotes?: string;\n reviewedBy?: string;\n isFeatured: boolean;\n isVerified: boolean;\n requiresApproval: boolean;\n manifest?: Record<string, unknown>;\n config?: Record<string, unknown>;\n metadata?: Record<string, unknown>;\n appId?: string;\n oauthAuthUrl?: string;\n oauthRevokeUrl?: string;\n createdAt: string;\n updatedAt: string;\n versions?: ApplicationVersion[];\n oauthClients?: OAuthClient[];\n apiKeys?: ApiKey[];\n webhooks?: Webhook[];\n scopes?: ApplicationScope[];\n}\n\nexport interface ApplicationVersion {\n id: string;\n applicationId: string;\n version: string;\n releaseNotes?: string;\n changelog?: string;\n status: string;\n isLatest: boolean;\n isStable: boolean;\n packageUrl?: string;\n packageSize?: string;\n packageHash?: string;\n manifest?: Record<string, unknown>;\n minPlatformVersion?: string;\n maxPlatformVersion?: string;\n requiredScopes: string[];\n publishedAt?: string;\n deprecatedAt?: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface ApplicationScope {\n id: string;\n applicationId: string;\n scope: string;\n description?: string;\n isRequired: boolean;\n createdAt: string;\n}\n\n// =============================================================================\n// OAUTH TYPES\n// =============================================================================\n\nexport type OAuthClientType = \"PUBLIC\" | \"CONFIDENTIAL\";\n\nexport type OAuthGrantType =\n | \"AUTHORIZATION_CODE\"\n | \"REFRESH_TOKEN\"\n | \"CLIENT_CREDENTIALS\"\n | \"IMPLICIT\"\n | \"PASSWORD\";\n\nexport interface OAuthClient {\n id: string;\n applicationId: string;\n name: string;\n clientId: string;\n clientSecret: string;\n clientType: OAuthClientType;\n redirectUris: string[];\n allowedGrantTypes: OAuthGrantType[];\n allowedScopes: string[];\n accessTokenLifetime: number;\n refreshTokenLifetime: number;\n isActive: boolean;\n requirePKCE: boolean;\n requireConsent: boolean;\n metadata?: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface OAuthToken {\n id: string;\n clientId: string;\n userId: string;\n tenantId: string;\n workspaceId?: string;\n accessToken: string;\n refreshToken?: string;\n tokenType: string;\n scopes: string[];\n expiresAt: string;\n refreshExpiresAt?: string;\n isRevoked: boolean;\n revokedAt?: string;\n createdAt: string;\n lastUsedAt?: string;\n}\n\n// =============================================================================\n// API KEY TYPES\n// =============================================================================\n\nexport type ApiKeyType = \"PUBLISHABLE\" | \"SECRET\" | \"RESTRICTED\";\n\nexport interface ApiKey {\n id: string;\n applicationId: string;\n name: string;\n description?: string;\n keyId: string;\n keyHash?: string; // Hash is not always returned by API for security\n keyPrefix: string;\n keyType: ApiKeyType;\n scopes: string[];\n permissions?: Record<string, unknown>;\n rateLimit?: number;\n quotaLimit?: number;\n quotaUsed: number;\n quotaResetAt?: string;\n allowedIps: string[];\n allowedDomains: string[];\n environment?: string;\n isActive: boolean;\n isRevoked: boolean;\n createdAt: string;\n lastUsedAt?: string;\n expiresAt?: string;\n revokedAt?: string;\n}\n\nexport interface ApiKeyPayload {\n apiKey: ApiKey;\n plainTextKey: string;\n}\n\n// =============================================================================\n// WEBHOOK TYPES\n// =============================================================================\n\nexport type WebhookStatus = \"ACTIVE\" | \"PAUSED\" | \"FAILED\" | \"DISABLED\";\n\nexport type WebhookDeliveryStatus =\n \"PENDING\" | \"DELIVERING\" | \"DELIVERED\" | \"FAILED\" | \"RETRYING\";\n\nexport interface Webhook {\n id: string;\n applicationId: string;\n name: string;\n description?: string;\n url: string;\n secret?: string;\n events: string[];\n filters?: Record<string, unknown>;\n retryEnabled: boolean;\n maxRetries: number;\n retryDelay: number;\n status: WebhookStatus;\n isActive: boolean;\n successCount: number;\n failureCount: number;\n lastTriggeredAt?: string;\n lastSuccessAt?: string;\n lastFailureAt?: string;\n lastFailureReason?: string;\n createdAt: string;\n updatedAt: string;\n deliveries?: WebhookDelivery[];\n}\n\nexport interface WebhookDelivery {\n id: string;\n webhookId: string;\n eventType: string;\n eventId: string;\n payload: Record<string, unknown>;\n attemptNumber: number;\n status: WebhookDeliveryStatus;\n requestHeaders?: Record<string, unknown>;\n requestBody?: Record<string, unknown>;\n responseStatus?: number;\n responseHeaders?: Record<string, unknown>;\n responseBody?: string;\n deliveredAt?: string;\n failedAt?: string;\n nextRetryAt?: string;\n errorMessage?: string;\n errorCode?: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface WebhookTestResult {\n success: boolean;\n statusCode?: number;\n response?: string;\n error?: string;\n}\n\n// =============================================================================\n// DEVELOPER ORGANIZATION TYPES\n// =============================================================================\n\nexport type DeveloperOrgRole = \"OWNER\" | \"ADMIN\" | \"DEVELOPER\" | \"VIEWER\";\n\nexport type DeveloperOrgTier =\n \"FREE\" | \"DEVELOPER\" | \"PROFESSIONAL\" | \"ENTERPRISE\";\n\nexport type PartnerTier = \"REGISTERED\" | \"SELECT\" | \"PREMIER\";\n\nexport type InvitationStatus =\n \"PENDING\" | \"ACCEPTED\" | \"REJECTED\" | \"EXPIRED\" | \"CANCELLED\";\n\nexport interface DeveloperOrganization {\n id: string;\n name: string;\n slug: string;\n kind?: \"DIGITAL\" | \"PHYSICAL\";\n description?: string;\n logoUrl?: string;\n bannerUrl?: string;\n websiteUrl?: string;\n contactEmail?: string;\n supportEmail?: string;\n tier: DeveloperOrgTier;\n partnerTier?: PartnerTier;\n partnerSince?: string;\n isVerified: boolean;\n verifiedAt?: string;\n verificationMethod?: string;\n verificationRequestedAt?: string;\n verificationStatus?: \"UNVERIFIED\" | \"PENDING\" | \"VERIFIED\" | \"REJECTED\";\n verificationRequestNotes?: string;\n verificationEvidenceUrl?: string;\n verificationDomain?: string;\n verificationRequestedBy?: string;\n verificationReviewedAt?: string;\n verificationReviewedBy?: string;\n verificationReviewNotes?: string;\n verificationRejectedReason?: string;\n isCertified: boolean;\n certifiedAt?: string;\n certificationExpiry?: string;\n totalApps: number;\n publishedApps: number;\n totalInstalls: number;\n activeInstalls: number;\n totalApiCalls: string;\n averageRating?: number;\n totalRevenue: number;\n totalPlatformFees: number;\n totalPayouts: number;\n pendingBalance: number;\n lifetimeRevenue: number;\n platformFeeRate: number;\n apiCallsLimit: number;\n storageLimit: string;\n apiCallsUsed: string;\n storageUsed: string;\n quotaResetAt?: string;\n taxId?: string;\n taxCountry?: string;\n taxFormType?: string;\n taxFormVerified: boolean;\n legalEntityName?: string;\n legalEntityType?: string;\n legalAddress?: Record<string, unknown>;\n settings?: Record<string, unknown>;\n billingAccountId?: string;\n billingLinkedAt?: string;\n pickupPostalCode?: string;\n createdAt: string;\n updatedAt: string;\n members?: DeveloperOrgMember[];\n invitations?: DeveloperOrgInvitation[];\n applications?: Application[];\n}\n\nexport interface DeveloperOrgMember {\n id: string;\n organizationId: string;\n userId: string;\n email?: string;\n role: DeveloperOrgRole;\n permissions?: Record<string, unknown>;\n invitedBy?: string;\n invitationId?: string;\n isActive: boolean;\n isSuspended: boolean;\n suspendedAt?: string;\n suspendedReason?: string;\n joinedAt: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface DeveloperOrgInvitation {\n id: string;\n organizationId: string;\n invitedUserId?: string;\n invitedEmail: string;\n role: DeveloperOrgRole;\n permissions?: Record<string, unknown>;\n invitedBy: string;\n message?: string;\n token: string;\n status: InvitationStatus;\n expiresAt: string;\n respondedAt?: string;\n memberId?: string;\n createdAt: string;\n updatedAt: string;\n}\n\n// =============================================================================\n// ANALYTICS TYPES (MOCKED)\n// =============================================================================\n\nexport interface ApplicationAnalytics {\n id: string;\n applicationId: string;\n date: string;\n period: string;\n activeUsers: number;\n newUsers: number;\n apiCalls: number;\n errors: number;\n avgResponseTime?: number;\n sessions: number;\n avgSessionDuration?: number;\n createdAt: string;\n}\n\nexport interface DeveloperOrgRevenueAnalytics {\n id: string;\n organizationId: string;\n period: string;\n periodStart: string;\n periodEnd: string;\n grossRevenue: number;\n platformFees: number;\n netRevenue: number;\n salesCount: number;\n refundsCount: number;\n refundsAmount: number;\n newSubscribers: number;\n churnedSubscribers: number;\n activeSubscribers: number;\n avgRevenuePerUser: number;\n topApps?: Array<{ appId: string; revenue: number }>;\n createdAt: string;\n}\n\n// =============================================================================\n// MONETIZATION TYPES (MOCKED)\n// =============================================================================\n\nexport type DevPortalPricingModel =\n | \"FREE\"\n | \"FREEMIUM\"\n | \"SUBSCRIPTION\"\n | \"ONE_TIME\"\n | \"USAGE_BASED\"\n | \"ENTERPRISE\";\n\nexport type SaleStatus =\n | \"PENDING\"\n | \"COMPLETED\"\n | \"REFUNDED\"\n | \"PARTIAL_REFUND\"\n | \"DISPUTED\"\n | \"CHARGEBACK\"\n | \"CANCELLED\";\n\nexport type PayoutStatus =\n \"PENDING\" | \"PROCESSING\" | \"COMPLETED\" | \"FAILED\" | \"CANCELLED\";\n\nexport interface DeveloperOrgSale {\n id: string;\n organizationId: string;\n applicationId: string;\n buyerUserId: string;\n buyerTenantId?: string;\n installationScope: string;\n pricingModel: DevPortalPricingModel;\n planName?: string;\n grossAmount: number;\n platformFeeRate: number;\n platformFee: number;\n netAmount: number;\n currency: string;\n taxAmount?: number;\n discountAmount?: number;\n status: SaleStatus;\n createdAt: string;\n}\n\nexport interface DeveloperOrgPayout {\n id: string;\n organizationId: string;\n periodStart: string;\n periodEnd: string;\n grossAmount: number;\n platformFees: number;\n netAmount: number;\n currency: string;\n status: PayoutStatus;\n processedAt?: string;\n failedAt?: string;\n failureReason?: string;\n createdAt: string;\n}\n\n// =============================================================================\n// APP INSTALLATION TYPES\n// =============================================================================\n\nexport type AppInstallationStatus =\n \"ACTIVE\" | \"SUSPENDED\" | \"TRIAL\" | \"EXPIRED\" | \"UNINSTALLED\";\n\nexport interface AppInstallation {\n id: string;\n applicationId: string;\n userId: string;\n tenantId?: string;\n workspaceId?: string;\n organizationId?: string;\n scope: string;\n installedVersion: string;\n status: AppInstallationStatus;\n grantedScopes: string[];\n settings?: Record<string, unknown>;\n installedAt: string;\n updatedAt: string;\n}\n\n// =============================================================================\n// REVIEW TYPES\n// =============================================================================\n\nexport type ReviewStatus =\n \"PENDING\" | \"PUBLISHED\" | \"HIDDEN\" | \"FLAGGED\" | \"REMOVED\";\n\nexport interface AppReview {\n id: string;\n applicationId: string;\n userId: string;\n rating: number;\n title?: string;\n body?: string;\n status: ReviewStatus;\n isFeatured: boolean;\n helpfulCount: number;\n notHelpfulCount: number;\n developerResponse?: string;\n developerResponseAt?: string;\n createdAt: string;\n updatedAt: string;\n}\n\n// =============================================================================\n// DELEGATION TYPES\n// =============================================================================\n\nexport type DelegationStatus = \"ACTIVE\" | \"REVOKED\" | \"EXPIRED\";\n\nexport interface AppUserDelegation {\n id: string;\n appId: string;\n app?: {\n id: string;\n name: string;\n description?: string;\n type: string;\n status: string;\n };\n userId: string;\n scopes: string[];\n workspaceIds: string[];\n status: DelegationStatus;\n grantedAt: string;\n grantedBy: string;\n expiresAt?: string;\n revokedAt?: string;\n revokedBy?: string;\n}\n\nexport interface GrantDelegationInput {\n appId: string;\n userId?: string;\n workspaceIds: string[];\n scopes: string[];\n expiresAt?: string;\n}\n\n// =============================================================================\n// AUTH APP TYPES (from auth-svc layer)\n// =============================================================================\n\nexport type AuthAppType =\n | \"ANALYST\"\n | \"API_INTEGRATION\"\n | \"ASSISTANT\"\n | \"AUTOMATION\"\n | \"BOT\"\n | \"CLI_TOOL\"\n | \"DESKTOP_APP\"\n | \"INTEGRATION\"\n | \"MOBILE_APP\"\n | \"SERVICE\"\n | \"SPECIALIST\"\n | \"WEB_APP\"\n | \"WIDGET\"\n | \"WORKFLOW\";\nexport type AuthAppStatus = \"ACTIVE\" | \"INACTIVE\" | \"REVOKED\";\n\nexport interface AuthApp {\n id: string;\n name: string;\n description?: string;\n clientId: string;\n type: AuthAppType;\n status: AuthAppStatus;\n scopes: string[];\n redirectUris: string[];\n ownerUserId: string;\n tenantId: string;\n delegations?: AppUserDelegation[];\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface AuthAppCreateResponse {\n app: AuthApp;\n clientSecret: string;\n}\n\nexport interface CreateAuthAppInput {\n name: string;\n description?: string;\n type: AuthAppType;\n scopes: string[];\n redirectUris?: string[];\n tenantId?: string;\n}\n\nexport interface UpdateAuthAppInput {\n name?: string;\n description?: string;\n scopes?: string[];\n redirectUris?: string[];\n}\n\n// =============================================================================\n// AUTH API KEY TYPES (from auth-svc layer)\n// =============================================================================\n\nexport interface AuthApiKey {\n id: string;\n name: string;\n prefix: string;\n scopes: string[];\n appId: string;\n appName?: string;\n createdAt: string;\n expiresAt?: string;\n lastUsedAt?: string;\n}\n\nexport interface AuthApiKeyResult {\n apiKey: string;\n apiSecret: string;\n keyId: string;\n}\n\nexport interface AuthApiKeyRotateResult {\n apiSecret: string;\n}\n\nexport interface GenerateAuthApiKeyInput {\n appId: string;\n name: string;\n scope: string[];\n expiresAt?: string;\n}\n\n// =============================================================================\n// AUDIT LOG TYPES\n// =============================================================================\n\nexport interface AuditLog {\n id: string;\n actorId: string;\n actorType: string;\n tenantId: string;\n action: string;\n resource: string;\n resourceId?: string;\n changes?: Record<string, unknown>;\n ipAddress?: string;\n userAgent?: string;\n createdAt: string;\n}\n\n// =============================================================================\n// VIEW TYPES\n// =============================================================================\n\nexport type DevportalView =\n | \"dashboard\"\n | \"organizations\"\n | \"apps\"\n | \"oauth\"\n | \"api-keys\"\n | \"webhooks\"\n | \"delegations\"\n | \"analytics\"\n | \"revenue\"\n | \"docs\"\n | \"profile\"\n | \"settings\";\n\n// =============================================================================\n// FILTER TYPES\n// =============================================================================\n\nexport interface ApplicationFilter {\n search?: string;\n status?: AppStatus;\n visibility?: AppVisibility;\n appType?: AppType;\n organizationId?: string;\n isFeatured?: boolean;\n}\n\nexport interface WebhookFilter {\n status?: WebhookStatus;\n event?: string;\n}\n\n// =============================================================================\n// WEBHOOK EVENT TYPES\n// =============================================================================\n\nexport const WEBHOOK_EVENTS = [\n // Application events\n \"application.created\",\n \"application.updated\",\n \"application.deleted\",\n \"application.published\",\n \"application.unpublished\",\n \"application.suspended\",\n // Installation events\n \"installation.created\",\n \"installation.updated\",\n \"installation.deleted\",\n // User events\n \"user.created\",\n \"user.updated\",\n \"user.deleted\",\n // Workspace events\n \"workspace.created\",\n \"workspace.updated\",\n \"workspace.deleted\",\n // Project events\n \"project.created\",\n \"project.updated\",\n \"project.deleted\",\n // Task events\n \"task.created\",\n \"task.updated\",\n \"task.deleted\",\n \"task.completed\",\n // Comment events\n \"comment.created\",\n \"comment.updated\",\n \"comment.deleted\",\n // File events\n \"file.uploaded\",\n \"file.deleted\",\n // Member events\n \"member.added\",\n \"member.removed\",\n \"member.role_changed\",\n] as const;\n\nexport type WebhookEvent = (typeof WEBHOOK_EVENTS)[number];\n\n// =============================================================================\n// SCOPE DEFINITIONS\n// =============================================================================\n\nexport const AVAILABLE_SCOPES = [\n // User scopes\n {\n scope: \"user:read\",\n description: \"Read user profile information\",\n category: \"User\",\n },\n {\n scope: \"user:write\",\n description: \"Modify user profile information\",\n category: \"User\",\n },\n {\n scope: \"user:email\",\n description: \"Access user email address\",\n category: \"User\",\n },\n // Workspace scopes\n {\n scope: \"workspace:read\",\n description: \"Read workspace information\",\n category: \"Workspace\",\n },\n {\n scope: \"workspace:write\",\n description: \"Create and modify workspaces\",\n category: \"Workspace\",\n },\n {\n scope: \"workspace:delete\",\n description: \"Delete workspaces\",\n category: \"Workspace\",\n },\n {\n scope: \"workspace:members\",\n description: \"Manage workspace members\",\n category: \"Workspace\",\n },\n // Project scopes\n {\n scope: \"project:read\",\n description: \"Read project information\",\n category: \"Project\",\n },\n {\n scope: \"project:write\",\n description: \"Create and modify projects\",\n category: \"Project\",\n },\n {\n scope: \"project:delete\",\n description: \"Delete projects\",\n category: \"Project\",\n },\n // Task scopes\n { scope: \"task:read\", description: \"Read tasks\", category: \"Task\" },\n {\n scope: \"task:write\",\n description: \"Create and modify tasks\",\n category: \"Task\",\n },\n { scope: \"task:delete\", description: \"Delete tasks\", category: \"Task\" },\n // File scopes\n { scope: \"file:read\", description: \"Read files\", category: \"File\" },\n {\n scope: \"file:write\",\n description: \"Upload and modify files\",\n category: \"File\",\n },\n { scope: \"file:delete\", description: \"Delete files\", category: \"File\" },\n // Comment scopes\n { scope: \"comment:read\", description: \"Read comments\", category: \"Comment\" },\n {\n scope: \"comment:write\",\n description: \"Create and modify comments\",\n category: \"Comment\",\n },\n {\n scope: \"comment:delete\",\n description: \"Delete comments\",\n category: \"Comment\",\n },\n // Offline access\n {\n scope: \"offline_access\",\n description: \"Access data while user is offline\",\n category: \"Access\",\n },\n] as const;\n\nexport type AvailableScope = (typeof AVAILABLE_SCOPES)[number][\"scope\"];\n"],"mappings":";AAg2BA,IAAaA,IAAiB,whBAwC9B,GAQaC,IAAmB;CAE9B;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CAEA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CAEA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CAEA;EAAE,OAAO;EAAa,aAAa;EAAc,UAAU;CAAO;CAClE;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EAAE,OAAO;EAAe,aAAa;EAAgB,UAAU;CAAO;CAEtE;EAAE,OAAO;EAAa,aAAa;EAAc,UAAU;CAAO;CAClE;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EAAE,OAAO;EAAe,aAAa;EAAgB,UAAU;CAAO;CAEtE;EAAE,OAAO;EAAgB,aAAa;EAAiB,UAAU;CAAU;CAC3E;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CACA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;CAEA;EACE,OAAO;EACP,aAAa;EACb,UAAU;CACZ;AACF"}
@@ -1,8 +1,6 @@
1
1
  import { ClassValue } from 'clsx';
2
-
3
2
  /**
4
3
  * Utility function for combining Tailwind CSS classes
5
4
  * Uses clsx for conditional classes and tailwind-merge for deduplication
6
5
  */
7
6
  export declare function cn(...inputs: ClassValue[]): string;
8
- //# sourceMappingURL=cn.d.ts.map
@@ -1,10 +1,9 @@
1
- import e from "../../node_modules/clsx/dist/clsx.js";
1
+ import { clsx as e } from "../../node_modules/clsx/dist/clsx.js";
2
2
  import { twMerge as t } from "../../node_modules/tailwind-merge/dist/bundle-mjs.js";
3
- //#region src/devportal/utils/cn.ts
3
+ // src/devportal/utils/cn.ts
4
4
  function n(...n) {
5
5
  return t(e(n));
6
6
  }
7
- //#endregion
8
7
  export { n as cn };
9
8
 
10
9
  //# sourceMappingURL=cn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cn.js","names":[],"sources":["../../../src/devportal/utils/cn.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Utility function for combining Tailwind CSS classes\n * Uses clsx for conditional classes and tailwind-merge for deduplication\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;AAOA,SAAgB,EAAG,GAAG,GAAsB;AAC1C,QAAO,EAAQ,EAAK,EAAO,CAAC"}
1
+ {"version":3,"file":"cn.js","names":["cn","inputs","twMerge","clsx"],"sources":["../../../src/devportal/utils/cn.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Utility function for combining Tailwind CSS classes\n * Uses clsx for conditional classes and tailwind-merge for deduplication\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;AAOA,SAAgBA,EAAG,GAAGC,GAAsB;CAC1C,OAAOC,EAAQC,EAAKF,CAAM,CAAC;AAC7B"}
@@ -104,4 +104,3 @@ export declare const AVAILABLE_SCOPES: readonly [{
104
104
  readonly description: "Access data while user is offline";
105
105
  readonly category: "Access";
106
106
  }];
107
- //# sourceMappingURL=constants.d.ts.map
@@ -1,4 +1,4 @@
1
- //#region src/devportal/utils/constants.ts
1
+ // src/devportal/utils/constants.ts
2
2
  var e = {
3
3
  DRAFT: "bg-bg-sunken text-text-primary",
4
4
  SUBMITTED: "bg-status-info-bg-subtle text-status-info-text",
@@ -60,7 +60,6 @@ var e = {
60
60
  DEVELOPER: "Developer",
61
61
  VIEWER: "Viewer"
62
62
  };
63
- //#endregion
64
63
  export { e as APP_STATUS_COLORS, o as APP_TYPE_LABELS, n as DELIVERY_STATUS_COLORS, r as INVITATION_STATUS_COLORS, s as ORG_ROLE_LABELS, i as ORG_TIER_COLORS, a as PARTNER_TIER_COLORS, t as WEBHOOK_STATUS_COLORS };
65
64
 
66
65
  //# sourceMappingURL=constants.js.map