@burdenoff/microfe-devportal 2026.828.1 → 2026.830.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/devportal/AdminDevportalRoot.d.ts.map +1 -1
- package/dist/devportal/AdminDevportalRoot.js +16 -19
- package/dist/devportal/AdminDevportalRoot.js.map +1 -1
- package/dist/devportal/DevportalRoot.d.ts.map +1 -1
- package/dist/devportal/DevportalRoot.js +36 -39
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/components/AppCard.js +41 -41
- package/dist/devportal/components/ConfirmDialog.d.ts.map +1 -1
- package/dist/devportal/components/ConfirmDialog.js +19 -22
- package/dist/devportal/components/ConfirmDialog.js.map +1 -1
- package/dist/devportal/components/DataTable.d.ts.map +1 -1
- package/dist/devportal/components/DataTable.js +31 -34
- package/dist/devportal/components/DataTable.js.map +1 -1
- package/dist/devportal/components/FeatureFlaggedRoute.js +8 -8
- package/dist/devportal/components/FormField.d.ts.map +1 -1
- package/dist/devportal/components/FormField.js +26 -32
- package/dist/devportal/components/FormField.js.map +1 -1
- package/dist/devportal/components/GrantDelegationModal.js +64 -64
- package/dist/devportal/components/GrantDelegationModal.js.map +1 -1
- package/dist/devportal/components/LoadingState.d.ts.map +1 -1
- package/dist/devportal/components/LoadingState.js +5 -8
- package/dist/devportal/components/LoadingState.js.map +1 -1
- package/dist/devportal/components/PageLayout.d.ts.map +1 -1
- package/dist/devportal/components/PageLayout.js +10 -13
- package/dist/devportal/components/PageLayout.js.map +1 -1
- package/dist/devportal/components/PermissionGuard.d.ts.map +1 -1
- package/dist/devportal/components/PermissionGuard.js +11 -14
- package/dist/devportal/components/PermissionGuard.js.map +1 -1
- package/dist/devportal/components/SecretDisplay.d.ts.map +1 -1
- package/dist/devportal/components/SecretDisplay.js +24 -30
- package/dist/devportal/components/SecretDisplay.js.map +1 -1
- package/dist/devportal/components/SectionNav.d.ts.map +1 -1
- package/dist/devportal/components/SectionNav.js +24 -27
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/components/StatusBadge.d.ts.map +1 -1
- package/dist/devportal/components/StatusBadge.js +24 -33
- package/dist/devportal/components/StatusBadge.js.map +1 -1
- package/dist/devportal/index.d.ts +1 -0
- package/dist/devportal/index.d.ts.map +1 -1
- package/dist/devportal/index.js +1 -0
- package/dist/devportal/pages/AdminReviewPage.js +172 -172
- package/dist/devportal/pages/AnalyticsDashboardPage.js +43 -43
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApiKeysPage.js +119 -119
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +45 -45
- package/dist/devportal/pages/ApplicationDetailPage.js +607 -607
- package/dist/devportal/pages/ApplicationVersionsPage.js +13 -13
- package/dist/devportal/pages/ApplicationsPage.d.ts.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +104 -101
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +45 -45
- package/dist/devportal/pages/CreateApplicationPage.js +38 -38
- package/dist/devportal/pages/CreateApplicationPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +52 -52
- package/dist/devportal/pages/CreateOrganizationPage.js +26 -26
- package/dist/devportal/pages/CreateWebhookPage.d.ts.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +48 -48
- package/dist/devportal/pages/CreateWebhookPage.js.map +1 -1
- package/dist/devportal/pages/DashboardPage.d.ts.map +1 -1
- package/dist/devportal/pages/DashboardPage.js +66 -72
- package/dist/devportal/pages/DashboardPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +174 -174
- package/dist/devportal/pages/DocumentationPage.js +93 -93
- package/dist/devportal/pages/EditApplicationPage.js +14 -14
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +76 -76
- package/dist/devportal/pages/OAuthClientDetailPage.js +75 -75
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +64 -64
- package/dist/devportal/pages/OrganizationDetailPage.js +189 -189
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.js +10 -10
- package/dist/devportal/pages/OrganizationsPage.d.ts.map +1 -1
- package/dist/devportal/pages/OrganizationsPage.js +163 -154
- package/dist/devportal/pages/OrganizationsPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.js +104 -104
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/PublisherProfilePage.js +55 -55
- package/dist/devportal/pages/ResourcesPage.js +60 -60
- package/dist/devportal/pages/RevenueDashboardPage.js +60 -60
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.js +83 -83
- package/dist/devportal/pages/SellerItemsPage.js +163 -163
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/pages/SellerOrdersPage.js +63 -63
- package/dist/devportal/pages/SettingsPage.js +21 -21
- package/dist/devportal/pages/SetupPage.js +183 -183
- package/dist/devportal/pages/SetupPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +5 -5
- package/dist/devportal/pages/WebhookDetailPage.js +123 -123
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.js +118 -118
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/utils/i18n.d.ts +9 -2
- package/dist/devportal/utils/i18n.d.ts.map +1 -1
- package/dist/devportal/utils/i18n.js +13 -10
- package/dist/devportal/utils/i18n.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/translations/en.d.ts +1251 -0
- package/dist/translations/en.d.ts.map +1 -0
- package/dist/translations/en.js +1235 -0
- package/dist/translations/en.js.map +1 -0
- package/package.json +1 -1
|
@@ -13,13 +13,13 @@ import { useDevportalPermission as ee } from "../hooks/usePermission.js";
|
|
|
13
13
|
import "../hooks/index.js";
|
|
14
14
|
import { DEVPORTAL_PERMISSIONS as te } from "../constants/permissions.js";
|
|
15
15
|
import { useEffect as f, useState as p } from "react";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { EmphasisPanel as
|
|
16
|
+
import { AlertCircle as m, AlertTriangle as h, AppWindow as g, CheckCircle as _, Loader2 as v, PauseCircle as y, Plus as b, Search as x, Webhook as S, XCircle as C } from "lucide-react";
|
|
17
|
+
import { useParams as ne } from "react-router";
|
|
18
|
+
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
19
|
+
import { useI18n as E } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
20
|
+
import { EmphasisPanel as D, GlassCard as O } from "@burdenoff/fe-libs/ui";
|
|
21
21
|
//#region src/devportal/pages/WebhooksPage.tsx
|
|
22
|
-
function
|
|
22
|
+
function k(e) {
|
|
23
23
|
return {
|
|
24
24
|
id: e.id,
|
|
25
25
|
applicationId: e.applicationId,
|
|
@@ -43,49 +43,49 @@ function A(e) {
|
|
|
43
43
|
updatedAt: e.updatedAt
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
-
var
|
|
47
|
-
let { appId:
|
|
46
|
+
var A = () => {
|
|
47
|
+
let { appId: A } = ne(), { navigate: re, basePath: ie, activeOrgId: M } = e(), { t: N } = E(), P = (e, t) => {
|
|
48
48
|
let n = N(e);
|
|
49
49
|
return n === e ? t : n;
|
|
50
50
|
}, F = ee(te.WEBHOOK_CREATE), [I, L] = p(""), [R, z] = p(""), { data: B } = r({
|
|
51
|
-
variables: { id:
|
|
52
|
-
skip: !
|
|
51
|
+
variables: { id: A ?? "" },
|
|
52
|
+
skip: !A,
|
|
53
53
|
fetchPolicy: "cache-first"
|
|
54
54
|
});
|
|
55
55
|
f(() => {
|
|
56
56
|
let e = B?.application?.name;
|
|
57
|
-
if (!
|
|
57
|
+
if (!A || !e) return;
|
|
58
58
|
let t = window.__breadcrumbRegistry;
|
|
59
|
-
return t?.register(
|
|
60
|
-
}, [
|
|
59
|
+
return t?.register(A, e), () => t?.unregister(A);
|
|
60
|
+
}, [A, B?.application?.name]);
|
|
61
61
|
let { data: V, loading: H, error: U, refetch: W } = i({
|
|
62
62
|
variables: { limit: 100 },
|
|
63
|
-
skip: !!
|
|
63
|
+
skip: !!A,
|
|
64
64
|
fetchPolicy: "cache-and-network"
|
|
65
65
|
}), { data: G, loading: K, error: q, refetch: J } = a({
|
|
66
|
-
variables: { applicationId:
|
|
67
|
-
skip: !
|
|
66
|
+
variables: { applicationId: A || "" },
|
|
67
|
+
skip: !A,
|
|
68
68
|
fetchPolicy: "cache-and-network"
|
|
69
|
-
}), Y = G?.webhooks?.map(
|
|
69
|
+
}), Y = G?.webhooks?.map(k) ?? [], X = V?.applications?.edges?.map((e) => e.node) ?? [], ae = M ? X.filter((e) => e.developerOrganizationId === M) : X, Z = (e) => {
|
|
70
70
|
re?.(`${ie}${e}`);
|
|
71
71
|
}, Q = Y.filter((e) => {
|
|
72
72
|
let t = !I || e.name.toLowerCase().includes(I.toLowerCase()) || e.url.toLowerCase().includes(I.toLowerCase()), n = !R || e.status === R;
|
|
73
73
|
return t && n;
|
|
74
74
|
}), oe = (e) => {
|
|
75
75
|
switch (e) {
|
|
76
|
-
case "ACTIVE": return /* @__PURE__ */
|
|
76
|
+
case "ACTIVE": return /* @__PURE__ */ w(_, {
|
|
77
77
|
size: 16,
|
|
78
78
|
className: "text-status-success-text"
|
|
79
79
|
});
|
|
80
|
-
case "PAUSED": return /* @__PURE__ */
|
|
80
|
+
case "PAUSED": return /* @__PURE__ */ w(y, {
|
|
81
81
|
size: 16,
|
|
82
82
|
className: "text-status-warning-text"
|
|
83
83
|
});
|
|
84
|
-
case "FAILED": return /* @__PURE__ */
|
|
84
|
+
case "FAILED": return /* @__PURE__ */ w(C, {
|
|
85
85
|
size: 16,
|
|
86
86
|
className: "text-status-error-text"
|
|
87
87
|
});
|
|
88
|
-
case "DISABLED": return /* @__PURE__ */
|
|
88
|
+
case "DISABLED": return /* @__PURE__ */ w(h, {
|
|
89
89
|
size: 16,
|
|
90
90
|
className: "text-text-tertiary"
|
|
91
91
|
});
|
|
@@ -95,33 +95,33 @@ var j = () => {
|
|
|
95
95
|
let t = e.successCount + e.failureCount;
|
|
96
96
|
return t === 0 ? 100 : Math.round(e.successCount / t * 100);
|
|
97
97
|
};
|
|
98
|
-
if (!
|
|
98
|
+
if (!A) {
|
|
99
99
|
let e = ae.filter((e) => {
|
|
100
100
|
if (!I) return !0;
|
|
101
101
|
let t = I.toLowerCase();
|
|
102
102
|
return e.name.toLowerCase().includes(t) || (e.slug ?? "").toLowerCase().includes(t);
|
|
103
103
|
});
|
|
104
|
-
return /* @__PURE__ */
|
|
104
|
+
return /* @__PURE__ */ w(d, {
|
|
105
105
|
authOnly: !0,
|
|
106
|
-
children: /* @__PURE__ */
|
|
106
|
+
children: /* @__PURE__ */ w(s, {
|
|
107
107
|
title: P("devportal.webhooks", "Webhooks"),
|
|
108
108
|
description: P("devportal.manageWebhooksApps", "Manage webhooks for your applications"),
|
|
109
109
|
purpose: P("devportal.webhooksPickerPurpose", "Webhooks push real-time events (installs, payments, app updates) to a URL you host, so your backend can react without polling. Pick an application to view, add, or test the webhook endpoints it delivers to."),
|
|
110
|
-
children: /* @__PURE__ */
|
|
110
|
+
children: /* @__PURE__ */ T("div", {
|
|
111
111
|
className: "space-y-4",
|
|
112
112
|
children: [
|
|
113
|
-
/* @__PURE__ */
|
|
113
|
+
/* @__PURE__ */ w("p", {
|
|
114
114
|
className: "text-sm text-text-secondary",
|
|
115
115
|
children: P("devportal.webhooksSelectAppHint", "Select an application below to view and manage its webhooks.")
|
|
116
116
|
}),
|
|
117
|
-
/* @__PURE__ */
|
|
117
|
+
/* @__PURE__ */ w("div", {
|
|
118
118
|
className: "max-w-md",
|
|
119
|
-
children: /* @__PURE__ */
|
|
119
|
+
children: /* @__PURE__ */ T("div", {
|
|
120
120
|
className: "relative",
|
|
121
|
-
children: [/* @__PURE__ */
|
|
121
|
+
children: [/* @__PURE__ */ w(x, {
|
|
122
122
|
size: 16,
|
|
123
123
|
className: "absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary"
|
|
124
|
-
}), /* @__PURE__ */
|
|
124
|
+
}), /* @__PURE__ */ w("input", {
|
|
125
125
|
type: "text",
|
|
126
126
|
placeholder: "Search applications...",
|
|
127
127
|
value: I,
|
|
@@ -130,42 +130,42 @@ var j = () => {
|
|
|
130
130
|
})]
|
|
131
131
|
})
|
|
132
132
|
}),
|
|
133
|
-
H ? /* @__PURE__ */
|
|
133
|
+
H ? /* @__PURE__ */ w("div", {
|
|
134
134
|
className: "flex items-center justify-center py-12 text-text-secondary",
|
|
135
|
-
children: /* @__PURE__ */
|
|
136
|
-
}) : U ? /* @__PURE__ */
|
|
135
|
+
children: /* @__PURE__ */ w(v, { className: "h-8 w-8 animate-spin" })
|
|
136
|
+
}) : U ? /* @__PURE__ */ T("div", {
|
|
137
137
|
className: "rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center",
|
|
138
138
|
children: [
|
|
139
|
-
/* @__PURE__ */
|
|
140
|
-
/* @__PURE__ */
|
|
139
|
+
/* @__PURE__ */ w(m, { className: "mx-auto h-8 w-8 text-status-error-text" }),
|
|
140
|
+
/* @__PURE__ */ w("h3", {
|
|
141
141
|
className: "mt-2 font-medium text-status-error-text",
|
|
142
142
|
children: "Failed to load applications"
|
|
143
143
|
}),
|
|
144
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ w("p", {
|
|
145
145
|
className: "mt-1 text-sm text-text-secondary",
|
|
146
146
|
children: o(U)
|
|
147
147
|
}),
|
|
148
|
-
/* @__PURE__ */
|
|
148
|
+
/* @__PURE__ */ w("button", {
|
|
149
149
|
onClick: () => W(),
|
|
150
150
|
className: "mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
|
|
151
151
|
children: "Try Again"
|
|
152
152
|
})
|
|
153
153
|
]
|
|
154
|
-
}) : e.length > 0 ? /* @__PURE__ */
|
|
154
|
+
}) : e.length > 0 ? /* @__PURE__ */ w("div", {
|
|
155
155
|
className: "space-y-2",
|
|
156
|
-
children: e.map((e) => /* @__PURE__ */
|
|
156
|
+
children: e.map((e) => /* @__PURE__ */ w(l, {
|
|
157
157
|
app: e,
|
|
158
158
|
onClick: () => Z(`/apps/${e.id}/webhooks`)
|
|
159
159
|
}, e.id))
|
|
160
|
-
}) : /* @__PURE__ */
|
|
160
|
+
}) : /* @__PURE__ */ w(n, {
|
|
161
161
|
illustration: I ? "empty-search" : "empty-data",
|
|
162
|
-
icon: /* @__PURE__ */
|
|
162
|
+
icon: /* @__PURE__ */ w(g, { size: 32 }),
|
|
163
163
|
title: "No applications available",
|
|
164
164
|
description: I ? "No applications matched your search." : "Create an application before configuring webhooks.",
|
|
165
|
-
action: /* @__PURE__ */
|
|
165
|
+
action: /* @__PURE__ */ T("button", {
|
|
166
166
|
onClick: () => Z("/apps/new"),
|
|
167
167
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
|
|
168
|
-
children: [/* @__PURE__ */
|
|
168
|
+
children: [/* @__PURE__ */ w(b, { size: 16 }), "Create Application"]
|
|
169
169
|
})
|
|
170
170
|
})
|
|
171
171
|
]
|
|
@@ -173,37 +173,37 @@ var j = () => {
|
|
|
173
173
|
})
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
|
-
if (K && !G) return /* @__PURE__ */
|
|
176
|
+
if (K && !G) return /* @__PURE__ */ w(s, {
|
|
177
177
|
title: P("devportal.webhooks", "Webhooks"),
|
|
178
178
|
description: P("devportal.manageWebhooksApp", "Manage webhooks for this application"),
|
|
179
|
-
backLink: `/apps/${
|
|
179
|
+
backLink: `/apps/${A}`,
|
|
180
180
|
backLabel: P("devportal.backToApplication", "Back to Application"),
|
|
181
|
-
children: /* @__PURE__ */
|
|
181
|
+
children: /* @__PURE__ */ T("div", {
|
|
182
182
|
className: "flex items-center justify-center py-12",
|
|
183
|
-
children: [/* @__PURE__ */
|
|
183
|
+
children: [/* @__PURE__ */ w(v, { className: "h-8 w-8 animate-spin text-text-secondary" }), /* @__PURE__ */ w("span", {
|
|
184
184
|
className: "ml-2 text-text-secondary",
|
|
185
185
|
children: P("devportal.loadingWebhooks", "Loading webhooks...")
|
|
186
186
|
})]
|
|
187
187
|
})
|
|
188
188
|
});
|
|
189
|
-
if (q) return /* @__PURE__ */
|
|
189
|
+
if (q) return /* @__PURE__ */ w(s, {
|
|
190
190
|
title: P("devportal.webhooks", "Webhooks"),
|
|
191
191
|
description: P("devportal.manageWebhooksApp", "Manage webhooks for this application"),
|
|
192
|
-
backLink: `/apps/${
|
|
192
|
+
backLink: `/apps/${A}`,
|
|
193
193
|
backLabel: P("devportal.backToApplication", "Back to Application"),
|
|
194
|
-
children: /* @__PURE__ */
|
|
194
|
+
children: /* @__PURE__ */ T("div", {
|
|
195
195
|
className: "rounded-lg border border-status-error-border/50 bg-status-error-bg/10 p-6 text-center",
|
|
196
196
|
children: [
|
|
197
|
-
/* @__PURE__ */
|
|
198
|
-
/* @__PURE__ */
|
|
197
|
+
/* @__PURE__ */ w(m, { className: "mx-auto h-8 w-8 text-status-error-text" }),
|
|
198
|
+
/* @__PURE__ */ w("h3", {
|
|
199
199
|
className: "mt-2 font-medium text-status-error-text",
|
|
200
200
|
children: P("devportal.failedToLoadWebhooks", "Failed to load webhooks")
|
|
201
201
|
}),
|
|
202
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ w("p", {
|
|
203
203
|
className: "mt-1 text-sm text-text-secondary",
|
|
204
204
|
children: o(q)
|
|
205
205
|
}),
|
|
206
|
-
/* @__PURE__ */
|
|
206
|
+
/* @__PURE__ */ w("button", {
|
|
207
207
|
onClick: () => J(),
|
|
208
208
|
className: "mt-4 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
|
|
209
209
|
children: P("devportal.tryAgain", "Try Again")
|
|
@@ -215,15 +215,15 @@ var j = () => {
|
|
|
215
215
|
{
|
|
216
216
|
key: "name",
|
|
217
217
|
header: "Webhook",
|
|
218
|
-
render: (e) => /* @__PURE__ */
|
|
218
|
+
render: (e) => /* @__PURE__ */ T("div", {
|
|
219
219
|
className: "flex items-center gap-3",
|
|
220
|
-
children: [/* @__PURE__ */
|
|
220
|
+
children: [/* @__PURE__ */ w("div", {
|
|
221
221
|
className: t("flex h-10 w-10 items-center justify-center rounded-lg", e.status === "ACTIVE" ? "bg-status-success-bg-subtle text-status-success-text" : e.status === "FAILED" ? "bg-status-error-bg-subtle text-status-error-text" : e.status === "PAUSED" ? "bg-status-warning-bg-subtle text-status-warning-text" : "bg-bg-sunken text-text-tertiary"),
|
|
222
|
-
children: /* @__PURE__ */
|
|
223
|
-
}), /* @__PURE__ */
|
|
222
|
+
children: /* @__PURE__ */ w(S, { size: 20 })
|
|
223
|
+
}), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
224
224
|
className: "font-medium",
|
|
225
225
|
children: e.name
|
|
226
|
-
}), /* @__PURE__ */
|
|
226
|
+
}), /* @__PURE__ */ w("p", {
|
|
227
227
|
className: "text-xs text-text-secondary truncate max-w-xs",
|
|
228
228
|
children: e.url
|
|
229
229
|
})] })]
|
|
@@ -232,12 +232,12 @@ var j = () => {
|
|
|
232
232
|
{
|
|
233
233
|
key: "events",
|
|
234
234
|
header: "Events",
|
|
235
|
-
render: (e) => /* @__PURE__ */
|
|
235
|
+
render: (e) => /* @__PURE__ */ T("div", {
|
|
236
236
|
className: "flex flex-wrap gap-1",
|
|
237
|
-
children: [e.events.slice(0, 2).map((e) => /* @__PURE__ */
|
|
237
|
+
children: [e.events.slice(0, 2).map((e) => /* @__PURE__ */ w("span", {
|
|
238
238
|
className: "inline-flex rounded bg-bg-sunken px-1.5 py-0.5 text-xs",
|
|
239
239
|
children: e.split(".")[0]
|
|
240
|
-
}, e)), e.events.length > 2 && /* @__PURE__ */
|
|
240
|
+
}, e)), e.events.length > 2 && /* @__PURE__ */ T("span", {
|
|
241
241
|
className: "text-xs text-text-secondary",
|
|
242
242
|
children: [
|
|
243
243
|
"+",
|
|
@@ -250,9 +250,9 @@ var j = () => {
|
|
|
250
250
|
{
|
|
251
251
|
key: "status",
|
|
252
252
|
header: "Status",
|
|
253
|
-
render: (e) => /* @__PURE__ */
|
|
253
|
+
render: (e) => /* @__PURE__ */ T("div", {
|
|
254
254
|
className: "flex items-center gap-2",
|
|
255
|
-
children: [oe(e.status), /* @__PURE__ */
|
|
255
|
+
children: [oe(e.status), /* @__PURE__ */ w(c, {
|
|
256
256
|
status: e.status,
|
|
257
257
|
type: "webhook"
|
|
258
258
|
})]
|
|
@@ -263,17 +263,17 @@ var j = () => {
|
|
|
263
263
|
header: "Success Rate",
|
|
264
264
|
render: (e) => {
|
|
265
265
|
let n = se(e);
|
|
266
|
-
return /* @__PURE__ */
|
|
266
|
+
return /* @__PURE__ */ T("div", {
|
|
267
267
|
className: "w-24",
|
|
268
|
-
children: [/* @__PURE__ */
|
|
268
|
+
children: [/* @__PURE__ */ w("div", {
|
|
269
269
|
className: "flex items-center justify-between text-xs mb-1",
|
|
270
|
-
children: /* @__PURE__ */
|
|
270
|
+
children: /* @__PURE__ */ T("span", {
|
|
271
271
|
className: t(n >= 95 ? "text-status-success-text" : n >= 80 ? "text-status-warning-text" : "text-status-error-text"),
|
|
272
272
|
children: [n, "%"]
|
|
273
273
|
})
|
|
274
|
-
}), /* @__PURE__ */
|
|
274
|
+
}), /* @__PURE__ */ w("div", {
|
|
275
275
|
className: "h-1.5 rounded-full bg-bg-sunken",
|
|
276
|
-
children: /* @__PURE__ */
|
|
276
|
+
children: /* @__PURE__ */ w("div", {
|
|
277
277
|
className: t("h-full rounded-full transition-all", n >= 95 ? "bg-status-success-bg-subtle" : n >= 80 ? "bg-status-warning-bg-subtle" : "bg-status-error-bg-subtle"),
|
|
278
278
|
style: { width: `${n}%` }
|
|
279
279
|
})
|
|
@@ -284,18 +284,18 @@ var j = () => {
|
|
|
284
284
|
{
|
|
285
285
|
key: "deliveries",
|
|
286
286
|
header: "Deliveries",
|
|
287
|
-
render: (e) => /* @__PURE__ */
|
|
287
|
+
render: (e) => /* @__PURE__ */ T("div", {
|
|
288
288
|
className: "text-sm",
|
|
289
289
|
children: [
|
|
290
|
-
/* @__PURE__ */
|
|
290
|
+
/* @__PURE__ */ w("span", {
|
|
291
291
|
className: "text-status-success-text",
|
|
292
292
|
children: e.successCount.toLocaleString()
|
|
293
293
|
}),
|
|
294
|
-
/* @__PURE__ */
|
|
294
|
+
/* @__PURE__ */ w("span", {
|
|
295
295
|
className: "text-text-secondary",
|
|
296
296
|
children: " / "
|
|
297
297
|
}),
|
|
298
|
-
/* @__PURE__ */
|
|
298
|
+
/* @__PURE__ */ w("span", {
|
|
299
299
|
className: "text-status-error-text",
|
|
300
300
|
children: e.failureCount.toLocaleString()
|
|
301
301
|
})
|
|
@@ -305,9 +305,9 @@ var j = () => {
|
|
|
305
305
|
{
|
|
306
306
|
key: "lastTriggered",
|
|
307
307
|
header: "Last Triggered",
|
|
308
|
-
render: (e) => /* @__PURE__ */
|
|
308
|
+
render: (e) => /* @__PURE__ */ w("span", {
|
|
309
309
|
className: "text-sm text-text-secondary",
|
|
310
|
-
children: e.lastTriggeredAt ?
|
|
310
|
+
children: e.lastTriggeredAt ? j(e.lastTriggeredAt) : "Never"
|
|
311
311
|
})
|
|
312
312
|
}
|
|
313
313
|
], $ = {
|
|
@@ -316,64 +316,64 @@ var j = () => {
|
|
|
316
316
|
failed: Y.filter((e) => e.status === "FAILED").length,
|
|
317
317
|
paused: Y.filter((e) => e.status === "PAUSED").length
|
|
318
318
|
};
|
|
319
|
-
return /* @__PURE__ */
|
|
319
|
+
return /* @__PURE__ */ w(d, {
|
|
320
320
|
authOnly: !0,
|
|
321
|
-
children: /* @__PURE__ */
|
|
321
|
+
children: /* @__PURE__ */ T(s, {
|
|
322
322
|
title: P("devportal.webhooks", "Webhooks"),
|
|
323
323
|
description: P("devportal.manageWebhooksApp", "Manage webhooks for this application"),
|
|
324
324
|
purpose: P("devportal.webhooksAppPurpose", "These webhooks deliver this application's events to your endpoints. Add a URL, choose which events to subscribe to, and send a test delivery to confirm your server receives and verifies the signed payload."),
|
|
325
|
-
backLink: `/apps/${
|
|
325
|
+
backLink: `/apps/${A}`,
|
|
326
326
|
backLabel: P("devportal.backToApplication", "Back to Application"),
|
|
327
|
-
actions: /* @__PURE__ */
|
|
328
|
-
onClick: () => Z(`/apps/${
|
|
327
|
+
actions: /* @__PURE__ */ T("button", {
|
|
328
|
+
onClick: () => Z(`/apps/${A}/webhooks/new`),
|
|
329
329
|
disabled: !F.allowed,
|
|
330
330
|
"aria-disabled": !F.allowed,
|
|
331
331
|
title: F.allowed ? void 0 : P("devportal.common.noPermission", "You do not have permission to perform this action"),
|
|
332
332
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
|
|
333
|
-
children: [/* @__PURE__ */
|
|
333
|
+
children: [/* @__PURE__ */ w(b, {
|
|
334
334
|
size: 16,
|
|
335
335
|
"aria-hidden": "true"
|
|
336
336
|
}), P("devportal.createWebhook", "Create Webhook")]
|
|
337
337
|
}),
|
|
338
338
|
children: [
|
|
339
|
-
/* @__PURE__ */
|
|
339
|
+
/* @__PURE__ */ w("div", {
|
|
340
340
|
className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
341
|
-
children: /* @__PURE__ */
|
|
341
|
+
children: /* @__PURE__ */ T("div", {
|
|
342
342
|
className: "flex flex-1 items-center gap-4",
|
|
343
|
-
children: [/* @__PURE__ */
|
|
343
|
+
children: [/* @__PURE__ */ T("div", {
|
|
344
344
|
className: "relative flex-1 max-w-md",
|
|
345
|
-
children: [/* @__PURE__ */
|
|
345
|
+
children: [/* @__PURE__ */ w(x, {
|
|
346
346
|
size: 16,
|
|
347
347
|
className: "absolute left-3 top-1/2 -translate-y-1/2 text-text-secondary"
|
|
348
|
-
}), /* @__PURE__ */
|
|
348
|
+
}), /* @__PURE__ */ w("input", {
|
|
349
349
|
type: "text",
|
|
350
350
|
placeholder: "Search by name or URL...",
|
|
351
351
|
value: I,
|
|
352
352
|
onChange: (e) => L(e.target.value),
|
|
353
353
|
className: "w-full rounded-md border bg-bg-surface pl-9 pr-4 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary"
|
|
354
354
|
})]
|
|
355
|
-
}), /* @__PURE__ */
|
|
355
|
+
}), /* @__PURE__ */ T("select", {
|
|
356
356
|
value: R,
|
|
357
357
|
onChange: (e) => z(e.target.value),
|
|
358
358
|
className: "rounded-md border bg-bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary",
|
|
359
359
|
children: [
|
|
360
|
-
/* @__PURE__ */
|
|
360
|
+
/* @__PURE__ */ w("option", {
|
|
361
361
|
value: "",
|
|
362
362
|
children: "All Status"
|
|
363
363
|
}),
|
|
364
|
-
/* @__PURE__ */
|
|
364
|
+
/* @__PURE__ */ w("option", {
|
|
365
365
|
value: "ACTIVE",
|
|
366
366
|
children: "Active"
|
|
367
367
|
}),
|
|
368
|
-
/* @__PURE__ */
|
|
368
|
+
/* @__PURE__ */ w("option", {
|
|
369
369
|
value: "PAUSED",
|
|
370
370
|
children: "Paused"
|
|
371
371
|
}),
|
|
372
|
-
/* @__PURE__ */
|
|
372
|
+
/* @__PURE__ */ w("option", {
|
|
373
373
|
value: "FAILED",
|
|
374
374
|
children: "Failed"
|
|
375
375
|
}),
|
|
376
|
-
/* @__PURE__ */
|
|
376
|
+
/* @__PURE__ */ w("option", {
|
|
377
377
|
value: "DISABLED",
|
|
378
378
|
children: "Disabled"
|
|
379
379
|
})
|
|
@@ -381,68 +381,68 @@ var j = () => {
|
|
|
381
381
|
})]
|
|
382
382
|
})
|
|
383
383
|
}),
|
|
384
|
-
/* @__PURE__ */
|
|
384
|
+
/* @__PURE__ */ w(D, { children: /* @__PURE__ */ T("div", {
|
|
385
385
|
className: "grid grid-cols-2 gap-4 sm:grid-cols-4",
|
|
386
386
|
children: [
|
|
387
|
-
/* @__PURE__ */
|
|
387
|
+
/* @__PURE__ */ T(O, {
|
|
388
388
|
treatment: "metric",
|
|
389
389
|
className: "p-4",
|
|
390
|
-
children: [/* @__PURE__ */
|
|
390
|
+
children: [/* @__PURE__ */ T("div", {
|
|
391
391
|
className: "flex items-center gap-2 text-text-secondary",
|
|
392
|
-
children: [/* @__PURE__ */
|
|
392
|
+
children: [/* @__PURE__ */ w(S, { size: 16 }), /* @__PURE__ */ w("span", {
|
|
393
393
|
className: "text-sm",
|
|
394
394
|
children: "Total Webhooks"
|
|
395
395
|
})]
|
|
396
|
-
}), /* @__PURE__ */
|
|
396
|
+
}), /* @__PURE__ */ w("p", {
|
|
397
397
|
className: "mt-1 text-2xl font-semibold tabular-nums",
|
|
398
398
|
children: $.total
|
|
399
399
|
})]
|
|
400
400
|
}),
|
|
401
|
-
/* @__PURE__ */
|
|
401
|
+
/* @__PURE__ */ T(O, {
|
|
402
402
|
treatment: "metric",
|
|
403
403
|
className: "p-4",
|
|
404
|
-
children: [/* @__PURE__ */
|
|
404
|
+
children: [/* @__PURE__ */ T("div", {
|
|
405
405
|
className: "flex items-center gap-2 text-status-success-text",
|
|
406
|
-
children: [/* @__PURE__ */
|
|
406
|
+
children: [/* @__PURE__ */ w(_, { size: 16 }), /* @__PURE__ */ w("span", {
|
|
407
407
|
className: "text-sm",
|
|
408
408
|
children: "Active"
|
|
409
409
|
})]
|
|
410
|
-
}), /* @__PURE__ */
|
|
410
|
+
}), /* @__PURE__ */ w("p", {
|
|
411
411
|
className: "mt-1 text-2xl font-semibold tabular-nums",
|
|
412
412
|
children: $.active
|
|
413
413
|
})]
|
|
414
414
|
}),
|
|
415
|
-
/* @__PURE__ */
|
|
415
|
+
/* @__PURE__ */ T(O, {
|
|
416
416
|
treatment: "metric",
|
|
417
417
|
className: "p-4",
|
|
418
|
-
children: [/* @__PURE__ */
|
|
418
|
+
children: [/* @__PURE__ */ T("div", {
|
|
419
419
|
className: "flex items-center gap-2 text-status-warning-text",
|
|
420
|
-
children: [/* @__PURE__ */
|
|
420
|
+
children: [/* @__PURE__ */ w(y, { size: 16 }), /* @__PURE__ */ w("span", {
|
|
421
421
|
className: "text-sm",
|
|
422
422
|
children: "Paused"
|
|
423
423
|
})]
|
|
424
|
-
}), /* @__PURE__ */
|
|
424
|
+
}), /* @__PURE__ */ w("p", {
|
|
425
425
|
className: "mt-1 text-2xl font-semibold tabular-nums",
|
|
426
426
|
children: $.paused
|
|
427
427
|
})]
|
|
428
428
|
}),
|
|
429
|
-
/* @__PURE__ */
|
|
429
|
+
/* @__PURE__ */ T(O, {
|
|
430
430
|
treatment: "metric",
|
|
431
431
|
className: "p-4",
|
|
432
|
-
children: [/* @__PURE__ */
|
|
432
|
+
children: [/* @__PURE__ */ T("div", {
|
|
433
433
|
className: "flex items-center gap-2 text-status-error-text",
|
|
434
|
-
children: [/* @__PURE__ */
|
|
434
|
+
children: [/* @__PURE__ */ w(C, { size: 16 }), /* @__PURE__ */ w("span", {
|
|
435
435
|
className: "text-sm",
|
|
436
436
|
children: "Failed"
|
|
437
437
|
})]
|
|
438
|
-
}), /* @__PURE__ */
|
|
438
|
+
}), /* @__PURE__ */ w("p", {
|
|
439
439
|
className: "mt-1 text-2xl font-semibold tabular-nums",
|
|
440
440
|
children: $.failed
|
|
441
441
|
})]
|
|
442
442
|
})
|
|
443
443
|
]
|
|
444
444
|
}) }),
|
|
445
|
-
/* @__PURE__ */
|
|
445
|
+
/* @__PURE__ */ T("p", {
|
|
446
446
|
className: "text-sm text-text-secondary",
|
|
447
447
|
children: [
|
|
448
448
|
Q.length,
|
|
@@ -451,30 +451,30 @@ var j = () => {
|
|
|
451
451
|
" found"
|
|
452
452
|
]
|
|
453
453
|
}),
|
|
454
|
-
Q.length > 0 ? /* @__PURE__ */
|
|
454
|
+
Q.length > 0 ? /* @__PURE__ */ w(u, {
|
|
455
455
|
data: Q,
|
|
456
456
|
columns: ce,
|
|
457
457
|
keyField: "id",
|
|
458
|
-
onRowClick: (e) => Z(`/apps/${
|
|
459
|
-
}) : /* @__PURE__ */
|
|
458
|
+
onRowClick: (e) => Z(`/apps/${A}/webhooks/${e.id}`)
|
|
459
|
+
}) : /* @__PURE__ */ w(n, {
|
|
460
460
|
illustration: "empty-notifications",
|
|
461
461
|
title: P("devportal.noWebhooksFound", "No webhooks found"),
|
|
462
462
|
description: I || R ? P("devportal.tryAdjustingFilters", "Try adjusting your filters") : P("devportal.createFirstWebhook", "Create your first webhook to receive real-time event notifications"),
|
|
463
|
-
action: !I && !R ? /* @__PURE__ */
|
|
464
|
-
onClick: () => Z(`/apps/${
|
|
463
|
+
action: !I && !R ? /* @__PURE__ */ T("button", {
|
|
464
|
+
onClick: () => Z(`/apps/${A}/webhooks/new`),
|
|
465
465
|
className: "inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90",
|
|
466
|
-
children: [/* @__PURE__ */
|
|
466
|
+
children: [/* @__PURE__ */ w(b, { size: 16 }), P("devportal.createWebhook", "Create Webhook")]
|
|
467
467
|
}) : void 0
|
|
468
468
|
})
|
|
469
469
|
]
|
|
470
470
|
})
|
|
471
471
|
});
|
|
472
472
|
};
|
|
473
|
-
function
|
|
473
|
+
function j(e) {
|
|
474
474
|
let t = new Date(e), n = (/* @__PURE__ */ new Date()).getTime() - t.getTime(), r = Math.floor(n / 6e4), i = Math.floor(r / 60), a = Math.floor(i / 24);
|
|
475
475
|
return r < 1 ? "Just now" : r < 60 ? `${r}m ago` : i < 24 ? `${i}h ago` : a < 7 ? `${a}d ago` : t.toLocaleDateString();
|
|
476
476
|
}
|
|
477
477
|
//#endregion
|
|
478
|
-
export {
|
|
478
|
+
export { A as WebhooksPage };
|
|
479
479
|
|
|
480
480
|
//# sourceMappingURL=WebhooksPage.js.map
|