@burdenoff/microfe-devportal 2026.1108.1 → 2026.1109.1

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 (1408) 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 +75 -65
  12. package/dist/devportal/DevportalRoot.js.map +1 -1
  13. package/dist/devportal/DevportalRoutes.d.ts +1 -2
  14. package/dist/devportal/DevportalRoutes.js +149 -143
  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 +0 -2
  224. package/dist/devportal/pages/PublisherPayoutsPage.js +251 -258
  225. package/dist/devportal/pages/PublisherPayoutsPage.js.map +1 -1
  226. package/dist/devportal/pages/PublisherProfilePage.d.ts +0 -2
  227. package/dist/devportal/pages/PublisherProfilePage.js +26 -27
  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/TimeCampusAppletsPage.d.ts +2 -0
  255. package/dist/devportal/pages/TimeCampusAppletsPage.js +490 -0
  256. package/dist/devportal/pages/TimeCampusAppletsPage.js.map +1 -0
  257. package/dist/devportal/pages/WebhookDetailPage.d.ts +0 -2
  258. package/dist/devportal/pages/WebhookDetailPage.js +62 -67
  259. package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
  260. package/dist/devportal/pages/WebhooksPage.d.ts +0 -2
  261. package/dist/devportal/pages/WebhooksPage.js +130 -131
  262. package/dist/devportal/pages/WebhooksPage.js.map +1 -1
  263. package/dist/devportal/providers/DevportalProvider.d.ts +0 -2
  264. package/dist/devportal/providers/DevportalProvider.js +2 -3
  265. package/dist/devportal/providers/DevportalProvider.js.map +1 -1
  266. package/dist/devportal/store/devportalStore.d.ts +0 -2
  267. package/dist/devportal/store/devportalStore.js +1 -2
  268. package/dist/devportal/store/devportalStore.js.map +1 -1
  269. package/dist/devportal/types/index.d.ts +0 -2
  270. package/dist/devportal/types/index.js +1 -2
  271. package/dist/devportal/types/index.js.map +1 -1
  272. package/dist/devportal/utils/cn.d.ts +0 -2
  273. package/dist/devportal/utils/cn.js +2 -3
  274. package/dist/devportal/utils/cn.js.map +1 -1
  275. package/dist/devportal/utils/constants.d.ts +0 -1
  276. package/dist/devportal/utils/constants.js +6 -3
  277. package/dist/devportal/utils/constants.js.map +1 -1
  278. package/dist/devportal/utils/currency.d.ts +0 -1
  279. package/dist/devportal/utils/currency.js +1 -2
  280. package/dist/devportal/utils/currency.js.map +1 -1
  281. package/dist/devportal/utils/developerOnboarding.d.ts +0 -1
  282. package/dist/devportal/utils/developerOnboarding.js +4 -5
  283. package/dist/devportal/utils/developerOnboarding.js.map +1 -1
  284. package/dist/devportal/utils/graphqlEndpoint.d.ts +0 -1
  285. package/dist/devportal/utils/graphqlEndpoint.js +1 -2
  286. package/dist/devportal/utils/graphqlEndpoint.js.map +1 -1
  287. package/dist/devportal/utils/i18n.d.ts +0 -1
  288. package/dist/devportal/utils/i18n.js +1 -2
  289. package/dist/devportal/utils/i18n.js.map +1 -1
  290. package/dist/devportal/utils/nodeLifecycle.d.ts +0 -2
  291. package/dist/devportal/utils/nodeLifecycle.js +6 -7
  292. package/dist/devportal/utils/nodeLifecycle.js.map +1 -1
  293. package/dist/devportal/utils/publisherPayouts.d.ts +0 -1
  294. package/dist/devportal/utils/publisherPayouts.js +14 -15
  295. package/dist/devportal/utils/publisherPayouts.js.map +1 -1
  296. package/dist/devportal/utils/recaptcha.d.ts +0 -1
  297. package/dist/devportal/utils/recaptcha.js +1 -2
  298. package/dist/devportal/utils/recaptcha.js.map +1 -1
  299. package/dist/devportal/utils/submitForReview.d.ts +0 -1
  300. package/dist/devportal/utils/submitForReview.js +15 -14
  301. package/dist/devportal/utils/submitForReview.js.map +1 -1
  302. package/dist/devportal/utils/timecampusApplets.d.ts +98 -0
  303. package/dist/devportal/utils/timecampusApplets.js +130 -0
  304. package/dist/devportal/utils/timecampusApplets.js.map +1 -0
  305. package/dist/devportal/utils/uploadErrors.d.ts +0 -1
  306. package/dist/devportal/utils/uploadErrors.js +30 -30
  307. package/dist/devportal/utils/uploadErrors.js.map +1 -1
  308. package/dist/generated/global-operations.d.ts +2399 -2423
  309. package/dist/generated/global-operations.js +6 -5
  310. package/dist/generated/global-operations.js.map +1 -1
  311. package/dist/generated/global-types.d.ts +3881 -660
  312. package/dist/generated/global-types.js +1 -2
  313. package/dist/generated/global-types.js.map +1 -1
  314. package/dist/generated/wspace-operations.d.ts +707 -8
  315. package/dist/generated/wspace-operations.js +204 -6
  316. package/dist/generated/wspace-operations.js.map +1 -1
  317. package/dist/generated/wspace-types.d.ts +166630 -35166
  318. package/dist/index.d.ts +0 -1
  319. package/dist/index.js +1 -1
  320. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +1 -2
  321. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -1
  322. package/dist/node_modules/@apollo/client/errors/ServerError.js +1 -2
  323. package/dist/node_modules/@apollo/client/errors/ServerError.js.map +1 -1
  324. package/dist/node_modules/@apollo/client/errors/utils.js +1 -2
  325. package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -1
  326. package/dist/node_modules/@apollo/client/link/core/ApolloLink.js +7 -8
  327. package/dist/node_modules/@apollo/client/link/core/ApolloLink.js.map +1 -1
  328. package/dist/node_modules/@apollo/client/link/subscriptions/index.js +16 -17
  329. package/dist/node_modules/@apollo/client/link/subscriptions/index.js.map +1 -1
  330. package/dist/node_modules/@apollo/client/link/utils/createOperation.js +5 -6
  331. package/dist/node_modules/@apollo/client/link/utils/createOperation.js.map +1 -1
  332. package/dist/node_modules/@apollo/client/utilities/caching/sizes.js +0 -1
  333. package/dist/node_modules/@apollo/client/utilities/caching/sizes.js.map +1 -1
  334. package/dist/node_modules/@apollo/client/utilities/graphql/print.js +4 -5
  335. package/dist/node_modules/@apollo/client/utilities/graphql/print.js.map +1 -1
  336. package/dist/node_modules/@apollo/client/utilities/internal/caches.js +1 -2
  337. package/dist/node_modules/@apollo/client/utilities/internal/caches.js.map +1 -1
  338. package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js +1 -2
  339. package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +1 -1
  340. package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +2 -3
  341. package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +1 -1
  342. package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +1 -2
  343. package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +1 -1
  344. package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js +1 -2
  345. package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +1 -1
  346. package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js +1 -2
  347. package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +1 -1
  348. package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js +1 -2
  349. package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js.map +1 -1
  350. package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js +1 -2
  351. package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +1 -1
  352. package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js +1 -2
  353. package/dist/node_modules/@apollo/client/utilities/internal/isNonNullObject.js.map +1 -1
  354. package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js +1 -2
  355. package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +1 -1
  356. package/dist/node_modules/@apollo/client/utilities/internal/memoize.js +1 -2
  357. package/dist/node_modules/@apollo/client/utilities/internal/memoize.js.map +1 -1
  358. package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js +1 -2
  359. package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +1 -1
  360. package/dist/node_modules/@apollo/client/utilities/invariant/index.js +2 -3
  361. package/dist/node_modules/@apollo/client/utilities/invariant/index.js.map +1 -1
  362. package/dist/node_modules/@apollo/client/version.js +2 -3
  363. package/dist/node_modules/@apollo/client/version.js.map +1 -1
  364. package/dist/node_modules/@wry/caches/lib/weak.js +1 -2
  365. package/dist/node_modules/@wry/caches/lib/weak.js.map +1 -1
  366. package/dist/node_modules/@wry/trie/lib/index.js +2 -3
  367. package/dist/node_modules/@wry/trie/lib/index.js.map +1 -1
  368. package/dist/node_modules/clsx/dist/clsx.js +8 -7
  369. package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
  370. package/dist/node_modules/d3-array/dist/d3-array.js +204 -0
  371. package/dist/node_modules/d3-array/dist/d3-array.js.map +1 -0
  372. package/dist/node_modules/d3-color/dist/d3-color.js +388 -0
  373. package/dist/node_modules/d3-color/dist/d3-color.js.map +1 -0
  374. package/dist/node_modules/d3-format/dist/d3-format.js +186 -0
  375. package/dist/node_modules/d3-format/dist/d3-format.js.map +1 -0
  376. package/dist/node_modules/d3-interpolate/dist/d3-interpolate.js +185 -0
  377. package/dist/node_modules/d3-interpolate/dist/d3-interpolate.js.map +1 -0
  378. package/dist/node_modules/d3-path/{src/path.js → dist/d3-path.js} +39 -14
  379. package/dist/node_modules/d3-path/dist/d3-path.js.map +1 -0
  380. package/dist/node_modules/d3-scale/dist/d3-scale.js +622 -0
  381. package/dist/node_modules/d3-scale/dist/d3-scale.js.map +1 -0
  382. package/dist/node_modules/d3-shape/dist/d3-shape.js +901 -0
  383. package/dist/node_modules/d3-shape/dist/d3-shape.js.map +1 -0
  384. package/dist/node_modules/d3-time/dist/d3-time.js +241 -0
  385. package/dist/node_modules/d3-time/dist/d3-time.js.map +1 -0
  386. package/dist/node_modules/d3-time-format/{src/locale.js → dist/d3-time-format.js} +229 -174
  387. package/dist/node_modules/d3-time-format/dist/d3-time-format.js.map +1 -0
  388. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +1 -2
  389. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -1
  390. package/dist/node_modules/date-fns/_lib/defaultOptions.js +1 -2
  391. package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -1
  392. package/dist/node_modules/date-fns/_lib/format/formatters.js +29 -22
  393. package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
  394. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +3 -4
  395. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
  396. package/dist/node_modules/date-fns/_lib/format/longFormatters.js +2 -5
  397. package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -1
  398. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +2 -3
  399. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -1
  400. package/dist/node_modules/date-fns/_lib/protectedTokens.js +1 -2
  401. package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +1 -1
  402. package/dist/node_modules/date-fns/constants.js +5 -5
  403. package/dist/node_modules/date-fns/constants.js.map +1 -1
  404. package/dist/node_modules/date-fns/constructFrom.js +2 -3
  405. package/dist/node_modules/date-fns/constructFrom.js.map +1 -1
  406. package/dist/node_modules/date-fns/differenceInCalendarDays.js +2 -3
  407. package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +1 -1
  408. package/dist/node_modules/date-fns/format.js +15 -16
  409. package/dist/node_modules/date-fns/format.js.map +1 -1
  410. package/dist/node_modules/date-fns/getDayOfYear.js +7 -8
  411. package/dist/node_modules/date-fns/getDayOfYear.js.map +1 -1
  412. package/dist/node_modules/date-fns/getISOWeek.js +8 -9
  413. package/dist/node_modules/date-fns/getISOWeek.js.map +1 -1
  414. package/dist/node_modules/date-fns/getISOWeekYear.js +8 -9
  415. package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -1
  416. package/dist/node_modules/date-fns/getWeek.js +8 -9
  417. package/dist/node_modules/date-fns/getWeek.js.map +1 -1
  418. package/dist/node_modules/date-fns/getWeekYear.js +9 -10
  419. package/dist/node_modules/date-fns/getWeekYear.js.map +1 -1
  420. package/dist/node_modules/date-fns/isDate.js +2 -3
  421. package/dist/node_modules/date-fns/isDate.js.map +1 -1
  422. package/dist/node_modules/date-fns/isValid.js +6 -7
  423. package/dist/node_modules/date-fns/isValid.js.map +1 -1
  424. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +1 -2
  425. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
  426. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +1 -2
  427. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
  428. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +1 -2
  429. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
  430. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +1 -2
  431. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
  432. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +1 -2
  433. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -1
  434. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +0 -1
  435. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -1
  436. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +1 -2
  437. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -1
  438. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +0 -1
  439. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -1
  440. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +0 -1
  441. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -1
  442. package/dist/node_modules/date-fns/locale/en-US.js +2 -3
  443. package/dist/node_modules/date-fns/locale/en-US.js.map +1 -1
  444. package/dist/node_modules/date-fns/startOfDay.js +2 -3
  445. package/dist/node_modules/date-fns/startOfDay.js.map +1 -1
  446. package/dist/node_modules/date-fns/startOfISOWeek.js +2 -3
  447. package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -1
  448. package/dist/node_modules/date-fns/startOfISOWeekYear.js +5 -6
  449. package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +1 -1
  450. package/dist/node_modules/date-fns/startOfWeek.js +2 -3
  451. package/dist/node_modules/date-fns/startOfWeek.js.map +1 -1
  452. package/dist/node_modules/date-fns/startOfWeekYear.js +6 -7
  453. package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -1
  454. package/dist/node_modules/date-fns/startOfYear.js +3 -4
  455. package/dist/node_modules/date-fns/startOfYear.js.map +1 -1
  456. package/dist/node_modules/date-fns/toDate.js +2 -3
  457. package/dist/node_modules/date-fns/toDate.js.map +1 -1
  458. package/dist/node_modules/decimal.js-light/decimal.js +33 -30
  459. package/dist/node_modules/decimal.js-light/decimal.js.map +1 -1
  460. package/dist/node_modules/eventemitter3/index.js +2 -3
  461. package/dist/node_modules/eventemitter3/index.js.map +1 -1
  462. package/dist/node_modules/fast-equals/dist/es/index.js +109 -79
  463. package/dist/node_modules/fast-equals/dist/es/index.js.map +1 -1
  464. package/dist/node_modules/graphql-ws/dist/client.js +76 -69
  465. package/dist/node_modules/graphql-ws/dist/client.js.map +1 -1
  466. package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js +2 -3
  467. package/dist/node_modules/graphql-ws/dist/common-CGW11Fyb.js.map +1 -1
  468. package/dist/node_modules/lodash/_DataView.js +4 -5
  469. package/dist/node_modules/lodash/_DataView.js.map +1 -1
  470. package/dist/node_modules/lodash/_Hash.js +1 -2
  471. package/dist/node_modules/lodash/_Hash.js.map +1 -1
  472. package/dist/node_modules/lodash/_ListCache.js +1 -2
  473. package/dist/node_modules/lodash/_ListCache.js.map +1 -1
  474. package/dist/node_modules/lodash/_Map.js +4 -5
  475. package/dist/node_modules/lodash/_Map.js.map +1 -1
  476. package/dist/node_modules/lodash/_MapCache.js +1 -2
  477. package/dist/node_modules/lodash/_MapCache.js.map +1 -1
  478. package/dist/node_modules/lodash/_Promise.js +4 -5
  479. package/dist/node_modules/lodash/_Promise.js.map +1 -1
  480. package/dist/node_modules/lodash/_Set.js +4 -5
  481. package/dist/node_modules/lodash/_Set.js.map +1 -1
  482. package/dist/node_modules/lodash/_SetCache.js +1 -2
  483. package/dist/node_modules/lodash/_SetCache.js.map +1 -1
  484. package/dist/node_modules/lodash/_Stack.js +3 -3
  485. package/dist/node_modules/lodash/_Stack.js.map +1 -1
  486. package/dist/node_modules/lodash/_Symbol.js +1 -2
  487. package/dist/node_modules/lodash/_Symbol.js.map +1 -1
  488. package/dist/node_modules/lodash/_Uint8Array.js +1 -2
  489. package/dist/node_modules/lodash/_Uint8Array.js.map +1 -1
  490. package/dist/node_modules/lodash/_WeakMap.js +4 -5
  491. package/dist/node_modules/lodash/_WeakMap.js.map +1 -1
  492. package/dist/node_modules/lodash/_apply.js +1 -2
  493. package/dist/node_modules/lodash/_apply.js.map +1 -1
  494. package/dist/node_modules/lodash/_arrayEvery.js +1 -2
  495. package/dist/node_modules/lodash/_arrayEvery.js.map +1 -1
  496. package/dist/node_modules/lodash/_arrayFilter.js +1 -2
  497. package/dist/node_modules/lodash/_arrayFilter.js.map +1 -1
  498. package/dist/node_modules/lodash/_arrayIncludes.js +1 -2
  499. package/dist/node_modules/lodash/_arrayIncludes.js.map +1 -1
  500. package/dist/node_modules/lodash/_arrayIncludesWith.js +1 -2
  501. package/dist/node_modules/lodash/_arrayIncludesWith.js.map +1 -1
  502. package/dist/node_modules/lodash/_arrayLikeKeys.js +5 -6
  503. package/dist/node_modules/lodash/_arrayLikeKeys.js.map +1 -1
  504. package/dist/node_modules/lodash/_arrayMap.js +1 -2
  505. package/dist/node_modules/lodash/_arrayMap.js.map +1 -1
  506. package/dist/node_modules/lodash/_arrayPush.js +1 -2
  507. package/dist/node_modules/lodash/_arrayPush.js.map +1 -1
  508. package/dist/node_modules/lodash/_arraySome.js +1 -2
  509. package/dist/node_modules/lodash/_arraySome.js.map +1 -1
  510. package/dist/node_modules/lodash/_asciiToArray.js +1 -2
  511. package/dist/node_modules/lodash/_asciiToArray.js.map +1 -1
  512. package/dist/node_modules/lodash/_assocIndexOf.js +1 -2
  513. package/dist/node_modules/lodash/_assocIndexOf.js.map +1 -1
  514. package/dist/node_modules/lodash/_baseAssignValue.js +1 -2
  515. package/dist/node_modules/lodash/_baseAssignValue.js.map +1 -1
  516. package/dist/node_modules/lodash/_baseEach.js +1 -2
  517. package/dist/node_modules/lodash/_baseEach.js.map +1 -1
  518. package/dist/node_modules/lodash/_baseEvery.js +1 -2
  519. package/dist/node_modules/lodash/_baseEvery.js.map +1 -1
  520. package/dist/node_modules/lodash/_baseExtremum.js +1 -2
  521. package/dist/node_modules/lodash/_baseExtremum.js.map +1 -1
  522. package/dist/node_modules/lodash/_baseFindIndex.js +1 -2
  523. package/dist/node_modules/lodash/_baseFindIndex.js.map +1 -1
  524. package/dist/node_modules/lodash/_baseFlatten.js +1 -2
  525. package/dist/node_modules/lodash/_baseFlatten.js.map +1 -1
  526. package/dist/node_modules/lodash/_baseFor.js +1 -2
  527. package/dist/node_modules/lodash/_baseFor.js.map +1 -1
  528. package/dist/node_modules/lodash/_baseForOwn.js +4 -5
  529. package/dist/node_modules/lodash/_baseForOwn.js.map +1 -1
  530. package/dist/node_modules/lodash/_baseGet.js +1 -2
  531. package/dist/node_modules/lodash/_baseGet.js.map +1 -1
  532. package/dist/node_modules/lodash/_baseGetAllKeys.js +4 -5
  533. package/dist/node_modules/lodash/_baseGetAllKeys.js.map +1 -1
  534. package/dist/node_modules/lodash/_baseGetTag.js +1 -2
  535. package/dist/node_modules/lodash/_baseGetTag.js.map +1 -1
  536. package/dist/node_modules/lodash/_baseGt.js +1 -2
  537. package/dist/node_modules/lodash/_baseGt.js.map +1 -1
  538. package/dist/node_modules/lodash/_baseHasIn.js +1 -2
  539. package/dist/node_modules/lodash/_baseHasIn.js.map +1 -1
  540. package/dist/node_modules/lodash/_baseIndexOf.js +1 -2
  541. package/dist/node_modules/lodash/_baseIndexOf.js.map +1 -1
  542. package/dist/node_modules/lodash/_baseIsArguments.js +1 -2
  543. package/dist/node_modules/lodash/_baseIsArguments.js.map +1 -1
  544. package/dist/node_modules/lodash/_baseIsEqual.js +4 -5
  545. package/dist/node_modules/lodash/_baseIsEqual.js.map +1 -1
  546. package/dist/node_modules/lodash/_baseIsEqualDeep.js +10 -11
  547. package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +1 -1
  548. package/dist/node_modules/lodash/_baseIsMatch.js +1 -2
  549. package/dist/node_modules/lodash/_baseIsMatch.js.map +1 -1
  550. package/dist/node_modules/lodash/_baseIsNaN.js +1 -2
  551. package/dist/node_modules/lodash/_baseIsNaN.js.map +1 -1
  552. package/dist/node_modules/lodash/_baseIsNative.js +5 -6
  553. package/dist/node_modules/lodash/_baseIsNative.js.map +1 -1
  554. package/dist/node_modules/lodash/_baseIsTypedArray.js +4 -5
  555. package/dist/node_modules/lodash/_baseIsTypedArray.js.map +1 -1
  556. package/dist/node_modules/lodash/_baseIteratee.js +6 -7
  557. package/dist/node_modules/lodash/_baseIteratee.js.map +1 -1
  558. package/dist/node_modules/lodash/_baseKeys.js +1 -2
  559. package/dist/node_modules/lodash/_baseKeys.js.map +1 -1
  560. package/dist/node_modules/lodash/_baseLt.js +1 -2
  561. package/dist/node_modules/lodash/_baseLt.js.map +1 -1
  562. package/dist/node_modules/lodash/_baseMap.js +4 -5
  563. package/dist/node_modules/lodash/_baseMap.js.map +1 -1
  564. package/dist/node_modules/lodash/_baseMatches.js +1 -2
  565. package/dist/node_modules/lodash/_baseMatches.js.map +1 -1
  566. package/dist/node_modules/lodash/_baseMatchesProperty.js +7 -8
  567. package/dist/node_modules/lodash/_baseMatchesProperty.js.map +1 -1
  568. package/dist/node_modules/lodash/_baseOrderBy.js +11 -12
  569. package/dist/node_modules/lodash/_baseOrderBy.js.map +1 -1
  570. package/dist/node_modules/lodash/_baseProperty.js +1 -2
  571. package/dist/node_modules/lodash/_baseProperty.js.map +1 -1
  572. package/dist/node_modules/lodash/_basePropertyDeep.js +1 -2
  573. package/dist/node_modules/lodash/_basePropertyDeep.js.map +1 -1
  574. package/dist/node_modules/lodash/_baseRange.js +1 -2
  575. package/dist/node_modules/lodash/_baseRange.js.map +1 -1
  576. package/dist/node_modules/lodash/_baseRest.js +1 -2
  577. package/dist/node_modules/lodash/_baseRest.js.map +1 -1
  578. package/dist/node_modules/lodash/_baseSetToString.js +5 -6
  579. package/dist/node_modules/lodash/_baseSetToString.js.map +1 -1
  580. package/dist/node_modules/lodash/_baseSlice.js +1 -2
  581. package/dist/node_modules/lodash/_baseSlice.js.map +1 -1
  582. package/dist/node_modules/lodash/_baseSome.js +1 -2
  583. package/dist/node_modules/lodash/_baseSome.js.map +1 -1
  584. package/dist/node_modules/lodash/_baseSortBy.js +1 -2
  585. package/dist/node_modules/lodash/_baseSortBy.js.map +1 -1
  586. package/dist/node_modules/lodash/_baseTimes.js +1 -2
  587. package/dist/node_modules/lodash/_baseTimes.js.map +1 -1
  588. package/dist/node_modules/lodash/_baseToString.js +6 -7
  589. package/dist/node_modules/lodash/_baseToString.js.map +1 -1
  590. package/dist/node_modules/lodash/_baseTrim.js +1 -2
  591. package/dist/node_modules/lodash/_baseTrim.js.map +1 -1
  592. package/dist/node_modules/lodash/_baseUnary.js +1 -2
  593. package/dist/node_modules/lodash/_baseUnary.js.map +1 -1
  594. package/dist/node_modules/lodash/_baseUniq.js +7 -8
  595. package/dist/node_modules/lodash/_baseUniq.js.map +1 -1
  596. package/dist/node_modules/lodash/_cacheHas.js +1 -2
  597. package/dist/node_modules/lodash/_cacheHas.js.map +1 -1
  598. package/dist/node_modules/lodash/_castPath.js +1 -2
  599. package/dist/node_modules/lodash/_castPath.js.map +1 -1
  600. package/dist/node_modules/lodash/_castSlice.js +1 -2
  601. package/dist/node_modules/lodash/_castSlice.js.map +1 -1
  602. package/dist/node_modules/lodash/_compareAscending.js +1 -2
  603. package/dist/node_modules/lodash/_compareAscending.js.map +1 -1
  604. package/dist/node_modules/lodash/_compareMultiple.js +1 -2
  605. package/dist/node_modules/lodash/_compareMultiple.js.map +1 -1
  606. package/dist/node_modules/lodash/_coreJsData.js +1 -2
  607. package/dist/node_modules/lodash/_coreJsData.js.map +1 -1
  608. package/dist/node_modules/lodash/_createBaseEach.js +1 -2
  609. package/dist/node_modules/lodash/_createBaseEach.js.map +1 -1
  610. package/dist/node_modules/lodash/_createBaseFor.js +1 -2
  611. package/dist/node_modules/lodash/_createBaseFor.js.map +1 -1
  612. package/dist/node_modules/lodash/_createCaseFirst.js +6 -7
  613. package/dist/node_modules/lodash/_createCaseFirst.js.map +1 -1
  614. package/dist/node_modules/lodash/_createFind.js +5 -6
  615. package/dist/node_modules/lodash/_createFind.js.map +1 -1
  616. package/dist/node_modules/lodash/_createRange.js +4 -5
  617. package/dist/node_modules/lodash/_createRange.js.map +1 -1
  618. package/dist/node_modules/lodash/_createSet.js +6 -7
  619. package/dist/node_modules/lodash/_createSet.js.map +1 -1
  620. package/dist/node_modules/lodash/_defineProperty.js +1 -2
  621. package/dist/node_modules/lodash/_defineProperty.js.map +1 -1
  622. package/dist/node_modules/lodash/_equalArrays.js +1 -2
  623. package/dist/node_modules/lodash/_equalArrays.js.map +1 -1
  624. package/dist/node_modules/lodash/_equalByTag.js +5 -6
  625. package/dist/node_modules/lodash/_equalByTag.js.map +1 -1
  626. package/dist/node_modules/lodash/_equalObjects.js +1 -2
  627. package/dist/node_modules/lodash/_equalObjects.js.map +1 -1
  628. package/dist/node_modules/lodash/_freeGlobal.js +1 -2
  629. package/dist/node_modules/lodash/_freeGlobal.js.map +1 -1
  630. package/dist/node_modules/lodash/_getAllKeys.js +1 -2
  631. package/dist/node_modules/lodash/_getAllKeys.js.map +1 -1
  632. package/dist/node_modules/lodash/_getMapData.js +1 -2
  633. package/dist/node_modules/lodash/_getMapData.js.map +1 -1
  634. package/dist/node_modules/lodash/_getMatchData.js +4 -5
  635. package/dist/node_modules/lodash/_getMatchData.js.map +1 -1
  636. package/dist/node_modules/lodash/_getNative.js +1 -2
  637. package/dist/node_modules/lodash/_getNative.js.map +1 -1
  638. package/dist/node_modules/lodash/_getPrototype.js +1 -2
  639. package/dist/node_modules/lodash/_getPrototype.js.map +1 -1
  640. package/dist/node_modules/lodash/_getRawTag.js +1 -2
  641. package/dist/node_modules/lodash/_getRawTag.js.map +1 -1
  642. package/dist/node_modules/lodash/_getSymbols.js +1 -2
  643. package/dist/node_modules/lodash/_getSymbols.js.map +1 -1
  644. package/dist/node_modules/lodash/_getTag.js +9 -10
  645. package/dist/node_modules/lodash/_getTag.js.map +1 -1
  646. package/dist/node_modules/lodash/_getValue.js +1 -2
  647. package/dist/node_modules/lodash/_getValue.js.map +1 -1
  648. package/dist/node_modules/lodash/_hasPath.js +8 -9
  649. package/dist/node_modules/lodash/_hasPath.js.map +1 -1
  650. package/dist/node_modules/lodash/_hasUnicode.js +1 -2
  651. package/dist/node_modules/lodash/_hasUnicode.js.map +1 -1
  652. package/dist/node_modules/lodash/_hashClear.js +1 -2
  653. package/dist/node_modules/lodash/_hashClear.js.map +1 -1
  654. package/dist/node_modules/lodash/_hashDelete.js +1 -2
  655. package/dist/node_modules/lodash/_hashDelete.js.map +1 -1
  656. package/dist/node_modules/lodash/_hashGet.js +1 -2
  657. package/dist/node_modules/lodash/_hashGet.js.map +1 -1
  658. package/dist/node_modules/lodash/_hashHas.js +1 -2
  659. package/dist/node_modules/lodash/_hashHas.js.map +1 -1
  660. package/dist/node_modules/lodash/_hashSet.js +1 -2
  661. package/dist/node_modules/lodash/_hashSet.js.map +1 -1
  662. package/dist/node_modules/lodash/_isFlattenable.js +5 -6
  663. package/dist/node_modules/lodash/_isFlattenable.js.map +1 -1
  664. package/dist/node_modules/lodash/_isIndex.js +6 -7
  665. package/dist/node_modules/lodash/_isIndex.js.map +1 -1
  666. package/dist/node_modules/lodash/_isIterateeCall.js +5 -6
  667. package/dist/node_modules/lodash/_isIterateeCall.js.map +1 -1
  668. package/dist/node_modules/lodash/_isKey.js +1 -2
  669. package/dist/node_modules/lodash/_isKey.js.map +1 -1
  670. package/dist/node_modules/lodash/_isKeyable.js +1 -2
  671. package/dist/node_modules/lodash/_isKeyable.js.map +1 -1
  672. package/dist/node_modules/lodash/_isMasked.js +1 -2
  673. package/dist/node_modules/lodash/_isMasked.js.map +1 -1
  674. package/dist/node_modules/lodash/_isPrototype.js +1 -2
  675. package/dist/node_modules/lodash/_isPrototype.js.map +1 -1
  676. package/dist/node_modules/lodash/_isStrictComparable.js +1 -2
  677. package/dist/node_modules/lodash/_isStrictComparable.js.map +1 -1
  678. package/dist/node_modules/lodash/_listCacheClear.js +1 -2
  679. package/dist/node_modules/lodash/_listCacheClear.js.map +1 -1
  680. package/dist/node_modules/lodash/_listCacheDelete.js +1 -2
  681. package/dist/node_modules/lodash/_listCacheDelete.js.map +1 -1
  682. package/dist/node_modules/lodash/_listCacheGet.js +1 -2
  683. package/dist/node_modules/lodash/_listCacheGet.js.map +1 -1
  684. package/dist/node_modules/lodash/_listCacheHas.js +1 -2
  685. package/dist/node_modules/lodash/_listCacheHas.js.map +1 -1
  686. package/dist/node_modules/lodash/_listCacheSet.js +1 -2
  687. package/dist/node_modules/lodash/_listCacheSet.js.map +1 -1
  688. package/dist/node_modules/lodash/_mapCacheClear.js +1 -2
  689. package/dist/node_modules/lodash/_mapCacheClear.js.map +1 -1
  690. package/dist/node_modules/lodash/_mapCacheDelete.js +1 -2
  691. package/dist/node_modules/lodash/_mapCacheDelete.js.map +1 -1
  692. package/dist/node_modules/lodash/_mapCacheGet.js +1 -2
  693. package/dist/node_modules/lodash/_mapCacheGet.js.map +1 -1
  694. package/dist/node_modules/lodash/_mapCacheHas.js +1 -2
  695. package/dist/node_modules/lodash/_mapCacheHas.js.map +1 -1
  696. package/dist/node_modules/lodash/_mapCacheSet.js +1 -2
  697. package/dist/node_modules/lodash/_mapCacheSet.js.map +1 -1
  698. package/dist/node_modules/lodash/_mapToArray.js +1 -2
  699. package/dist/node_modules/lodash/_mapToArray.js.map +1 -1
  700. package/dist/node_modules/lodash/_matchesStrictComparable.js +2 -3
  701. package/dist/node_modules/lodash/_matchesStrictComparable.js.map +1 -1
  702. package/dist/node_modules/lodash/_memoizeCapped.js +1 -2
  703. package/dist/node_modules/lodash/_memoizeCapped.js.map +1 -1
  704. package/dist/node_modules/lodash/_nativeCreate.js +1 -2
  705. package/dist/node_modules/lodash/_nativeCreate.js.map +1 -1
  706. package/dist/node_modules/lodash/_nativeKeys.js +1 -2
  707. package/dist/node_modules/lodash/_nativeKeys.js.map +1 -1
  708. package/dist/node_modules/lodash/_nodeUtil.js +1 -2
  709. package/dist/node_modules/lodash/_nodeUtil.js.map +1 -1
  710. package/dist/node_modules/lodash/_objectToString.js +1 -2
  711. package/dist/node_modules/lodash/_objectToString.js.map +1 -1
  712. package/dist/node_modules/lodash/_overArg.js +1 -2
  713. package/dist/node_modules/lodash/_overArg.js.map +1 -1
  714. package/dist/node_modules/lodash/_overRest.js +1 -2
  715. package/dist/node_modules/lodash/_overRest.js.map +1 -1
  716. package/dist/node_modules/lodash/_root.js +1 -2
  717. package/dist/node_modules/lodash/_root.js.map +1 -1
  718. package/dist/node_modules/lodash/_setCacheAdd.js +4 -6
  719. package/dist/node_modules/lodash/_setCacheAdd.js.map +1 -1
  720. package/dist/node_modules/lodash/_setCacheHas.js +1 -2
  721. package/dist/node_modules/lodash/_setCacheHas.js.map +1 -1
  722. package/dist/node_modules/lodash/_setToArray.js +1 -2
  723. package/dist/node_modules/lodash/_setToArray.js.map +1 -1
  724. package/dist/node_modules/lodash/_setToString.js +1 -2
  725. package/dist/node_modules/lodash/_setToString.js.map +1 -1
  726. package/dist/node_modules/lodash/_shortOut.js +8 -9
  727. package/dist/node_modules/lodash/_shortOut.js.map +1 -1
  728. package/dist/node_modules/lodash/_stackClear.js +1 -2
  729. package/dist/node_modules/lodash/_stackClear.js.map +1 -1
  730. package/dist/node_modules/lodash/_stackDelete.js +1 -2
  731. package/dist/node_modules/lodash/_stackDelete.js.map +1 -1
  732. package/dist/node_modules/lodash/_stackGet.js +1 -2
  733. package/dist/node_modules/lodash/_stackGet.js.map +1 -1
  734. package/dist/node_modules/lodash/_stackHas.js +1 -2
  735. package/dist/node_modules/lodash/_stackHas.js.map +1 -1
  736. package/dist/node_modules/lodash/_stackSet.js +1 -2
  737. package/dist/node_modules/lodash/_stackSet.js.map +1 -1
  738. package/dist/node_modules/lodash/_strictIndexOf.js +1 -2
  739. package/dist/node_modules/lodash/_strictIndexOf.js.map +1 -1
  740. package/dist/node_modules/lodash/_stringToArray.js +4 -5
  741. package/dist/node_modules/lodash/_stringToArray.js.map +1 -1
  742. package/dist/node_modules/lodash/_stringToPath.js +1 -2
  743. package/dist/node_modules/lodash/_stringToPath.js.map +1 -1
  744. package/dist/node_modules/lodash/_toKey.js +2 -3
  745. package/dist/node_modules/lodash/_toKey.js.map +1 -1
  746. package/dist/node_modules/lodash/_toSource.js +1 -2
  747. package/dist/node_modules/lodash/_toSource.js.map +1 -1
  748. package/dist/node_modules/lodash/_trimmedEndIndex.js +1 -2
  749. package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -1
  750. package/dist/node_modules/lodash/_unicodeToArray.js +1 -2
  751. package/dist/node_modules/lodash/_unicodeToArray.js.map +1 -1
  752. package/dist/node_modules/lodash/constant.js +1 -2
  753. package/dist/node_modules/lodash/constant.js.map +1 -1
  754. package/dist/node_modules/lodash/debounce.js +1 -2
  755. package/dist/node_modules/lodash/debounce.js.map +1 -1
  756. package/dist/node_modules/lodash/eq.js +1 -2
  757. package/dist/node_modules/lodash/eq.js.map +1 -1
  758. package/dist/node_modules/lodash/every.js +7 -8
  759. package/dist/node_modules/lodash/every.js.map +1 -1
  760. package/dist/node_modules/lodash/find.js +1 -2
  761. package/dist/node_modules/lodash/find.js.map +1 -1
  762. package/dist/node_modules/lodash/findIndex.js +4 -5
  763. package/dist/node_modules/lodash/findIndex.js.map +1 -1
  764. package/dist/node_modules/lodash/flatMap.js +1 -2
  765. package/dist/node_modules/lodash/flatMap.js.map +1 -1
  766. package/dist/node_modules/lodash/get.js +1 -2
  767. package/dist/node_modules/lodash/get.js.map +1 -1
  768. package/dist/node_modules/lodash/hasIn.js +1 -2
  769. package/dist/node_modules/lodash/hasIn.js.map +1 -1
  770. package/dist/node_modules/lodash/identity.js +1 -2
  771. package/dist/node_modules/lodash/identity.js.map +1 -1
  772. package/dist/node_modules/lodash/isArguments.js +4 -5
  773. package/dist/node_modules/lodash/isArguments.js.map +1 -1
  774. package/dist/node_modules/lodash/isArray.js +1 -2
  775. package/dist/node_modules/lodash/isArray.js.map +1 -1
  776. package/dist/node_modules/lodash/isArrayLike.js +1 -2
  777. package/dist/node_modules/lodash/isArrayLike.js.map +1 -1
  778. package/dist/node_modules/lodash/isBoolean.js +1 -2
  779. package/dist/node_modules/lodash/isBoolean.js.map +1 -1
  780. package/dist/node_modules/lodash/isBuffer.js +1 -2
  781. package/dist/node_modules/lodash/isBuffer.js.map +1 -1
  782. package/dist/node_modules/lodash/isEqual.js +1 -2
  783. package/dist/node_modules/lodash/isEqual.js.map +1 -1
  784. package/dist/node_modules/lodash/isFunction.js +1 -2
  785. package/dist/node_modules/lodash/isFunction.js.map +1 -1
  786. package/dist/node_modules/lodash/isLength.js +4 -6
  787. package/dist/node_modules/lodash/isLength.js.map +1 -1
  788. package/dist/node_modules/lodash/isNaN.js +1 -2
  789. package/dist/node_modules/lodash/isNaN.js.map +1 -1
  790. package/dist/node_modules/lodash/isNil.js +1 -2
  791. package/dist/node_modules/lodash/isNil.js.map +1 -1
  792. package/dist/node_modules/lodash/isNumber.js +1 -2
  793. package/dist/node_modules/lodash/isNumber.js.map +1 -1
  794. package/dist/node_modules/lodash/isObject.js +1 -2
  795. package/dist/node_modules/lodash/isObject.js.map +1 -1
  796. package/dist/node_modules/lodash/isObjectLike.js +1 -2
  797. package/dist/node_modules/lodash/isObjectLike.js.map +1 -1
  798. package/dist/node_modules/lodash/isPlainObject.js +4 -5
  799. package/dist/node_modules/lodash/isPlainObject.js.map +1 -1
  800. package/dist/node_modules/lodash/isString.js +4 -5
  801. package/dist/node_modules/lodash/isString.js.map +1 -1
  802. package/dist/node_modules/lodash/isSymbol.js +1 -2
  803. package/dist/node_modules/lodash/isSymbol.js.map +1 -1
  804. package/dist/node_modules/lodash/isTypedArray.js +1 -2
  805. package/dist/node_modules/lodash/isTypedArray.js.map +1 -1
  806. package/dist/node_modules/lodash/keys.js +1 -2
  807. package/dist/node_modules/lodash/keys.js.map +1 -1
  808. package/dist/node_modules/lodash/last.js +1 -2
  809. package/dist/node_modules/lodash/last.js.map +1 -1
  810. package/dist/node_modules/lodash/map.js +6 -7
  811. package/dist/node_modules/lodash/map.js.map +1 -1
  812. package/dist/node_modules/lodash/mapValues.js +4 -5
  813. package/dist/node_modules/lodash/mapValues.js.map +1 -1
  814. package/dist/node_modules/lodash/max.js +5 -6
  815. package/dist/node_modules/lodash/max.js.map +1 -1
  816. package/dist/node_modules/lodash/memoize.js +1 -2
  817. package/dist/node_modules/lodash/memoize.js.map +1 -1
  818. package/dist/node_modules/lodash/min.js +5 -6
  819. package/dist/node_modules/lodash/min.js.map +1 -1
  820. package/dist/node_modules/lodash/noop.js +1 -2
  821. package/dist/node_modules/lodash/noop.js.map +1 -1
  822. package/dist/node_modules/lodash/now.js +1 -2
  823. package/dist/node_modules/lodash/now.js.map +1 -1
  824. package/dist/node_modules/lodash/property.js +6 -7
  825. package/dist/node_modules/lodash/property.js.map +1 -1
  826. package/dist/node_modules/lodash/range.js +1 -2
  827. package/dist/node_modules/lodash/range.js.map +1 -1
  828. package/dist/node_modules/lodash/some.js +7 -8
  829. package/dist/node_modules/lodash/some.js.map +1 -1
  830. package/dist/node_modules/lodash/sortBy.js +1 -2
  831. package/dist/node_modules/lodash/sortBy.js.map +1 -1
  832. package/dist/node_modules/lodash/stubArray.js +1 -2
  833. package/dist/node_modules/lodash/stubArray.js.map +1 -1
  834. package/dist/node_modules/lodash/stubFalse.js +1 -2
  835. package/dist/node_modules/lodash/stubFalse.js.map +1 -1
  836. package/dist/node_modules/lodash/throttle.js +4 -5
  837. package/dist/node_modules/lodash/throttle.js.map +1 -1
  838. package/dist/node_modules/lodash/toFinite.js +2 -3
  839. package/dist/node_modules/lodash/toFinite.js.map +1 -1
  840. package/dist/node_modules/lodash/toInteger.js +1 -2
  841. package/dist/node_modules/lodash/toInteger.js.map +1 -1
  842. package/dist/node_modules/lodash/toNumber.js +4 -5
  843. package/dist/node_modules/lodash/toNumber.js.map +1 -1
  844. package/dist/node_modules/lodash/toString.js +1 -2
  845. package/dist/node_modules/lodash/toString.js.map +1 -1
  846. package/dist/node_modules/lodash/uniqBy.js +1 -2
  847. package/dist/node_modules/lodash/uniqBy.js.map +1 -1
  848. package/dist/node_modules/lodash/upperFirst.js +1 -2
  849. package/dist/node_modules/lodash/upperFirst.js.map +1 -1
  850. package/dist/node_modules/object-assign/index.js +1 -2
  851. package/dist/node_modules/object-assign/index.js.map +1 -1
  852. package/dist/node_modules/prop-types/checkPropTypes.js +1 -2
  853. package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -1
  854. package/dist/node_modules/prop-types/factoryWithThrowingShims.js +1 -2
  855. package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -1
  856. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +3 -3
  857. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
  858. package/dist/node_modules/prop-types/index.js +1 -2
  859. package/dist/node_modules/prop-types/index.js.map +1 -1
  860. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +1 -2
  861. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -1
  862. package/dist/node_modules/prop-types/lib/has.js +1 -2
  863. package/dist/node_modules/prop-types/lib/has.js.map +1 -1
  864. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +1 -2
  865. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  866. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +1 -2
  867. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  868. package/dist/node_modules/prop-types/node_modules/react-is/index.js +2 -3
  869. package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -1
  870. package/dist/node_modules/react-is/cjs/react-is.development.js +31 -32
  871. package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  872. package/dist/node_modules/react-is/cjs/react-is.production.min.js +1 -2
  873. package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  874. package/dist/node_modules/react-is/index.js +2 -3
  875. package/dist/node_modules/react-is/index.js.map +1 -1
  876. package/dist/node_modules/react-smooth/es6/Animate.js +33 -41
  877. package/dist/node_modules/react-smooth/es6/Animate.js.map +1 -1
  878. package/dist/node_modules/react-smooth/es6/AnimateManager.js +2 -5
  879. package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +1 -1
  880. package/dist/node_modules/react-smooth/es6/configUpdate.js +1 -2
  881. package/dist/node_modules/react-smooth/es6/configUpdate.js.map +1 -1
  882. package/dist/node_modules/react-smooth/es6/easing.js +1 -2
  883. package/dist/node_modules/react-smooth/es6/easing.js.map +1 -1
  884. package/dist/node_modules/react-smooth/es6/index.js +1 -2
  885. package/dist/node_modules/react-smooth/es6/index.js.map +1 -1
  886. package/dist/node_modules/react-smooth/es6/setRafTimeout.js +1 -2
  887. package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -1
  888. package/dist/node_modules/react-smooth/es6/util.js +17 -16
  889. package/dist/node_modules/react-smooth/es6/util.js.map +1 -1
  890. package/dist/node_modules/recharts/es6/cartesian/Bar.js +103 -104
  891. package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +1 -1
  892. package/dist/node_modules/recharts/es6/cartesian/Brush.js +35 -36
  893. package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -1
  894. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +60 -67
  895. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -1
  896. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +45 -46
  897. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +1 -1
  898. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +20 -21
  899. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -1
  900. package/dist/node_modules/recharts/es6/cartesian/Line.js +79 -80
  901. package/dist/node_modules/recharts/es6/cartesian/Line.js.map +1 -1
  902. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +29 -30
  903. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -1
  904. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +23 -24
  905. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -1
  906. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +31 -32
  907. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -1
  908. package/dist/node_modules/recharts/es6/cartesian/XAxis.js +10 -11
  909. package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -1
  910. package/dist/node_modules/recharts/es6/cartesian/YAxis.js +10 -11
  911. package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -1
  912. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +5 -6
  913. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -1
  914. package/dist/node_modules/recharts/es6/cartesian/getTicks.js +7 -8
  915. package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -1
  916. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +2 -5
  917. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -1
  918. package/dist/node_modules/recharts/es6/chart/BarChart.js +7 -8
  919. package/dist/node_modules/recharts/es6/chart/BarChart.js.map +1 -1
  920. package/dist/node_modules/recharts/es6/chart/LineChart.js +5 -6
  921. package/dist/node_modules/recharts/es6/chart/LineChart.js.map +1 -1
  922. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +534 -533
  923. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -1
  924. package/dist/node_modules/recharts/es6/component/Cell.js +1 -2
  925. package/dist/node_modules/recharts/es6/component/Cell.js.map +1 -1
  926. package/dist/node_modules/recharts/es6/component/Cursor.js +17 -18
  927. package/dist/node_modules/recharts/es6/component/Cursor.js.map +1 -1
  928. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +35 -36
  929. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -1
  930. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +16 -17
  931. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -1
  932. package/dist/node_modules/recharts/es6/component/Label.js +85 -86
  933. package/dist/node_modules/recharts/es6/component/Label.js.map +1 -1
  934. package/dist/node_modules/recharts/es6/component/LabelList.js +20 -21
  935. package/dist/node_modules/recharts/es6/component/LabelList.js.map +1 -1
  936. package/dist/node_modules/recharts/es6/component/Legend.js +26 -23
  937. package/dist/node_modules/recharts/es6/component/Legend.js.map +1 -1
  938. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +16 -17
  939. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -1
  940. package/dist/node_modules/recharts/es6/component/Text.js +18 -21
  941. package/dist/node_modules/recharts/es6/component/Text.js.map +1 -1
  942. package/dist/node_modules/recharts/es6/component/Tooltip.js +16 -17
  943. package/dist/node_modules/recharts/es6/component/Tooltip.js.map +1 -1
  944. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +3 -4
  945. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -1
  946. package/dist/node_modules/recharts/es6/container/Layer.js +5 -6
  947. package/dist/node_modules/recharts/es6/container/Layer.js.map +1 -1
  948. package/dist/node_modules/recharts/es6/container/Surface.js +5 -6
  949. package/dist/node_modules/recharts/es6/container/Surface.js.map +1 -1
  950. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +21 -21
  951. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -1
  952. package/dist/node_modules/recharts/es6/shape/Cross.js +4 -5
  953. package/dist/node_modules/recharts/es6/shape/Cross.js.map +1 -1
  954. package/dist/node_modules/recharts/es6/shape/Curve.js +38 -49
  955. package/dist/node_modules/recharts/es6/shape/Curve.js.map +1 -1
  956. package/dist/node_modules/recharts/es6/shape/Dot.js +3 -4
  957. package/dist/node_modules/recharts/es6/shape/Dot.js.map +1 -1
  958. package/dist/node_modules/recharts/es6/shape/Rectangle.js +8 -9
  959. package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +1 -1
  960. package/dist/node_modules/recharts/es6/shape/Sector.js +33 -34
  961. package/dist/node_modules/recharts/es6/shape/Sector.js.map +1 -1
  962. package/dist/node_modules/recharts/es6/shape/Symbols.js +26 -34
  963. package/dist/node_modules/recharts/es6/shape/Symbols.js.map +1 -1
  964. package/dist/node_modules/recharts/es6/shape/Trapezoid.js +8 -9
  965. package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -1
  966. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +24 -25
  967. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -1
  968. package/dist/node_modules/recharts/es6/util/BarUtils.js +10 -11
  969. package/dist/node_modules/recharts/es6/util/BarUtils.js.map +1 -1
  970. package/dist/node_modules/recharts/es6/util/CartesianUtils.js +33 -34
  971. package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -1
  972. package/dist/node_modules/recharts/es6/util/ChartUtils.js +231 -236
  973. package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +1 -1
  974. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +1 -2
  975. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -1
  976. package/dist/node_modules/recharts/es6/util/DOMUtils.js +1 -2
  977. package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +1 -1
  978. package/dist/node_modules/recharts/es6/util/DataUtils.js +7 -8
  979. package/dist/node_modules/recharts/es6/util/DataUtils.js.map +1 -1
  980. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +20 -21
  981. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -1
  982. package/dist/node_modules/recharts/es6/util/Events.js +0 -1
  983. package/dist/node_modules/recharts/es6/util/Events.js.map +1 -1
  984. package/dist/node_modules/recharts/es6/util/Global.js +0 -1
  985. package/dist/node_modules/recharts/es6/util/Global.js.map +1 -1
  986. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +1 -2
  987. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -1
  988. package/dist/node_modules/recharts/es6/util/LogUtils.js +9 -8
  989. package/dist/node_modules/recharts/es6/util/LogUtils.js.map +1 -1
  990. package/dist/node_modules/recharts/es6/util/PolarUtils.js +4 -5
  991. package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +1 -1
  992. package/dist/node_modules/recharts/es6/util/ReactUtils.js +11 -12
  993. package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +1 -1
  994. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +5 -6
  995. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -1
  996. package/dist/node_modules/recharts/es6/util/ShallowEqual.js +1 -2
  997. package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -1
  998. package/dist/node_modules/recharts/es6/util/TickUtils.js +4 -4
  999. package/dist/node_modules/recharts/es6/util/TickUtils.js.map +1 -1
  1000. package/dist/node_modules/recharts/es6/util/calculateViewBox.js +0 -1
  1001. package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -1
  1002. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +7 -6
  1003. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -1
  1004. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +1 -2
  1005. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -1
  1006. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +1 -2
  1007. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -1
  1008. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +1 -2
  1009. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -1
  1010. package/dist/node_modules/recharts/es6/util/getLegendProps.js +9 -10
  1011. package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +1 -1
  1012. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +1 -2
  1013. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -1
  1014. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +4 -5
  1015. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -1
  1016. package/dist/node_modules/recharts/es6/util/tooltip/translate.js +3 -4
  1017. package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -1
  1018. package/dist/node_modules/recharts/es6/util/types.js +2 -3
  1019. package/dist/node_modules/recharts/es6/util/types.js.map +1 -1
  1020. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +2 -3
  1021. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -1
  1022. package/dist/node_modules/recharts-scale/es6/index.js +1 -1
  1023. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +1 -2
  1024. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -1
  1025. package/dist/node_modules/recharts-scale/es6/util/utils.js +3 -4
  1026. package/dist/node_modules/recharts-scale/es6/util/utils.js.map +1 -1
  1027. package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js +2 -3
  1028. package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +1 -1
  1029. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js +41 -42
  1030. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +1 -1
  1031. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js +14 -15
  1032. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +1 -1
  1033. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js +21 -18
  1034. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +1 -1
  1035. package/dist/node_modules/rxjs/dist/esm5/internal/config.js +1 -2
  1036. package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +1 -1
  1037. package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js +1 -2
  1038. package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +1 -1
  1039. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +2 -3
  1040. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +1 -1
  1041. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +1 -2
  1042. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +1 -1
  1043. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +1 -2
  1044. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +1 -1
  1045. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +1 -2
  1046. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +1 -1
  1047. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +1 -2
  1048. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +1 -1
  1049. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +1 -2
  1050. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +1 -1
  1051. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +1 -2
  1052. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +1 -1
  1053. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +1 -2
  1054. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +1 -1
  1055. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +1 -2
  1056. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +1 -1
  1057. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js +1 -2
  1058. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +1 -1
  1059. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +1 -2
  1060. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +1 -1
  1061. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +229 -167
  1062. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  1063. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +2 -3
  1064. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -1
  1065. package/dist/node_modules/{rxjs/node_modules/tslib → tslib}/tslib.es6.js +1 -2
  1066. package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
  1067. package/dist/node_modules/victory-vendor/es/d3-scale.js +28 -45
  1068. package/dist/node_modules/victory-vendor/es/d3-scale.js.map +1 -1
  1069. package/dist/test/happydom.d.ts +1 -0
  1070. package/dist/translations/en.d.ts +46 -1
  1071. package/dist/translations/en.js +48 -3
  1072. package/dist/translations/en.js.map +1 -1
  1073. package/dist/utils/nativeBridge.d.ts +0 -1
  1074. package/dist/utils/nativeBridge.js +1 -2
  1075. package/package.json +76 -60
  1076. package/dist/__tests__/setup.d.ts +0 -2
  1077. package/dist/__tests__/setup.d.ts.map +0 -1
  1078. package/dist/__tests__/utils/renderWithProviders.d.ts.map +0 -1
  1079. package/dist/dev/main.d.ts.map +0 -1
  1080. package/dist/devportal/AdminDevportalRoot.d.ts.map +0 -1
  1081. package/dist/devportal/AdminDevportalRoutes.d.ts.map +0 -1
  1082. package/dist/devportal/DevportalRoot.d.ts.map +0 -1
  1083. package/dist/devportal/DevportalRoutes.d.ts.map +0 -1
  1084. package/dist/devportal/components/AppCard.d.ts.map +0 -1
  1085. package/dist/devportal/components/ConfirmDialog.d.ts.map +0 -1
  1086. package/dist/devportal/components/DataTable.d.ts.map +0 -1
  1087. package/dist/devportal/components/EmptyState.d.ts.map +0 -1
  1088. package/dist/devportal/components/FeatureFlaggedRoute.d.ts.map +0 -1
  1089. package/dist/devportal/components/FormField.d.ts.map +0 -1
  1090. package/dist/devportal/components/GrantDelegationModal.d.ts.map +0 -1
  1091. package/dist/devportal/components/ImageUploadField.d.ts.map +0 -1
  1092. package/dist/devportal/components/LoadingState.d.ts.map +0 -1
  1093. package/dist/devportal/components/ManifestViewer.d.ts.map +0 -1
  1094. package/dist/devportal/components/MarkdownEditor.d.ts.map +0 -1
  1095. package/dist/devportal/components/MultiSelectCombobox.d.ts.map +0 -1
  1096. package/dist/devportal/components/NodeSmokePanel.d.ts.map +0 -1
  1097. package/dist/devportal/components/OnboardingChecklist.d.ts.map +0 -1
  1098. package/dist/devportal/components/PackageValidationPanel.d.ts.map +0 -1
  1099. package/dist/devportal/components/PageLayout.d.ts.map +0 -1
  1100. package/dist/devportal/components/PermissionGuard.d.ts.map +0 -1
  1101. package/dist/devportal/components/RegisterPickupLocationModal.d.ts.map +0 -1
  1102. package/dist/devportal/components/ReportOrderIssueModal.d.ts.map +0 -1
  1103. package/dist/devportal/components/SecretDisplay.d.ts.map +0 -1
  1104. package/dist/devportal/components/SectionNav.d.ts.map +0 -1
  1105. package/dist/devportal/components/SelectionCheckbox.d.ts.map +0 -1
  1106. package/dist/devportal/components/StatCard.d.ts.map +0 -1
  1107. package/dist/devportal/components/StatusBadge.d.ts.map +0 -1
  1108. package/dist/devportal/components/TelemetryErrorBoundary.d.ts.map +0 -1
  1109. package/dist/devportal/components/index.d.ts.map +0 -1
  1110. package/dist/devportal/constants/appCategories.d.ts.map +0 -1
  1111. package/dist/devportal/constants/developerLinks.d.ts.map +0 -1
  1112. package/dist/devportal/constants/permissions.d.ts.map +0 -1
  1113. package/dist/devportal/events/index.d.ts.map +0 -1
  1114. package/dist/devportal/hooks/DevPortalProvider.d.ts.map +0 -1
  1115. package/dist/devportal/hooks/index.d.ts.map +0 -1
  1116. package/dist/devportal/hooks/useCarrierPickupLocations.d.ts.map +0 -1
  1117. package/dist/devportal/hooks/useGraphQL.d.ts.map +0 -1
  1118. package/dist/devportal/hooks/useIsSellerSection.d.ts.map +0 -1
  1119. package/dist/devportal/hooks/useOrganizationPickupAddresses.d.ts.map +0 -1
  1120. package/dist/devportal/hooks/usePackageUpload.d.ts.map +0 -1
  1121. package/dist/devportal/hooks/usePermission.d.ts.map +0 -1
  1122. package/dist/devportal/hooks/useProducts.d.ts.map +0 -1
  1123. package/dist/devportal/hooks/useSellerOrganization.d.ts.map +0 -1
  1124. package/dist/devportal/index.d.ts.map +0 -1
  1125. package/dist/devportal/pages/AdminOrganizationVerificationPage.d.ts.map +0 -1
  1126. package/dist/devportal/pages/AdminReviewPage.d.ts.map +0 -1
  1127. package/dist/devportal/pages/AnalyticsDashboardPage.d.ts.map +0 -1
  1128. package/dist/devportal/pages/ApiKeysPage.d.ts.map +0 -1
  1129. package/dist/devportal/pages/AppLogsPage.d.ts.map +0 -1
  1130. package/dist/devportal/pages/ApplicationDetailPage.d.ts.map +0 -1
  1131. package/dist/devportal/pages/ApplicationVersionsPage.d.ts.map +0 -1
  1132. package/dist/devportal/pages/ApplicationsPage.d.ts.map +0 -1
  1133. package/dist/devportal/pages/CreateApiKeyPage.d.ts.map +0 -1
  1134. package/dist/devportal/pages/CreateApplicationPage.d.ts.map +0 -1
  1135. package/dist/devportal/pages/CreateOAuthClientPage.d.ts.map +0 -1
  1136. package/dist/devportal/pages/CreateOrganizationPage.d.ts.map +0 -1
  1137. package/dist/devportal/pages/CreatePhysicalItemPage.d.ts.map +0 -1
  1138. package/dist/devportal/pages/CreateWebhookPage.d.ts.map +0 -1
  1139. package/dist/devportal/pages/DashboardPage.d.ts.map +0 -1
  1140. package/dist/devportal/pages/DelegationsPage.d.ts.map +0 -1
  1141. package/dist/devportal/pages/DocumentationPage.d.ts.map +0 -1
  1142. package/dist/devportal/pages/EditApplicationPage.d.ts.map +0 -1
  1143. package/dist/devportal/pages/EditPhysicalItemPage.d.ts.map +0 -1
  1144. package/dist/devportal/pages/InvitationDecisionPage.d.ts.map +0 -1
  1145. package/dist/devportal/pages/ListingPreviewPage.d.ts.map +0 -1
  1146. package/dist/devportal/pages/NodeLifecyclePage.d.ts.map +0 -1
  1147. package/dist/devportal/pages/OAuthCallbackPage.d.ts.map +0 -1
  1148. package/dist/devportal/pages/OAuthClientDetailPage.d.ts.map +0 -1
  1149. package/dist/devportal/pages/OAuthClientsPage.d.ts.map +0 -1
  1150. package/dist/devportal/pages/OrganizationDetailPage.d.ts.map +0 -1
  1151. package/dist/devportal/pages/OrganizationMembersPage.d.ts.map +0 -1
  1152. package/dist/devportal/pages/OrganizationsPage.d.ts.map +0 -1
  1153. package/dist/devportal/pages/PublishPage.d.ts.map +0 -1
  1154. package/dist/devportal/pages/PublisherPayoutsPage.d.ts.map +0 -1
  1155. package/dist/devportal/pages/PublisherProfilePage.d.ts.map +0 -1
  1156. package/dist/devportal/pages/ResourcesPage.d.ts.map +0 -1
  1157. package/dist/devportal/pages/RevenueDashboardPage.d.ts.map +0 -1
  1158. package/dist/devportal/pages/RevenueRedirectPage.d.ts.map +0 -1
  1159. package/dist/devportal/pages/SellerDashboardPage.d.ts.map +0 -1
  1160. package/dist/devportal/pages/SellerItemsPage.d.ts.map +0 -1
  1161. package/dist/devportal/pages/SellerOrdersPage.d.ts.map +0 -1
  1162. package/dist/devportal/pages/SettingsPage.d.ts.map +0 -1
  1163. package/dist/devportal/pages/SetupPage.d.ts.map +0 -1
  1164. package/dist/devportal/pages/StoreSubmissionPage.d.ts.map +0 -1
  1165. package/dist/devportal/pages/WebhookDetailPage.d.ts.map +0 -1
  1166. package/dist/devportal/pages/WebhooksPage.d.ts.map +0 -1
  1167. package/dist/devportal/providers/DevportalProvider.d.ts.map +0 -1
  1168. package/dist/devportal/store/devportalStore.d.ts.map +0 -1
  1169. package/dist/devportal/types/index.d.ts.map +0 -1
  1170. package/dist/devportal/utils/cn.d.ts.map +0 -1
  1171. package/dist/devportal/utils/constants.d.ts.map +0 -1
  1172. package/dist/devportal/utils/currency.d.ts.map +0 -1
  1173. package/dist/devportal/utils/developerOnboarding.d.ts.map +0 -1
  1174. package/dist/devportal/utils/graphqlEndpoint.d.ts.map +0 -1
  1175. package/dist/devportal/utils/i18n.d.ts.map +0 -1
  1176. package/dist/devportal/utils/nodeLifecycle.d.ts.map +0 -1
  1177. package/dist/devportal/utils/publisherPayouts.d.ts.map +0 -1
  1178. package/dist/devportal/utils/recaptcha.d.ts.map +0 -1
  1179. package/dist/devportal/utils/submitForReview.d.ts.map +0 -1
  1180. package/dist/devportal/utils/uploadErrors.d.ts.map +0 -1
  1181. package/dist/generated/global-operations.d.ts.map +0 -1
  1182. package/dist/generated/global-types.d.ts.map +0 -1
  1183. package/dist/generated/wspace-operations.d.ts.map +0 -1
  1184. package/dist/generated/wspace-types.d.ts.map +0 -1
  1185. package/dist/index.d.ts.map +0 -1
  1186. package/dist/node_modules/d3-array/src/ascending.js +0 -8
  1187. package/dist/node_modules/d3-array/src/ascending.js.map +0 -1
  1188. package/dist/node_modules/d3-array/src/bisect.js +0 -10
  1189. package/dist/node_modules/d3-array/src/bisect.js.map +0 -1
  1190. package/dist/node_modules/d3-array/src/bisector.js +0 -43
  1191. package/dist/node_modules/d3-array/src/bisector.js.map +0 -1
  1192. package/dist/node_modules/d3-array/src/descending.js +0 -8
  1193. package/dist/node_modules/d3-array/src/descending.js.map +0 -1
  1194. package/dist/node_modules/d3-array/src/max.js +0 -14
  1195. package/dist/node_modules/d3-array/src/max.js.map +0 -1
  1196. package/dist/node_modules/d3-array/src/min.js +0 -14
  1197. package/dist/node_modules/d3-array/src/min.js.map +0 -1
  1198. package/dist/node_modules/d3-array/src/number.js +0 -15
  1199. package/dist/node_modules/d3-array/src/number.js.map +0 -1
  1200. package/dist/node_modules/d3-array/src/quantile.js +0 -25
  1201. package/dist/node_modules/d3-array/src/quantile.js.map +0 -1
  1202. package/dist/node_modules/d3-array/src/quickselect.js +0 -26
  1203. package/dist/node_modules/d3-array/src/quickselect.js.map +0 -1
  1204. package/dist/node_modules/d3-array/src/range.js +0 -10
  1205. package/dist/node_modules/d3-array/src/range.js.map +0 -1
  1206. package/dist/node_modules/d3-array/src/sort.js +0 -17
  1207. package/dist/node_modules/d3-array/src/sort.js.map +0 -1
  1208. package/dist/node_modules/d3-array/src/ticks.js +0 -34
  1209. package/dist/node_modules/d3-array/src/ticks.js.map +0 -1
  1210. package/dist/node_modules/d3-color/src/color.js +0 -291
  1211. package/dist/node_modules/d3-color/src/color.js.map +0 -1
  1212. package/dist/node_modules/d3-color/src/define.js +0 -13
  1213. package/dist/node_modules/d3-color/src/define.js.map +0 -1
  1214. package/dist/node_modules/d3-format/src/defaultLocale.js +0 -15
  1215. package/dist/node_modules/d3-format/src/defaultLocale.js.map +0 -1
  1216. package/dist/node_modules/d3-format/src/exponent.js +0 -9
  1217. package/dist/node_modules/d3-format/src/exponent.js.map +0 -1
  1218. package/dist/node_modules/d3-format/src/formatDecimal.js +0 -13
  1219. package/dist/node_modules/d3-format/src/formatDecimal.js.map +0 -1
  1220. package/dist/node_modules/d3-format/src/formatGroup.js +0 -11
  1221. package/dist/node_modules/d3-format/src/formatGroup.js.map +0 -1
  1222. package/dist/node_modules/d3-format/src/formatNumerals.js +0 -12
  1223. package/dist/node_modules/d3-format/src/formatNumerals.js.map +0 -1
  1224. package/dist/node_modules/d3-format/src/formatPrefixAuto.js +0 -13
  1225. package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
  1226. package/dist/node_modules/d3-format/src/formatRounded.js +0 -12
  1227. package/dist/node_modules/d3-format/src/formatRounded.js.map +0 -1
  1228. package/dist/node_modules/d3-format/src/formatSpecifier.js +0 -29
  1229. package/dist/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
  1230. package/dist/node_modules/d3-format/src/formatTrim.js +0 -20
  1231. package/dist/node_modules/d3-format/src/formatTrim.js.map +0 -1
  1232. package/dist/node_modules/d3-format/src/formatTypes.js +0 -23
  1233. package/dist/node_modules/d3-format/src/formatTypes.js.map +0 -1
  1234. package/dist/node_modules/d3-format/src/identity.js +0 -8
  1235. package/dist/node_modules/d3-format/src/identity.js.map +0 -1
  1236. package/dist/node_modules/d3-format/src/locale.js +0 -86
  1237. package/dist/node_modules/d3-format/src/locale.js.map +0 -1
  1238. package/dist/node_modules/d3-format/src/precisionFixed.js +0 -9
  1239. package/dist/node_modules/d3-format/src/precisionFixed.js.map +0 -1
  1240. package/dist/node_modules/d3-format/src/precisionPrefix.js +0 -9
  1241. package/dist/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
  1242. package/dist/node_modules/d3-format/src/precisionRound.js +0 -9
  1243. package/dist/node_modules/d3-format/src/precisionRound.js.map +0 -1
  1244. package/dist/node_modules/d3-interpolate/src/array.js +0 -15
  1245. package/dist/node_modules/d3-interpolate/src/array.js.map +0 -1
  1246. package/dist/node_modules/d3-interpolate/src/basis.js +0 -16
  1247. package/dist/node_modules/d3-interpolate/src/basis.js.map +0 -1
  1248. package/dist/node_modules/d3-interpolate/src/basisClosed.js +0 -13
  1249. package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +0 -1
  1250. package/dist/node_modules/d3-interpolate/src/color.js +0 -25
  1251. package/dist/node_modules/d3-interpolate/src/color.js.map +0 -1
  1252. package/dist/node_modules/d3-interpolate/src/constant.js +0 -6
  1253. package/dist/node_modules/d3-interpolate/src/constant.js.map +0 -1
  1254. package/dist/node_modules/d3-interpolate/src/date.js +0 -11
  1255. package/dist/node_modules/d3-interpolate/src/date.js.map +0 -1
  1256. package/dist/node_modules/d3-interpolate/src/number.js +0 -10
  1257. package/dist/node_modules/d3-interpolate/src/number.js.map +0 -1
  1258. package/dist/node_modules/d3-interpolate/src/numberArray.js +0 -16
  1259. package/dist/node_modules/d3-interpolate/src/numberArray.js.map +0 -1
  1260. package/dist/node_modules/d3-interpolate/src/object.js +0 -14
  1261. package/dist/node_modules/d3-interpolate/src/object.js.map +0 -1
  1262. package/dist/node_modules/d3-interpolate/src/piecewise.js +0 -14
  1263. package/dist/node_modules/d3-interpolate/src/piecewise.js.map +0 -1
  1264. package/dist/node_modules/d3-interpolate/src/rgb.js +0 -19
  1265. package/dist/node_modules/d3-interpolate/src/rgb.js.map +0 -1
  1266. package/dist/node_modules/d3-interpolate/src/round.js +0 -10
  1267. package/dist/node_modules/d3-interpolate/src/round.js.map +0 -1
  1268. package/dist/node_modules/d3-interpolate/src/string.js +0 -28
  1269. package/dist/node_modules/d3-interpolate/src/string.js.map +0 -1
  1270. package/dist/node_modules/d3-interpolate/src/value.js +0 -18
  1271. package/dist/node_modules/d3-interpolate/src/value.js.map +0 -1
  1272. package/dist/node_modules/d3-path/src/path.js.map +0 -1
  1273. package/dist/node_modules/d3-scale/src/band.js +0 -52
  1274. package/dist/node_modules/d3-scale/src/band.js.map +0 -1
  1275. package/dist/node_modules/d3-scale/src/constant.js +0 -10
  1276. package/dist/node_modules/d3-scale/src/constant.js.map +0 -1
  1277. package/dist/node_modules/d3-scale/src/continuous.js +0 -73
  1278. package/dist/node_modules/d3-scale/src/continuous.js.map +0 -1
  1279. package/dist/node_modules/d3-scale/src/diverging.js +0 -82
  1280. package/dist/node_modules/d3-scale/src/diverging.js.map +0 -1
  1281. package/dist/node_modules/d3-scale/src/identity.js +0 -20
  1282. package/dist/node_modules/d3-scale/src/identity.js.map +0 -1
  1283. package/dist/node_modules/d3-scale/src/init.js +0 -29
  1284. package/dist/node_modules/d3-scale/src/init.js.map +0 -1
  1285. package/dist/node_modules/d3-scale/src/linear.js +0 -36
  1286. package/dist/node_modules/d3-scale/src/linear.js.map +0 -1
  1287. package/dist/node_modules/d3-scale/src/log.js +0 -77
  1288. package/dist/node_modules/d3-scale/src/log.js.map +0 -1
  1289. package/dist/node_modules/d3-scale/src/nice.js +0 -10
  1290. package/dist/node_modules/d3-scale/src/nice.js.map +0 -1
  1291. package/dist/node_modules/d3-scale/src/number.js +0 -8
  1292. package/dist/node_modules/d3-scale/src/number.js.map +0 -1
  1293. package/dist/node_modules/d3-scale/src/ordinal.js +0 -31
  1294. package/dist/node_modules/d3-scale/src/ordinal.js.map +0 -1
  1295. package/dist/node_modules/d3-scale/src/pow.js +0 -37
  1296. package/dist/node_modules/d3-scale/src/pow.js.map +0 -1
  1297. package/dist/node_modules/d3-scale/src/quantile.js +0 -37
  1298. package/dist/node_modules/d3-scale/src/quantile.js.map +0 -1
  1299. package/dist/node_modules/d3-scale/src/quantize.js +0 -33
  1300. package/dist/node_modules/d3-scale/src/quantize.js.map +0 -1
  1301. package/dist/node_modules/d3-scale/src/radial.js +0 -39
  1302. package/dist/node_modules/d3-scale/src/radial.js.map +0 -1
  1303. package/dist/node_modules/d3-scale/src/sequential.js +0 -67
  1304. package/dist/node_modules/d3-scale/src/sequential.js.map +0 -1
  1305. package/dist/node_modules/d3-scale/src/sequentialQuantile.js +0 -30
  1306. package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +0 -1
  1307. package/dist/node_modules/d3-scale/src/symlog.js +0 -30
  1308. package/dist/node_modules/d3-scale/src/symlog.js.map +0 -1
  1309. package/dist/node_modules/d3-scale/src/threshold.js +0 -25
  1310. package/dist/node_modules/d3-scale/src/threshold.js.map +0 -1
  1311. package/dist/node_modules/d3-scale/src/tickFormat.js +0 -31
  1312. package/dist/node_modules/d3-scale/src/tickFormat.js.map +0 -1
  1313. package/dist/node_modules/d3-scale/src/time.js +0 -47
  1314. package/dist/node_modules/d3-scale/src/time.js.map +0 -1
  1315. package/dist/node_modules/d3-scale/src/utcTime.js +0 -19
  1316. package/dist/node_modules/d3-scale/src/utcTime.js.map +0 -1
  1317. package/dist/node_modules/d3-shape/src/area.js +0 -55
  1318. package/dist/node_modules/d3-shape/src/area.js.map +0 -1
  1319. package/dist/node_modules/d3-shape/src/array.js +0 -8
  1320. package/dist/node_modules/d3-shape/src/array.js.map +0 -1
  1321. package/dist/node_modules/d3-shape/src/constant.js +0 -10
  1322. package/dist/node_modules/d3-shape/src/constant.js.map +0 -1
  1323. package/dist/node_modules/d3-shape/src/curve/basis.js +0 -49
  1324. package/dist/node_modules/d3-shape/src/curve/basis.js.map +0 -1
  1325. package/dist/node_modules/d3-shape/src/curve/basisClosed.js +0 -50
  1326. package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +0 -1
  1327. package/dist/node_modules/d3-shape/src/curve/basisOpen.js +0 -46
  1328. package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +0 -1
  1329. package/dist/node_modules/d3-shape/src/curve/bump.js +0 -40
  1330. package/dist/node_modules/d3-shape/src/curve/bump.js.map +0 -1
  1331. package/dist/node_modules/d3-shape/src/curve/linear.js +0 -36
  1332. package/dist/node_modules/d3-shape/src/curve/linear.js.map +0 -1
  1333. package/dist/node_modules/d3-shape/src/curve/linearClosed.js +0 -25
  1334. package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +0 -1
  1335. package/dist/node_modules/d3-shape/src/curve/monotone.js +0 -94
  1336. package/dist/node_modules/d3-shape/src/curve/monotone.js.map +0 -1
  1337. package/dist/node_modules/d3-shape/src/curve/natural.js +0 -39
  1338. package/dist/node_modules/d3-shape/src/curve/natural.js.map +0 -1
  1339. package/dist/node_modules/d3-shape/src/curve/step.js +0 -47
  1340. package/dist/node_modules/d3-shape/src/curve/step.js.map +0 -1
  1341. package/dist/node_modules/d3-shape/src/line.js +0 -30
  1342. package/dist/node_modules/d3-shape/src/line.js.map +0 -1
  1343. package/dist/node_modules/d3-shape/src/math.js +0 -8
  1344. package/dist/node_modules/d3-shape/src/math.js.map +0 -1
  1345. package/dist/node_modules/d3-shape/src/noop.js +0 -6
  1346. package/dist/node_modules/d3-shape/src/noop.js.map +0 -1
  1347. package/dist/node_modules/d3-shape/src/offset/expand.js +0 -15
  1348. package/dist/node_modules/d3-shape/src/offset/expand.js.map +0 -1
  1349. package/dist/node_modules/d3-shape/src/offset/none.js +0 -8
  1350. package/dist/node_modules/d3-shape/src/offset/none.js.map +0 -1
  1351. package/dist/node_modules/d3-shape/src/offset/silhouette.js +0 -15
  1352. package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +0 -1
  1353. package/dist/node_modules/d3-shape/src/offset/wiggle.js +0 -21
  1354. package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +0 -1
  1355. package/dist/node_modules/d3-shape/src/order/none.js +0 -9
  1356. package/dist/node_modules/d3-shape/src/order/none.js.map +0 -1
  1357. package/dist/node_modules/d3-shape/src/path.js +0 -19
  1358. package/dist/node_modules/d3-shape/src/path.js.map +0 -1
  1359. package/dist/node_modules/d3-shape/src/point.js +0 -11
  1360. package/dist/node_modules/d3-shape/src/point.js.map +0 -1
  1361. package/dist/node_modules/d3-shape/src/stack.js +0 -34
  1362. package/dist/node_modules/d3-shape/src/stack.js.map +0 -1
  1363. package/dist/node_modules/d3-shape/src/symbol/circle.js +0 -10
  1364. package/dist/node_modules/d3-shape/src/symbol/circle.js.map +0 -1
  1365. package/dist/node_modules/d3-shape/src/symbol/cross.js +0 -10
  1366. package/dist/node_modules/d3-shape/src/symbol/cross.js.map +0 -1
  1367. package/dist/node_modules/d3-shape/src/symbol/diamond.js +0 -10
  1368. package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +0 -1
  1369. package/dist/node_modules/d3-shape/src/symbol/square.js +0 -10
  1370. package/dist/node_modules/d3-shape/src/symbol/square.js.map +0 -1
  1371. package/dist/node_modules/d3-shape/src/symbol/star.js +0 -15
  1372. package/dist/node_modules/d3-shape/src/symbol/star.js.map +0 -1
  1373. package/dist/node_modules/d3-shape/src/symbol/triangle.js +0 -10
  1374. package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +0 -1
  1375. package/dist/node_modules/d3-shape/src/symbol/wye.js +0 -10
  1376. package/dist/node_modules/d3-shape/src/symbol/wye.js.map +0 -1
  1377. package/dist/node_modules/d3-shape/src/symbol.js +0 -23
  1378. package/dist/node_modules/d3-shape/src/symbol.js.map +0 -1
  1379. package/dist/node_modules/d3-time/src/day.js +0 -21
  1380. package/dist/node_modules/d3-time/src/day.js.map +0 -1
  1381. package/dist/node_modules/d3-time/src/duration.js +0 -6
  1382. package/dist/node_modules/d3-time/src/duration.js.map +0 -1
  1383. package/dist/node_modules/d3-time/src/hour.js +0 -19
  1384. package/dist/node_modules/d3-time/src/hour.js.map +0 -1
  1385. package/dist/node_modules/d3-time/src/interval.js +0 -28
  1386. package/dist/node_modules/d3-time/src/interval.js.map +0 -1
  1387. package/dist/node_modules/d3-time/src/millisecond.js +0 -14
  1388. package/dist/node_modules/d3-time/src/millisecond.js.map +0 -1
  1389. package/dist/node_modules/d3-time/src/minute.js +0 -19
  1390. package/dist/node_modules/d3-time/src/minute.js.map +0 -1
  1391. package/dist/node_modules/d3-time/src/month.js +0 -18
  1392. package/dist/node_modules/d3-time/src/month.js.map +0 -1
  1393. package/dist/node_modules/d3-time/src/second.js +0 -13
  1394. package/dist/node_modules/d3-time/src/second.js.map +0 -1
  1395. package/dist/node_modules/d3-time/src/ticks.js +0 -125
  1396. package/dist/node_modules/d3-time/src/ticks.js.map +0 -1
  1397. package/dist/node_modules/d3-time/src/week.js +0 -25
  1398. package/dist/node_modules/d3-time/src/week.js.map +0 -1
  1399. package/dist/node_modules/d3-time/src/year.js +0 -26
  1400. package/dist/node_modules/d3-time/src/year.js.map +0 -1
  1401. package/dist/node_modules/d3-time-format/src/defaultLocale.js +0 -62
  1402. package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +0 -1
  1403. package/dist/node_modules/d3-time-format/src/locale.js.map +0 -1
  1404. package/dist/node_modules/internmap/src/index.js +0 -40
  1405. package/dist/node_modules/internmap/src/index.js.map +0 -1
  1406. package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js.map +0 -1
  1407. package/dist/translations/en.d.ts.map +0 -1
  1408. package/dist/utils/nativeBridge.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../../../src/devportal/utils/constants.ts"],"sourcesContent":["/**\n * Developer Portal Constants\n */\n\n// API Endpoints\nexport const API_ENDPOINTS = {\n GRAPHQL: \"/graphql\",\n} as const;\n\n// App Status Colors\nexport const APP_STATUS_COLORS: Record<string, string> = {\n DRAFT: \"bg-bg-sunken text-text-primary\",\n SUBMITTED: \"bg-status-info-bg-subtle text-status-info-text\",\n IN_REVIEW: \"bg-status-warning-bg-subtle text-status-warning-text\",\n APPROVED: \"bg-status-success-bg-subtle text-status-success-text\",\n PUBLISHED: \"bg-status-success-bg-subtle text-status-success-text\",\n REJECTED: \"bg-status-error-bg-subtle text-status-error-text\",\n SUSPENDED: \"bg-accent-orange-subtle text-accent-orange\",\n DEPRECATED: \"bg-bg-sunken text-text-secondary\",\n ACTIVE: \"bg-status-success-bg-subtle text-status-success-text\",\n INACTIVE: \"bg-bg-sunken text-text-secondary\",\n REVOKED: \"bg-status-error-bg-subtle text-status-error-text\",\n};\n\n// Webhook Status Colors\nexport const WEBHOOK_STATUS_COLORS: Record<string, string> = {\n ACTIVE: \"bg-status-success-bg-subtle text-status-success-text\",\n PAUSED: \"bg-status-warning-bg-subtle text-status-warning-text\",\n FAILED: \"bg-status-error-bg-subtle text-status-error-text\",\n DISABLED: \"bg-bg-sunken text-text-secondary\",\n};\n\n// Delivery Status Colors\nexport const DELIVERY_STATUS_COLORS: Record<string, string> = {\n PENDING: \"bg-bg-sunken text-text-primary\",\n DELIVERING: \"bg-status-info-bg-subtle text-status-info-text\",\n DELIVERED: \"bg-status-success-bg-subtle text-status-success-text\",\n FAILED: \"bg-status-error-bg-subtle text-status-error-text\",\n RETRYING: \"bg-status-warning-bg-subtle text-status-warning-text\",\n};\n\n// Invitation Status Colors\nexport const INVITATION_STATUS_COLORS: Record<string, string> = {\n PENDING: \"bg-status-warning-bg-subtle text-status-warning-text\",\n ACCEPTED: \"bg-status-success-bg-subtle text-status-success-text\",\n REJECTED: \"bg-status-error-bg-subtle text-status-error-text\",\n EXPIRED: \"bg-bg-sunken text-text-secondary\",\n CANCELLED: \"bg-bg-sunken text-text-secondary\",\n};\n\n// Organization Tier Colors\nexport const ORG_TIER_COLORS: Record<string, string> = {\n FREE: \"bg-bg-sunken text-text-primary\",\n DEVELOPER: \"bg-status-info-bg-subtle text-status-info-text\",\n PROFESSIONAL: \"bg-accent-purple-subtle text-accent-purple\",\n ENTERPRISE: \"bg-status-warning-bg-subtle text-status-warning-text\",\n};\n\n// Partner Tier Colors\nexport const PARTNER_TIER_COLORS: Record<string, string> = {\n REGISTERED: \"bg-bg-sunken text-text-primary\",\n SELECT: \"bg-status-info-bg-subtle text-status-info-text\",\n PREMIER: \"bg-status-warning-bg-subtle text-status-warning-text\",\n};\n\n// App Type Labels\nexport const APP_TYPE_LABELS: Record<string, string> = {\n WEB_APP: \"Web Application\",\n MOBILE_APP: \"Mobile App\",\n DESKTOP_APP: \"Desktop App\",\n CLI_TOOL: \"CLI Tool\",\n API_INTEGRATION: \"API Integration\",\n WORKFLOW: \"Workflow\",\n WIDGET: \"Widget\",\n BOT: \"Bot\",\n SERVICE: \"Service\",\n INTEGRATION: \"Integration\",\n ANALYST: \"Analyst\",\n ASSISTANT: \"Assistant\",\n AUTOMATION: \"Automation\",\n SPECIALIST: \"Specialist\",\n PARSER: \"Parser\",\n DASHBOARD: \"Dashboard Template\",\n};\n\n// OAuth Grant Type Labels\nexport const GRANT_TYPE_LABELS: Record<string, string> = {\n AUTHORIZATION_CODE: \"Authorization Code\",\n REFRESH_TOKEN: \"Refresh Token\",\n CLIENT_CREDENTIALS: \"Client Credentials\",\n IMPLICIT: \"Implicit (Legacy)\",\n PASSWORD: \"Password (Legacy)\",\n};\n\n// API Key Type Labels\nexport const API_KEY_TYPE_LABELS: Record<string, string> = {\n PUBLISHABLE: \"Publishable Key\",\n SECRET: \"Secret Key\",\n RESTRICTED: \"Restricted Key\",\n};\n\n// Organization Role Labels\nexport const ORG_ROLE_LABELS: Record<string, string> = {\n OWNER: \"Owner\",\n ADMIN: \"Admin\",\n DEVELOPER: \"Developer\",\n VIEWER: \"Viewer\",\n};\n\n// Pagination defaults\nexport const DEFAULT_PAGE_SIZE = 10;\nexport const PAGE_SIZE_OPTIONS = [10, 25, 50, 100];\n\n// Date format\nexport const DATE_FORMAT = \"MMM d, yyyy\";\nexport const DATETIME_FORMAT = \"MMM d, yyyy HH:mm\";\n\n// Documentation links\nexport const DOCS_LINKS = {\n GETTING_STARTED:\n \"https://docs.burdenoff.com/developer-portal/getting-started\",\n API_REFERENCE: \"https://docs.burdenoff.com/api-reference\",\n OAUTH2: \"https://docs.burdenoff.com/developer-portal/oauth2\",\n WEBHOOKS: \"https://docs.burdenoff.com/developer-portal/webhooks\",\n SDK_NODE: \"https://docs.burdenoff.com/sdks/nodejs\",\n SDK_PYTHON: \"https://docs.burdenoff.com/sdks/python\",\n BEST_PRACTICES: \"https://docs.burdenoff.com/developer-portal/best-practices\",\n CHANGELOG: \"https://docs.burdenoff.com/changelog\",\n};\n\n// Feature flags (for progressive rollout)\nexport const FEATURE_FLAGS = {\n SHOW_ANALYTICS: true,\n SHOW_REVENUE: true,\n SHOW_STORE_INTEGRATION: true,\n SHOW_AUDIT_LOGS: true,\n ENABLE_DARK_MODE: true,\n};\n\n// Available OAuth/API scopes\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 // Offline access\n {\n scope: \"offline_access\",\n description: \"Access data while user is offline\",\n category: \"Access\",\n },\n] as const;\n"],"mappings":";AAUA,IAAa,IAA4C;CACvD,OAAO;CACP,WAAW;CACX,WAAW;CACX,UAAU;CACV,WAAW;CACX,UAAU;CACV,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,UAAU;CACV,SAAS;CACV,EAGY,IAAgD;CAC3D,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,UAAU;CACX,EAGY,IAAiD;CAC5D,SAAS;CACT,YAAY;CACZ,WAAW;CACX,QAAQ;CACR,UAAU;CACX,EAGY,IAAmD;CAC9D,SAAS;CACT,UAAU;CACV,UAAU;CACV,SAAS;CACT,WAAW;CACZ,EAGY,IAA0C;CACrD,MAAM;CACN,WAAW;CACX,cAAc;CACd,YAAY;CACb,EAGY,IAA8C;CACzD,YAAY;CACZ,QAAQ;CACR,SAAS;CACV,EAGY,IAA0C;CACrD,SAAS;CACT,YAAY;CACZ,aAAa;CACb,UAAU;CACV,iBAAiB;CACjB,UAAU;CACV,QAAQ;CACR,KAAK;CACL,SAAS;CACT,aAAa;CACb,SAAS;CACT,WAAW;CACX,YAAY;CACZ,YAAY;CACZ,QAAQ;CACR,WAAW;CACZ,EAmBY,IAA0C;CACrD,OAAO;CACP,OAAO;CACP,WAAW;CACX,QAAQ;CACT"}
