@burdenoff/microfe-devportal 2026.801.1 → 2026.801.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/AdminDevportalRoutes.js +14 -14
- package/dist/devportal/DevportalRoutes.js +115 -115
- package/dist/devportal/DevportalRoutes.js.map +1 -1
- package/dist/devportal/components/SectionNav.js +1 -0
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/components/TelemetryErrorBoundary.js +7 -7
- package/dist/devportal/pages/AnalyticsDashboardPage.js +41 -41
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +27 -27
- package/dist/devportal/pages/ApplicationDetailPage.js +929 -929
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.js +39 -39
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/CreateWebhookPage.js +55 -55
- package/dist/devportal/pages/EditApplicationPage.js +36 -36
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/EditPhysicalItemPage.js +40 -40
- package/dist/devportal/pages/InvitationDecisionPage.js +25 -25
- package/dist/devportal/pages/ListingPreviewPage.js +36 -36
- package/dist/devportal/pages/OAuthCallbackPage.js +10 -10
- package/dist/devportal/pages/OAuthClientDetailPage.js +27 -27
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +329 -329
- package/dist/devportal/pages/OrganizationDetailPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationMembersPage.js +181 -181
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/PublishPage.js +43 -43
- package/dist/devportal/pages/PublishPage.js.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.js +65 -65
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/devportal/pages/StoreSubmissionPage.js +126 -126
- package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
- package/dist/devportal/pages/WebhookDetailPage.js +28 -28
- package/dist/devportal/pages/WebhookDetailPage.js.map +1 -1
- package/dist/devportal/pages/WebhooksPage.js +47 -47
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/providers/DevportalProvider.js +12 -12
- package/package.json +1 -1
- package/dist/node_modules/react-router/dist/production/lib/components.js +0 -124
- package/dist/node_modules/react-router/dist/production/lib/components.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/context.js +0 -32
- package/dist/node_modules/react-router/dist/production/lib/context.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/dom/dom.js +0 -83
- package/dist/node_modules/react-router/dist/production/lib/dom/dom.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/dom/lib.js +0 -358
- package/dist/node_modules/react-router/dist/production/lib/dom/lib.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/components.js +0 -188
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/components.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/invariant.js +0 -8
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/invariant.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/links.js +0 -75
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/links.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/markup.js +0 -15
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/markup.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/routeModules.js +0 -18
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/routeModules.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/single-fetch.js +0 -10
- package/dist/node_modules/react-router/dist/production/lib/dom/ssr/single-fetch.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/errors.js +0 -19
- package/dist/node_modules/react-router/dist/production/lib/errors.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/hooks.js +0 -296
- package/dist/node_modules/react-router/dist/production/lib/hooks.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/router/history.js +0 -166
- package/dist/node_modules/react-router/dist/production/lib/router/history.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/router/router.js +0 -33
- package/dist/node_modules/react-router/dist/production/lib/router/router.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/router/url.js +0 -9
- package/dist/node_modules/react-router/dist/production/lib/router/url.js.map +0 -1
- package/dist/node_modules/react-router/dist/production/lib/router/utils.js +0 -236
- package/dist/node_modules/react-router/dist/production/lib/router/utils.js.map +0 -1
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { PermissionGuard as p } from "../components/PermissionGuard.js";
|
|
1
|
+
import { useDevportal as e } from "../providers/DevportalProvider.js";
|
|
2
|
+
import { useDevportalEventBus as t } from "../events/index.js";
|
|
3
|
+
import { useCreateWebhookMutation as n, useGetApplicationQuery as r, useGetApplicationsQuery as i } from "../../generated/global-operations.js";
|
|
4
|
+
import { getErrorMessage as a } from "../hooks/useGraphQL.js";
|
|
5
|
+
import { PageLayout as o, PageSection as s } from "../components/PageLayout.js";
|
|
6
|
+
import { CheckboxField as c, InputField as l, TextareaField as u } from "../components/FormField.js";
|
|
7
|
+
import { Alert as d } from "../components/ConfirmDialog.js";
|
|
8
|
+
import { PermissionGuard as f } from "../components/PermissionGuard.js";
|
|
10
9
|
import "../components/index.js";
|
|
11
|
-
import { useDevportalPermission as
|
|
10
|
+
import { useDevportalPermission as p } from "../hooks/usePermission.js";
|
|
12
11
|
import "../hooks/index.js";
|
|
13
|
-
import { WEBHOOK_EVENTS as
|
|
14
|
-
import { DEVPORTAL_PERMISSIONS as
|
|
15
|
-
import { useTr as
|
|
16
|
-
import { useEffect as
|
|
17
|
-
import { Loader2 as
|
|
12
|
+
import { WEBHOOK_EVENTS as m } from "../types/index.js";
|
|
13
|
+
import { DEVPORTAL_PERMISSIONS as h } from "../constants/permissions.js";
|
|
14
|
+
import { useTr as g } from "../utils/i18n.js";
|
|
15
|
+
import { useEffect as _, useMemo as v, useState as y } from "react";
|
|
16
|
+
import { Loader2 as b, Webhook as x } from "lucide-react";
|
|
17
|
+
import { useParams as S } from "react-router";
|
|
18
18
|
import { jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
19
19
|
import { ShowMore as T } from "@burdenoff/fe-libs/ui";
|
|
20
20
|
//#region src/devportal/pages/CreateWebhookPage.tsx
|
|
21
21
|
var E = {
|
|
22
|
-
Application:
|
|
23
|
-
Installation:
|
|
24
|
-
User:
|
|
25
|
-
Workspace:
|
|
26
|
-
Project:
|
|
27
|
-
Task:
|
|
28
|
-
Comment:
|
|
29
|
-
File:
|
|
30
|
-
Member:
|
|
22
|
+
Application: m.filter((e) => e.startsWith("application.")),
|
|
23
|
+
Installation: m.filter((e) => e.startsWith("installation.")),
|
|
24
|
+
User: m.filter((e) => e.startsWith("user.")),
|
|
25
|
+
Workspace: m.filter((e) => e.startsWith("workspace.")),
|
|
26
|
+
Project: m.filter((e) => e.startsWith("project.")),
|
|
27
|
+
Task: m.filter((e) => e.startsWith("task.")),
|
|
28
|
+
Comment: m.filter((e) => e.startsWith("comment.")),
|
|
29
|
+
File: m.filter((e) => e.startsWith("file.")),
|
|
30
|
+
Member: m.filter((e) => e.startsWith("member."))
|
|
31
31
|
}, D = () => {
|
|
32
|
-
let { appId:
|
|
33
|
-
applicationId:
|
|
32
|
+
let { appId: m } = S(), { navigate: D, basePath: O } = e(), [k, A] = y({
|
|
33
|
+
applicationId: m || "",
|
|
34
34
|
name: "",
|
|
35
35
|
description: "",
|
|
36
36
|
url: "",
|
|
37
37
|
events: [],
|
|
38
38
|
retryEnabled: !0,
|
|
39
39
|
maxRetries: 3
|
|
40
|
-
}), [j, M] =
|
|
41
|
-
variables: { id:
|
|
42
|
-
skip: !
|
|
40
|
+
}), [j, M] = y({}), [N, P] = y(null), { data: F } = r({
|
|
41
|
+
variables: { id: m ?? "" },
|
|
42
|
+
skip: !m,
|
|
43
43
|
fetchPolicy: "cache-first"
|
|
44
44
|
});
|
|
45
|
-
|
|
45
|
+
_(() => {
|
|
46
46
|
let e = F?.application?.name;
|
|
47
|
-
if (!
|
|
47
|
+
if (!m || !e) return;
|
|
48
48
|
let t = window.__breadcrumbRegistry;
|
|
49
|
-
return t?.register(
|
|
50
|
-
}, [
|
|
51
|
-
let { data: I, loading: L, error: R } =
|
|
49
|
+
return t?.register(m, e), () => t?.unregister(m);
|
|
50
|
+
}, [m, F?.application?.name]);
|
|
51
|
+
let { data: I, loading: L, error: R } = i({
|
|
52
52
|
variables: { limit: 100 },
|
|
53
|
-
skip: !!
|
|
53
|
+
skip: !!m,
|
|
54
54
|
fetchPolicy: "cache-and-network"
|
|
55
|
-
}), [z, { loading: B }] =
|
|
55
|
+
}), [z, { loading: B }] = n(), V = t(), H = g(), U = p(h.WEBHOOK_CREATE), W = v(() => I?.applications?.edges?.map((e) => e.node).map((e) => ({
|
|
56
56
|
id: e.id,
|
|
57
57
|
name: e.name,
|
|
58
58
|
slug: e.slug
|
|
@@ -80,9 +80,9 @@ var E = {
|
|
|
80
80
|
let e = {};
|
|
81
81
|
return k.applicationId || (e.applicationId = H("devportal.createWebhook.errors.appRequired", "Select an application")), k.name.trim() || (e.name = H("devportal.createWebhook.errors.nameRequired", "Name is required")), k.url.trim() ? /^https:\/\//i.test(k.url) || (e.url = H("devportal.createWebhook.errors.urlHttps", "Endpoint URL must use HTTPS")) : e.url = H("devportal.createWebhook.errors.urlRequired", "Endpoint URL is required"), k.events.length === 0 && (e.events = H("devportal.createWebhook.errors.eventsRequired", "Select at least one event")), k.retryEnabled && (k.maxRetries < 1 || k.maxRetries > 10) && (e.maxRetries = H("devportal.createWebhook.errors.retriesRange", "Retry count must be between 1 and 10")), M(e), Object.keys(e).length === 0;
|
|
82
82
|
};
|
|
83
|
-
return /* @__PURE__ */ C(
|
|
83
|
+
return /* @__PURE__ */ C(f, {
|
|
84
84
|
authOnly: !0,
|
|
85
|
-
children: /* @__PURE__ */ C(
|
|
85
|
+
children: /* @__PURE__ */ C(o, {
|
|
86
86
|
title: H("devportal.createWebhook.title", "Create Webhook"),
|
|
87
87
|
description: H("devportal.createWebhook.description", "Set up a real webhook endpoint to receive platform events through the public gateway"),
|
|
88
88
|
purpose: H("devportal.createWebhook.purpose", "Point a webhook at a URL you host so the platform pushes events (installs, payments, app updates) to your backend in real time. Choose which events to subscribe to; you will get a signing secret to verify that deliveries genuinely came from us."),
|
|
@@ -114,24 +114,24 @@ var E = {
|
|
|
114
114
|
},
|
|
115
115
|
className: "space-y-6",
|
|
116
116
|
children: [
|
|
117
|
-
/* @__PURE__ */ C(
|
|
117
|
+
/* @__PURE__ */ C(d, {
|
|
118
118
|
variant: "info",
|
|
119
119
|
children: H("devportal.createWebhook.info", "Webhook deliveries are signed and sent through the public global gateway. Use an HTTPS endpoint that accepts POST requests and returns a 2xx response for successful deliveries.")
|
|
120
120
|
}),
|
|
121
|
-
N && /* @__PURE__ */ C(
|
|
121
|
+
N && /* @__PURE__ */ C(d, {
|
|
122
122
|
variant: "error",
|
|
123
123
|
children: N
|
|
124
124
|
}),
|
|
125
|
-
R && !
|
|
125
|
+
R && !m && /* @__PURE__ */ C(d, {
|
|
126
126
|
variant: "error",
|
|
127
|
-
children:
|
|
127
|
+
children: a(R)
|
|
128
128
|
}),
|
|
129
|
-
/* @__PURE__ */ C(
|
|
129
|
+
/* @__PURE__ */ C(s, {
|
|
130
130
|
title: H("devportal.createWebhook.basicInfo", "Basic Information"),
|
|
131
131
|
children: /* @__PURE__ */ w("div", {
|
|
132
132
|
className: "space-y-4 rounded-card border border-border-seam bg-bg-surface p-4",
|
|
133
133
|
children: [
|
|
134
|
-
!
|
|
134
|
+
!m && /* @__PURE__ */ w("label", {
|
|
135
135
|
className: "grid gap-2 text-sm font-medium",
|
|
136
136
|
children: [
|
|
137
137
|
/* @__PURE__ */ C("span", { children: H("devportal.createWebhook.application", "Application") }),
|
|
@@ -155,11 +155,11 @@ var E = {
|
|
|
155
155
|
})
|
|
156
156
|
]
|
|
157
157
|
}),
|
|
158
|
-
L && !
|
|
158
|
+
L && !m && /* @__PURE__ */ w("div", {
|
|
159
159
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
160
160
|
role: "status",
|
|
161
161
|
"aria-live": "polite",
|
|
162
|
-
children: [/* @__PURE__ */ C(
|
|
162
|
+
children: [/* @__PURE__ */ C(b, {
|
|
163
163
|
className: "h-4 w-4 animate-spin",
|
|
164
164
|
"aria-hidden": "true"
|
|
165
165
|
}), H("devportal.createWebhook.loadingApps", "Loading applications...")]
|
|
@@ -175,7 +175,7 @@ var E = {
|
|
|
175
175
|
})
|
|
176
176
|
]
|
|
177
177
|
}),
|
|
178
|
-
/* @__PURE__ */ C(
|
|
178
|
+
/* @__PURE__ */ C(l, {
|
|
179
179
|
label: H("devportal.createWebhook.webhookName", "Webhook Name"),
|
|
180
180
|
value: k.name,
|
|
181
181
|
onChange: (e) => K("name", e.target.value),
|
|
@@ -183,14 +183,14 @@ var E = {
|
|
|
183
183
|
error: j.name,
|
|
184
184
|
required: !0
|
|
185
185
|
}),
|
|
186
|
-
/* @__PURE__ */ C(
|
|
186
|
+
/* @__PURE__ */ C(u, {
|
|
187
187
|
label: H("devportal.createWebhook.descriptionLabel", "Description"),
|
|
188
188
|
value: k.description,
|
|
189
189
|
onChange: (e) => K("description", e.target.value),
|
|
190
190
|
placeholder: H("devportal.createWebhook.descriptionPlaceholder", "What this webhook is used for"),
|
|
191
191
|
rows: 2
|
|
192
192
|
}),
|
|
193
|
-
/* @__PURE__ */ C(
|
|
193
|
+
/* @__PURE__ */ C(l, {
|
|
194
194
|
label: H("devportal.createWebhook.endpointUrl", "Endpoint URL"),
|
|
195
195
|
type: "url",
|
|
196
196
|
value: k.url,
|
|
@@ -203,7 +203,7 @@ var E = {
|
|
|
203
203
|
]
|
|
204
204
|
})
|
|
205
205
|
}),
|
|
206
|
-
/* @__PURE__ */ C(
|
|
206
|
+
/* @__PURE__ */ C(s, {
|
|
207
207
|
title: H("devportal.createWebhook.subscribedEvents", "Subscribed Events"),
|
|
208
208
|
children: /* @__PURE__ */ w("div", {
|
|
209
209
|
className: "rounded-card border border-border-seam bg-bg-surface p-4",
|
|
@@ -250,16 +250,16 @@ var E = {
|
|
|
250
250
|
})]
|
|
251
251
|
})
|
|
252
252
|
}),
|
|
253
|
-
/* @__PURE__ */ C(
|
|
253
|
+
/* @__PURE__ */ C(s, {
|
|
254
254
|
title: H("devportal.createWebhook.retrySettings", "Retry Settings"),
|
|
255
255
|
children: /* @__PURE__ */ w("div", {
|
|
256
256
|
className: "space-y-4 rounded-card border border-border-seam bg-bg-surface p-4",
|
|
257
|
-
children: [/* @__PURE__ */ C(
|
|
257
|
+
children: [/* @__PURE__ */ C(c, {
|
|
258
258
|
label: H("devportal.createWebhook.enableRetries", "Enable retries"),
|
|
259
259
|
description: H("devportal.createWebhook.enableRetriesDesc", "Retry failed deliveries automatically"),
|
|
260
260
|
checked: k.retryEnabled,
|
|
261
261
|
onChange: (e) => K("retryEnabled", e.target.checked)
|
|
262
|
-
}), k.retryEnabled && /* @__PURE__ */ C(
|
|
262
|
+
}), k.retryEnabled && /* @__PURE__ */ C(l, {
|
|
263
263
|
label: H("devportal.createWebhook.maxRetries", "Maximum retries"),
|
|
264
264
|
type: "number",
|
|
265
265
|
value: k.maxRetries,
|
|
@@ -284,10 +284,10 @@ var E = {
|
|
|
284
284
|
"aria-disabled": B || L || !U.allowed,
|
|
285
285
|
title: U.allowed ? void 0 : H("devportal.common.noPermission", "You do not have permission to perform this action"),
|
|
286
286
|
className: "inline-flex items-center justify-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 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary",
|
|
287
|
-
children: [B ? /* @__PURE__ */ C(
|
|
287
|
+
children: [B ? /* @__PURE__ */ C(b, {
|
|
288
288
|
className: "h-4 w-4 animate-spin",
|
|
289
289
|
"aria-hidden": "true"
|
|
290
|
-
}) : /* @__PURE__ */ C(
|
|
290
|
+
}) : /* @__PURE__ */ C(x, {
|
|
291
291
|
size: 16,
|
|
292
292
|
"aria-hidden": "true"
|
|
293
293
|
}), B ? H("devportal.createWebhook.creating", "Creating...") : H("devportal.createWebhook.title", "Create Webhook")]
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { useDeactivateAppMutation as ne, useDeleteApplicationMutation as re, useGetApplicationQuery as ie, useRotateApplicationSigningSecretMutation as ae, useUpdateApplicationMutation as oe } from "../../generated/global-operations.js";
|
|
1
|
+
import { useDevportal as e } from "../providers/DevportalProvider.js";
|
|
2
|
+
import { cn as t } from "../utils/cn.js";
|
|
3
|
+
import { LoadingState as n } from "../components/LoadingState.js";
|
|
4
|
+
import { EmptyState as ee } from "../components/EmptyState.js";
|
|
5
|
+
import { useDeactivateAppMutation as te, useDeleteApplicationMutation as ne, useGetApplicationQuery as re, useRotateApplicationSigningSecretMutation as ie, useUpdateApplicationMutation as ae } from "../../generated/global-operations.js";
|
|
7
6
|
import { PageLayout as r, PageSection as i } from "../components/PageLayout.js";
|
|
8
7
|
import { APP_TYPE_LABELS as a } from "../utils/constants.js";
|
|
9
|
-
import { StatusBadge as
|
|
10
|
-
import { nativeImpact as
|
|
11
|
-
import { CheckboxField as
|
|
8
|
+
import { StatusBadge as oe } from "../components/StatusBadge.js";
|
|
9
|
+
import { nativeImpact as se, nativeNotify as o } from "../../utils/nativeBridge.js";
|
|
10
|
+
import { CheckboxField as ce, InputField as s, SelectField as c, TagInput as l, TextareaField as le } from "../components/FormField.js";
|
|
12
11
|
import { ConfirmDialog as u } from "../components/ConfirmDialog.js";
|
|
13
|
-
import { PermissionGuard as
|
|
14
|
-
import { MarkdownEditor as
|
|
12
|
+
import { PermissionGuard as ue } from "../components/PermissionGuard.js";
|
|
13
|
+
import { MarkdownEditor as de } from "../components/MarkdownEditor.js";
|
|
15
14
|
import "../components/index.js";
|
|
16
15
|
import { useDevportalPermission as d } from "../hooks/usePermission.js";
|
|
17
16
|
import { DEVPORTAL_PERMISSIONS as f } from "../constants/permissions.js";
|
|
18
17
|
import { useEffect as p, useState as m } from "react";
|
|
19
|
-
import { useI18n as
|
|
20
|
-
import { AlertCircle as pe, AlertTriangle as me, AppWindow as he, Archive as ge, Check as
|
|
18
|
+
import { useI18n as fe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
19
|
+
import { AlertCircle as pe, AlertTriangle as me, AppWindow as he, Archive as ge, Check as h, Copy as g, Eye as _e, EyeOff as ve, Power as ye, RefreshCw as _, Save as be, Send as xe, Trash2 as Se } from "lucide-react";
|
|
20
|
+
import { useParams as Ce } from "react-router";
|
|
21
21
|
import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
22
22
|
//#region src/devportal/pages/EditApplicationPage.tsx
|
|
23
23
|
var we = [
|
|
@@ -130,13 +130,13 @@ function Oe(e) {
|
|
|
130
130
|
} : null;
|
|
131
131
|
}
|
|
132
132
|
var S = () => {
|
|
133
|
-
let { navigate: a, basePath: S } =
|
|
133
|
+
let { navigate: a, basePath: S } = e(), { appId: C } = Ce(), { t: ke } = fe(), { allowed: w } = d(f.APP_UPDATE), { allowed: T } = d(f.APP_DELETE), E = (e, t) => {
|
|
134
134
|
let n = ke(e);
|
|
135
135
|
return n === e ? t : n;
|
|
136
|
-
}, [D, O] = m(!1), [k, A] = m({}), [Ae, j] = m(!1), [je, M] = m(!1), [Me, N] = m(!1), [P, F] = m(!1), [I, L] = m(!1), [R, z] = m(!1), [B, Ne] = m(null), [Pe, V] = m(!1), { data: H, loading: Fe, error: U, refetch: Ie } =
|
|
136
|
+
}, [D, O] = m(!1), [k, A] = m({}), [Ae, j] = m(!1), [je, M] = m(!1), [Me, N] = m(!1), [P, F] = m(!1), [I, L] = m(!1), [R, z] = m(!1), [B, Ne] = m(null), [Pe, V] = m(!1), { data: H, loading: Fe, error: U, refetch: Ie } = re({
|
|
137
137
|
variables: { id: C },
|
|
138
138
|
skip: !C
|
|
139
|
-
}), [W] =
|
|
139
|
+
}), [W] = ae(), [Le] = ne(), [Re] = te(), [ze] = ie(), G = Oe(H?.application);
|
|
140
140
|
p(() => {
|
|
141
141
|
let e = G?.name;
|
|
142
142
|
if (!C || !e) return;
|
|
@@ -250,7 +250,7 @@ var S = () => {
|
|
|
250
250
|
}
|
|
251
251
|
}, $ = async () => {
|
|
252
252
|
if (G) {
|
|
253
|
-
|
|
253
|
+
se("medium");
|
|
254
254
|
try {
|
|
255
255
|
await Le({ variables: { id: G.id } }), o("success"), X("/apps");
|
|
256
256
|
} catch (e) {
|
|
@@ -273,7 +273,7 @@ var S = () => {
|
|
|
273
273
|
console.error("Failed to deactivate application:", e);
|
|
274
274
|
}
|
|
275
275
|
};
|
|
276
|
-
if (Fe) return /* @__PURE__ */ y(
|
|
276
|
+
if (Fe) return /* @__PURE__ */ y(n, { message: E("devportal.loadingApplication", "Loading application...") });
|
|
277
277
|
if (U) return /* @__PURE__ */ y(r, {
|
|
278
278
|
title: E("devportal.error", "Error"),
|
|
279
279
|
backLink: `${S}/apps`,
|
|
@@ -300,7 +300,7 @@ var S = () => {
|
|
|
300
300
|
title: E("devportal.notFound", "Not Found"),
|
|
301
301
|
backLink: `${S}/apps`,
|
|
302
302
|
backLabel: E("devportal.backToApplications", "Back to Applications"),
|
|
303
|
-
children: /* @__PURE__ */ y(
|
|
303
|
+
children: /* @__PURE__ */ y(ee, {
|
|
304
304
|
illustration: "empty-generic",
|
|
305
305
|
icon: /* @__PURE__ */ y(he, { size: 48 }),
|
|
306
306
|
title: E("devportal.applicationNotFound", "Application not found"),
|
|
@@ -308,7 +308,7 @@ var S = () => {
|
|
|
308
308
|
})
|
|
309
309
|
});
|
|
310
310
|
let Ge = G.status === "DRAFT" || G.status === "REJECTED", Ke = G.status === "PUBLISHED", qe = G.status === "ACTIVE" || G.status === "PUBLISHED";
|
|
311
|
-
return /* @__PURE__ */ y(
|
|
311
|
+
return /* @__PURE__ */ y(ue, {
|
|
312
312
|
authOnly: !0,
|
|
313
313
|
children: /* @__PURE__ */ b(r, {
|
|
314
314
|
title: `${E("devportal.editAppTitlePrefix", "Edit:")} ${G.name}`,
|
|
@@ -318,7 +318,7 @@ var S = () => {
|
|
|
318
318
|
backLabel: E("devportal.backToApplication", "Back to Application"),
|
|
319
319
|
actions: /* @__PURE__ */ y("div", {
|
|
320
320
|
className: "flex items-center gap-2",
|
|
321
|
-
children: /* @__PURE__ */ y(
|
|
321
|
+
children: /* @__PURE__ */ y(oe, {
|
|
322
322
|
status: G.status,
|
|
323
323
|
type: "app"
|
|
324
324
|
})
|
|
@@ -367,7 +367,7 @@ var S = () => {
|
|
|
367
367
|
error: k.slug,
|
|
368
368
|
hint: E("devportal.slugChangeWarning", "Changing the slug may break existing integrations")
|
|
369
369
|
}),
|
|
370
|
-
/* @__PURE__ */ y(
|
|
370
|
+
/* @__PURE__ */ y(le, {
|
|
371
371
|
label: E("devportal.shortDescription", "Short Description"),
|
|
372
372
|
value: K.shortDescription,
|
|
373
373
|
onChange: (e) => Z("shortDescription", e.target.value),
|
|
@@ -377,7 +377,7 @@ var S = () => {
|
|
|
377
377
|
hint: `${K.shortDescription.length}/200 ${E("devportal.characters", "characters")}`,
|
|
378
378
|
rows: 2
|
|
379
379
|
}),
|
|
380
|
-
/* @__PURE__ */ y(
|
|
380
|
+
/* @__PURE__ */ y(de, {
|
|
381
381
|
label: E("devportal.fullDescription", "Full Description"),
|
|
382
382
|
value: K.description,
|
|
383
383
|
onChange: (e) => Z("description", e),
|
|
@@ -451,19 +451,19 @@ var S = () => {
|
|
|
451
451
|
/* @__PURE__ */ y("div", {
|
|
452
452
|
className: "flex flex-wrap gap-3",
|
|
453
453
|
children: we.map((e) => {
|
|
454
|
-
let
|
|
454
|
+
let n = J.includes(e.value);
|
|
455
455
|
return /* @__PURE__ */ b("label", {
|
|
456
|
-
className:
|
|
456
|
+
className: t("flex items-center gap-2 cursor-pointer rounded-md border px-3 py-2 text-sm transition-colors", n ? "border-primary bg-primary/10 text-text-primary" : "border-border-subtle hover:border-border text-text-secondary hover:text-text-primary"),
|
|
457
457
|
children: [
|
|
458
458
|
/* @__PURE__ */ y("input", {
|
|
459
459
|
type: "checkbox",
|
|
460
460
|
className: "sr-only",
|
|
461
|
-
checked:
|
|
461
|
+
checked: n,
|
|
462
462
|
onChange: () => {
|
|
463
|
-
Y((
|
|
463
|
+
Y((t) => n ? t.filter((t) => t !== e.value) : [...t, e.value]), F(!0);
|
|
464
464
|
}
|
|
465
465
|
}),
|
|
466
|
-
|
|
466
|
+
n && /* @__PURE__ */ y(h, {
|
|
467
467
|
size: 14,
|
|
468
468
|
className: "text-primary flex-shrink-0"
|
|
469
469
|
}),
|
|
@@ -585,17 +585,17 @@ var S = () => {
|
|
|
585
585
|
onClick: () => L((e) => !e),
|
|
586
586
|
className: "px-2 py-2 text-text-secondary hover:text-text-primary border-l border-border-default",
|
|
587
587
|
title: I ? "Hide" : "Reveal",
|
|
588
|
-
children: y(I ?
|
|
588
|
+
children: y(I ? ve : _e, { size: 14 })
|
|
589
589
|
}),
|
|
590
590
|
/* @__PURE__ */ y("button", {
|
|
591
591
|
type: "button",
|
|
592
592
|
onClick: () => Be(e),
|
|
593
593
|
className: "px-2 py-2 text-text-secondary hover:text-text-primary border-l border-border-default",
|
|
594
594
|
title: "Copy to clipboard",
|
|
595
|
-
children: Pe ? /* @__PURE__ */ y(
|
|
595
|
+
children: Pe ? /* @__PURE__ */ y(h, {
|
|
596
596
|
size: 14,
|
|
597
597
|
className: "text-green-500"
|
|
598
|
-
}) : /* @__PURE__ */ y(
|
|
598
|
+
}) : /* @__PURE__ */ y(g, { size: 14 })
|
|
599
599
|
})
|
|
600
600
|
]
|
|
601
601
|
}), /* @__PURE__ */ b("button", {
|
|
@@ -634,7 +634,7 @@ var S = () => {
|
|
|
634
634
|
description: E("devportal.settingsDescription", "Additional configuration options"),
|
|
635
635
|
children: /* @__PURE__ */ y("div", {
|
|
636
636
|
className: "space-y-4",
|
|
637
|
-
children: /* @__PURE__ */ y(
|
|
637
|
+
children: /* @__PURE__ */ y(ce, {
|
|
638
638
|
label: E("devportal.requireWorkspaceAdminApproval", "Require workspace admin approval"),
|
|
639
639
|
description: E("devportal.requireWorkspaceAdminApprovalDescription", "When enabled, workspace admins must approve installations before users can access this app"),
|
|
640
640
|
checked: K.requiresApproval,
|
|
@@ -646,7 +646,7 @@ var S = () => {
|
|
|
646
646
|
className: "rounded-lg border border-border-subtle bg-bg-sunken p-4 space-y-2",
|
|
647
647
|
children: [/* @__PURE__ */ b("p", {
|
|
648
648
|
className: "text-sm font-medium text-text-primary flex items-center gap-2",
|
|
649
|
-
children: [/* @__PURE__ */ y(
|
|
649
|
+
children: [/* @__PURE__ */ y(xe, { size: 14 }), E("devportal.submissionChecklist", "Submission Checklist")]
|
|
650
650
|
}), [
|
|
651
651
|
{
|
|
652
652
|
label: E("devportal.checkName", "Name set"),
|
|
@@ -699,7 +699,7 @@ var S = () => {
|
|
|
699
699
|
disabled: D || !P || !w,
|
|
700
700
|
"aria-disabled": !w,
|
|
701
701
|
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",
|
|
702
|
-
children: D ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }), E("devportal.saving", "Saving...")] }) : /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(
|
|
702
|
+
children: D ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("span", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }), E("devportal.saving", "Saving...")] }) : /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(be, { size: 16 }), E("devportal.saveChanges", "Save Changes")] })
|
|
703
703
|
})
|
|
704
704
|
}), /* @__PURE__ */ b("div", {
|
|
705
705
|
className: "rounded-lg border border-border-subtle bg-status-error-bg-subtle p-4",
|
|
@@ -725,7 +725,7 @@ var S = () => {
|
|
|
725
725
|
type: "button",
|
|
726
726
|
onClick: () => N(!0),
|
|
727
727
|
className: "inline-flex items-center gap-2 rounded-md border border-accent-orange bg-bg-surface px-3 py-1.5 text-sm font-medium text-accent-orange hover:bg-accent-orange-subtle transition-colors",
|
|
728
|
-
children: [/* @__PURE__ */ y(
|
|
728
|
+
children: [/* @__PURE__ */ y(ye, { size: 14 }), E("devportal.deactivateApp", "Deactivate App")]
|
|
729
729
|
}),
|
|
730
730
|
/* @__PURE__ */ b("button", {
|
|
731
731
|
type: "button",
|
|
@@ -733,7 +733,7 @@ var S = () => {
|
|
|
733
733
|
disabled: !T,
|
|
734
734
|
"aria-disabled": !T,
|
|
735
735
|
className: "inline-flex items-center gap-2 rounded-md border border-status-error-bg bg-bg-surface px-3 py-1.5 text-sm font-medium text-status-error-text hover:bg-status-error-bg-subtle transition-colors disabled:opacity-50",
|
|
736
|
-
children: [/* @__PURE__ */ y(
|
|
736
|
+
children: [/* @__PURE__ */ y(Se, { size: 14 }), E("devportal.deleteApp", "Delete App")]
|
|
737
737
|
})
|
|
738
738
|
]
|
|
739
739
|
})
|