1
+ {"version":3,"file":"constants.js","names":["APP_STATUS_COLORS","WEBHOOK_STATUS_COLORS","DELIVERY_STATUS_COLORS","INVITATION_STATUS_COLORS","ORG_TIER_COLORS","PARTNER_TIER_COLORS","APP_TYPE_LABELS","ORG_ROLE_LABELS"],"sources":["../../../src/devportal/utils/constants.ts"],"sourcesContent":["/**\n * Developer Portal Constants\n */\n\n// API Endpoints\nexport const API_ENDPOINTS = {\n GRAPHQL: \"/graphql\",\n} as const;\n\n// App Status Colors\nexport const APP_STATUS_COLORS: Record<string, string> = {\n DRAFT: \"bg-bg-sunken text-text-primary\",\n SUBMITTED: \"bg-status-info-bg-subtle text-status-info-text\",\n IN_REVIEW: \"bg-status-warning-bg-subtle text-status-warning-text\",\n APPROVED: \"bg-status-success-bg-subtle text-status-success-text\",\n PUBLISHED: \"bg-status-success-bg-subtle text-status-success-text\",\n REJECTED: \"bg-status-error-bg-subtle text-status-error-text\",\n SUSPENDED: \"bg-accent-orange-subtle text-accent-orange\",\n DEPRECATED: \"bg-bg-sunken text-text-secondary\",\n ACTIVE: \"bg-status-success-bg-subtle text-status-success-text\",\n INACTIVE: \"bg-bg-sunken text-text-secondary\",\n REVOKED: \"bg-status-error-bg-subtle text-status-error-text\",\n // TimeCampus applet and marketplace states (BOFF-11005)\n CERTIFIED: \"bg-status-success-bg-subtle text-status-success-text\",\n WITHDRAWN: \"bg-bg-sunken text-text-secondary\",\n SUPERSEDED: \"bg-bg-sunken text-text-secondary\",\n NOT_LISTED: \"bg-bg-sunken text-text-secondary\",\n};\n\n// Webhook Status Colors\nexport const WEBHOOK_STATUS_COLORS: Record<string, string> = {\n ACTIVE: \"bg-status-success-bg-subtle text-status-success-text\",\n PAUSED: \"bg-status-warning-bg-subtle text-status-warning-text\",\n FAILED: \"bg-status-error-bg-subtle text-status-error-text\",\n DISABLED: \"bg-bg-sunken text-text-secondary\",\n};\n\n// Delivery Status Colors\nexport const DELIVERY_STATUS_COLORS: Record<string, string> = {\n PENDING: \"bg-bg-sunken text-text-primary\",\n DELIVERING: \"bg-status-info-bg-subtle text-status-info-text\",\n DELIVERED: \"bg-status-success-bg-subtle text-status-success-text\",\n FAILED: \"bg-status-error-bg-subtle text-status-error-text\",\n RETRYING: \"bg-status-warning-bg-subtle text-status-warning-text\",\n};\n\n// Invitation Status Colors\nexport const INVITATION_STATUS_COLORS: Record<string, string> = {\n PENDING: \"bg-status-warning-bg-subtle text-status-warning-text\",\n ACCEPTED: \"bg-status-success-bg-subtle text-status-success-text\",\n REJECTED: \"bg-status-error-bg-subtle text-status-error-text\",\n EXPIRED: \"bg-bg-sunken text-text-secondary\",\n CANCELLED: \"bg-bg-sunken text-text-secondary\",\n};\n\n// Organization Tier Colors\nexport const ORG_TIER_COLORS: Record<string, string> = {\n FREE: \"bg-bg-sunken text-text-primary\",\n DEVELOPER: \"bg-status-info-bg-subtle text-status-info-text\",\n PROFESSIONAL: \"bg-accent-purple-subtle text-accent-purple\",\n ENTERPRISE: \"bg-status-warning-bg-subtle text-status-warning-text\",\n};\n\n// Partner Tier Colors\nexport const PARTNER_TIER_COLORS: Record<string, string> = {\n REGISTERED: \"bg-bg-sunken text-text-primary\",\n SELECT: \"bg-status-info-bg-subtle text-status-info-text\",\n PREMIER: \"bg-status-warning-bg-subtle text-status-warning-text\",\n};\n\n// App Type Labels\nexport const APP_TYPE_LABELS: Record<string, string> = {\n WEB_APP: \"Web Application\",\n MOBILE_APP: \"Mobile App\",\n DESKTOP_APP: \"Desktop App\",\n CLI_TOOL: \"CLI Tool\",\n API_INTEGRATION: \"API Integration\",\n WORKFLOW: \"Workflow\",\n WIDGET: \"Widget\",\n BOT: \"Bot\",\n SERVICE: \"Service\",\n INTEGRATION: \"Integration\",\n ANALYST: \"Analyst\",\n ASSISTANT: \"Assistant\",\n AUTOMATION: \"Automation\",\n SPECIALIST: \"Specialist\",\n PARSER: \"Parser\",\n DASHBOARD: \"Dashboard Template\",\n};\n\n// OAuth Grant Type Labels\nexport const GRANT_TYPE_LABELS: Record<string, string> = {\n AUTHORIZATION_CODE: \"Authorization Code\",\n REFRESH_TOKEN: \"Refresh Token\",\n CLIENT_CREDENTIALS: \"Client Credentials\",\n IMPLICIT: \"Implicit (Legacy)\",\n PASSWORD: \"Password (Legacy)\",\n};\n\n// API Key Type Labels\nexport const API_KEY_TYPE_LABELS: Record<string, string> = {\n PUBLISHABLE: \"Publishable Key\",\n SECRET: \"Secret Key\",\n RESTRICTED: \"Restricted Key\",\n};\n\n// Organization Role Labels\nexport const ORG_ROLE_LABELS: Record<string, string> = {\n OWNER: \"Owner\",\n ADMIN: \"Admin\",\n DEVELOPER: \"Developer\",\n VIEWER: \"Viewer\",\n};\n\n// Pagination defaults\nexport const DEFAULT_PAGE_SIZE = 10;\nexport const PAGE_SIZE_OPTIONS = [10, 25, 50, 100];\n\n// Date format\nexport const DATE_FORMAT = \"MMM d, yyyy\";\nexport const DATETIME_FORMAT = \"MMM d, yyyy HH:mm\";\n\n// Documentation links\nexport const DOCS_LINKS = {\n GETTING_STARTED:\n \"https://docs.burdenoff.com/developer-portal/getting-started\",\n API_REFERENCE: \"https://docs.burdenoff.com/api-reference\",\n OAUTH2: \"https://docs.burdenoff.com/developer-portal/oauth2\",\n WEBHOOKS: \"https://docs.burdenoff.com/developer-portal/webhooks\",\n SDK_NODE: \"https://docs.burdenoff.com/sdks/nodejs\",\n SDK_PYTHON: \"https://docs.burdenoff.com/sdks/python\",\n BEST_PRACTICES: \"https://docs.burdenoff.com/developer-portal/best-practices\",\n CHANGELOG: \"https://docs.burdenoff.com/changelog\",\n};\n\n// Feature flags (for progressive rollout)\nexport const FEATURE_FLAGS = {\n SHOW_ANALYTICS: true,\n SHOW_REVENUE: true,\n SHOW_STORE_INTEGRATION: true,\n SHOW_AUDIT_LOGS: true,\n ENABLE_DARK_MODE: true,\n};\n\n// Available OAuth/API scopes\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 // Offline access\n {\n scope: \"offline_access\",\n description: \"Access data while user is offline\",\n category: \"Access\",\n },\n] as const;\n"],"mappings":";AAUA,IAAaA,IAA4C;CACvD,OAAO;CACP,WAAW;CACX,WAAW;CACX,UAAU;CACV,WAAW;CACX,UAAU;CACV,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,UAAU;CACV,SAAS;CAET,WAAW;CACX,WAAW;CACX,YAAY;CACZ,YAAY;AACd,GAGaC,IAAgD;CAC3D,QAAQ;CACR,QAAQ;CACR,QAAQ;CACR,UAAU;AACZ,GAGaC,IAAiD;CAC5D,SAAS;CACT,YAAY;CACZ,WAAW;CACX,QAAQ;CACR,UAAU;AACZ,GAGaC,IAAmD;CAC9D,SAAS;CACT,UAAU;CACV,UAAU;CACV,SAAS;CACT,WAAW;AACb,GAGaC,IAA0C;CACrD,MAAM;CACN,WAAW;CACX,cAAc;CACd,YAAY;AACd,GAGaC,IAA8C;CACzD,YAAY;CACZ,QAAQ;CACR,SAAS;AACX,GAGaC,IAA0C;CACrD,SAAS;CACT,YAAY;CACZ,aAAa;CACb,UAAU;CACV,iBAAiB;CACjB,UAAU;CACV,QAAQ;CACR,KAAK;CACL,SAAS;CACT,aAAa;CACb,SAAS;CACT,WAAW;CACX,YAAY;CACZ,YAAY;CACZ,QAAQ;CACR,WAAW;AACb,GAmBaC,IAA0C;CACrD,OAAO;CACP,OAAO;CACP,WAAW;CACX,QAAQ;AACV"}
@@ -1,2 +1 @@
1
1
  export declare function formatCurrency(amount: number, currency: string): string;
2
- //# sourceMappingURL=currency.d.ts.map
@@ -1,4 +1,4 @@
1
- //#region src/devportal/utils/currency.ts
1
+ // src/devportal/utils/currency.ts
2
2
  function e(e, t) {
3
3
  return new Intl.NumberFormat("en-US", {
4
4
  style: "currency",
@@ -6,7 +6,6 @@ function e(e, t) {
6
6
  minimumFractionDigits: 2
7
7
  }).format(e);
8
8
  }
9
- //#endregion
10
9
  export { e as formatCurrency };
11
10
 
12
11
  //# sourceMappingURL=currency.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currency.js","names":[],"sources":["../../../src/devportal/utils/currency.ts"],"sourcesContent":["export function formatCurrency(amount: number, currency: string): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: currency || \"USD\",\n minimumFractionDigits: 2,\n }).format(amount);\n}\n"],"mappings":";AAAA,SAAgB,EAAe,GAAgB,GAA0B;AACvE,QAAO,IAAI,KAAK,aAAa,SAAS;EACpC,OAAO;EACP,UAAU,KAAY;EACtB,uBAAuB;EACxB,CAAC,CAAC,OAAO,EAAO"}
1
+ {"version":3,"file":"currency.js","names":["formatCurrency","currency","amount"],"sources":["../../../src/devportal/utils/currency.ts"],"sourcesContent":["export function formatCurrency(amount: number, currency: string): string {\n return new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: currency || \"USD\",\n minimumFractionDigits: 2,\n }).format(amount);\n}\n"],"mappings":";AAAA,SAAgBA,EAAe,GAAgB,GAA0B;CACvE,OAAO,IAAI,KAAK,aAAa,SAAS;EACpC,OAAO;EACP,UAAUC,KAAY;EACtB,uBAAuB;CACzB,CAAC,CAAC,CAAC,OAAOC,CAAM;AAClB"}
@@ -82,4 +82,3 @@ export interface EligibilityRule {
82
82
  * public docs page (workspaces-docs: developers/build/register-as-a-developer).
83
83
  */
84
84
  export declare const ELIGIBILITY_RULES: ReadonlyArray<EligibilityRule>;
85
- //# sourceMappingURL=developerOnboarding.d.ts.map
@@ -1,5 +1,5 @@
1
- //#region src/devportal/utils/developerOnboarding.ts
2
- var e = new Set([
1
+ // src/devportal/utils/developerOnboarding.ts
2
+ var e = /* @__PURE__ */ new Set([
3
3
  "SUBMITTED",
4
4
  "IN_REVIEW",
5
5
  "APPROVED",
@@ -7,7 +7,7 @@ var e = new Set([
7
7
  "ACTIVE",
8
8
  "UNLISTED",
9
9
  "DEPRECATED"
10
- ]), t = new Set([
10
+ ]), t = /* @__PURE__ */ new Set([
11
11
  "NODE",
12
12
  "WORKFLOW",
13
13
  "PARSER",
@@ -98,7 +98,6 @@ var a = [
98
98
  text: "Every submission is reviewed before it is listed. Free and private apps need nothing more; paid listings also need publisher verification (legal details, tax and payouts) before they go live."
99
99
  }
100
100
  ];
101
- //#endregion
102
- export { a as ELIGIBILITY_RULES, i as computeOnboardingState, r as reviewRequirementsFor };
101
+ export { a as ELIGIBILITY_RULES, t as PACKAGE_APP_TYPES, e as SUBMITTED_APP_STATUSES, i as computeOnboardingState, n as isSubmittedStatus, r as reviewRequirementsFor };
103
102
 
104
103
  //# sourceMappingURL=developerOnboarding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"developerOnboarding.js","names":[],"sources":["../../../src/devportal/utils/developerOnboarding.ts"],"sourcesContent":["/**\n * Developer onboarding model (BOFF-10636).\n *\n * The public \"Build on Workspaces\" journey ends at a submitted devportal\n * application. This module turns what the backend already knows about the\n * signed-in developer (profile, organizations, applications) into the\n * four-step checklist the dashboard and setup wizard show, and holds the\n * eligibility rules a developer accepts before registering.\n *\n * Pure functions only: the components feed in query results, so the rules\n * are unit-tested without rendering anything.\n */\n\n/** Application statuses that mean the developer has submitted for review. */\nexport const SUBMITTED_APP_STATUSES: ReadonlySet<string> = new Set([\n \"SUBMITTED\",\n \"IN_REVIEW\",\n \"APPROVED\",\n \"PUBLISHED\",\n \"ACTIVE\",\n \"UNLISTED\",\n \"DEPRECATED\",\n]);\n\n/**\n * App types that are reviewed from an uploaded package. Mirrors\n * `PACKAGE_REQUIRED_APP_TYPES` in global-devportal-svc\n * (resolvers/application.ts) and `isPackageApp` in ApplicationDetailPage.\n */\nexport const PACKAGE_APP_TYPES: ReadonlySet<string> = new Set([\n \"NODE\",\n \"WORKFLOW\",\n \"PARSER\",\n \"WIDGET\",\n \"DASHBOARD\",\n]);\n\nexport type OnboardingStepId = \"profile\" | \"organization\" | \"app\" | \"submit\";\n\nexport interface OnboardingStep {\n id: OnboardingStepId;\n done: boolean;\n /** Devportal-relative path (prefix with basePath) that completes the step. */\n path: string;\n}\n\nexport interface OnboardingInput {\n hasProfile: boolean;\n /** Organization kinds the developer belongs to (DIGITAL / PHYSICAL). */\n organizationKinds: ReadonlyArray<string | null | undefined>;\n applications: ReadonlyArray<{\n id: string;\n status?: string | null;\n }>;\n /**\n * Total number of applications the backend reports. When it is larger than\n * the page that was fetched, the developer is well past onboarding, so the\n * submit step counts as done even if the fetched page holds no submission.\n */\n totalApplications: number;\n}\n\nexport interface OnboardingState {\n steps: OnboardingStep[];\n completedCount: number;\n isComplete: boolean;\n /** First step that is not done yet, or null when everything is done. */\n nextStep: OnboardingStep | null;\n}\n\n/** Whether an application status counts as submitted for review. */\nexport function isSubmittedStatus(status: string | null | undefined): boolean {\n return !!status && SUBMITTED_APP_STATUSES.has(status.toUpperCase());\n}\n\nexport interface ReviewRequirement {\n id: \"listing\" | \"visibility\" | \"version\" | \"pricing\";\n /** i18n key under `devportal.onboarding.requirements`. */\n key: string;\n text: string;\n}\n\n/**\n * What the app page asks for before \"Submit for Review\" is enabled, in the\n * order it asks. Mirrors the readiness rule in ApplicationDetailPage\n * (description, category and icon; Public or Unlisted visibility; a version\n * for package and API-integration apps; pricing chosen). Category is set by\n * the setup wizard already, so it is not repeated here.\n */\nexport function reviewRequirementsFor(\n appType: string | null | undefined,\n): ReviewRequirement[] {\n const type = (appType ?? \"\").toUpperCase();\n const needsPackage = PACKAGE_APP_TYPES.has(type);\n const needsVersion = needsPackage || type === \"API_INTEGRATION\";\n const items: ReviewRequirement[] = [\n {\n id: \"listing\",\n key: \"devportal.onboarding.requirements.listing\",\n text: \"A full description and an app icon on the Store Listing tab.\",\n },\n {\n id: \"visibility\",\n key: \"devportal.onboarding.requirements.visibility\",\n text: \"Visibility set to Public (marketplace) or Unlisted (shared by link). Private apps cannot be submitted.\",\n },\n ];\n if (needsVersion) {\n items.push(\n needsPackage\n ? {\n id: \"version\",\n key: \"devportal.onboarding.requirements.package\",\n text: \"A first version with its uploaded package on the Versions tab.\",\n }\n : {\n id: \"version\",\n key: \"devportal.onboarding.requirements.version\",\n text: \"A first version on the Versions tab.\",\n },\n );\n }\n items.push({\n id: \"pricing\",\n key: \"devportal.onboarding.requirements.pricing\",\n text: \"Pricing chosen on the Pricing tab: Free, or a credit price (paid apps also link a billing account).\",\n });\n return items;\n}\n\n/**\n * Build the checklist. Only DIGITAL (or legacy kind-less) organizations\n * count: a PHYSICAL seller organization cannot own an application, so it does\n * not move a developer forward on this journey.\n */\nexport function computeOnboardingState(\n input: OnboardingInput,\n): OnboardingState {\n const hasDigitalOrg = input.organizationKinds.some(\n (kind) => (kind ?? \"DIGITAL\").toUpperCase() !== \"PHYSICAL\",\n );\n const hasApp = input.totalApplications > 0 || input.applications.length > 0;\n const firstUnsubmitted = input.applications.find(\n (app) => !isSubmittedStatus(app.status),\n );\n const hasSubmitted =\n input.applications.some((app) => isSubmittedStatus(app.status)) ||\n input.totalApplications > input.applications.length;\n\n const steps: OnboardingStep[] = [\n { id: \"profile\", done: input.hasProfile, path: \"/profile\" },\n {\n id: \"organization\",\n done: hasDigitalOrg,\n path: hasDigitalOrg ? \"/organizations\" : \"/setup\",\n },\n {\n id: \"app\",\n done: hasApp,\n path: hasDigitalOrg ? \"/apps/new\" : \"/setup\",\n },\n {\n id: \"submit\",\n done: hasSubmitted,\n path: firstUnsubmitted ? `/apps/${firstUnsubmitted.id}` : \"/apps\",\n },\n ];\n\n const completedCount = steps.filter((step) => step.done).length;\n return {\n steps,\n completedCount,\n isComplete: completedCount === steps.length,\n nextStep: steps.find((step) => !step.done) ?? null,\n };\n}\n\nexport interface EligibilityRule {\n id: string;\n /** i18n key under `devportal.onboarding.eligibility`. */\n key: string;\n /** Canonical English copy; also the i18n fallback. */\n text: string;\n}\n\n/**\n * Who can register as a developer. Kept in one place so the setup wizard,\n * the dashboard checklist and the unit tests agree, and mirrored in the\n * public docs page (workspaces-docs: developers/build/register-as-a-developer).\n */\nexport const ELIGIBILITY_RULES: ReadonlyArray<EligibilityRule> = [\n {\n id: \"account\",\n key: \"devportal.onboarding.eligibility.account\",\n text: \"A Burdenoff account with a verified email address. Any plan works, including Free; you do not need to be a paying Workspaces customer.\",\n },\n {\n id: \"capacity\",\n key: \"devportal.onboarding.eligibility.capacity\",\n text: \"You have reached the age of majority where you live, or you register on behalf of a company and have the authority to bind it.\",\n },\n {\n id: \"agreement\",\n key: \"devportal.onboarding.eligibility.agreement\",\n text: \"You accept the Marketplace & Developer Agreement and the Acceptable Use Policy for everything you build and submit.\",\n },\n {\n id: \"sanctions\",\n key: \"devportal.onboarding.eligibility.sanctions\",\n text: \"You are not barred from receiving software or services under applicable export-control or sanctions laws.\",\n },\n {\n id: \"review\",\n key: \"devportal.onboarding.eligibility.review\",\n text: \"Every submission is reviewed before it is listed. Free and private apps need nothing more; paid listings also need publisher verification (legal details, tax and payouts) before they go live.\",\n },\n];\n"],"mappings":";AAcA,IAAa,IAA8C,IAAI,IAAI;CACjE;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC,EAOW,IAAyC,IAAI,IAAI;CAC5D;CACA;CACA;CACA;CACA;CACD,CAAC;AAoCF,SAAgB,EAAkB,GAA4C;AAC5E,QAAO,CAAC,CAAC,KAAU,EAAuB,IAAI,EAAO,aAAa,CAAC;;AAiBrE,SAAgB,EACd,GACqB;CACrB,IAAM,KAAQ,KAAW,IAAI,aAAa,EACpC,IAAe,EAAkB,IAAI,EAAK,EAC1C,IAAe,KAAgB,MAAS,mBACxC,IAA6B,CACjC;EACE,IAAI;EACJ,KAAK;EACL,MAAM;EACP,EACD;EACE,IAAI;EACJ,KAAK;EACL,MAAM;EACP,CACF;AAqBD,QApBI,KACF,EAAM,KACJ,IACI;EACE,IAAI;EACJ,KAAK;EACL,MAAM;EACP,GACD;EACE,IAAI;EACJ,KAAK;EACL,MAAM;EACP,CACN,EAEH,EAAM,KAAK;EACT,IAAI;EACJ,KAAK;EACL,MAAM;EACP,CAAC,EACK;;AAQT,SAAgB,EACd,GACiB;CACjB,IAAM,IAAgB,EAAM,kBAAkB,MAC3C,OAAU,KAAQ,WAAW,aAAa,KAAK,WACjD,EACK,IAAS,EAAM,oBAAoB,KAAK,EAAM,aAAa,SAAS,GACpE,IAAmB,EAAM,aAAa,MACzC,MAAQ,CAAC,EAAkB,EAAI,OAAO,CACxC,EACK,IACJ,EAAM,aAAa,MAAM,MAAQ,EAAkB,EAAI,OAAO,CAAC,IAC/D,EAAM,oBAAoB,EAAM,aAAa,QAEzC,IAA0B;EAC9B;GAAE,IAAI;GAAW,MAAM,EAAM;GAAY,MAAM;GAAY;EAC3D;GACE,IAAI;GACJ,MAAM;GACN,MAAM,IAAgB,mBAAmB;GAC1C;EACD;GACE,IAAI;GACJ,MAAM;GACN,MAAM,IAAgB,cAAc;GACrC;EACD;GACE,IAAI;GACJ,MAAM;GACN,MAAM,IAAmB,SAAS,EAAiB,OAAO;GAC3D;EACF,EAEK,IAAiB,EAAM,QAAQ,MAAS,EAAK,KAAK,CAAC;AACzD,QAAO;EACL;EACA;EACA,YAAY,MAAmB,EAAM;EACrC,UAAU,EAAM,MAAM,MAAS,CAAC,EAAK,KAAK,IAAI;EAC/C;;AAgBH,IAAa,IAAoD;CAC/D;EACE,IAAI;EACJ,KAAK;EACL,MAAM;EACP;CACD;EACE,IAAI;EACJ,KAAK;EACL,MAAM;EACP;CACD;EACE,IAAI;EACJ,KAAK;EACL,MAAM;EACP;CACD;EACE,IAAI;EACJ,KAAK;EACL,MAAM;EACP;CACD;EACE,IAAI;EACJ,KAAK;EACL,MAAM;EACP;CACF"}
1
+ {"version":3,"file":"developerOnboarding.js","names":["SUBMITTED_APP_STATUSES","PACKAGE_APP_TYPES","isSubmittedStatus","status","reviewRequirementsFor","type","appType","needsPackage","needsVersion","items","computeOnboardingState","hasDigitalOrg","input","kind","hasApp","firstUnsubmitted","app","hasSubmitted","steps","completedCount","step","ELIGIBILITY_RULES"],"sources":["../../../src/devportal/utils/developerOnboarding.ts"],"sourcesContent":["/**\n * Developer onboarding model (BOFF-10636).\n *\n * The public \"Build on Workspaces\" journey ends at a submitted devportal\n * application. This module turns what the backend already knows about the\n * signed-in developer (profile, organizations, applications) into the\n * four-step checklist the dashboard and setup wizard show, and holds the\n * eligibility rules a developer accepts before registering.\n *\n * Pure functions only: the components feed in query results, so the rules\n * are unit-tested without rendering anything.\n */\n\n/** Application statuses that mean the developer has submitted for review. */\nexport const SUBMITTED_APP_STATUSES: ReadonlySet<string> = new Set([\n \"SUBMITTED\",\n \"IN_REVIEW\",\n \"APPROVED\",\n \"PUBLISHED\",\n \"ACTIVE\",\n \"UNLISTED\",\n \"DEPRECATED\",\n]);\n\n/**\n * App types that are reviewed from an uploaded package. Mirrors\n * `PACKAGE_REQUIRED_APP_TYPES` in global-devportal-svc\n * (resolvers/application.ts) and `isPackageApp` in ApplicationDetailPage.\n */\nexport const PACKAGE_APP_TYPES: ReadonlySet<string> = new Set([\n \"NODE\",\n \"WORKFLOW\",\n \"PARSER\",\n \"WIDGET\",\n \"DASHBOARD\",\n]);\n\nexport type OnboardingStepId = \"profile\" | \"organization\" | \"app\" | \"submit\";\n\nexport interface OnboardingStep {\n id: OnboardingStepId;\n done: boolean;\n /** Devportal-relative path (prefix with basePath) that completes the step. */\n path: string;\n}\n\nexport interface OnboardingInput {\n hasProfile: boolean;\n /** Organization kinds the developer belongs to (DIGITAL / PHYSICAL). */\n organizationKinds: ReadonlyArray<string | null | undefined>;\n applications: ReadonlyArray<{\n id: string;\n status?: string | null;\n }>;\n /**\n * Total number of applications the backend reports. When it is larger than\n * the page that was fetched, the developer is well past onboarding, so the\n * submit step counts as done even if the fetched page holds no submission.\n */\n totalApplications: number;\n}\n\nexport interface OnboardingState {\n steps: OnboardingStep[];\n completedCount: number;\n isComplete: boolean;\n /** First step that is not done yet, or null when everything is done. */\n nextStep: OnboardingStep | null;\n}\n\n/** Whether an application status counts as submitted for review. */\nexport function isSubmittedStatus(status: string | null | undefined): boolean {\n return !!status && SUBMITTED_APP_STATUSES.has(status.toUpperCase());\n}\n\nexport interface ReviewRequirement {\n id: \"listing\" | \"visibility\" | \"version\" | \"pricing\";\n /** i18n key under `devportal.onboarding.requirements`. */\n key: string;\n text: string;\n}\n\n/**\n * What the app page asks for before \"Submit for Review\" is enabled, in the\n * order it asks. Mirrors the readiness rule in ApplicationDetailPage\n * (description, category and icon; Public or Unlisted visibility; a version\n * for package and API-integration apps; pricing chosen). Category is set by\n * the setup wizard already, so it is not repeated here.\n */\nexport function reviewRequirementsFor(\n appType: string | null | undefined,\n): ReviewRequirement[] {\n const type = (appType ?? \"\").toUpperCase();\n const needsPackage = PACKAGE_APP_TYPES.has(type);\n const needsVersion = needsPackage || type === \"API_INTEGRATION\";\n const items: ReviewRequirement[] = [\n {\n id: \"listing\",\n key: \"devportal.onboarding.requirements.listing\",\n text: \"A full description and an app icon on the Store Listing tab.\",\n },\n {\n id: \"visibility\",\n key: \"devportal.onboarding.requirements.visibility\",\n text: \"Visibility set to Public (marketplace) or Unlisted (shared by link). Private apps cannot be submitted.\",\n },\n ];\n if (needsVersion) {\n items.push(\n needsPackage\n ? {\n id: \"version\",\n key: \"devportal.onboarding.requirements.package\",\n text: \"A first version with its uploaded package on the Versions tab.\",\n }\n : {\n id: \"version\",\n key: \"devportal.onboarding.requirements.version\",\n text: \"A first version on the Versions tab.\",\n },\n );\n }\n items.push({\n id: \"pricing\",\n key: \"devportal.onboarding.requirements.pricing\",\n text: \"Pricing chosen on the Pricing tab: Free, or a credit price (paid apps also link a billing account).\",\n });\n return items;\n}\n\n/**\n * Build the checklist. Only DIGITAL (or legacy kind-less) organizations\n * count: a PHYSICAL seller organization cannot own an application, so it does\n * not move a developer forward on this journey.\n */\nexport function computeOnboardingState(\n input: OnboardingInput,\n): OnboardingState {\n const hasDigitalOrg = input.organizationKinds.some(\n (kind) => (kind ?? \"DIGITAL\").toUpperCase() !== \"PHYSICAL\",\n );\n const hasApp = input.totalApplications > 0 || input.applications.length > 0;\n const firstUnsubmitted = input.applications.find(\n (app) => !isSubmittedStatus(app.status),\n );\n const hasSubmitted =\n input.applications.some((app) => isSubmittedStatus(app.status)) ||\n input.totalApplications > input.applications.length;\n\n const steps: OnboardingStep[] = [\n { id: \"profile\", done: input.hasProfile, path: \"/profile\" },\n {\n id: \"organization\",\n done: hasDigitalOrg,\n path: hasDigitalOrg ? \"/organizations\" : \"/setup\",\n },\n {\n id: \"app\",\n done: hasApp,\n path: hasDigitalOrg ? \"/apps/new\" : \"/setup\",\n },\n {\n id: \"submit\",\n done: hasSubmitted,\n path: firstUnsubmitted ? `/apps/${firstUnsubmitted.id}` : \"/apps\",\n },\n ];\n\n const completedCount = steps.filter((step) => step.done).length;\n return {\n steps,\n completedCount,\n isComplete: completedCount === steps.length,\n nextStep: steps.find((step) => !step.done) ?? null,\n };\n}\n\nexport interface EligibilityRule {\n id: string;\n /** i18n key under `devportal.onboarding.eligibility`. */\n key: string;\n /** Canonical English copy; also the i18n fallback. */\n text: string;\n}\n\n/**\n * Who can register as a developer. Kept in one place so the setup wizard,\n * the dashboard checklist and the unit tests agree, and mirrored in the\n * public docs page (workspaces-docs: developers/build/register-as-a-developer).\n */\nexport const ELIGIBILITY_RULES: ReadonlyArray<EligibilityRule> = [\n {\n id: \"account\",\n key: \"devportal.onboarding.eligibility.account\",\n text: \"A Burdenoff account with a verified email address. Any plan works, including Free; you do not need to be a paying Workspaces customer.\",\n },\n {\n id: \"capacity\",\n key: \"devportal.onboarding.eligibility.capacity\",\n text: \"You have reached the age of majority where you live, or you register on behalf of a company and have the authority to bind it.\",\n },\n {\n id: \"agreement\",\n key: \"devportal.onboarding.eligibility.agreement\",\n text: \"You accept the Marketplace & Developer Agreement and the Acceptable Use Policy for everything you build and submit.\",\n },\n {\n id: \"sanctions\",\n key: \"devportal.onboarding.eligibility.sanctions\",\n text: \"You are not barred from receiving software or services under applicable export-control or sanctions laws.\",\n },\n {\n id: \"review\",\n key: \"devportal.onboarding.eligibility.review\",\n text: \"Every submission is reviewed before it is listed. Free and private apps need nothing more; paid listings also need publisher verification (legal details, tax and payouts) before they go live.\",\n },\n];\n"],"mappings":";AAcA,IAAaA,oBAA8C,IAAI,IAAI;CACjE;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC,GAOYC,oBAAyC,IAAI,IAAI;CAC5D;CACA;CACA;CACA;CACA;AACF,CAAC;AAoCD,SAAgBC,EAAkB,GAA4C;CAC5E,OAAO,CAAC,CAACC,KAAUH,EAAuB,IAAIG,EAAO,YAAY,CAAC;AACpE;AAgBA,SAAgBC,EACd,GACqB;CACrB,IAAMC,KAAQC,KAAW,GAAA,CAAI,YAAY,GACnCC,IAAeN,EAAkB,IAAII,CAAI,GACzCG,IAAeD,KAAgBF,MAAS,mBACxCI,IAA6B,CACjC;EACE,IAAI;EACJ,KAAK;EACL,MAAM;CACR,GACA;EACE,IAAI;EACJ,KAAK;EACL,MAAM;CACR,CACF;CAqBA,OApBID,KACFC,EAAM,KACJF,IACI;EACE,IAAI;EACJ,KAAK;EACL,MAAM;CACR,IACA;EACE,IAAI;EACJ,KAAK;EACL,MAAM;CACR,CACN,GAEFE,EAAM,KAAK;EACT,IAAI;EACJ,KAAK;EACL,MAAM;CACR,CAAC,GACMA;AACT;AAOA,SAAgBC,EACd,GACiB;CACjB,IAAMC,IAAgBC,EAAM,kBAAkB,MAC3C,OAAUC,KAAQ,UAAA,CAAW,YAAY,MAAM,UAClD,GACMC,IAASF,EAAM,oBAAoB,KAAKA,EAAM,aAAa,SAAS,GACpEG,IAAmBH,EAAM,aAAa,MACzC,MAAQ,CAACV,EAAkBc,EAAI,MAAM,CACxC,GACMC,IACJL,EAAM,aAAa,MAAM,MAAQV,EAAkBc,EAAI,MAAM,CAAC,KAC9DJ,EAAM,oBAAoBA,EAAM,aAAa,QAEzCM,IAA0B;EAC9B;GAAE,IAAI;GAAW,MAAMN,EAAM;GAAY,MAAM;EAAW;EAC1D;GACE,IAAI;GACJ,MAAMD;GACN,MAAMA,IAAgB,mBAAmB;EAC3C;EACA;GACE,IAAI;GACJ,MAAMG;GACN,MAAMH,IAAgB,cAAc;EACtC;EACA;GACE,IAAI;GACJ,MAAMM;GACN,MAAMF,IAAmB,SAASA,EAAiB,OAAO;EAC5D;CACF,GAEMI,IAAiBD,EAAM,QAAQ,MAASE,EAAK,IAAI,CAAC,CAAC;CACzD,OAAO;EACL;EACA;EACA,YAAYD,MAAmBD,EAAM;EACrC,UAAUA,EAAM,MAAM,MAAS,CAACE,EAAK,IAAI,KAAK;CAChD;AACF;AAeA,IAAaC,IAAoD;CAC/D;EACE,IAAI;EACJ,KAAK;EACL,MAAM;CACR;CACA;EACE,IAAI;EACJ,KAAK;EACL,MAAM;CACR;CACA;EACE,IAAI;EACJ,KAAK;EACL,MAAM;CACR;CACA;EACE,IAAI;EACJ,KAAK;EACL,MAAM;CACR;CACA;EACE,IAAI;EACJ,KAAK;EACL,MAAM;CACR;AACF"}
@@ -3,4 +3,3 @@
3
3
  * the host shell.
4
4
  */
5
5
  export declare function resolveGlobalGraphqlEndpoint(apiGatewayUrl?: string): string;
6
- //# sourceMappingURL=graphqlEndpoint.d.ts.map
@@ -1,9 +1,8 @@
1
- //#region src/devportal/utils/graphqlEndpoint.ts
1
+ // src/devportal/utils/graphqlEndpoint.ts
2
2
  function e(e) {
3
3
  let t = e?.replace(/\/+$/, "");
4
4
  return t?.endsWith("/global/graphql") ? t : `${t || ""}/global/graphql`;
5
5
  }
6
- //#endregion
7
6
  export { e as resolveGlobalGraphqlEndpoint };
8
7
 
9
8
  //# sourceMappingURL=graphqlEndpoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphqlEndpoint.js","names":[],"sources":["../../../src/devportal/utils/graphqlEndpoint.ts"],"sourcesContent":["/**\n * Resolve the global GraphQL endpoint from the gateway base URL supplied by\n * the host shell.\n */\nexport function resolveGlobalGraphqlEndpoint(apiGatewayUrl?: string): string {\n const baseUrl = apiGatewayUrl?.replace(/\\/+$/, \"\");\n if (baseUrl?.endsWith(\"/global/graphql\")) return baseUrl;\n return `${baseUrl || \"\"}/global/graphql`;\n}\n"],"mappings":";AAIA,SAAgB,EAA6B,GAAgC;CAC3E,IAAM,IAAU,GAAe,QAAQ,QAAQ,GAAG;AAElD,QADI,GAAS,SAAS,kBAAkB,GAAS,IAC1C,GAAG,KAAW,GAAG"}
1
+ {"version":3,"file":"graphqlEndpoint.js","names":["resolveGlobalGraphqlEndpoint","baseUrl","apiGatewayUrl"],"sources":["../../../src/devportal/utils/graphqlEndpoint.ts"],"sourcesContent":["/**\n * Resolve the global GraphQL endpoint from the gateway base URL supplied by\n * the host shell.\n */\nexport function resolveGlobalGraphqlEndpoint(apiGatewayUrl?: string): string {\n const baseUrl = apiGatewayUrl?.replace(/\\/+$/, \"\");\n if (baseUrl?.endsWith(\"/global/graphql\")) return baseUrl;\n return `${baseUrl || \"\"}/global/graphql`;\n}\n"],"mappings":";AAIA,SAAgBA,EAA6B,GAAgC;CAC3E,IAAMC,IAAUC,GAAe,QAAQ,QAAQ,EAAE;CAEjD,OADID,GAAS,SAAS,iBAAiB,IAAUA,IAC1C,GAAGA,KAAW,GAAG;AAC1B"}
@@ -17,4 +17,3 @@
17
17
  * return <p>{tr("devportal.selectedCount", "{{count}} selected", { count: 5 })}</p>;
18
18
  */
19
19
  export declare function useTr(): (key: string, fallback: string, params?: Record<string, string | number>) => string;
20
- //# sourceMappingURL=i18n.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { useCallback as e } from "react";
2
2
  import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
- //#region src/devportal/utils/i18n.ts
3
+ // src/devportal/utils/i18n.ts
4
4
  function n() {
5
5
  let { t: n } = t();
6
6
  return e((e, t, r) => {
@@ -14,7 +14,6 @@ function n() {
14
14
  return r ? Object.entries(r).reduce((e, [t, n]) => e.replace(RegExp(`\\{\\{${t}\\}\\}`, "g"), String(n)), i) : i;
15
15
  }, [n]);
16
16
  }
17
- //#endregion
18
17
  export { n as useTr };
19
18
 
20
19
  //# sourceMappingURL=i18n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","names":[],"sources":["../../../src/devportal/utils/i18n.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\n\n/**\n * Translation helper hook for the devportal MFE.\n *\n * Wraps `useI18n().t(key)` with an inline-fallback signature\n * `tr(key, fallback, params?)` so missing keys (or a missing I18nProvider in\n * standalone mode) render readable English instead of the raw key.\n *\n * Supports optional interpolation params using `{{key}}` placeholders.\n *\n * Convention: keys are namespaced as `devportal.<scope>.<name>` and\n * the fallback is the canonical English copy. Locale seed scripts\n * (`seed-devportal-{hi,ta}.ts`) source from the same key set.\n *\n * @example\n * const tr = useTr();\n * return <h1>{tr(\"devportal.dashboard.title\", \"Dashboard\")}</h1>;\n * return <p>{tr(\"devportal.selectedCount\", \"{{count}} selected\", { count: 5 })}</p>;\n */\nexport function useTr(): (\n key: string,\n fallback: string,\n params?: Record<string, string | number>,\n) => string {\n const { t } = useI18n();\n return useCallback(\n (\n key: string,\n fallback: string,\n params?: Record<string, string | number>,\n ): string => {\n let raw: string;\n try {\n const value = t(key);\n raw = value === key || value === undefined ? fallback : value;\n } catch {\n raw = fallback;\n }\n if (!params) return raw;\n return Object.entries(params).reduce(\n (str, [k, v]) =>\n str.replace(new RegExp(`\\\\{\\\\{${k}\\\\}\\\\}`, \"g\"), String(v)),\n raw,\n );\n },\n [t],\n );\n}\n"],"mappings":";;;AAqBA,SAAgB,IAIJ;CACV,IAAM,EAAE,SAAM,GAAS;AACvB,QAAO,GAEH,GACA,GACA,MACW;EACX,IAAI;AACJ,MAAI;GACF,IAAM,IAAQ,EAAE,EAAI;AACpB,OAAM,MAAU,KAAO,MAAU,KAAA,IAAY,IAAW;UAClD;AACN,OAAM;;AAGR,SADK,IACE,OAAO,QAAQ,EAAO,CAAC,QAC3B,GAAK,CAAC,GAAG,OACR,EAAI,QAAY,OAAO,SAAS,EAAE,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC,EAC7D,EACD,GALmB;IAOtB,CAAC,EAAE,CACJ"}
1
+ {"version":3,"file":"i18n.js","names":["useTr","useI18n","useCallback","raw","value","t","key","fallback","params","k","v","str"],"sources":["../../../src/devportal/utils/i18n.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\n\n/**\n * Translation helper hook for the devportal MFE.\n *\n * Wraps `useI18n().t(key)` with an inline-fallback signature\n * `tr(key, fallback, params?)` so missing keys (or a missing I18nProvider in\n * standalone mode) render readable English instead of the raw key.\n *\n * Supports optional interpolation params using `{{key}}` placeholders.\n *\n * Convention: keys are namespaced as `devportal.<scope>.<name>` and\n * the fallback is the canonical English copy. Locale seed scripts\n * (`seed-devportal-{hi,ta}.ts`) source from the same key set.\n *\n * @example\n * const tr = useTr();\n * return <h1>{tr(\"devportal.dashboard.title\", \"Dashboard\")}</h1>;\n * return <p>{tr(\"devportal.selectedCount\", \"{{count}} selected\", { count: 5 })}</p>;\n */\nexport function useTr(): (\n key: string,\n fallback: string,\n params?: Record<string, string | number>,\n) => string {\n const { t } = useI18n();\n return useCallback(\n (\n key: string,\n fallback: string,\n params?: Record<string, string | number>,\n ): string => {\n let raw: string;\n try {\n const value = t(key);\n raw = value === key || value === undefined ? fallback : value;\n } catch {\n raw = fallback;\n }\n if (!params) return raw;\n return Object.entries(params).reduce(\n (str, [k, v]) =>\n str.replace(new RegExp(`\\\\{\\\\{${k}\\\\}\\\\}`, \"g\"), String(v)),\n raw,\n );\n },\n [t],\n );\n}\n"],"mappings":";;;AAqBA,SAAgBA,IAIJ;CACV,IAAM,EAAE,SAAMC,EAAQ;CACtB,OAAOC,GAEH,GACA,GACA,MACW;EACX,IAAIC;EACJ,IAAI;GACF,IAAMC,IAAQC,EAAEC,CAAG;GACnB,IAAMF,MAAUE,KAAOF,MAAU,KAAA,IAAYG,IAAWH;EAC1D,QAAQ;GACN,IAAMG;EACR;EAEA,OADKC,IACE,OAAO,QAAQA,CAAM,CAAC,CAAC,QAC3B,GAAK,CAACC,GAAGC,OACRC,EAAI,QAAY,OAAO,SAASF,EAAE,SAAS,GAAG,GAAG,OAAOC,CAAC,CAAC,GAC5DP,CACF,IALoBA;CAMtB,GACA,CAACE,CAAC,CACJ;AACF"}
@@ -1,6 +1,5 @@
1
1
  import { PackageValidationIssue, PackageValidationState } from '../components/PackageValidationPanel';
2
2
  import { NodeSmokeState } from '../components/NodeSmokePanel';
3
-
4
3
  export type LifecycleStepId = "upload" | "validate" | "test" | "approval" | "deploy";
5
4
  /**
6
5
  * complete — the stage is done.
@@ -78,4 +77,3 @@ export interface DeployReadinessInput {
78
77
  export declare function deployBlocker(input: DeployReadinessInput): DeployBlocker | null;
79
78
  /** The visibility a NODE application's versions are published with. */
80
79
  export declare function visibilityForApp(appVisibility: string | null | undefined): NodeVisibility;
81
- //# sourceMappingURL=nodeLifecycle.d.ts.map
@@ -1,7 +1,7 @@
1
- import { readNodeSmokeState as e } from "../components/NodeSmokePanel.js";
2
- import { readPackageValidationState as t } from "../components/PackageValidationPanel.js";
3
- //#region src/devportal/utils/nodeLifecycle.ts
4
- var n = new Set([
1
+ import { readPackageValidationState as e } from "../components/PackageValidationPanel.js";
2
+ import { readNodeSmokeState as t } from "../components/NodeSmokePanel.js";
3
+ // src/devportal/utils/nodeLifecycle.ts
4
+ var n = /* @__PURE__ */ new Set([
5
5
  "PENDING",
6
6
  "READY",
7
7
  "FAILED",
@@ -238,7 +238,7 @@ function h(e, t, n) {
238
238
  };
239
239
  }
240
240
  function g(n, r) {
241
- let s = n.metadata, g = !!n.packageUrl, _ = t(s), v = e(s), y = i(s), b = a(s), x = o(s), S = d(g), C = f(g, _), w = p(C, y, v), T = m(w, n, r, x), E = [
241
+ let s = n.metadata, g = !!n.packageUrl, _ = e(s), v = t(s), y = i(s), b = a(s), x = o(s), S = d(g), C = f(g, _), w = p(C, y, v), T = m(w, n, r, x), E = [
242
242
  S,
243
243
  C,
244
244
  w,
@@ -274,7 +274,6 @@ function _(e) {
274
274
  function v(e) {
275
275
  return (e ?? "").toUpperCase() === "PRIVATE" ? "private" : "store";
276
276
  }
277
- //#endregion
278
- export { _ as deployBlocker, g as deriveNodeLifecycle, v as visibilityForApp };
277
+ export { s as checkForIssueCode, _ as deployBlocker, g as deriveNodeLifecycle, o as isOrganizationPublished, a as readSandboxBuildError, i as readSandboxBuildStatus, v as visibilityForApp };
279
278
 
280
279
  //# sourceMappingURL=nodeLifecycle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodeLifecycle.js","names":[],"sources":["../../../src/devportal/utils/nodeLifecycle.ts"],"sourcesContent":["/**\n * Custom-node lifecycle model (BOFF-4076).\n *\n * A custom node moves through five stages before workspaces can use it:\n *\n * 1. Upload ZIP — the version carries a package (`packageUrl`).\n * 2. Validate manifest — global-devportal-svc validates the package and its\n * manifest and records `metadata.packageValidation`\n * (BOFF-4315).\n * 3. Run tests — the package is built into a sandbox image\n * (`metadata.sandboxBuildStatus`) and every manifest\n * operation is smoke-tested in a sandbox\n * (`metadata.packageSmoke`, BOFF-9656).\n * 4. Approval — a workspace-private node is approved by its own\n * organization when it is published to it\n * (`metadata.organizationPublish`, BOFF-9657); a store\n * node is reviewed by a platform admin\n * (`status` pending_review → published | rejected).\n * 5. Deploy — the version is published and installable.\n *\n * Everything here is derived from the ApplicationVersion the service already\n * returns, so the lifecycle page never invents a state the backend does not\n * hold. The functions are pure so the page stays a thin view over them.\n */\nimport {\n readPackageValidationState,\n type PackageValidationIssue,\n type PackageValidationState,\n} from \"../components/PackageValidationPanel\";\nimport {\n readNodeSmokeState,\n type NodeSmokeState,\n} from \"../components/NodeSmokePanel\";\n\nexport type LifecycleStepId =\n | \"upload\"\n | \"validate\"\n | \"test\"\n | \"approval\"\n | \"deploy\";\n\n/**\n * complete — the stage is done.\n * in_progress — the platform is working on it (validation, build, tests,\n * platform review); the page polls while any stage is here.\n * action — waiting for the developer (upload, fix, submit, deploy).\n * failed — the stage failed and blocks everything after it.\n * pending — not reached yet.\n */\nexport type LifecycleStepStatus =\n | \"complete\"\n | \"in_progress\"\n | \"action\"\n | \"failed\"\n | \"pending\";\n\nexport interface LifecycleStep {\n id: LifecycleStepId;\n status: LifecycleStepStatus;\n /** Short machine-friendly reason; the page maps it to translated copy. */\n reason: string;\n}\n\nexport type CheckStatus = \"pass\" | \"warn\" | \"fail\" | \"running\" | \"not_run\";\n\nexport type LifecycleCheckId =\n | \"structure\"\n | \"manifest\"\n | \"security\"\n | \"build\"\n | \"tests\";\n\nexport interface LifecycleCheck {\n id: LifecycleCheckId;\n status: CheckStatus;\n issues: PackageValidationIssue[];\n /** Free-form detail such as \"12 / 12 passing\" inputs or a build error. */\n detail: string | null;\n}\n\nexport type NodeVisibility = \"private\" | \"store\";\n\nexport type SandboxBuildStatus =\n | \"PENDING\"\n | \"READY\"\n | \"FAILED\"\n | \"DISPATCH_FAILED\"\n | \"UNSUPPORTED\";\n\n/** The ApplicationVersion fields the lifecycle reads. */\nexport interface LifecycleVersion {\n id: string;\n version: string;\n status: string;\n packageUrl?: string | null;\n metadata?: unknown;\n reviewNotes?: string | null;\n}\n\nexport interface NodeLifecycle {\n steps: LifecycleStep[];\n /** Index of the first step that is not complete; steps.length when all are. */\n currentIndex: number;\n checks: LifecycleCheck[];\n validation: PackageValidationState;\n smoke: NodeSmokeState;\n buildStatus: SandboxBuildStatus | null;\n buildError: string | null;\n organizationPublished: boolean;\n /** True while the platform is still working, so the page should poll. */\n busy: boolean;\n}\n\nconst BUILD_STATUSES: ReadonlySet<string> = new Set([\n \"PENDING\",\n \"READY\",\n \"FAILED\",\n \"DISPATCH_FAILED\",\n \"UNSUPPORTED\",\n]);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function readSandboxBuildStatus(\n metadata: unknown,\n): SandboxBuildStatus | null {\n if (!isRecord(metadata)) return null;\n const status = metadata.sandboxBuildStatus;\n return typeof status === \"string\" && BUILD_STATUSES.has(status)\n ? (status as SandboxBuildStatus)\n : null;\n}\n\nexport function readSandboxBuildError(metadata: unknown): string | null {\n if (!isRecord(metadata)) return null;\n const error = metadata.sandboxBuildError;\n return typeof error === \"string\" && error.trim() ? error : null;\n}\n\n/** BOFF-9657: the version was published to its organization (no platform review). */\nexport function isOrganizationPublished(metadata: unknown): boolean {\n return isRecord(metadata) && isRecord(metadata.organizationPublish);\n}\n\n/** Group a validation issue code into the check it belongs to. */\nexport function checkForIssueCode(code: string): LifecycleCheckId {\n if (code.startsWith(\"blocked.\") || code.startsWith(\"review.\")) {\n return \"security\";\n }\n if (code.startsWith(\"manifest.\") || code.startsWith(\"operation.\")) {\n return \"manifest\";\n }\n return \"structure\";\n}\n\nfunction validationCheck(\n id: \"structure\" | \"manifest\" | \"security\",\n validation: PackageValidationState,\n hasPackage: boolean,\n): LifecycleCheck {\n if (validation.kind === \"pending\") {\n return { id, status: \"running\", issues: [], detail: null };\n }\n if (validation.kind === \"none\") {\n return {\n id,\n status: \"not_run\",\n issues: [],\n detail: hasPackage ? \"notValidated\" : null,\n };\n }\n const issues = [...validation.errors, ...validation.warnings].filter(\n (issue) => checkForIssueCode(issue.code) === id,\n );\n const hasError = issues.some((issue) => issue.severity === \"error\");\n const hasWarning = issues.some((issue) => issue.severity === \"warning\");\n let status: CheckStatus = \"pass\";\n if (hasError) status = \"fail\";\n else if (hasWarning) status = \"warn\";\n else if (validation.kind === \"failed\" && id === \"structure\") {\n // A failed report whose errors all landed in other groups must not make\n // the structure check look green when there is nothing else to show.\n status = validation.errors.length > 0 ? \"pass\" : \"fail\";\n }\n return { id, status, issues, detail: null };\n}\n\nfunction buildCheck(\n buildStatus: SandboxBuildStatus | null,\n buildError: string | null,\n validation: PackageValidationState,\n): LifecycleCheck {\n if (buildStatus === \"READY\") {\n return { id: \"build\", status: \"pass\", issues: [], detail: null };\n }\n if (buildStatus === \"PENDING\") {\n return { id: \"build\", status: \"running\", issues: [], detail: null };\n }\n if (buildStatus) {\n return {\n id: \"build\",\n status: \"fail\",\n issues: [],\n detail: buildError ?? buildStatus,\n };\n }\n // No build recorded. A package that failed validation is never built.\n return {\n id: \"build\",\n status: \"not_run\",\n issues: [],\n detail: validation.kind === \"failed\" ? \"blockedByValidation\" : null,\n };\n}\n\nfunction testsCheck(smoke: NodeSmokeState): LifecycleCheck {\n switch (smoke.kind) {\n case \"running\":\n return { id: \"tests\", status: \"running\", issues: [], detail: null };\n case \"passed\":\n return {\n id: \"tests\",\n status: \"pass\",\n issues: [],\n detail: `${smoke.passed}/${smoke.operations.length}`,\n };\n case \"failed\":\n return {\n id: \"tests\",\n status: \"fail\",\n issues: [],\n detail: smoke.error ?? `${smoke.failed}/${smoke.operations.length}`,\n };\n case \"skipped\":\n return {\n id: \"tests\",\n status: \"warn\",\n issues: [],\n detail: smoke.error,\n };\n default:\n return { id: \"tests\", status: \"not_run\", issues: [], detail: null };\n }\n}\n\nfunction uploadStep(hasPackage: boolean): LifecycleStep {\n return hasPackage\n ? { id: \"upload\", status: \"complete\", reason: \"uploaded\" }\n : { id: \"upload\", status: \"action\", reason: \"noPackage\" };\n}\n\nfunction validateStep(\n hasPackage: boolean,\n validation: PackageValidationState,\n): LifecycleStep {\n if (!hasPackage) {\n return { id: \"validate\", status: \"pending\", reason: \"waitingForPackage\" };\n }\n switch (validation.kind) {\n case \"passed\":\n return { id: \"validate\", status: \"complete\", reason: \"passed\" };\n case \"failed\":\n return { id: \"validate\", status: \"failed\", reason: \"failed\" };\n case \"pending\":\n return { id: \"validate\", status: \"in_progress\", reason: \"validating\" };\n default:\n // A package uploaded before validation existed. The service refuses to\n // publish it, so the developer has to upload it again.\n return { id: \"validate\", status: \"action\", reason: \"notValidated\" };\n }\n}\n\nfunction testStep(\n validationStep: LifecycleStep,\n buildStatus: SandboxBuildStatus | null,\n smoke: NodeSmokeState,\n): LifecycleStep {\n if (validationStep.status !== \"complete\") {\n return { id: \"test\", status: \"pending\", reason: \"waitingForValidation\" };\n }\n if (buildStatus === null || buildStatus === \"PENDING\") {\n return { id: \"test\", status: \"in_progress\", reason: \"building\" };\n }\n if (buildStatus !== \"READY\") {\n return { id: \"test\", status: \"failed\", reason: \"buildFailed\" };\n }\n switch (smoke.kind) {\n case \"running\":\n return { id: \"test\", status: \"in_progress\", reason: \"testing\" };\n case \"failed\":\n return { id: \"test\", status: \"failed\", reason: \"testsFailed\" };\n case \"skipped\":\n return { id: \"test\", status: \"complete\", reason: \"testsSkipped\" };\n case \"passed\":\n return { id: \"test\", status: \"complete\", reason: \"testsPassed\" };\n default:\n // READY with no smoke record: built before operation smoke tests\n // existed; the service accepts it.\n return { id: \"test\", status: \"complete\", reason: \"built\" };\n }\n}\n\nfunction approvalStep(\n previous: LifecycleStep,\n version: LifecycleVersion,\n visibility: NodeVisibility,\n organizationPublished: boolean,\n): LifecycleStep {\n const status = version.status.toLowerCase();\n if (organizationPublished) {\n return { id: \"approval\", status: \"complete\", reason: \"organization\" };\n }\n if (status === \"published\" || status === \"deprecated\") {\n return { id: \"approval\", status: \"complete\", reason: \"approved\" };\n }\n if (status === \"pending_review\") {\n return { id: \"approval\", status: \"in_progress\", reason: \"inReview\" };\n }\n if (status === \"rejected\") {\n return { id: \"approval\", status: \"failed\", reason: \"rejected\" };\n }\n if (previous.status !== \"complete\") {\n return { id: \"approval\", status: \"pending\", reason: \"waitingForTests\" };\n }\n return {\n id: \"approval\",\n status: \"action\",\n reason: visibility === \"private\" ? \"readyForOrganization\" : \"readyToSubmit\",\n };\n}\n\nfunction deployStep(\n version: LifecycleVersion,\n approval: LifecycleStep,\n organizationPublished: boolean,\n): LifecycleStep {\n const status = version.status.toLowerCase();\n if (status === \"deprecated\") {\n return { id: \"deploy\", status: \"complete\", reason: \"deprecated\" };\n }\n if (status === \"published\") {\n return {\n id: \"deploy\",\n status: \"complete\",\n reason: organizationPublished ? \"deployedToOrganization\" : \"store\",\n };\n }\n if (approval.status === \"action\") {\n return { id: \"deploy\", status: \"action\", reason: \"ready\" };\n }\n return { id: \"deploy\", status: \"pending\", reason: \"waitingForApproval\" };\n}\n\n/** Derive the full lifecycle view of one NODE application version. */\nexport function deriveNodeLifecycle(\n version: LifecycleVersion,\n visibility: NodeVisibility,\n): NodeLifecycle {\n const metadata = version.metadata;\n const hasPackage = Boolean(version.packageUrl);\n const validation = readPackageValidationState(metadata);\n const smoke = readNodeSmokeState(metadata);\n const buildStatus = readSandboxBuildStatus(metadata);\n const buildError = readSandboxBuildError(metadata);\n const organizationPublished = isOrganizationPublished(metadata);\n\n const upload = uploadStep(hasPackage);\n const validate = validateStep(hasPackage, validation);\n const test = testStep(validate, buildStatus, smoke);\n const approval = approvalStep(\n test,\n version,\n visibility,\n organizationPublished,\n );\n const deploy = deployStep(version, approval, organizationPublished);\n const steps = [upload, validate, test, approval, deploy];\n\n const firstOpen = steps.findIndex((step) => step.status !== \"complete\");\n const currentIndex = firstOpen === -1 ? steps.length : firstOpen;\n\n const checks: LifecycleCheck[] = [\n validationCheck(\"structure\", validation, hasPackage),\n validationCheck(\"manifest\", validation, hasPackage),\n validationCheck(\"security\", validation, hasPackage),\n buildCheck(buildStatus, buildError, validation),\n testsCheck(smoke),\n ];\n\n // Approval in review is a human step that can take days; the page still\n // polls so the stepper flips the moment an admin decides.\n const busy = steps.some((step) => step.status === \"in_progress\");\n\n return {\n steps,\n currentIndex,\n checks,\n validation,\n smoke,\n buildStatus,\n buildError,\n organizationPublished,\n busy,\n };\n}\n\nexport type DeployBlocker =\n | \"notDraft\"\n | \"noPackage\"\n | \"validationNotPassed\"\n | \"buildNotReady\"\n | \"testsNotPassed\"\n | \"visibilityMismatch\"\n | \"noWorkspace\"\n | \"pendingVersion\"\n | \"noPermission\";\n\nexport interface DeployReadinessInput {\n lifecycle: NodeLifecycle;\n version: LifecycleVersion;\n visibility: NodeVisibility;\n /** The application's own visibility (PRIVATE, PUBLIC, UNLISTED…). */\n appVisibility: string | null | undefined;\n workspaceId: string | null | undefined;\n /** Another version of the application is already in platform review. */\n otherVersionPending: boolean;\n canPublish: boolean;\n}\n\n/**\n * Whether the Deploy action can run, and if not the first reason why. These\n * mirror the service's own gates (privateNodes.ts and the review submission),\n * so the button is disabled exactly when the service would refuse.\n */\nexport function deployBlocker(\n input: DeployReadinessInput,\n): DeployBlocker | null {\n const { lifecycle, version, visibility } = input;\n if (!input.canPublish) return \"noPermission\";\n const status = version.status.toLowerCase();\n if (status !== \"draft\" && status !== \"rejected\") return \"notDraft\";\n const appIsPrivate = (input.appVisibility ?? \"\").toUpperCase() === \"PRIVATE\";\n if ((visibility === \"private\") !== appIsPrivate) return \"visibilityMismatch\";\n if (!version.packageUrl) return \"noPackage\";\n if (lifecycle.validation.kind !== \"passed\") return \"validationNotPassed\";\n if (lifecycle.buildStatus !== \"READY\") return \"buildNotReady\";\n if (lifecycle.smoke.kind === \"running\" || lifecycle.smoke.kind === \"failed\") {\n return \"testsNotPassed\";\n }\n if (visibility === \"private\" && !input.workspaceId) return \"noWorkspace\";\n if (visibility === \"store\" && input.otherVersionPending) {\n return \"pendingVersion\";\n }\n return null;\n}\n\n/** The visibility a NODE application's versions are published with. */\nexport function visibilityForApp(\n appVisibility: string | null | undefined,\n): NodeVisibility {\n return (appVisibility ?? \"\").toUpperCase() === \"PRIVATE\"\n ? \"private\"\n : \"store\";\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"nodeLifecycle.js","names":["BUILD_STATUSES","isRecord","value","readSandboxBuildStatus","metadata","status","readSandboxBuildError","error","isOrganizationPublished","checkForIssueCode","code","validationCheck","validation","hasPackage","issues","issue","id","hasError","hasWarning","buildCheck","buildStatus","buildError","testsCheck","smoke","uploadStep","validateStep","testStep","validationStep","approvalStep","version","organizationPublished","previous","visibility","deployStep","approval","deriveNodeLifecycle","readPackageValidationState","readNodeSmokeState","upload","validate","test","steps","firstOpen","step","deployBlocker","input","appIsPrivate","lifecycle","visibilityForApp","appVisibility"],"sources":["../../../src/devportal/utils/nodeLifecycle.ts"],"sourcesContent":["/**\n * Custom-node lifecycle model (BOFF-4076).\n *\n * A custom node moves through five stages before workspaces can use it:\n *\n * 1. Upload ZIP — the version carries a package (`packageUrl`).\n * 2. Validate manifest — global-devportal-svc validates the package and its\n * manifest and records `metadata.packageValidation`\n * (BOFF-4315).\n * 3. Run tests — the package is built into a sandbox image\n * (`metadata.sandboxBuildStatus`) and every manifest\n * operation is smoke-tested in a sandbox\n * (`metadata.packageSmoke`, BOFF-9656).\n * 4. Approval — a workspace-private node is approved by its own\n * organization when it is published to it\n * (`metadata.organizationPublish`, BOFF-9657); a store\n * node is reviewed by a platform admin\n * (`status` pending_review → published | rejected).\n * 5. Deploy — the version is published and installable.\n *\n * Everything here is derived from the ApplicationVersion the service already\n * returns, so the lifecycle page never invents a state the backend does not\n * hold. The functions are pure so the page stays a thin view over them.\n */\nimport {\n readPackageValidationState,\n type PackageValidationIssue,\n type PackageValidationState,\n} from \"../components/PackageValidationPanel\";\nimport {\n readNodeSmokeState,\n type NodeSmokeState,\n} from \"../components/NodeSmokePanel\";\n\nexport type LifecycleStepId =\n \"upload\" | \"validate\" | \"test\" | \"approval\" | \"deploy\";\n\n/**\n * complete — the stage is done.\n * in_progress — the platform is working on it (validation, build, tests,\n * platform review); the page polls while any stage is here.\n * action — waiting for the developer (upload, fix, submit, deploy).\n * failed — the stage failed and blocks everything after it.\n * pending — not reached yet.\n */\nexport type LifecycleStepStatus =\n \"complete\" | \"in_progress\" | \"action\" | \"failed\" | \"pending\";\n\nexport interface LifecycleStep {\n id: LifecycleStepId;\n status: LifecycleStepStatus;\n /** Short machine-friendly reason; the page maps it to translated copy. */\n reason: string;\n}\n\nexport type CheckStatus = \"pass\" | \"warn\" | \"fail\" | \"running\" | \"not_run\";\n\nexport type LifecycleCheckId =\n \"structure\" | \"manifest\" | \"security\" | \"build\" | \"tests\";\n\nexport interface LifecycleCheck {\n id: LifecycleCheckId;\n status: CheckStatus;\n issues: PackageValidationIssue[];\n /** Free-form detail such as \"12 / 12 passing\" inputs or a build error. */\n detail: string | null;\n}\n\nexport type NodeVisibility = \"private\" | \"store\";\n\nexport type SandboxBuildStatus =\n \"PENDING\" | \"READY\" | \"FAILED\" | \"DISPATCH_FAILED\" | \"UNSUPPORTED\";\n\n/** The ApplicationVersion fields the lifecycle reads. */\nexport interface LifecycleVersion {\n id: string;\n version: string;\n status: string;\n packageUrl?: string | null;\n metadata?: unknown;\n reviewNotes?: string | null;\n}\n\nexport interface NodeLifecycle {\n steps: LifecycleStep[];\n /** Index of the first step that is not complete; steps.length when all are. */\n currentIndex: number;\n checks: LifecycleCheck[];\n validation: PackageValidationState;\n smoke: NodeSmokeState;\n buildStatus: SandboxBuildStatus | null;\n buildError: string | null;\n organizationPublished: boolean;\n /** True while the platform is still working, so the page should poll. */\n busy: boolean;\n}\n\nconst BUILD_STATUSES: ReadonlySet<string> = new Set([\n \"PENDING\",\n \"READY\",\n \"FAILED\",\n \"DISPATCH_FAILED\",\n \"UNSUPPORTED\",\n]);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nexport function readSandboxBuildStatus(\n metadata: unknown,\n): SandboxBuildStatus | null {\n if (!isRecord(metadata)) return null;\n const status = metadata.sandboxBuildStatus;\n return typeof status === \"string\" && BUILD_STATUSES.has(status)\n ? (status as SandboxBuildStatus)\n : null;\n}\n\nexport function readSandboxBuildError(metadata: unknown): string | null {\n if (!isRecord(metadata)) return null;\n const error = metadata.sandboxBuildError;\n return typeof error === \"string\" && error.trim() ? error : null;\n}\n\n/** BOFF-9657: the version was published to its organization (no platform review). */\nexport function isOrganizationPublished(metadata: unknown): boolean {\n return isRecord(metadata) && isRecord(metadata.organizationPublish);\n}\n\n/** Group a validation issue code into the check it belongs to. */\nexport function checkForIssueCode(code: string): LifecycleCheckId {\n if (code.startsWith(\"blocked.\") || code.startsWith(\"review.\")) {\n return \"security\";\n }\n if (code.startsWith(\"manifest.\") || code.startsWith(\"operation.\")) {\n return \"manifest\";\n }\n return \"structure\";\n}\n\nfunction validationCheck(\n id: \"structure\" | \"manifest\" | \"security\",\n validation: PackageValidationState,\n hasPackage: boolean,\n): LifecycleCheck {\n if (validation.kind === \"pending\") {\n return { id, status: \"running\", issues: [], detail: null };\n }\n if (validation.kind === \"none\") {\n return {\n id,\n status: \"not_run\",\n issues: [],\n detail: hasPackage ? \"notValidated\" : null,\n };\n }\n const issues = [...validation.errors, ...validation.warnings].filter(\n (issue) => checkForIssueCode(issue.code) === id,\n );\n const hasError = issues.some((issue) => issue.severity === \"error\");\n const hasWarning = issues.some((issue) => issue.severity === \"warning\");\n let status: CheckStatus = \"pass\";\n if (hasError) status = \"fail\";\n else if (hasWarning) status = \"warn\";\n else if (validation.kind === \"failed\" && id === \"structure\") {\n // A failed report whose errors all landed in other groups must not make\n // the structure check look green when there is nothing else to show.\n status = validation.errors.length > 0 ? \"pass\" : \"fail\";\n }\n return { id, status, issues, detail: null };\n}\n\nfunction buildCheck(\n buildStatus: SandboxBuildStatus | null,\n buildError: string | null,\n validation: PackageValidationState,\n): LifecycleCheck {\n if (buildStatus === \"READY\") {\n return { id: \"build\", status: \"pass\", issues: [], detail: null };\n }\n if (buildStatus === \"PENDING\") {\n return { id: \"build\", status: \"running\", issues: [], detail: null };\n }\n if (buildStatus) {\n return {\n id: \"build\",\n status: \"fail\",\n issues: [],\n detail: buildError ?? buildStatus,\n };\n }\n // No build recorded. A package that failed validation is never built.\n return {\n id: \"build\",\n status: \"not_run\",\n issues: [],\n detail: validation.kind === \"failed\" ? \"blockedByValidation\" : null,\n };\n}\n\nfunction testsCheck(smoke: NodeSmokeState): LifecycleCheck {\n switch (smoke.kind) {\n case \"running\":\n return { id: \"tests\", status: \"running\", issues: [], detail: null };\n case \"passed\":\n return {\n id: \"tests\",\n status: \"pass\",\n issues: [],\n detail: `${smoke.passed}/${smoke.operations.length}`,\n };\n case \"failed\":\n return {\n id: \"tests\",\n status: \"fail\",\n issues: [],\n detail: smoke.error ?? `${smoke.failed}/${smoke.operations.length}`,\n };\n case \"skipped\":\n return {\n id: \"tests\",\n status: \"warn\",\n issues: [],\n detail: smoke.error,\n };\n default:\n return { id: \"tests\", status: \"not_run\", issues: [], detail: null };\n }\n}\n\nfunction uploadStep(hasPackage: boolean): LifecycleStep {\n return hasPackage\n ? { id: \"upload\", status: \"complete\", reason: \"uploaded\" }\n : { id: \"upload\", status: \"action\", reason: \"noPackage\" };\n}\n\nfunction validateStep(\n hasPackage: boolean,\n validation: PackageValidationState,\n): LifecycleStep {\n if (!hasPackage) {\n return { id: \"validate\", status: \"pending\", reason: \"waitingForPackage\" };\n }\n switch (validation.kind) {\n case \"passed\":\n return { id: \"validate\", status: \"complete\", reason: \"passed\" };\n case \"failed\":\n return { id: \"validate\", status: \"failed\", reason: \"failed\" };\n case \"pending\":\n return { id: \"validate\", status: \"in_progress\", reason: \"validating\" };\n default:\n // A package uploaded before validation existed. The service refuses to\n // publish it, so the developer has to upload it again.\n return { id: \"validate\", status: \"action\", reason: \"notValidated\" };\n }\n}\n\nfunction testStep(\n validationStep: LifecycleStep,\n buildStatus: SandboxBuildStatus | null,\n smoke: NodeSmokeState,\n): LifecycleStep {\n if (validationStep.status !== \"complete\") {\n return { id: \"test\", status: \"pending\", reason: \"waitingForValidation\" };\n }\n if (buildStatus === null || buildStatus === \"PENDING\") {\n return { id: \"test\", status: \"in_progress\", reason: \"building\" };\n }\n if (buildStatus !== \"READY\") {\n return { id: \"test\", status: \"failed\", reason: \"buildFailed\" };\n }\n switch (smoke.kind) {\n case \"running\":\n return { id: \"test\", status: \"in_progress\", reason: \"testing\" };\n case \"failed\":\n return { id: \"test\", status: \"failed\", reason: \"testsFailed\" };\n case \"skipped\":\n return { id: \"test\", status: \"complete\", reason: \"testsSkipped\" };\n case \"passed\":\n return { id: \"test\", status: \"complete\", reason: \"testsPassed\" };\n default:\n // READY with no smoke record: built before operation smoke tests\n // existed; the service accepts it.\n return { id: \"test\", status: \"complete\", reason: \"built\" };\n }\n}\n\nfunction approvalStep(\n previous: LifecycleStep,\n version: LifecycleVersion,\n visibility: NodeVisibility,\n organizationPublished: boolean,\n): LifecycleStep {\n const status = version.status.toLowerCase();\n if (organizationPublished) {\n return { id: \"approval\", status: \"complete\", reason: \"organization\" };\n }\n if (status === \"published\" || status === \"deprecated\") {\n return { id: \"approval\", status: \"complete\", reason: \"approved\" };\n }\n if (status === \"pending_review\") {\n return { id: \"approval\", status: \"in_progress\", reason: \"inReview\" };\n }\n if (status === \"rejected\") {\n return { id: \"approval\", status: \"failed\", reason: \"rejected\" };\n }\n if (previous.status !== \"complete\") {\n return { id: \"approval\", status: \"pending\", reason: \"waitingForTests\" };\n }\n return {\n id: \"approval\",\n status: \"action\",\n reason: visibility === \"private\" ? \"readyForOrganization\" : \"readyToSubmit\",\n };\n}\n\nfunction deployStep(\n version: LifecycleVersion,\n approval: LifecycleStep,\n organizationPublished: boolean,\n): LifecycleStep {\n const status = version.status.toLowerCase();\n if (status === \"deprecated\") {\n return { id: \"deploy\", status: \"complete\", reason: \"deprecated\" };\n }\n if (status === \"published\") {\n return {\n id: \"deploy\",\n status: \"complete\",\n reason: organizationPublished ? \"deployedToOrganization\" : \"store\",\n };\n }\n if (approval.status === \"action\") {\n return { id: \"deploy\", status: \"action\", reason: \"ready\" };\n }\n return { id: \"deploy\", status: \"pending\", reason: \"waitingForApproval\" };\n}\n\n/** Derive the full lifecycle view of one NODE application version. */\nexport function deriveNodeLifecycle(\n version: LifecycleVersion,\n visibility: NodeVisibility,\n): NodeLifecycle {\n const metadata = version.metadata;\n const hasPackage = Boolean(version.packageUrl);\n const validation = readPackageValidationState(metadata);\n const smoke = readNodeSmokeState(metadata);\n const buildStatus = readSandboxBuildStatus(metadata);\n const buildError = readSandboxBuildError(metadata);\n const organizationPublished = isOrganizationPublished(metadata);\n\n const upload = uploadStep(hasPackage);\n const validate = validateStep(hasPackage, validation);\n const test = testStep(validate, buildStatus, smoke);\n const approval = approvalStep(\n test,\n version,\n visibility,\n organizationPublished,\n );\n const deploy = deployStep(version, approval, organizationPublished);\n const steps = [upload, validate, test, approval, deploy];\n\n const firstOpen = steps.findIndex((step) => step.status !== \"complete\");\n const currentIndex = firstOpen === -1 ? steps.length : firstOpen;\n\n const checks: LifecycleCheck[] = [\n validationCheck(\"structure\", validation, hasPackage),\n validationCheck(\"manifest\", validation, hasPackage),\n validationCheck(\"security\", validation, hasPackage),\n buildCheck(buildStatus, buildError, validation),\n testsCheck(smoke),\n ];\n\n // Approval in review is a human step that can take days; the page still\n // polls so the stepper flips the moment an admin decides.\n const busy = steps.some((step) => step.status === \"in_progress\");\n\n return {\n steps,\n currentIndex,\n checks,\n validation,\n smoke,\n buildStatus,\n buildError,\n organizationPublished,\n busy,\n };\n}\n\nexport type DeployBlocker =\n | \"notDraft\"\n | \"noPackage\"\n | \"validationNotPassed\"\n | \"buildNotReady\"\n | \"testsNotPassed\"\n | \"visibilityMismatch\"\n | \"noWorkspace\"\n | \"pendingVersion\"\n | \"noPermission\";\n\nexport interface DeployReadinessInput {\n lifecycle: NodeLifecycle;\n version: LifecycleVersion;\n visibility: NodeVisibility;\n /** The application's own visibility (PRIVATE, PUBLIC, UNLISTED…). */\n appVisibility: string | null | undefined;\n workspaceId: string | null | undefined;\n /** Another version of the application is already in platform review. */\n otherVersionPending: boolean;\n canPublish: boolean;\n}\n\n/**\n * Whether the Deploy action can run, and if not the first reason why. These\n * mirror the service's own gates (privateNodes.ts and the review submission),\n * so the button is disabled exactly when the service would refuse.\n */\nexport function deployBlocker(\n input: DeployReadinessInput,\n): DeployBlocker | null {\n const { lifecycle, version, visibility } = input;\n if (!input.canPublish) return \"noPermission\";\n const status = version.status.toLowerCase();\n if (status !== \"draft\" && status !== \"rejected\") return \"notDraft\";\n const appIsPrivate = (input.appVisibility ?? \"\").toUpperCase() === \"PRIVATE\";\n if ((visibility === \"private\") !== appIsPrivate) return \"visibilityMismatch\";\n if (!version.packageUrl) return \"noPackage\";\n if (lifecycle.validation.kind !== \"passed\") return \"validationNotPassed\";\n if (lifecycle.buildStatus !== \"READY\") return \"buildNotReady\";\n if (lifecycle.smoke.kind === \"running\" || lifecycle.smoke.kind === \"failed\") {\n return \"testsNotPassed\";\n }\n if (visibility === \"private\" && !input.workspaceId) return \"noWorkspace\";\n if (visibility === \"store\" && input.otherVersionPending) {\n return \"pendingVersion\";\n }\n return null;\n}\n\n/** The visibility a NODE application's versions are published with. */\nexport function visibilityForApp(\n appVisibility: string | null | undefined,\n): NodeVisibility {\n return (appVisibility ?? \"\").toUpperCase() === \"PRIVATE\"\n ? \"private\"\n : \"store\";\n}\n"],"mappings":"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"}
@@ -134,4 +134,3 @@ export declare function firstGraphQLError(error: unknown): ErrorEntry;
134
134
  */
135
135
  export declare function payoutErrorMessage(error: unknown, action: PayoutAction): string;
136
136
  export {};
137
- //# sourceMappingURL=publisherPayouts.d.ts.map
@@ -1,4 +1,4 @@
1
- //#region src/devportal/utils/publisherPayouts.ts
1
+ // src/devportal/utils/publisherPayouts.ts
2
2
  var e = ["RAZORPAY_X", "BANK_TRANSFER"], t = ["STRIPE_CONNECT", "BANK_TRANSFER"];
3
3
  function n(e) {
4
4
  let t = (e ?? "").trim().toUpperCase();
@@ -30,7 +30,6 @@ function c(e) {
30
30
  case "REJECTED": return "REJECTED";
31
31
  case "SUSPENDED": return "SUSPENDED";
32
32
  case "CLOSED": return "CLOSED";
33
- default: break;
34
33
  }
35
34
  if (!s(e.type)) return "MANUAL_REVIEW";
36
35
  switch (e.processorStatus) {
@@ -42,7 +41,7 @@ function c(e) {
42
41
  }
43
42
  function l(e) {
44
43
  let t = c(e);
45
- return t === "NOT_STARTED" || t === "FAILED" ? !0 : t === "IN_PROGRESS" && e.type === "STRIPE_CONNECT";
44
+ return t === "NOT_STARTED" || t === "FAILED" || t === "IN_PROGRESS" && e.type === "STRIPE_CONNECT";
46
45
  }
47
46
  function u(e) {
48
47
  return e.filter((e) => c(e) === "IN_PROGRESS");
@@ -86,7 +85,7 @@ function C(e, t) {
86
85
  let r = {}, a = n(e.country);
87
86
  a || (r.country = "Enter the two-letter country code of the account, for example IN or US."), e.type ? a && !i(a, t).some((t) => t === e.type) && (r.type = "This payout method is not available for that country.") : r.type = "Choose how you want to be paid.";
88
87
  let s = e.accountHolderName.trim();
89
- return (!s || s.length > 140) && (r.accountHolderName = "Enter the account holder's name exactly as the bank has it."), o(e.type) && (_.test(e.accountNumberLast4.trim()) || (r.accountNumberLast4 = "Enter the last four digits of the account number."), (!a || !b(e.bankCode, a)) && (r.bankCode = a === "IN" ? "Enter a valid 11-character IFSC, for example HDFC0001234." : "Enter a valid 8 or 11-character SWIFT/BIC code.")), r;
88
+ return (!s || s.length > 140) && (r.accountHolderName = "Enter the account holder's name exactly as the bank has it."), o(e.type) && (_.test(e.accountNumberLast4.trim()) || (r.accountNumberLast4 = "Enter the last four digits of the account number."), a && b(e.bankCode, a) || (r.bankCode = a === "IN" ? "Enter a valid 11-character IFSC, for example HDFC0001234." : "Enter a valid 8 or 11-character SWIFT/BIC code.")), r;
90
89
  }
91
90
  function w(e) {
92
91
  let t = n(e.country), i = r(e.type) ? e.type : "BANK_TRANSFER", s = e.bankName.trim();
@@ -125,32 +124,33 @@ function D(e) {
125
124
  let t = e?.accountLast4;
126
125
  return typeof t == "string" && /^\d{4}$/.test(t) ? t : null;
127
126
  }
128
- function O(e) {
127
+ var O = "Something went wrong. Nothing was changed. Try again in a moment; if it keeps failing, contact support.";
128
+ function k(e) {
129
129
  return typeof e == "object" && e && !Array.isArray(e) ? e : null;
130
130
  }
131
- function k(e) {
131
+ function A(e) {
132
132
  if (typeof e != "string") return null;
133
133
  let t = e.trim();
134
134
  return !t || /^(unexpected error|response not successful|failed to fetch|network ?error)/i.test(t) ? null : t;
135
135
  }
136
- function A(e) {
137
- let t = O(e);
136
+ function j(e) {
137
+ let t = k(e);
138
138
  for (let e of ["errors", "graphQLErrors"]) {
139
139
  let n = t?.[e];
140
140
  if (!Array.isArray(n) || n.length === 0) continue;
141
- let r = O(n[0]), i = O(r?.extensions)?.code;
141
+ let r = k(n[0]), i = k(r?.extensions)?.code;
142
142
  return {
143
143
  code: typeof i == "string" ? i : null,
144
- message: k(r?.message)
144
+ message: A(r?.message)
145
145
  };
146
146
  }
147
147
  return {
148
148
  code: null,
149
- message: e instanceof Error ? k(e.message) : k(t?.message)
149
+ message: e instanceof Error ? A(e.message) : A(t?.message)
150
150
  };
151
151
  }
152
- function j(e, t) {
153
- let { code: n, message: r } = A(e);
152
+ function M(e, t) {
153
+ let { code: n, message: r } = j(e);
154
154
  switch (n) {
155
155
  case "FAILED_PRECONDITION": return t === "start" || t === "refresh" ? "Automatic verification is not available for this processor yet. Your payout method stays pending and the marketplace team will verify it." : t === "add" ? "Accept the current Marketplace & Developer Agreement before adding a payout method." : r ?? "Something went wrong. Nothing was changed. Try again in a moment; if it keeps failing, contact support.";
156
156
  case "BAD_USER_INPUT": return r ?? "Some of the details are not valid. Check them and try again.";
@@ -161,7 +161,6 @@ function j(e, t) {
161
161
  default: return r ?? "Something went wrong. Nothing was changed. Try again in a moment; if it keeps failing, contact support.";
162
162
  }
163
163
  }
164
- //#endregion
165
- export { D as accountLast4Of, l as canStartOnboarding, i as methodTypesForCountry, u as methodsToPoll, o as needsBankDetails, n as normalizeCountry, j as payoutErrorMessage, c as payoutMethodPhase, d as readOnboardingRedirect, p as redirectToOnboarding, m as safeOnboardingUrl, f as stripeMethodsInOnboarding, s as supportsAutomaticOnboarding, w as toAddPayoutMethodInput, E as toOnboardingInput, C as validateAddPayoutMethod, T as validateOnboarding };
164
+ export { e as INDIA_METHOD_TYPES, t as INTERNATIONAL_METHOD_TYPES, O as PAYOUT_GENERIC_ERROR, D as accountLast4Of, l as canStartOnboarding, a as defaultCurrencyForCountry, j as firstGraphQLError, b as isValidBankCode, x as isValidEmail, i as methodTypesForCountry, u as methodsToPoll, o as needsBankDetails, n as normalizeCountry, S as normalizePhone, M as payoutErrorMessage, c as payoutMethodPhase, d as readOnboardingRedirect, p as redirectToOnboarding, m as safeOnboardingUrl, f as stripeMethodsInOnboarding, s as supportsAutomaticOnboarding, w as toAddPayoutMethodInput, E as toOnboardingInput, C as validateAddPayoutMethod, T as validateOnboarding };
166
165
 
167
166
  //# sourceMappingURL=publisherPayouts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publisherPayouts.js","names":[],"sources":["../../../src/devportal/utils/publisherPayouts.ts"],"sourcesContent":["/**\n * Publisher payout methods and automatic processor onboarding (BOFF-10953).\n *\n * Pure helpers behind the Payouts page: which payout method types a country\n * can use, what state a method is in from the publisher's point of view,\n * client-side checks that mirror the store's validation (the store stays\n * authoritative and re-validates everything), and the mapping from store\n * error codes to messages a publisher can act on.\n *\n * Backend contract: global-store-svc `myPublisherPayoutMethods`,\n * `addMyPublisherPayoutMethod`, `startMyPublisherPayoutOnboarding` and\n * `refreshMyPublisherPayoutOnboarding` (BOFF-10634, BOFF-10895).\n */\n\nexport type PayoutMethodTypeValue =\n | \"BANK_TRANSFER\"\n | \"PAYPAL\"\n | \"RAZORPAY_X\"\n | \"STRIPE_CONNECT\";\n\n/** Method types offered for India (RazorpayX payouts in INR). */\nexport const INDIA_METHOD_TYPES: readonly PayoutMethodTypeValue[] = [\n \"RAZORPAY_X\",\n \"BANK_TRANSFER\",\n];\n\n/** Method types offered everywhere else (Stripe Connect in USD). */\nexport const INTERNATIONAL_METHOD_TYPES: readonly PayoutMethodTypeValue[] = [\n \"STRIPE_CONNECT\",\n \"BANK_TRANSFER\",\n];\n\nexport interface PayoutRouteLike {\n country?: string | null;\n currency: string;\n processor: string;\n methodTypes: readonly string[];\n}\n\nexport interface PayoutMethodLike {\n id: string;\n type: string;\n status: string;\n processorStatus?: string | null;\n processorFailureReason?: string | null;\n rejectionReason?: string | null;\n}\n\n/** Normalise a country to an upper-case ISO 3166-1 alpha-2 code, or \"\". */\nexport function normalizeCountry(value: string | null | undefined): string {\n const code = (value ?? \"\").trim().toUpperCase();\n return /^[A-Z]{2}$/.test(code) ? code : \"\";\n}\n\nfunction isPayoutMethodType(value: string): value is PayoutMethodTypeValue {\n return (\n value === \"BANK_TRANSFER\" ||\n value === \"PAYPAL\" ||\n value === \"RAZORPAY_X\" ||\n value === \"STRIPE_CONNECT\"\n );\n}\n\n/**\n * The payout method types to offer for the country the publisher entered.\n * The store's payoutRoute is used as-is when it is for that same country (or\n * no country is known yet); otherwise the same India / rest-of-world rule the\n * store applies decides. PAYPAL is never offered.\n */\nexport function methodTypesForCountry(\n country: string | null | undefined,\n route: PayoutRouteLike | null | undefined,\n): PayoutMethodTypeValue[] {\n const code = normalizeCountry(country);\n const routeCountry = normalizeCountry(route?.country);\n if (route && (code === \"\" || code === routeCountry)) {\n const fromRoute = route.methodTypes\n .filter(isPayoutMethodType)\n .filter((t) => t !== \"PAYPAL\");\n if (fromRoute.length > 0) return fromRoute;\n }\n return [...(code === \"IN\" ? INDIA_METHOD_TYPES : INTERNATIONAL_METHOD_TYPES)];\n}\n\n/** Default payout currency for a country (INR for India, USD elsewhere). */\nexport function defaultCurrencyForCountry(\n country: string | null | undefined,\n): string {\n return normalizeCountry(country) === \"IN\" ? \"INR\" : \"USD\";\n}\n\n/** True for the method types that collect bank details when added. */\nexport function needsBankDetails(type: string): boolean {\n return type === \"BANK_TRANSFER\" || type === \"RAZORPAY_X\";\n}\n\n/** True for the method types that support automatic processor onboarding. */\nexport function supportsAutomaticOnboarding(type: string): boolean {\n return type === \"RAZORPAY_X\" || type === \"STRIPE_CONNECT\";\n}\n\n/**\n * Where a payout method stands, from the publisher's point of view.\n *\n * - VERIFIED: payouts can be sent to it.\n * - NOT_STARTED: pending, automatic verification has not been started.\n * - IN_PROGRESS: the processor is still checking the account.\n * - AWAITING_KYC: the processor confirmed the account; the method turns\n * VERIFIED once the publisher's own verification passes.\n * - FAILED: the processor could not verify the account; start again.\n * - MANUAL_REVIEW: a bank transfer the marketplace team verifies by hand.\n * - REJECTED / SUSPENDED / CLOSED: final states set by the marketplace.\n */\nexport type PayoutMethodPhase =\n | \"VERIFIED\"\n | \"NOT_STARTED\"\n | \"IN_PROGRESS\"\n | \"AWAITING_KYC\"\n | \"FAILED\"\n | \"MANUAL_REVIEW\"\n | \"REJECTED\"\n | \"SUSPENDED\"\n | \"CLOSED\";\n\nexport function payoutMethodPhase(method: PayoutMethodLike): PayoutMethodPhase {\n switch (method.status) {\n case \"VERIFIED\":\n return \"VERIFIED\";\n case \"REJECTED\":\n return \"REJECTED\";\n case \"SUSPENDED\":\n return \"SUSPENDED\";\n case \"CLOSED\":\n return \"CLOSED\";\n default:\n break;\n }\n if (!supportsAutomaticOnboarding(method.type)) return \"MANUAL_REVIEW\";\n switch (method.processorStatus) {\n case \"PENDING_VERIFICATION\":\n return \"IN_PROGRESS\";\n case \"ACTIVE\":\n return \"AWAITING_KYC\";\n case \"FAILED_VERIFICATION\":\n return \"FAILED\";\n default:\n return \"NOT_STARTED\";\n }\n}\n\n/** The publisher may (re)start automatic onboarding for this method. */\nexport function canStartOnboarding(method: PayoutMethodLike): boolean {\n const phase = payoutMethodPhase(method);\n if (phase === \"NOT_STARTED\" || phase === \"FAILED\") return true;\n // A Stripe link can expire before the publisher finishes, so an in-progress\n // Stripe method can always ask for a fresh link.\n return phase === \"IN_PROGRESS\" && method.type === \"STRIPE_CONNECT\";\n}\n\n/** Methods whose processor state is worth re-reading while the page is open. */\nexport function methodsToPoll<T extends PayoutMethodLike>(\n methods: readonly T[],\n): T[] {\n return methods.filter((m) => payoutMethodPhase(m) === \"IN_PROGRESS\");\n}\n\n/** Stripe onboarding hands the publisher back with ?onboarding=return|refresh. */\nexport type OnboardingRedirect = \"return\" | \"refresh\" | null;\n\nexport function readOnboardingRedirect(search: string): OnboardingRedirect {\n const value = new URLSearchParams(search).get(\"onboarding\");\n return value === \"return\" || value === \"refresh\" ? value : null;\n}\n\n/** Pending Stripe methods that already have a processor account. */\nexport function stripeMethodsInOnboarding<T extends PayoutMethodLike>(\n methods: readonly T[],\n): T[] {\n return methods.filter(\n (m) =>\n m.type === \"STRIPE_CONNECT\" &&\n m.status === \"PENDING\" &&\n Boolean(m.processorStatus),\n );\n}\n\n/**\n * Send the browser to the processor's hosted onboarding page. Kept here so\n * the page's redirect can be replaced in tests.\n */\nexport function redirectToOnboarding(url: string): void {\n window.location.assign(url);\n}\n\n/** The redirect URL returned by the store, accepted only over https. */\nexport function safeOnboardingUrl(\n url: string | null | undefined,\n): string | null {\n if (!url) return null;\n try {\n const parsed = new URL(url);\n return parsed.protocol === \"https:\" ? parsed.toString() : null;\n } catch {\n return null;\n }\n}\n\n// ── Client-side validation (mirrors global-store-svc) ───────────────────────\n\nconst IFSC_PATTERN = /^[A-Z]{4}0[A-Z0-9]{6}$/;\nconst SWIFT_PATTERN = /^[A-Z]{6}[A-Z0-9]+$/;\nconst LAST4_PATTERN = /^\\d{4}$/;\nconst ACCOUNT_NUMBER_PATTERN = /^[A-Za-z0-9]{5,35}$/;\nconst PHONE_PATTERN = /^\\+?\\d{8,15}$/;\n\nexport function isValidBankCode(code: string, country: string): boolean {\n const value = code.trim().toUpperCase();\n if (normalizeCountry(country) === \"IN\") return IFSC_PATTERN.test(value);\n return (\n (value.length === 8 || value.length === 11) && SWIFT_PATTERN.test(value)\n );\n}\n\nexport function isValidEmail(value: string): boolean {\n const email = value.trim();\n if (!email || email.length > 254 || /\\s/.test(email)) return false;\n const at = email.indexOf(\"@\");\n if (at < 1 || at !== email.lastIndexOf(\"@\")) return false;\n const domain = email.slice(at + 1);\n return (\n domain.includes(\".\") && !domain.startsWith(\".\") && !domain.endsWith(\".\")\n );\n}\n\nexport function normalizePhone(value: string): string {\n return value.replace(/[\\s()-]/g, \"\");\n}\n\nexport interface AddPayoutMethodForm {\n type: string;\n country: string;\n accountHolderName: string;\n accountNumberLast4: string;\n bankCode: string;\n bankName: string;\n isDefault: boolean;\n}\n\nexport type AddPayoutMethodField =\n | \"type\"\n | \"country\"\n | \"accountHolderName\"\n | \"accountNumberLast4\"\n | \"bankCode\";\n\n/** Field errors for the add form, as message keys with English fallbacks. */\nexport function validateAddPayoutMethod(\n form: AddPayoutMethodForm,\n route: PayoutRouteLike | null | undefined,\n): Partial<Record<AddPayoutMethodField, string>> {\n const errors: Partial<Record<AddPayoutMethodField, string>> = {};\n const country = normalizeCountry(form.country);\n if (!country) {\n errors.country =\n \"Enter the two-letter country code of the account, for example IN or US.\";\n }\n if (!form.type) {\n errors.type = \"Choose how you want to be paid.\";\n } else if (\n country &&\n !methodTypesForCountry(country, route).some((t) => t === form.type)\n ) {\n errors.type = \"This payout method is not available for that country.\";\n }\n const holder = form.accountHolderName.trim();\n if (!holder || holder.length > 140) {\n errors.accountHolderName =\n \"Enter the account holder's name exactly as the bank has it.\";\n }\n if (needsBankDetails(form.type)) {\n if (!LAST4_PATTERN.test(form.accountNumberLast4.trim())) {\n errors.accountNumberLast4 =\n \"Enter the last four digits of the account number.\";\n }\n if (!country || !isValidBankCode(form.bankCode, country)) {\n errors.bankCode =\n country === \"IN\"\n ? \"Enter a valid 11-character IFSC, for example HDFC0001234.\"\n : \"Enter a valid 8 or 11-character SWIFT/BIC code.\";\n }\n }\n return errors;\n}\n\n/** The addMyPublisherPayoutMethod input for a validated form. */\nexport function toAddPayoutMethodInput(form: AddPayoutMethodForm): {\n type: PayoutMethodTypeValue;\n country: string;\n currency: string;\n accountHolderName: string;\n accountNumberLast4?: string;\n bankCode?: string;\n bankName?: string;\n isDefault: boolean;\n} {\n const country = normalizeCountry(form.country);\n // validateAddPayoutMethod has already checked the type is offered.\n const type = isPayoutMethodType(form.type) ? form.type : \"BANK_TRANSFER\";\n const bankName = form.bankName.trim();\n return {\n type,\n country,\n currency: defaultCurrencyForCountry(country),\n accountHolderName: form.accountHolderName.trim(),\n ...(needsBankDetails(type)\n ? {\n accountNumberLast4: form.accountNumberLast4.trim(),\n bankCode: form.bankCode.trim().toUpperCase(),\n ...(bankName ? { bankName } : {}),\n }\n : {}),\n isDefault: form.isDefault,\n };\n}\n\nexport interface OnboardingForm {\n contactEmail: string;\n contactPhone: string;\n accountNumber: string;\n}\n\nexport type OnboardingField = keyof OnboardingForm;\n\n/**\n * Field errors for the \"Verify automatically\" form. RazorpayX also needs the\n * full account number once, which must end in the registered last four digits.\n */\nexport function validateOnboarding(\n type: string,\n form: OnboardingForm,\n accountLast4: string | null | undefined,\n): Partial<Record<OnboardingField, string>> {\n const errors: Partial<Record<OnboardingField, string>> = {};\n if (!isValidEmail(form.contactEmail)) {\n errors.contactEmail = \"Enter a valid contact email.\";\n }\n const phone = normalizePhone(form.contactPhone);\n if (phone && !PHONE_PATTERN.test(phone)) {\n errors.contactPhone = \"Enter 8 to 15 digits, with an optional leading +.\";\n }\n if (type === \"RAZORPAY_X\") {\n const account = form.accountNumber.replace(/\\s+/g, \"\");\n if (!ACCOUNT_NUMBER_PATTERN.test(account)) {\n errors.accountNumber =\n \"Enter the full account number (5 to 35 letters or digits).\";\n } else if (accountLast4 && !account.endsWith(accountLast4)) {\n errors.accountNumber = `The account number must end in ${accountLast4}, the digits you registered.`;\n }\n }\n return errors;\n}\n\n/** The startMyPublisherPayoutOnboarding input for a validated form. */\nexport function toOnboardingInput(\n type: string,\n form: OnboardingForm,\n): { contactEmail: string; contactPhone?: string; accountNumber?: string } {\n const phone = normalizePhone(form.contactPhone);\n return {\n contactEmail: form.contactEmail.trim(),\n ...(phone ? { contactPhone: phone } : {}),\n ...(type === \"RAZORPAY_X\"\n ? { accountNumber: form.accountNumber.replace(/\\s+/g, \"\") }\n : {}),\n };\n}\n\n/** Last four digits recorded on a method, read from its masked details. */\nexport function accountLast4Of(\n maskedDetails: Record<string, unknown> | null | undefined,\n): string | null {\n const value = maskedDetails?.[\"accountLast4\"];\n return typeof value === \"string\" && /^\\d{4}$/.test(value) ? value : null;\n}\n\n// ── Error mapping ───────────────────────────────────────────────────────────\n\nexport type PayoutAction = \"agreement\" | \"add\" | \"remove\" | \"start\" | \"refresh\";\n\nexport const PAYOUT_GENERIC_ERROR =\n \"Something went wrong. Nothing was changed. Try again in a moment; if it keeps failing, contact support.\";\n\ninterface ErrorEntry {\n code: string | null;\n message: string | null;\n}\n\nfunction readRecord(value: unknown): Record<string, unknown> | null {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? // Narrowed to a non-null, non-array object above; fields are read defensively below.\n (value as Record<string, unknown>)\n : null;\n}\n\nfunction usableMessage(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n const message = value.trim();\n if (!message) return null;\n if (\n /^(unexpected error|response not successful|failed to fetch|network ?error)/i.test(\n message,\n )\n ) {\n return null;\n }\n return message;\n}\n\n/** The first GraphQL error (code and message) carried by an Apollo error. */\nexport function firstGraphQLError(error: unknown): ErrorEntry {\n const record = readRecord(error);\n // Apollo Client 4 raises CombinedGraphQLErrors (`errors`); older clients\n // raised ApolloError (`graphQLErrors`).\n for (const key of [\"errors\", \"graphQLErrors\"]) {\n const entries = record?.[key];\n if (!Array.isArray(entries) || entries.length === 0) continue;\n const entry = readRecord(entries[0]);\n const code = readRecord(entry?.[\"extensions\"])?.[\"code\"];\n return {\n code: typeof code === \"string\" ? code : null,\n message: usableMessage(entry?.[\"message\"]),\n };\n }\n return {\n code: null,\n message:\n error instanceof Error\n ? usableMessage(error.message)\n : usableMessage(record?.[\"message\"]),\n };\n}\n\n/**\n * A message the publisher can act on for a failed payout action. The store's\n * own message is kept for input errors because it names the field at fault.\n */\nexport function payoutErrorMessage(\n error: unknown,\n action: PayoutAction,\n): string {\n const { code, message } = firstGraphQLError(error);\n switch (code) {\n case \"FAILED_PRECONDITION\":\n if (action === \"start\" || action === \"refresh\") {\n return \"Automatic verification is not available for this processor yet. Your payout method stays pending and the marketplace team will verify it.\";\n }\n if (action === \"add\") {\n return \"Accept the current Marketplace & Developer Agreement before adding a payout method.\";\n }\n return message ?? PAYOUT_GENERIC_ERROR;\n case \"BAD_USER_INPUT\":\n return (\n message ??\n \"Some of the details are not valid. Check them and try again.\"\n );\n case \"SERVICE_UNAVAILABLE\":\n return \"Payout onboarding is temporarily unavailable. Nothing was changed. Try again in a few minutes.\";\n case \"NOT_FOUND\":\n return action === \"add\" || action === \"agreement\"\n ? \"You do not have a publisher profile yet. It is created when you submit your first app to the store.\"\n : \"This payout method no longer exists. Reload the page.\";\n case \"FORBIDDEN\":\n return \"Your publisher profile is suspended, so payout methods cannot be changed. Contact support.\";\n case \"INVALID_STATE\":\n return \"This payout method is no longer pending, so it cannot be verified again. Reload the page.\";\n default:\n return message ?? PAYOUT_GENERIC_ERROR;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"publisherPayouts.js","names":["INDIA_METHOD_TYPES","INTERNATIONAL_METHOD_TYPES","normalizeCountry","code","value","isPayoutMethodType","methodTypesForCountry","country","routeCountry","route","fromRoute","t","defaultCurrencyForCountry","needsBankDetails","type","supportsAutomaticOnboarding","payoutMethodPhase","method","canStartOnboarding","phase","methodsToPoll","methods","m","readOnboardingRedirect","search","stripeMethodsInOnboarding","redirectToOnboarding","url","safeOnboardingUrl","parsed","IFSC_PATTERN","SWIFT_PATTERN","LAST4_PATTERN","ACCOUNT_NUMBER_PATTERN","PHONE_PATTERN","isValidBankCode","isValidEmail","email","at","domain","normalizePhone","validateAddPayoutMethod","errors","form","holder","toAddPayoutMethodInput","bankName","validateOnboarding","phone","account","accountLast4","toOnboardingInput","accountLast4Of","maskedDetails","\"accountLast4\"","PAYOUT_GENERIC_ERROR","readRecord","usableMessage","message","firstGraphQLError","record","error","key","entries","entry","\"extensions\"","\"code\"","\"message\"","payoutErrorMessage","action"],"sources":["../../../src/devportal/utils/publisherPayouts.ts"],"sourcesContent":["/**\n * Publisher payout methods and automatic processor onboarding (BOFF-10953).\n *\n * Pure helpers behind the Payouts page: which payout method types a country\n * can use, what state a method is in from the publisher's point of view,\n * client-side checks that mirror the store's validation (the store stays\n * authoritative and re-validates everything), and the mapping from store\n * error codes to messages a publisher can act on.\n *\n * Backend contract: global-store-svc `myPublisherPayoutMethods`,\n * `addMyPublisherPayoutMethod`, `startMyPublisherPayoutOnboarding` and\n * `refreshMyPublisherPayoutOnboarding` (BOFF-10634, BOFF-10895).\n */\n\nexport type PayoutMethodTypeValue =\n \"BANK_TRANSFER\" | \"PAYPAL\" | \"RAZORPAY_X\" | \"STRIPE_CONNECT\";\n\n/** Method types offered for India (RazorpayX payouts in INR). */\nexport const INDIA_METHOD_TYPES: readonly PayoutMethodTypeValue[] = [\n \"RAZORPAY_X\",\n \"BANK_TRANSFER\",\n];\n\n/** Method types offered everywhere else (Stripe Connect in USD). */\nexport const INTERNATIONAL_METHOD_TYPES: readonly PayoutMethodTypeValue[] = [\n \"STRIPE_CONNECT\",\n \"BANK_TRANSFER\",\n];\n\nexport interface PayoutRouteLike {\n country?: string | null;\n currency: string;\n processor: string;\n methodTypes: readonly string[];\n}\n\nexport interface PayoutMethodLike {\n id: string;\n type: string;\n status: string;\n processorStatus?: string | null;\n processorFailureReason?: string | null;\n rejectionReason?: string | null;\n}\n\n/** Normalise a country to an upper-case ISO 3166-1 alpha-2 code, or \"\". */\nexport function normalizeCountry(value: string | null | undefined): string {\n const code = (value ?? \"\").trim().toUpperCase();\n return /^[A-Z]{2}$/.test(code) ? code : \"\";\n}\n\nfunction isPayoutMethodType(value: string): value is PayoutMethodTypeValue {\n return (\n value === \"BANK_TRANSFER\" ||\n value === \"PAYPAL\" ||\n value === \"RAZORPAY_X\" ||\n value === \"STRIPE_CONNECT\"\n );\n}\n\n/**\n * The payout method types to offer for the country the publisher entered.\n * The store's payoutRoute is used as-is when it is for that same country (or\n * no country is known yet); otherwise the same India / rest-of-world rule the\n * store applies decides. PAYPAL is never offered.\n */\nexport function methodTypesForCountry(\n country: string | null | undefined,\n route: PayoutRouteLike | null | undefined,\n): PayoutMethodTypeValue[] {\n const code = normalizeCountry(country);\n const routeCountry = normalizeCountry(route?.country);\n if (route && (code === \"\" || code === routeCountry)) {\n const fromRoute = route.methodTypes\n .filter(isPayoutMethodType)\n .filter((t) => t !== \"PAYPAL\");\n if (fromRoute.length > 0) return fromRoute;\n }\n return [...(code === \"IN\" ? INDIA_METHOD_TYPES : INTERNATIONAL_METHOD_TYPES)];\n}\n\n/** Default payout currency for a country (INR for India, USD elsewhere). */\nexport function defaultCurrencyForCountry(\n country: string | null | undefined,\n): string {\n return normalizeCountry(country) === \"IN\" ? \"INR\" : \"USD\";\n}\n\n/** True for the method types that collect bank details when added. */\nexport function needsBankDetails(type: string): boolean {\n return type === \"BANK_TRANSFER\" || type === \"RAZORPAY_X\";\n}\n\n/** True for the method types that support automatic processor onboarding. */\nexport function supportsAutomaticOnboarding(type: string): boolean {\n return type === \"RAZORPAY_X\" || type === \"STRIPE_CONNECT\";\n}\n\n/**\n * Where a payout method stands, from the publisher's point of view.\n *\n * - VERIFIED: payouts can be sent to it.\n * - NOT_STARTED: pending, automatic verification has not been started.\n * - IN_PROGRESS: the processor is still checking the account.\n * - AWAITING_KYC: the processor confirmed the account; the method turns\n * VERIFIED once the publisher's own verification passes.\n * - FAILED: the processor could not verify the account; start again.\n * - MANUAL_REVIEW: a bank transfer the marketplace team verifies by hand.\n * - REJECTED / SUSPENDED / CLOSED: final states set by the marketplace.\n */\nexport type PayoutMethodPhase =\n | \"VERIFIED\"\n | \"NOT_STARTED\"\n | \"IN_PROGRESS\"\n | \"AWAITING_KYC\"\n | \"FAILED\"\n | \"MANUAL_REVIEW\"\n | \"REJECTED\"\n | \"SUSPENDED\"\n | \"CLOSED\";\n\nexport function payoutMethodPhase(method: PayoutMethodLike): PayoutMethodPhase {\n switch (method.status) {\n case \"VERIFIED\":\n return \"VERIFIED\";\n case \"REJECTED\":\n return \"REJECTED\";\n case \"SUSPENDED\":\n return \"SUSPENDED\";\n case \"CLOSED\":\n return \"CLOSED\";\n default:\n break;\n }\n if (!supportsAutomaticOnboarding(method.type)) return \"MANUAL_REVIEW\";\n switch (method.processorStatus) {\n case \"PENDING_VERIFICATION\":\n return \"IN_PROGRESS\";\n case \"ACTIVE\":\n return \"AWAITING_KYC\";\n case \"FAILED_VERIFICATION\":\n return \"FAILED\";\n default:\n return \"NOT_STARTED\";\n }\n}\n\n/** The publisher may (re)start automatic onboarding for this method. */\nexport function canStartOnboarding(method: PayoutMethodLike): boolean {\n const phase = payoutMethodPhase(method);\n if (phase === \"NOT_STARTED\" || phase === \"FAILED\") return true;\n // A Stripe link can expire before the publisher finishes, so an in-progress\n // Stripe method can always ask for a fresh link.\n return phase === \"IN_PROGRESS\" && method.type === \"STRIPE_CONNECT\";\n}\n\n/** Methods whose processor state is worth re-reading while the page is open. */\nexport function methodsToPoll<T extends PayoutMethodLike>(\n methods: readonly T[],\n): T[] {\n return methods.filter((m) => payoutMethodPhase(m) === \"IN_PROGRESS\");\n}\n\n/** Stripe onboarding hands the publisher back with ?onboarding=return|refresh. */\nexport type OnboardingRedirect = \"return\" | \"refresh\" | null;\n\nexport function readOnboardingRedirect(search: string): OnboardingRedirect {\n const value = new URLSearchParams(search).get(\"onboarding\");\n return value === \"return\" || value === \"refresh\" ? value : null;\n}\n\n/** Pending Stripe methods that already have a processor account. */\nexport function stripeMethodsInOnboarding<T extends PayoutMethodLike>(\n methods: readonly T[],\n): T[] {\n return methods.filter(\n (m) =>\n m.type === \"STRIPE_CONNECT\" &&\n m.status === \"PENDING\" &&\n Boolean(m.processorStatus),\n );\n}\n\n/**\n * Send the browser to the processor's hosted onboarding page. Kept here so\n * the page's redirect can be replaced in tests.\n */\nexport function redirectToOnboarding(url: string): void {\n window.location.assign(url);\n}\n\n/** The redirect URL returned by the store, accepted only over https. */\nexport function safeOnboardingUrl(\n url: string | null | undefined,\n): string | null {\n if (!url) return null;\n try {\n const parsed = new URL(url);\n return parsed.protocol === \"https:\" ? parsed.toString() : null;\n } catch {\n return null;\n }\n}\n\n// ── Client-side validation (mirrors global-store-svc) ───────────────────────\n\nconst IFSC_PATTERN = /^[A-Z]{4}0[A-Z0-9]{6}$/;\nconst SWIFT_PATTERN = /^[A-Z]{6}[A-Z0-9]+$/;\nconst LAST4_PATTERN = /^\\d{4}$/;\nconst ACCOUNT_NUMBER_PATTERN = /^[A-Za-z0-9]{5,35}$/;\nconst PHONE_PATTERN = /^\\+?\\d{8,15}$/;\n\nexport function isValidBankCode(code: string, country: string): boolean {\n const value = code.trim().toUpperCase();\n if (normalizeCountry(country) === \"IN\") return IFSC_PATTERN.test(value);\n return (\n (value.length === 8 || value.length === 11) && SWIFT_PATTERN.test(value)\n );\n}\n\nexport function isValidEmail(value: string): boolean {\n const email = value.trim();\n if (!email || email.length > 254 || /\\s/.test(email)) return false;\n const at = email.indexOf(\"@\");\n if (at < 1 || at !== email.lastIndexOf(\"@\")) return false;\n const domain = email.slice(at + 1);\n return (\n domain.includes(\".\") && !domain.startsWith(\".\") && !domain.endsWith(\".\")\n );\n}\n\nexport function normalizePhone(value: string): string {\n return value.replace(/[\\s()-]/g, \"\");\n}\n\nexport interface AddPayoutMethodForm {\n type: string;\n country: string;\n accountHolderName: string;\n accountNumberLast4: string;\n bankCode: string;\n bankName: string;\n isDefault: boolean;\n}\n\nexport type AddPayoutMethodField =\n \"type\" | \"country\" | \"accountHolderName\" | \"accountNumberLast4\" | \"bankCode\";\n\n/** Field errors for the add form, as message keys with English fallbacks. */\nexport function validateAddPayoutMethod(\n form: AddPayoutMethodForm,\n route: PayoutRouteLike | null | undefined,\n): Partial<Record<AddPayoutMethodField, string>> {\n const errors: Partial<Record<AddPayoutMethodField, string>> = {};\n const country = normalizeCountry(form.country);\n if (!country) {\n errors.country =\n \"Enter the two-letter country code of the account, for example IN or US.\";\n }\n if (!form.type) {\n errors.type = \"Choose how you want to be paid.\";\n } else if (\n country &&\n !methodTypesForCountry(country, route).some((t) => t === form.type)\n ) {\n errors.type = \"This payout method is not available for that country.\";\n }\n const holder = form.accountHolderName.trim();\n if (!holder || holder.length > 140) {\n errors.accountHolderName =\n \"Enter the account holder's name exactly as the bank has it.\";\n }\n if (needsBankDetails(form.type)) {\n if (!LAST4_PATTERN.test(form.accountNumberLast4.trim())) {\n errors.accountNumberLast4 =\n \"Enter the last four digits of the account number.\";\n }\n if (!country || !isValidBankCode(form.bankCode, country)) {\n errors.bankCode =\n country === \"IN\"\n ? \"Enter a valid 11-character IFSC, for example HDFC0001234.\"\n : \"Enter a valid 8 or 11-character SWIFT/BIC code.\";\n }\n }\n return errors;\n}\n\n/** The addMyPublisherPayoutMethod input for a validated form. */\nexport function toAddPayoutMethodInput(form: AddPayoutMethodForm): {\n type: PayoutMethodTypeValue;\n country: string;\n currency: string;\n accountHolderName: string;\n accountNumberLast4?: string;\n bankCode?: string;\n bankName?: string;\n isDefault: boolean;\n} {\n const country = normalizeCountry(form.country);\n // validateAddPayoutMethod has already checked the type is offered.\n const type = isPayoutMethodType(form.type) ? form.type : \"BANK_TRANSFER\";\n const bankName = form.bankName.trim();\n return {\n type,\n country,\n currency: defaultCurrencyForCountry(country),\n accountHolderName: form.accountHolderName.trim(),\n ...(needsBankDetails(type)\n ? {\n accountNumberLast4: form.accountNumberLast4.trim(),\n bankCode: form.bankCode.trim().toUpperCase(),\n ...(bankName ? { bankName } : {}),\n }\n : {}),\n isDefault: form.isDefault,\n };\n}\n\nexport interface OnboardingForm {\n contactEmail: string;\n contactPhone: string;\n accountNumber: string;\n}\n\nexport type OnboardingField = keyof OnboardingForm;\n\n/**\n * Field errors for the \"Verify automatically\" form. RazorpayX also needs the\n * full account number once, which must end in the registered last four digits.\n */\nexport function validateOnboarding(\n type: string,\n form: OnboardingForm,\n accountLast4: string | null | undefined,\n): Partial<Record<OnboardingField, string>> {\n const errors: Partial<Record<OnboardingField, string>> = {};\n if (!isValidEmail(form.contactEmail)) {\n errors.contactEmail = \"Enter a valid contact email.\";\n }\n const phone = normalizePhone(form.contactPhone);\n if (phone && !PHONE_PATTERN.test(phone)) {\n errors.contactPhone = \"Enter 8 to 15 digits, with an optional leading +.\";\n }\n if (type === \"RAZORPAY_X\") {\n const account = form.accountNumber.replace(/\\s+/g, \"\");\n if (!ACCOUNT_NUMBER_PATTERN.test(account)) {\n errors.accountNumber =\n \"Enter the full account number (5 to 35 letters or digits).\";\n } else if (accountLast4 && !account.endsWith(accountLast4)) {\n errors.accountNumber = `The account number must end in ${accountLast4}, the digits you registered.`;\n }\n }\n return errors;\n}\n\n/** The startMyPublisherPayoutOnboarding input for a validated form. */\nexport function toOnboardingInput(\n type: string,\n form: OnboardingForm,\n): { contactEmail: string; contactPhone?: string; accountNumber?: string } {\n const phone = normalizePhone(form.contactPhone);\n return {\n contactEmail: form.contactEmail.trim(),\n ...(phone ? { contactPhone: phone } : {}),\n ...(type === \"RAZORPAY_X\"\n ? { accountNumber: form.accountNumber.replace(/\\s+/g, \"\") }\n : {}),\n };\n}\n\n/** Last four digits recorded on a method, read from its masked details. */\nexport function accountLast4Of(\n maskedDetails: Record<string, unknown> | null | undefined,\n): string | null {\n const value = maskedDetails?.[\"accountLast4\"];\n return typeof value === \"string\" && /^\\d{4}$/.test(value) ? value : null;\n}\n\n// ── Error mapping ───────────────────────────────────────────────────────────\n\nexport type PayoutAction = \"agreement\" | \"add\" | \"remove\" | \"start\" | \"refresh\";\n\nexport const PAYOUT_GENERIC_ERROR =\n \"Something went wrong. Nothing was changed. Try again in a moment; if it keeps failing, contact support.\";\n\ninterface ErrorEntry {\n code: string | null;\n message: string | null;\n}\n\nfunction readRecord(value: unknown): Record<string, unknown> | null {\n return typeof value === \"object\" && value !== null && !Array.isArray(value)\n ? // Narrowed to a non-null, non-array object above; fields are read defensively below.\n (value as Record<string, unknown>)\n : null;\n}\n\nfunction usableMessage(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n const message = value.trim();\n if (!message) return null;\n if (\n /^(unexpected error|response not successful|failed to fetch|network ?error)/i.test(\n message,\n )\n ) {\n return null;\n }\n return message;\n}\n\n/** The first GraphQL error (code and message) carried by an Apollo error. */\nexport function firstGraphQLError(error: unknown): ErrorEntry {\n const record = readRecord(error);\n // Apollo Client 4 raises CombinedGraphQLErrors (`errors`); older clients\n // raised ApolloError (`graphQLErrors`).\n for (const key of [\"errors\", \"graphQLErrors\"]) {\n const entries = record?.[key];\n if (!Array.isArray(entries) || entries.length === 0) continue;\n const entry = readRecord(entries[0]);\n const code = readRecord(entry?.[\"extensions\"])?.[\"code\"];\n return {\n code: typeof code === \"string\" ? code : null,\n message: usableMessage(entry?.[\"message\"]),\n };\n }\n return {\n code: null,\n message:\n error instanceof Error\n ? usableMessage(error.message)\n : usableMessage(record?.[\"message\"]),\n };\n}\n\n/**\n * A message the publisher can act on for a failed payout action. The store's\n * own message is kept for input errors because it names the field at fault.\n */\nexport function payoutErrorMessage(\n error: unknown,\n action: PayoutAction,\n): string {\n const { code, message } = firstGraphQLError(error);\n switch (code) {\n case \"FAILED_PRECONDITION\":\n if (action === \"start\" || action === \"refresh\") {\n return \"Automatic verification is not available for this processor yet. Your payout method stays pending and the marketplace team will verify it.\";\n }\n if (action === \"add\") {\n return \"Accept the current Marketplace & Developer Agreement before adding a payout method.\";\n }\n return message ?? PAYOUT_GENERIC_ERROR;\n case \"BAD_USER_INPUT\":\n return (\n message ??\n \"Some of the details are not valid. Check them and try again.\"\n );\n case \"SERVICE_UNAVAILABLE\":\n return \"Payout onboarding is temporarily unavailable. Nothing was changed. Try again in a few minutes.\";\n case \"NOT_FOUND\":\n return action === \"add\" || action === \"agreement\"\n ? \"You do not have a publisher profile yet. It is created when you submit your first app to the store.\"\n : \"This payout method no longer exists. Reload the page.\";\n case \"FORBIDDEN\":\n return \"Your publisher profile is suspended, so payout methods cannot be changed. Contact support.\";\n case \"INVALID_STATE\":\n return \"This payout method is no longer pending, so it cannot be verified again. Reload the page.\";\n default:\n return message ?? PAYOUT_GENERIC_ERROR;\n }\n}\n"],"mappings":"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"}
@@ -1,2 +1 @@
1
1
  export declare function executeRecaptcha(action: string): Promise<string | undefined>;
2
- //# sourceMappingURL=recaptcha.d.ts.map