@burdenoff/microfe-devportal 2026.1026.4 → 2026.1031.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.
- package/dist/devportal/DevportalRoutes.d.ts.map +1 -1
- package/dist/devportal/DevportalRoutes.js +127 -123
- package/dist/devportal/DevportalRoutes.js.map +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.d.ts.map +1 -1
- package/dist/devportal/pages/ApplicationVersionsPage.js +468 -457
- package/dist/devportal/pages/ApplicationVersionsPage.js.map +1 -1
- package/dist/devportal/pages/NodeLifecyclePage.d.ts +7 -0
- package/dist/devportal/pages/NodeLifecyclePage.d.ts.map +1 -0
- package/dist/devportal/pages/NodeLifecyclePage.js +649 -0
- package/dist/devportal/pages/NodeLifecyclePage.js.map +1 -0
- package/dist/devportal/utils/nodeLifecycle.d.ts +81 -0
- package/dist/devportal/utils/nodeLifecycle.d.ts.map +1 -0
- package/dist/devportal/utils/nodeLifecycle.js +280 -0
- package/dist/devportal/utils/nodeLifecycle.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevportalRoutes.d.ts","sourceRoot":"","sources":["../../src/devportal/DevportalRoutes.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DevportalRoutes.d.ts","sourceRoot":"","sources":["../../src/devportal/DevportalRoutes.tsx"],"names":[],"mappings":"AA6RA,wBAAgB,eAAe,gCAgP9B"}
|
|
@@ -5,255 +5,259 @@ import { TelemetryErrorBoundary as r } from "./components/TelemetryErrorBoundary
|
|
|
5
5
|
import { OrgSwitcher as i } from "./components/SectionNav.js";
|
|
6
6
|
import { DashboardPage as a } from "./pages/DashboardPage.js";
|
|
7
7
|
import { Suspense as o, lazy as s, useEffect as ee } from "react";
|
|
8
|
-
import { Navigate as c, Outlet as l, Route as u, Routes as
|
|
9
|
-
import { Fragment as
|
|
8
|
+
import { Navigate as c, Outlet as l, Route as u, Routes as d, useLocation as f } from "react-router";
|
|
9
|
+
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
10
10
|
//#region src/devportal/DevportalRoutes.tsx
|
|
11
|
-
function
|
|
11
|
+
function g() {
|
|
12
12
|
let { basePath: t, navigate: n } = e();
|
|
13
13
|
return ee(() => {
|
|
14
14
|
t && n && n((t.endsWith("/") ? t.slice(0, -1) : t) || "/");
|
|
15
|
-
}, [t, n]), t && n ? null : /* @__PURE__ */
|
|
15
|
+
}, [t, n]), t && n ? null : /* @__PURE__ */ m(c, {
|
|
16
16
|
to: "..",
|
|
17
17
|
replace: !0
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
function
|
|
21
|
-
return /* @__PURE__ */
|
|
20
|
+
function _(e, t) {
|
|
21
|
+
return /* @__PURE__ */ m(r, {
|
|
22
22
|
scope: e,
|
|
23
|
-
children: /* @__PURE__ */
|
|
23
|
+
children: /* @__PURE__ */ m(n, {
|
|
24
24
|
flag: `devportal.${e}`,
|
|
25
25
|
children: t
|
|
26
26
|
})
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
var
|
|
30
|
-
function
|
|
31
|
-
return /* @__PURE__ */
|
|
29
|
+
var v = s(() => import("./pages/OrganizationsPage.js").then((e) => ({ default: e.OrganizationsPage }))), y = s(() => import("./pages/OrganizationDetailPage.js").then((e) => ({ default: e.OrganizationDetailPage }))), b = s(() => import("./pages/CreateOrganizationPage.js").then((e) => ({ default: e.CreateOrganizationPage }))), x = s(() => import("./pages/OrganizationMembersPage.js").then((e) => ({ default: e.OrganizationMembersPage }))), S = s(() => import("./pages/RevenueDashboardPage.js").then((e) => ({ default: e.RevenueDashboardPage }))), C = s(() => import("./pages/ApplicationsPage.js").then((e) => ({ default: e.ApplicationsPage }))), w = s(() => import("./pages/ApplicationDetailPage.js").then((e) => ({ default: e.ApplicationDetailPage }))), T = s(() => import("./pages/CreateApplicationPage.js").then((e) => ({ default: e.CreateApplicationPage }))), E = s(() => import("./pages/EditApplicationPage.js").then((e) => ({ default: e.EditApplicationPage }))), D = s(() => import("./pages/ApplicationVersionsPage.js").then((e) => ({ default: e.ApplicationVersionsPage }))), O = s(() => import("./pages/OAuthCallbackPage.js").then((e) => ({ default: e.OAuthCallbackPage }))), k = s(() => import("./pages/OAuthClientsPage.js").then((e) => ({ default: e.OAuthClientsPage }))), A = s(() => import("./pages/CreateOAuthClientPage.js").then((e) => ({ default: e.CreateOAuthClientPage }))), j = s(() => import("./pages/OAuthClientDetailPage.js").then((e) => ({ default: e.OAuthClientDetailPage }))), M = s(() => import("./pages/ApiKeysPage.js").then((e) => ({ default: e.ApiKeysPage }))), N = s(() => import("./pages/CreateApiKeyPage.js").then((e) => ({ default: e.CreateApiKeyPage }))), P = s(() => import("./pages/WebhooksPage.js").then((e) => ({ default: e.WebhooksPage }))), F = s(() => import("./pages/CreateWebhookPage.js").then((e) => ({ default: e.CreateWebhookPage }))), I = s(() => import("./pages/WebhookDetailPage.js").then((e) => ({ default: e.WebhookDetailPage }))), L = s(() => import("./pages/AnalyticsDashboardPage.js").then((e) => ({ default: e.AnalyticsDashboardPage }))), R = s(() => import("./pages/DocumentationPage.js").then((e) => ({ default: e.DocumentationPage }))), z = s(() => import("./pages/ResourcesPage.js").then((e) => ({ default: e.ResourcesPage }))), B = s(() => import("./pages/SettingsPage.js").then((e) => ({ default: e.SettingsPage }))), te = s(() => import("./pages/NodeLifecyclePage.js").then((e) => ({ default: e.NodeLifecyclePage }))), V = s(() => import("./pages/PublishPage.js").then((e) => ({ default: e.PublishPage }))), H = s(() => import("./pages/AppLogsPage.js").then((e) => ({ default: e.AppLogsPage }))), U = s(() => import("./pages/DelegationsPage.js").then((e) => ({ default: e.DelegationsPage }))), W = s(() => import("./pages/ListingPreviewPage.js").then((e) => ({ default: e.ListingPreviewPage }))), G = s(() => import("./pages/StoreSubmissionPage.js").then((e) => ({ default: e.StoreSubmissionPage }))), K = s(() => import("./pages/PublisherProfilePage.js").then((e) => ({ default: e.PublisherProfilePage }))), q = s(() => import("./pages/SetupPage.js").then((e) => ({ default: e.SetupPage }))), J = s(() => import("./pages/InvitationDecisionPage.js").then((e) => ({ default: e.InvitationDecisionPage }))), Y = s(() => import("./pages/SellerDashboardPage.js").then((e) => ({ default: e.SellerDashboardPage }))), X = s(() => import("./pages/SellerItemsPage.js").then((e) => ({ default: e.SellerItemsPage }))), Z = s(() => import("./pages/CreatePhysicalItemPage.js").then((e) => ({ default: e.CreatePhysicalItemPage }))), Q = s(() => import("./pages/SellerOrdersPage.js").then((e) => ({ default: e.SellerOrdersPage }))), ne = s(() => import("./pages/EditPhysicalItemPage.js").then((e) => ({ default: e.EditPhysicalItemPage })));
|
|
30
|
+
function re() {
|
|
31
|
+
return /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m($, {}), /* @__PURE__ */ m(l, {})] });
|
|
32
32
|
}
|
|
33
33
|
function $() {
|
|
34
|
-
return /* @__PURE__ */
|
|
34
|
+
return /* @__PURE__ */ m("div", {
|
|
35
35
|
className: "flex items-center justify-end border-b border-border-subtle bg-bg-surface/40 px-4 py-2",
|
|
36
|
-
children: /* @__PURE__ */
|
|
36
|
+
children: /* @__PURE__ */ m(i, {})
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
function
|
|
39
|
+
function ie(e) {
|
|
40
40
|
let t = e.split("/").filter(Boolean), n = t[t.length - 1], r = t[t.length - 2], i = t[t.length - 3];
|
|
41
41
|
return n === "organizations" || r === "organizations" && n !== "new" || i === "seller" && r === "items" && n !== "new";
|
|
42
42
|
}
|
|
43
|
-
function ie() {
|
|
44
|
-
let { pathname: e } = d();
|
|
45
|
-
return /* @__PURE__ */ m(f, { children: [!re(e) && /* @__PURE__ */ p($, {}), /* @__PURE__ */ p(l, {})] });
|
|
46
|
-
}
|
|
47
43
|
function ae() {
|
|
48
|
-
|
|
44
|
+
let { pathname: e } = f();
|
|
45
|
+
return /* @__PURE__ */ h(p, { children: [!ie(e) && /* @__PURE__ */ m($, {}), /* @__PURE__ */ m(l, {})] });
|
|
49
46
|
}
|
|
50
47
|
function oe() {
|
|
51
|
-
return /* @__PURE__ */
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
return /* @__PURE__ */ m(l, {});
|
|
49
|
+
}
|
|
50
|
+
function se() {
|
|
51
|
+
return /* @__PURE__ */ m(o, {
|
|
52
|
+
fallback: /* @__PURE__ */ m(t, { message: "Loading page..." }),
|
|
53
|
+
children: /* @__PURE__ */ h(d, { children: [
|
|
54
|
+
/* @__PURE__ */ m(u, {
|
|
55
55
|
path: "setup",
|
|
56
|
-
element:
|
|
56
|
+
element: _("setup", /* @__PURE__ */ m(q, {}))
|
|
57
57
|
}),
|
|
58
|
-
/* @__PURE__ */
|
|
58
|
+
/* @__PURE__ */ m(u, {
|
|
59
59
|
path: "invitations/:token",
|
|
60
|
-
element: /* @__PURE__ */
|
|
60
|
+
element: /* @__PURE__ */ m(r, {
|
|
61
61
|
scope: "invitations.accept",
|
|
62
|
-
children: /* @__PURE__ */
|
|
62
|
+
children: /* @__PURE__ */ m(J, {})
|
|
63
63
|
})
|
|
64
64
|
}),
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
-
element: /* @__PURE__ */
|
|
65
|
+
/* @__PURE__ */ h(u, {
|
|
66
|
+
element: /* @__PURE__ */ m(re, {}),
|
|
67
67
|
children: [
|
|
68
|
-
/* @__PURE__ */
|
|
68
|
+
/* @__PURE__ */ m(u, {
|
|
69
69
|
path: "apps/:appId",
|
|
70
|
-
element:
|
|
70
|
+
element: _("apps.detail", /* @__PURE__ */ m(w, {}))
|
|
71
71
|
}),
|
|
72
|
-
/* @__PURE__ */
|
|
72
|
+
/* @__PURE__ */ m(u, {
|
|
73
73
|
path: "apps/:appId/edit",
|
|
74
|
-
element:
|
|
74
|
+
element: _("apps.edit", /* @__PURE__ */ m(E, {}))
|
|
75
75
|
}),
|
|
76
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ m(u, {
|
|
77
77
|
path: "apps/:appId/versions",
|
|
78
|
-
element:
|
|
78
|
+
element: _("apps.versions", /* @__PURE__ */ m(D, {}))
|
|
79
|
+
}),
|
|
80
|
+
/* @__PURE__ */ m(u, {
|
|
81
|
+
path: "apps/:appId/versions/:versionId/lifecycle",
|
|
82
|
+
element: _("apps.node-lifecycle", /* @__PURE__ */ m(te, {}))
|
|
79
83
|
}),
|
|
80
|
-
/* @__PURE__ */
|
|
84
|
+
/* @__PURE__ */ m(u, {
|
|
81
85
|
path: "apps/:appId/publish",
|
|
82
|
-
element:
|
|
86
|
+
element: _("apps.publish", /* @__PURE__ */ m(V, {}))
|
|
83
87
|
}),
|
|
84
|
-
/* @__PURE__ */
|
|
88
|
+
/* @__PURE__ */ m(u, {
|
|
85
89
|
path: "apps/:appId/store-submission",
|
|
86
|
-
element:
|
|
90
|
+
element: _("apps.storeSubmission", /* @__PURE__ */ m(G, {}))
|
|
87
91
|
}),
|
|
88
|
-
/* @__PURE__ */
|
|
92
|
+
/* @__PURE__ */ m(u, {
|
|
89
93
|
path: "apps/:appId/listing",
|
|
90
|
-
element:
|
|
94
|
+
element: _("apps.listing", /* @__PURE__ */ m(W, {}))
|
|
91
95
|
}),
|
|
92
|
-
/* @__PURE__ */
|
|
96
|
+
/* @__PURE__ */ m(u, {
|
|
93
97
|
path: "apps/:appId/logs",
|
|
94
|
-
element:
|
|
98
|
+
element: _("apps.logs", /* @__PURE__ */ m(H, {}))
|
|
95
99
|
}),
|
|
96
|
-
/* @__PURE__ */
|
|
100
|
+
/* @__PURE__ */ m(u, {
|
|
97
101
|
path: "apps/:appId/webhooks",
|
|
98
|
-
element:
|
|
102
|
+
element: _("apps.webhooks", /* @__PURE__ */ m(P, {}))
|
|
99
103
|
}),
|
|
100
|
-
/* @__PURE__ */
|
|
104
|
+
/* @__PURE__ */ m(u, {
|
|
101
105
|
path: "apps/:appId/webhooks/new",
|
|
102
|
-
element:
|
|
106
|
+
element: _("apps.webhooks.create", /* @__PURE__ */ m(F, {}))
|
|
103
107
|
}),
|
|
104
|
-
/* @__PURE__ */
|
|
108
|
+
/* @__PURE__ */ m(u, {
|
|
105
109
|
path: "apps/:appId/webhooks/:webhookId",
|
|
106
|
-
element:
|
|
110
|
+
element: _("apps.webhooks.detail", /* @__PURE__ */ m(I, {}))
|
|
107
111
|
}),
|
|
108
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ m(u, {
|
|
109
113
|
path: "apps/:appId/analytics",
|
|
110
|
-
element:
|
|
114
|
+
element: _("apps.analytics", /* @__PURE__ */ m(L, {}))
|
|
111
115
|
})
|
|
112
116
|
]
|
|
113
117
|
}),
|
|
114
|
-
/* @__PURE__ */
|
|
115
|
-
element: /* @__PURE__ */
|
|
118
|
+
/* @__PURE__ */ h(u, {
|
|
119
|
+
element: /* @__PURE__ */ m(ae, {}),
|
|
116
120
|
children: [
|
|
117
|
-
/* @__PURE__ */
|
|
121
|
+
/* @__PURE__ */ m(u, {
|
|
118
122
|
index: !0,
|
|
119
|
-
element:
|
|
123
|
+
element: _("dashboard", /* @__PURE__ */ m(a, {}))
|
|
120
124
|
}),
|
|
121
|
-
/* @__PURE__ */
|
|
125
|
+
/* @__PURE__ */ m(u, {
|
|
122
126
|
path: "organizations",
|
|
123
|
-
element:
|
|
127
|
+
element: _("organizations", /* @__PURE__ */ m(v, {}))
|
|
124
128
|
}),
|
|
125
|
-
/* @__PURE__ */
|
|
129
|
+
/* @__PURE__ */ m(u, {
|
|
126
130
|
path: "organizations/new",
|
|
127
|
-
element:
|
|
131
|
+
element: _("organizations.create", /* @__PURE__ */ m(b, {}))
|
|
128
132
|
}),
|
|
129
|
-
/* @__PURE__ */
|
|
133
|
+
/* @__PURE__ */ m(u, {
|
|
130
134
|
path: "organizations/:orgId",
|
|
131
|
-
element:
|
|
135
|
+
element: _("organizations.detail", /* @__PURE__ */ m(y, {}))
|
|
132
136
|
}),
|
|
133
|
-
/* @__PURE__ */
|
|
137
|
+
/* @__PURE__ */ m(u, {
|
|
134
138
|
path: "organizations/:orgId/members",
|
|
135
|
-
element:
|
|
139
|
+
element: _("organizations.members", /* @__PURE__ */ m(x, {}))
|
|
136
140
|
}),
|
|
137
|
-
/* @__PURE__ */
|
|
141
|
+
/* @__PURE__ */ m(u, {
|
|
138
142
|
path: "organizations/:orgId/revenue",
|
|
139
|
-
element:
|
|
143
|
+
element: _("organizations.revenue", /* @__PURE__ */ m(S, {}))
|
|
140
144
|
}),
|
|
141
|
-
/* @__PURE__ */
|
|
145
|
+
/* @__PURE__ */ m(u, {
|
|
142
146
|
path: "apps",
|
|
143
|
-
element:
|
|
147
|
+
element: _("apps", /* @__PURE__ */ m(C, {}))
|
|
144
148
|
}),
|
|
145
|
-
/* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ m(u, {
|
|
146
150
|
path: "apps/new",
|
|
147
|
-
element:
|
|
151
|
+
element: _("apps.create", /* @__PURE__ */ m(T, {}))
|
|
148
152
|
}),
|
|
149
|
-
/* @__PURE__ */
|
|
153
|
+
/* @__PURE__ */ m(u, {
|
|
150
154
|
path: "seller",
|
|
151
|
-
element:
|
|
155
|
+
element: _("seller.dashboard", /* @__PURE__ */ m(Y, {}))
|
|
152
156
|
}),
|
|
153
|
-
/* @__PURE__ */
|
|
157
|
+
/* @__PURE__ */ m(u, {
|
|
154
158
|
path: "seller/items",
|
|
155
|
-
element:
|
|
159
|
+
element: _("seller.items", /* @__PURE__ */ m(X, {}))
|
|
156
160
|
}),
|
|
157
|
-
/* @__PURE__ */
|
|
161
|
+
/* @__PURE__ */ m(u, {
|
|
158
162
|
path: "seller/items/new",
|
|
159
|
-
element:
|
|
163
|
+
element: _("seller.items.create", /* @__PURE__ */ m(Z, {}))
|
|
160
164
|
}),
|
|
161
|
-
/* @__PURE__ */
|
|
165
|
+
/* @__PURE__ */ m(u, {
|
|
162
166
|
path: "seller/items/:itemId",
|
|
163
|
-
element:
|
|
167
|
+
element: _("seller.items.edit", /* @__PURE__ */ m(ne, {}))
|
|
164
168
|
}),
|
|
165
|
-
/* @__PURE__ */
|
|
169
|
+
/* @__PURE__ */ m(u, {
|
|
166
170
|
path: "seller/orders",
|
|
167
|
-
element:
|
|
171
|
+
element: _("seller.orders", /* @__PURE__ */ m(Q, {}))
|
|
168
172
|
}),
|
|
169
|
-
/* @__PURE__ */
|
|
173
|
+
/* @__PURE__ */ m(u, {
|
|
170
174
|
path: "seller/organizations",
|
|
171
|
-
element:
|
|
175
|
+
element: _("seller.organizations", /* @__PURE__ */ m(v, {}))
|
|
172
176
|
}),
|
|
173
|
-
/* @__PURE__ */
|
|
177
|
+
/* @__PURE__ */ m(u, {
|
|
174
178
|
path: "seller/organizations/new",
|
|
175
|
-
element:
|
|
179
|
+
element: _("seller.organizations.create", /* @__PURE__ */ m(b, {}))
|
|
176
180
|
}),
|
|
177
|
-
/* @__PURE__ */
|
|
181
|
+
/* @__PURE__ */ m(u, {
|
|
178
182
|
path: "seller/organizations/:orgId",
|
|
179
|
-
element:
|
|
183
|
+
element: _("seller.organizations.detail", /* @__PURE__ */ m(y, {}))
|
|
180
184
|
}),
|
|
181
|
-
/* @__PURE__ */
|
|
185
|
+
/* @__PURE__ */ m(u, {
|
|
182
186
|
path: "seller/organizations/:orgId/members",
|
|
183
|
-
element:
|
|
187
|
+
element: _("seller.organizations.members", /* @__PURE__ */ m(x, {}))
|
|
184
188
|
}),
|
|
185
|
-
/* @__PURE__ */
|
|
189
|
+
/* @__PURE__ */ m(u, {
|
|
186
190
|
path: "seller/organizations/:orgId/revenue",
|
|
187
|
-
element:
|
|
191
|
+
element: _("seller.organizations.revenue", /* @__PURE__ */ m(S, {}))
|
|
188
192
|
}),
|
|
189
|
-
/* @__PURE__ */
|
|
193
|
+
/* @__PURE__ */ m(u, {
|
|
190
194
|
path: "delegations",
|
|
191
|
-
element:
|
|
195
|
+
element: _("delegations", /* @__PURE__ */ m(U, {}))
|
|
192
196
|
}),
|
|
193
|
-
/* @__PURE__ */
|
|
197
|
+
/* @__PURE__ */ m(u, {
|
|
194
198
|
path: "webhooks/new",
|
|
195
|
-
element:
|
|
199
|
+
element: _("webhooks.create", /* @__PURE__ */ m(F, {}))
|
|
196
200
|
}),
|
|
197
|
-
/* @__PURE__ */
|
|
201
|
+
/* @__PURE__ */ m(u, {
|
|
198
202
|
path: "webhooks",
|
|
199
|
-
element:
|
|
203
|
+
element: _("webhooks", /* @__PURE__ */ m(P, {}))
|
|
200
204
|
}),
|
|
201
|
-
/* @__PURE__ */
|
|
205
|
+
/* @__PURE__ */ m(u, {
|
|
202
206
|
path: "analytics",
|
|
203
|
-
element:
|
|
207
|
+
element: _("analytics", /* @__PURE__ */ m(L, {}))
|
|
204
208
|
}),
|
|
205
|
-
/* @__PURE__ */
|
|
209
|
+
/* @__PURE__ */ m(u, {
|
|
206
210
|
path: "revenue",
|
|
207
|
-
element:
|
|
211
|
+
element: _("revenue", /* @__PURE__ */ m(S, {}))
|
|
208
212
|
}),
|
|
209
|
-
/* @__PURE__ */
|
|
213
|
+
/* @__PURE__ */ m(u, {
|
|
210
214
|
path: "publisher/profile",
|
|
211
|
-
element:
|
|
215
|
+
element: _("publisher.profile", /* @__PURE__ */ m(K, {}))
|
|
212
216
|
}),
|
|
213
|
-
/* @__PURE__ */
|
|
217
|
+
/* @__PURE__ */ m(u, {
|
|
214
218
|
path: "settings",
|
|
215
|
-
element:
|
|
219
|
+
element: _("settings", /* @__PURE__ */ m(B, {}))
|
|
216
220
|
}),
|
|
217
|
-
/* @__PURE__ */
|
|
221
|
+
/* @__PURE__ */ m(u, {
|
|
218
222
|
path: "*",
|
|
219
|
-
element: /* @__PURE__ */
|
|
223
|
+
element: /* @__PURE__ */ m(g, {})
|
|
220
224
|
})
|
|
221
225
|
]
|
|
222
226
|
}),
|
|
223
|
-
/* @__PURE__ */
|
|
224
|
-
element: /* @__PURE__ */
|
|
227
|
+
/* @__PURE__ */ h(u, {
|
|
228
|
+
element: /* @__PURE__ */ m(oe, {}),
|
|
225
229
|
children: [
|
|
226
|
-
/* @__PURE__ */
|
|
230
|
+
/* @__PURE__ */ m(u, {
|
|
227
231
|
path: "oauth",
|
|
228
|
-
element:
|
|
232
|
+
element: _("oauth", /* @__PURE__ */ m(k, {}))
|
|
229
233
|
}),
|
|
230
|
-
/* @__PURE__ */
|
|
234
|
+
/* @__PURE__ */ m(u, {
|
|
231
235
|
path: "oauth/new",
|
|
232
|
-
element:
|
|
236
|
+
element: _("oauth.create", /* @__PURE__ */ m(A, {}))
|
|
233
237
|
}),
|
|
234
|
-
/* @__PURE__ */
|
|
238
|
+
/* @__PURE__ */ m(u, {
|
|
235
239
|
path: "oauth/callback",
|
|
236
|
-
element:
|
|
240
|
+
element: _("oauth.callback", /* @__PURE__ */ m(O, {}))
|
|
237
241
|
}),
|
|
238
|
-
/* @__PURE__ */
|
|
242
|
+
/* @__PURE__ */ m(u, {
|
|
239
243
|
path: "oauth/:clientId",
|
|
240
|
-
element:
|
|
244
|
+
element: _("oauth.detail", /* @__PURE__ */ m(j, {}))
|
|
241
245
|
}),
|
|
242
|
-
/* @__PURE__ */
|
|
246
|
+
/* @__PURE__ */ m(u, {
|
|
243
247
|
path: "api-keys",
|
|
244
|
-
element:
|
|
248
|
+
element: _("apiKeys", /* @__PURE__ */ m(M, {}))
|
|
245
249
|
}),
|
|
246
|
-
/* @__PURE__ */
|
|
250
|
+
/* @__PURE__ */ m(u, {
|
|
247
251
|
path: "api-keys/new",
|
|
248
|
-
element:
|
|
252
|
+
element: _("apiKeys.create", /* @__PURE__ */ m(N, {}))
|
|
249
253
|
}),
|
|
250
|
-
/* @__PURE__ */
|
|
254
|
+
/* @__PURE__ */ m(u, {
|
|
251
255
|
path: "docs",
|
|
252
|
-
element:
|
|
256
|
+
element: _("docs", /* @__PURE__ */ m(R, {}))
|
|
253
257
|
}),
|
|
254
|
-
/* @__PURE__ */
|
|
258
|
+
/* @__PURE__ */ m(u, {
|
|
255
259
|
path: "resources",
|
|
256
|
-
element:
|
|
260
|
+
element: _("resources", /* @__PURE__ */ m(z, {}))
|
|
257
261
|
})
|
|
258
262
|
]
|
|
259
263
|
})
|
|
@@ -261,6 +265,6 @@ function oe() {
|
|
|
261
265
|
});
|
|
262
266
|
}
|
|
263
267
|
//#endregion
|
|
264
|
-
export {
|
|
268
|
+
export { se as DevportalRoutes };
|
|
265
269
|
|
|
266
270
|
//# sourceMappingURL=DevportalRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevportalRoutes.js","names":[],"sources":["../../src/devportal/DevportalRoutes.tsx"],"sourcesContent":["import { Suspense, lazy, useEffect, type ReactNode } from \"react\";\nimport { Routes, Route, Navigate, Outlet, useLocation } from \"react-router\";\nimport { LoadingState } from \"./components/LoadingState\";\nimport { FeatureFlaggedRoute } from \"./components/FeatureFlaggedRoute\";\nimport { TelemetryErrorBoundary } from \"./components/TelemetryErrorBoundary\";\nimport { OrgSwitcher } from \"./components/SectionNav\";\nimport { useDevportal } from \"./providers/DevportalProvider\";\n\n/**\n * Catch-all redirect target for the unmatched `*` route. Uses the\n * DevportalProvider's `basePath` and `navigate` so the redirect works\n * regardless of the integration mode (shell or standalone). Falls back to a\n * relative Navigate when neither is wired, which is the standalone/test path.\n */\nfunction CatchAllRedirect() {\n const { basePath, navigate } = useDevportal();\n useEffect(() => {\n if (basePath && navigate) {\n const target = basePath.endsWith(\"/\") ? basePath.slice(0, -1) : basePath;\n navigate(target || \"/\");\n }\n }, [basePath, navigate]);\n if (basePath && navigate) return null;\n return <Navigate to=\"..\" replace />;\n}\n\n/**\n * Wrap a page element with the per-route feature flag gate and a\n * telemetry-emitting error boundary. The flag name follows\n * `devportal.<page-slug>` convention; when disabled the user sees a\n * graceful fallback instead of a route-level crash.\n *\n * Per `dev/platform/context/commercial/feature-flags` and spec\n * `microfrontends/47-FRONTEND-EVENT-BUS.md` (error.boundary emission).\n */\nfunction gated(slug: string, element: ReactNode): ReactNode {\n return (\n <TelemetryErrorBoundary scope={slug}>\n <FeatureFlaggedRoute flag={`devportal.${slug}`}>\n {element}\n </FeatureFlaggedRoute>\n </TelemetryErrorBoundary>\n );\n}\n\n// Eager load the main dashboard page\nimport { DashboardPage } from \"./pages/DashboardPage\";\n\n// Lazy load all other pages\nconst OrganizationsPage = lazy(() =>\n import(\"./pages/OrganizationsPage\").then((m) => ({\n default: m.OrganizationsPage,\n })),\n);\nconst OrganizationDetailPage = lazy(() =>\n import(\"./pages/OrganizationDetailPage\").then((m) => ({\n default: m.OrganizationDetailPage,\n })),\n);\nconst CreateOrganizationPage = lazy(() =>\n import(\"./pages/CreateOrganizationPage\").then((m) => ({\n default: m.CreateOrganizationPage,\n })),\n);\nconst OrganizationMembersPage = lazy(() =>\n import(\"./pages/OrganizationMembersPage\").then((m) => ({\n default: m.OrganizationMembersPage,\n })),\n);\nconst RevenueDashboardPage = lazy(() =>\n import(\"./pages/RevenueDashboardPage\").then((m) => ({\n default: m.RevenueDashboardPage,\n })),\n);\nconst ApplicationsPage = lazy(() =>\n import(\"./pages/ApplicationsPage\").then((m) => ({\n default: m.ApplicationsPage,\n })),\n);\nconst ApplicationDetailPage = lazy(() =>\n import(\"./pages/ApplicationDetailPage\").then((m) => ({\n default: m.ApplicationDetailPage,\n })),\n);\nconst CreateApplicationPage = lazy(() =>\n import(\"./pages/CreateApplicationPage\").then((m) => ({\n default: m.CreateApplicationPage,\n })),\n);\nconst EditApplicationPage = lazy(() =>\n import(\"./pages/EditApplicationPage\").then((m) => ({\n default: m.EditApplicationPage,\n })),\n);\nconst ApplicationVersionsPage = lazy(() =>\n import(\"./pages/ApplicationVersionsPage\").then((m) => ({\n default: m.ApplicationVersionsPage,\n })),\n);\nconst OAuthCallbackPage = lazy(() =>\n import(\"./pages/OAuthCallbackPage\").then((m) => ({\n default: m.OAuthCallbackPage,\n })),\n);\nconst OAuthClientsPage = lazy(() =>\n import(\"./pages/OAuthClientsPage\").then((m) => ({\n default: m.OAuthClientsPage,\n })),\n);\nconst CreateOAuthClientPage = lazy(() =>\n import(\"./pages/CreateOAuthClientPage\").then((m) => ({\n default: m.CreateOAuthClientPage,\n })),\n);\nconst OAuthClientDetailPage = lazy(() =>\n import(\"./pages/OAuthClientDetailPage\").then((m) => ({\n default: m.OAuthClientDetailPage,\n })),\n);\nconst ApiKeysPage = lazy(() =>\n import(\"./pages/ApiKeysPage\").then((m) => ({ default: m.ApiKeysPage })),\n);\nconst CreateApiKeyPage = lazy(() =>\n import(\"./pages/CreateApiKeyPage\").then((m) => ({\n default: m.CreateApiKeyPage,\n })),\n);\nconst WebhooksPage = lazy(() =>\n import(\"./pages/WebhooksPage\").then((m) => ({ default: m.WebhooksPage })),\n);\nconst CreateWebhookPage = lazy(() =>\n import(\"./pages/CreateWebhookPage\").then((m) => ({\n default: m.CreateWebhookPage,\n })),\n);\nconst WebhookDetailPage = lazy(() =>\n import(\"./pages/WebhookDetailPage\").then((m) => ({\n default: m.WebhookDetailPage,\n })),\n);\nconst AnalyticsDashboardPage = lazy(() =>\n import(\"./pages/AnalyticsDashboardPage\").then((m) => ({\n default: m.AnalyticsDashboardPage,\n })),\n);\nconst DocumentationPage = lazy(() =>\n import(\"./pages/DocumentationPage\").then((m) => ({\n default: m.DocumentationPage,\n })),\n);\nconst ResourcesPage = lazy(() =>\n import(\"./pages/ResourcesPage\").then((m) => ({ default: m.ResourcesPage })),\n);\nconst SettingsPage = lazy(() =>\n import(\"./pages/SettingsPage\").then((m) => ({ default: m.SettingsPage })),\n);\nconst PublishPage = lazy(() =>\n import(\"./pages/PublishPage\").then((m) => ({ default: m.PublishPage })),\n);\nconst AppLogsPage = lazy(() =>\n import(\"./pages/AppLogsPage\").then((m) => ({ default: m.AppLogsPage })),\n);\nconst DelegationsPage = lazy(() =>\n import(\"./pages/DelegationsPage\").then((m) => ({\n default: m.DelegationsPage,\n })),\n);\nconst ListingPreviewPage = lazy(() =>\n import(\"./pages/ListingPreviewPage\").then((m) => ({\n default: m.ListingPreviewPage,\n })),\n);\nconst StoreSubmissionPage = lazy(() =>\n import(\"./pages/StoreSubmissionPage\").then((m) => ({\n default: m.StoreSubmissionPage,\n })),\n);\nconst PublisherProfilePage = lazy(() =>\n import(\"./pages/PublisherProfilePage\").then((m) => ({\n default: m.PublisherProfilePage,\n })),\n);\nconst SetupPage = lazy(() =>\n import(\"./pages/SetupPage\").then((m) => ({ default: m.SetupPage })),\n);\nconst InvitationDecisionPage = lazy(() =>\n import(\"./pages/InvitationDecisionPage\").then((m) => ({\n default: m.InvitationDecisionPage,\n })),\n);\nconst SellerDashboardPage = lazy(() =>\n import(\"./pages/SellerDashboardPage\").then((m) => ({\n default: m.SellerDashboardPage,\n })),\n);\nconst SellerItemsPage = lazy(() =>\n import(\"./pages/SellerItemsPage\").then((m) => ({\n default: m.SellerItemsPage,\n })),\n);\nconst CreatePhysicalItemPage = lazy(() =>\n import(\"./pages/CreatePhysicalItemPage\").then((m) => ({\n default: m.CreatePhysicalItemPage,\n })),\n);\nconst SellerOrdersPage = lazy(() =>\n import(\"./pages/SellerOrdersPage\").then((m) => ({\n default: m.SellerOrdersPage,\n })),\n);\nconst EditPhysicalItemPage = lazy(() =>\n import(\"./pages/EditPhysicalItemPage\").then((m) => ({\n default: m.EditPhysicalItemPage,\n })),\n);\n\n/** Layout for app-context routes (/apps/:appId/*) — adds the org context bar. */\nfunction AppLayout() {\n return (\n <>\n <OrgContextBar />\n <Outlet />\n </>\n );\n}\n\n/** Slim org-context bar shown above every devportal page. */\nfunction OrgContextBar() {\n return (\n <div className=\"flex items-center justify-end border-b border-border-subtle bg-bg-surface/40 px-4 py-2\">\n <OrgSwitcher />\n </div>\n );\n}\n\n/**\n * The org switcher only matters on pages that actually read the active-org\n * state it controls (dashboard, apps, webhooks, analytics, revenue, create\n * flows, etc). Pages that are already scoped by their own route param (an\n * org/item detail page) or that list every org regardless of which one is\n * \"active\" (the org list) don't use that state at all, so showing a\n * switcher there is just confusing. Matched by path suffix so it doesn't\n * care which basePath a given product shell mounts devportal under, and\n * works for both the digital (`organizations`) and seller\n * (`seller/organizations`) route families since they share the same pages.\n */\nfunction hideOrgSwitcher(pathname: string): boolean {\n const segments = pathname.split(\"/\").filter(Boolean);\n const last = segments[segments.length - 1];\n const secondLast = segments[segments.length - 2];\n const thirdLast = segments[segments.length - 3];\n\n // organizations | seller/organizations (list)\n if (last === \"organizations\") return true;\n // organizations/:id | seller/organizations/:id (detail) — not /new\n if (secondLast === \"organizations\" && last !== \"new\") return true;\n // seller/items/:id (item edit) — not /new\n if (thirdLast === \"seller\" && secondLast === \"items\" && last !== \"new\")\n return true;\n\n return false;\n}\n\n/** Layout wrapping org-context devportal routes — adds the org context bar,\n * except on routes that don't depend on the active-org it controls. */\nfunction GlobalLayout() {\n const { pathname } = useLocation();\n return (\n <>\n {!hideOrgSwitcher(pathname) && <OrgContextBar />}\n <Outlet />\n </>\n );\n}\n\n/** Layout for pages that are not org-scoped (OAuth, API Keys, Docs, Resources). */\nfunction PlainLayout() {\n return <Outlet />;\n}\n\nexport function DevportalRoutes() {\n return (\n <Suspense fallback={<LoadingState message=\"Loading page...\" />}>\n <Routes>\n {/* Setup wizard — no SectionNav */}\n <Route path=\"setup\" element={gated(\"setup\", <SetupPage />)} />\n <Route\n path=\"invitations/:token\"\n element={\n <TelemetryErrorBoundary scope=\"invitations.accept\">\n <InvitationDecisionPage />\n </TelemetryErrorBoundary>\n }\n />\n\n {/* App-context routes (/apps/:appId/*) — no SectionNav.\n The app-level tab bar inside ApplicationDetailPage is the nav here. */}\n <Route element={<AppLayout />}>\n <Route\n path=\"apps/:appId\"\n element={gated(\"apps.detail\", <ApplicationDetailPage />)}\n />\n <Route\n path=\"apps/:appId/edit\"\n element={gated(\"apps.edit\", <EditApplicationPage />)}\n />\n <Route\n path=\"apps/:appId/versions\"\n element={gated(\"apps.versions\", <ApplicationVersionsPage />)}\n />\n <Route\n path=\"apps/:appId/publish\"\n element={gated(\"apps.publish\", <PublishPage />)}\n />\n <Route\n path=\"apps/:appId/store-submission\"\n element={gated(\"apps.storeSubmission\", <StoreSubmissionPage />)}\n />\n <Route\n path=\"apps/:appId/listing\"\n element={gated(\"apps.listing\", <ListingPreviewPage />)}\n />\n <Route\n path=\"apps/:appId/logs\"\n element={gated(\"apps.logs\", <AppLogsPage />)}\n />\n <Route\n path=\"apps/:appId/webhooks\"\n element={gated(\"apps.webhooks\", <WebhooksPage />)}\n />\n <Route\n path=\"apps/:appId/webhooks/new\"\n element={gated(\"apps.webhooks.create\", <CreateWebhookPage />)}\n />\n <Route\n path=\"apps/:appId/webhooks/:webhookId\"\n element={gated(\"apps.webhooks.detail\", <WebhookDetailPage />)}\n />\n <Route\n path=\"apps/:appId/analytics\"\n element={gated(\"apps.analytics\", <AnalyticsDashboardPage />)}\n />\n </Route>\n\n {/* All other routes — with SectionNav */}\n <Route element={<GlobalLayout />}>\n {/* Dashboard */}\n <Route index element={gated(\"dashboard\", <DashboardPage />)} />\n\n {/* Organizations */}\n <Route\n path=\"organizations\"\n element={gated(\"organizations\", <OrganizationsPage />)}\n />\n <Route\n path=\"organizations/new\"\n element={gated(\"organizations.create\", <CreateOrganizationPage />)}\n />\n <Route\n path=\"organizations/:orgId\"\n element={gated(\"organizations.detail\", <OrganizationDetailPage />)}\n />\n <Route\n path=\"organizations/:orgId/members\"\n element={gated(\n \"organizations.members\",\n <OrganizationMembersPage />,\n )}\n />\n <Route\n path=\"organizations/:orgId/revenue\"\n element={gated(\"organizations.revenue\", <RevenueDashboardPage />)}\n />\n\n {/* Applications list and create */}\n <Route path=\"apps\" element={gated(\"apps\", <ApplicationsPage />)} />\n <Route\n path=\"apps/new\"\n element={gated(\"apps.create\", <CreateApplicationPage />)}\n />\n\n {/* Seller routes */}\n <Route\n path=\"seller\"\n element={gated(\"seller.dashboard\", <SellerDashboardPage />)}\n />\n <Route\n path=\"seller/items\"\n element={gated(\"seller.items\", <SellerItemsPage />)}\n />\n <Route\n path=\"seller/items/new\"\n element={gated(\"seller.items.create\", <CreatePhysicalItemPage />)}\n />\n <Route\n path=\"seller/items/:itemId\"\n element={gated(\"seller.items.edit\", <EditPhysicalItemPage />)}\n />\n <Route\n path=\"seller/orders\"\n element={gated(\"seller.orders\", <SellerOrdersPage />)}\n />\n\n {/* Seller organizations — same pages as the regular \"Organizations\"\n routes above, reused as-is. They tell PHYSICAL from DIGITAL by\n route (useIsSellerSection), not by a separate component. See\n DeveloperOrgKind (BOFF-7285). */}\n <Route\n path=\"seller/organizations\"\n element={gated(\"seller.organizations\", <OrganizationsPage />)}\n />\n <Route\n path=\"seller/organizations/new\"\n element={gated(\n \"seller.organizations.create\",\n <CreateOrganizationPage />,\n )}\n />\n <Route\n path=\"seller/organizations/:orgId\"\n element={gated(\n \"seller.organizations.detail\",\n <OrganizationDetailPage />,\n )}\n />\n <Route\n path=\"seller/organizations/:orgId/members\"\n element={gated(\n \"seller.organizations.members\",\n <OrganizationMembersPage />,\n )}\n />\n <Route\n path=\"seller/organizations/:orgId/revenue\"\n element={gated(\n \"seller.organizations.revenue\",\n <RevenueDashboardPage />,\n )}\n />\n\n {/* Delegations */}\n <Route\n path=\"delegations\"\n element={gated(\"delegations\", <DelegationsPage />)}\n />\n\n {/* Global Webhooks */}\n <Route\n path=\"webhooks/new\"\n element={gated(\"webhooks.create\", <CreateWebhookPage />)}\n />\n <Route\n path=\"webhooks\"\n element={gated(\"webhooks\", <WebhooksPage />)}\n />\n\n {/* Analytics & Revenue */}\n <Route\n path=\"analytics\"\n element={gated(\"analytics\", <AnalyticsDashboardPage />)}\n />\n <Route\n path=\"revenue\"\n element={gated(\"revenue\", <RevenueDashboardPage />)}\n />\n\n {/* Publisher */}\n <Route\n path=\"publisher/profile\"\n element={gated(\"publisher.profile\", <PublisherProfilePage />)}\n />\n\n {/* Settings */}\n <Route\n path=\"settings\"\n element={gated(\"settings\", <SettingsPage />)}\n />\n\n {/* Catch-all redirect to dashboard */}\n <Route path=\"*\" element={<CatchAllRedirect />} />\n </Route>\n\n {/* Non-org-context routes — no OrgContextBar */}\n <Route element={<PlainLayout />}>\n {/* OAuth Clients */}\n <Route path=\"oauth\" element={gated(\"oauth\", <OAuthClientsPage />)} />\n <Route\n path=\"oauth/new\"\n element={gated(\"oauth.create\", <CreateOAuthClientPage />)}\n />\n <Route\n path=\"oauth/callback\"\n element={gated(\"oauth.callback\", <OAuthCallbackPage />)}\n />\n <Route\n path=\"oauth/:clientId\"\n element={gated(\"oauth.detail\", <OAuthClientDetailPage />)}\n />\n\n {/* API Keys */}\n <Route path=\"api-keys\" element={gated(\"apiKeys\", <ApiKeysPage />)} />\n <Route\n path=\"api-keys/new\"\n element={gated(\"apiKeys.create\", <CreateApiKeyPage />)}\n />\n\n {/* Documentation & Resources */}\n <Route path=\"docs\" element={gated(\"docs\", <DocumentationPage />)} />\n <Route\n path=\"resources\"\n element={gated(\"resources\", <ResourcesPage />)}\n />\n </Route>\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":";;;;;;;;;;AAcA,SAAS,IAAmB;CAC1B,IAAM,EAAE,aAAU,gBAAa,GAAc;AAQ7C,QAPA,SAAgB;AACd,EAAI,KAAY,KAEd,GADe,EAAS,SAAS,IAAI,GAAG,EAAS,MAAM,GAAG,GAAG,GAAG,MAC7C,IAAI;IAExB,CAAC,GAAU,EAAS,CAAC,EACpB,KAAY,IAAiB,OAC1B,kBAAC,GAAD;EAAU,IAAG;EAAK,SAAA;EAAU,CAAA;;AAYrC,SAAS,EAAM,GAAc,GAA+B;AAC1D,QACE,kBAAC,GAAD;EAAwB,OAAO;YAC7B,kBAAC,GAAD;GAAqB,MAAM,aAAa;aACrC;GACmB,CAAA;EACC,CAAA;;AAQ7B,IAAM,IAAoB,QACxB,OAAO,gCAA6B,MAAM,OAAO,EAC/C,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAyB,QAC7B,OAAO,qCAAkC,MAAM,OAAO,EACpD,SAAS,EAAE,wBACZ,EAAE,CACJ,EACK,IAAyB,QAC7B,OAAO,qCAAkC,MAAM,OAAO,EACpD,SAAS,EAAE,wBACZ,EAAE,CACJ,EACK,IAA0B,QAC9B,OAAO,sCAAmC,MAAM,OAAO,EACrD,SAAS,EAAE,yBACZ,EAAE,CACJ,EACK,IAAuB,QAC3B,OAAO,mCAAgC,MAAM,OAAO,EAClD,SAAS,EAAE,sBACZ,EAAE,CACJ,EACK,IAAmB,QACvB,OAAO,+BAA4B,MAAM,OAAO,EAC9C,SAAS,EAAE,kBACZ,EAAE,CACJ,EACK,IAAwB,QAC5B,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,uBACZ,EAAE,CACJ,EACK,IAAwB,QAC5B,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,uBACZ,EAAE,CACJ,EACK,IAAsB,QAC1B,OAAO,kCAA+B,MAAM,OAAO,EACjD,SAAS,EAAE,qBACZ,EAAE,CACJ,EACK,IAA0B,QAC9B,OAAO,sCAAmC,MAAM,OAAO,EACrD,SAAS,EAAE,yBACZ,EAAE,CACJ,EACK,IAAoB,QACxB,OAAO,gCAA6B,MAAM,OAAO,EAC/C,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAmB,QACvB,OAAO,+BAA4B,MAAM,OAAO,EAC9C,SAAS,EAAE,kBACZ,EAAE,CACJ,EACK,IAAwB,QAC5B,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,uBACZ,EAAE,CACJ,EACK,IAAwB,QAC5B,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,uBACZ,EAAE,CACJ,EACK,IAAc,QAClB,OAAO,0BAAuB,MAAM,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CACxE,EACK,IAAmB,QACvB,OAAO,+BAA4B,MAAM,OAAO,EAC9C,SAAS,EAAE,kBACZ,EAAE,CACJ,EACK,IAAe,QACnB,OAAO,2BAAwB,MAAM,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAC1E,EACK,IAAoB,QACxB,OAAO,gCAA6B,MAAM,OAAO,EAC/C,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAoB,QACxB,OAAO,gCAA6B,MAAM,OAAO,EAC/C,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAyB,QAC7B,OAAO,qCAAkC,MAAM,OAAO,EACpD,SAAS,EAAE,wBACZ,EAAE,CACJ,EACK,IAAoB,QACxB,OAAO,gCAA6B,MAAM,OAAO,EAC/C,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAgB,QACpB,OAAO,4BAAyB,MAAM,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAC5E,EACK,IAAe,QACnB,OAAO,2BAAwB,MAAM,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAC1E,EACK,IAAc,QAClB,OAAO,0BAAuB,MAAM,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CACxE,EACK,IAAc,QAClB,OAAO,0BAAuB,MAAM,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CACxE,EACK,IAAkB,QACtB,OAAO,8BAA2B,MAAM,OAAO,EAC7C,SAAS,EAAE,iBACZ,EAAE,CACJ,EACK,IAAqB,QACzB,OAAO,iCAA8B,MAAM,OAAO,EAChD,SAAS,EAAE,oBACZ,EAAE,CACJ,EACK,IAAsB,QAC1B,OAAO,kCAA+B,MAAM,OAAO,EACjD,SAAS,EAAE,qBACZ,EAAE,CACJ,EACK,IAAuB,QAC3B,OAAO,mCAAgC,MAAM,OAAO,EAClD,SAAS,EAAE,sBACZ,EAAE,CACJ,EACK,IAAY,QAChB,OAAO,wBAAqB,MAAM,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CACpE,EACK,IAAyB,QAC7B,OAAO,qCAAkC,MAAM,OAAO,EACpD,SAAS,EAAE,wBACZ,EAAE,CACJ,EACK,IAAsB,QAC1B,OAAO,kCAA+B,MAAM,OAAO,EACjD,SAAS,EAAE,qBACZ,EAAE,CACJ,EACK,IAAkB,QACtB,OAAO,8BAA2B,MAAM,OAAO,EAC7C,SAAS,EAAE,iBACZ,EAAE,CACJ,EACK,IAAyB,QAC7B,OAAO,qCAAkC,MAAM,OAAO,EACpD,SAAS,EAAE,wBACZ,EAAE,CACJ,EACK,IAAmB,QACvB,OAAO,+BAA4B,MAAM,OAAO,EAC9C,SAAS,EAAE,kBACZ,EAAE,CACJ,EACK,IAAuB,QAC3B,OAAO,mCAAgC,MAAM,OAAO,EAClD,SAAS,EAAE,sBACZ,EAAE,CACJ;AAGD,SAAS,KAAY;AACnB,QACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAiB,CAAA,EACjB,kBAAC,GAAD,EAAU,CAAA,CACT,EAAA,CAAA;;AAKP,SAAS,IAAgB;AACvB,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD,EAAe,CAAA;EACX,CAAA;;AAeV,SAAS,GAAgB,GAA2B;CAClD,IAAM,IAAW,EAAS,MAAM,IAAI,CAAC,OAAO,QAAQ,EAC9C,IAAO,EAAS,EAAS,SAAS,IAClC,IAAa,EAAS,EAAS,SAAS,IACxC,IAAY,EAAS,EAAS,SAAS;AAU7C,QAPI,MAAS,mBAET,MAAe,mBAAmB,MAAS,SAE3C,MAAc,YAAY,MAAe,WAAW,MAAS;;AAQnE,SAAS,KAAe;CACtB,IAAM,EAAE,gBAAa,GAAa;AAClC,QACE,kBAAA,GAAA,EAAA,UAAA,CACG,CAAC,GAAgB,EAAS,IAAI,kBAAC,GAAD,EAAiB,CAAA,EAChD,kBAAC,GAAD,EAAU,CAAA,CACT,EAAA,CAAA;;AAKP,SAAS,KAAc;AACrB,QAAO,kBAAC,GAAD,EAAU,CAAA;;AAGnB,SAAgB,KAAkB;AAChC,QACE,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,EAAc,SAAQ,mBAAoB,CAAA;YAC5D,kBAAC,IAAD,EAAA,UAAA;GAEE,kBAAC,GAAD;IAAO,MAAK;IAAQ,SAAS,EAAM,SAAS,kBAAC,GAAD,EAAa,CAAA,CAAC;IAAI,CAAA;GAC9D,kBAAC,GAAD;IACE,MAAK;IACL,SACE,kBAAC,GAAD;KAAwB,OAAM;eAC5B,kBAAC,GAAD,EAA0B,CAAA;KACH,CAAA;IAE3B,CAAA;GAIF,kBAAC,GAAD;IAAO,SAAS,kBAAC,IAAD,EAAa,CAAA;cAA7B;KACE,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,eAAe,kBAAC,GAAD,EAAyB,CAAA,CAAC;MACxD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,aAAa,kBAAC,GAAD,EAAuB,CAAA,CAAC;MACpD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,iBAAiB,kBAAC,GAAD,EAA2B,CAAA,CAAC;MAC5D,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,gBAAgB,kBAAC,GAAD,EAAe,CAAA,CAAC;MAC/C,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAAuB,CAAA,CAAC;MAC/D,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,gBAAgB,kBAAC,GAAD,EAAsB,CAAA,CAAC;MACtD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,aAAa,kBAAC,GAAD,EAAe,CAAA,CAAC;MAC5C,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,iBAAiB,kBAAC,GAAD,EAAgB,CAAA,CAAC;MACjD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAAqB,CAAA,CAAC;MAC7D,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAAqB,CAAA,CAAC;MAC7D,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,kBAAkB,kBAAC,GAAD,EAA0B,CAAA,CAAC;MAC5D,CAAA;KACI;;GAGR,kBAAC,GAAD;IAAO,SAAS,kBAAC,IAAD,EAAgB,CAAA;cAAhC;KAEE,kBAAC,GAAD;MAAO,OAAA;MAAM,SAAS,EAAM,aAAa,kBAAC,GAAD,EAAiB,CAAA,CAAC;MAAI,CAAA;KAG/D,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,iBAAiB,kBAAC,GAAD,EAAqB,CAAA,CAAC;MACtD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAA0B,CAAA,CAAC;MAClE,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAA0B,CAAA,CAAC;MAClE,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EACP,yBACA,kBAAC,GAAD,EAA2B,CAAA,CAC5B;MACD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,yBAAyB,kBAAC,GAAD,EAAwB,CAAA,CAAC;MACjE,CAAA;KAGF,kBAAC,GAAD;MAAO,MAAK;MAAO,SAAS,EAAM,QAAQ,kBAAC,GAAD,EAAoB,CAAA,CAAC;MAAI,CAAA;KACnE,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,eAAe,kBAAC,GAAD,EAAyB,CAAA,CAAC;MACxD,CAAA;KAGF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,oBAAoB,kBAAC,GAAD,EAAuB,CAAA,CAAC;MAC3D,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,gBAAgB,kBAAC,GAAD,EAAmB,CAAA,CAAC;MACnD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,uBAAuB,kBAAC,GAAD,EAA0B,CAAA,CAAC;MACjE,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,qBAAqB,kBAAC,GAAD,EAAwB,CAAA,CAAC;MAC7D,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,iBAAiB,kBAAC,GAAD,EAAoB,CAAA,CAAC;MACrD,CAAA;KAMF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,wBAAwB,kBAAC,GAAD,EAAqB,CAAA,CAAC;MAC7D,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EACP,+BACA,kBAAC,GAAD,EAA0B,CAAA,CAC3B;MACD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EACP,+BACA,kBAAC,GAAD,EAA0B,CAAA,CAC3B;MACD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EACP,gCACA,kBAAC,GAAD,EAA2B,CAAA,CAC5B;MACD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EACP,gCACA,kBAAC,GAAD,EAAwB,CAAA,CACzB;MACD,CAAA;KAGF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,eAAe,kBAAC,GAAD,EAAmB,CAAA,CAAC;MAClD,CAAA;KAGF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,mBAAmB,kBAAC,GAAD,EAAqB,CAAA,CAAC;MACxD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,YAAY,kBAAC,GAAD,EAAgB,CAAA,CAAC;MAC5C,CAAA;KAGF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,aAAa,kBAAC,GAAD,EAA0B,CAAA,CAAC;MACvD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,WAAW,kBAAC,GAAD,EAAwB,CAAA,CAAC;MACnD,CAAA;KAGF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,qBAAqB,kBAAC,GAAD,EAAwB,CAAA,CAAC;MAC7D,CAAA;KAGF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,YAAY,kBAAC,GAAD,EAAgB,CAAA,CAAC;MAC5C,CAAA;KAGF,kBAAC,GAAD;MAAO,MAAK;MAAI,SAAS,kBAAC,GAAD,EAAoB,CAAA;MAAI,CAAA;KAC3C;;GAGR,kBAAC,GAAD;IAAO,SAAS,kBAAC,IAAD,EAAe,CAAA;cAA/B;KAEE,kBAAC,GAAD;MAAO,MAAK;MAAQ,SAAS,EAAM,SAAS,kBAAC,GAAD,EAAoB,CAAA,CAAC;MAAI,CAAA;KACrE,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,gBAAgB,kBAAC,GAAD,EAAyB,CAAA,CAAC;MACzD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,kBAAkB,kBAAC,GAAD,EAAqB,CAAA,CAAC;MACvD,CAAA;KACF,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,gBAAgB,kBAAC,GAAD,EAAyB,CAAA,CAAC;MACzD,CAAA;KAGF,kBAAC,GAAD;MAAO,MAAK;MAAW,SAAS,EAAM,WAAW,kBAAC,GAAD,EAAe,CAAA,CAAC;MAAI,CAAA;KACrE,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,kBAAkB,kBAAC,GAAD,EAAoB,CAAA,CAAC;MACtD,CAAA;KAGF,kBAAC,GAAD;MAAO,MAAK;MAAO,SAAS,EAAM,QAAQ,kBAAC,GAAD,EAAqB,CAAA,CAAC;MAAI,CAAA;KACpE,kBAAC,GAAD;MACE,MAAK;MACL,SAAS,EAAM,aAAa,kBAAC,GAAD,EAAiB,CAAA,CAAC;MAC9C,CAAA;KACI;;GACD,EAAA,CAAA;EACA,CAAA"}
|
|
1
|
+
{"version":3,"file":"DevportalRoutes.js","names":[],"sources":["../../src/devportal/DevportalRoutes.tsx"],"sourcesContent":["import { Suspense, lazy, useEffect, type ReactNode } from \"react\";\nimport { Routes, Route, Navigate, Outlet, useLocation } from \"react-router\";\nimport { LoadingState } from \"./components/LoadingState\";\nimport { FeatureFlaggedRoute } from \"./components/FeatureFlaggedRoute\";\nimport { TelemetryErrorBoundary } from \"./components/TelemetryErrorBoundary\";\nimport { OrgSwitcher } from \"./components/SectionNav\";\nimport { useDevportal } from \"./providers/DevportalProvider\";\n\n/**\n * Catch-all redirect target for the unmatched `*` route. Uses the\n * DevportalProvider's `basePath` and `navigate` so the redirect works\n * regardless of the integration mode (shell or standalone). Falls back to a\n * relative Navigate when neither is wired, which is the standalone/test path.\n */\nfunction CatchAllRedirect() {\n const { basePath, navigate } = useDevportal();\n useEffect(() => {\n if (basePath && navigate) {\n const target = basePath.endsWith(\"/\") ? basePath.slice(0, -1) : basePath;\n navigate(target || \"/\");\n }\n }, [basePath, navigate]);\n if (basePath && navigate) return null;\n return <Navigate to=\"..\" replace />;\n}\n\n/**\n * Wrap a page element with the per-route feature flag gate and a\n * telemetry-emitting error boundary. The flag name follows\n * `devportal.<page-slug>` convention; when disabled the user sees a\n * graceful fallback instead of a route-level crash.\n *\n * Per `dev/platform/context/commercial/feature-flags` and spec\n * `microfrontends/47-FRONTEND-EVENT-BUS.md` (error.boundary emission).\n */\nfunction gated(slug: string, element: ReactNode): ReactNode {\n return (\n <TelemetryErrorBoundary scope={slug}>\n <FeatureFlaggedRoute flag={`devportal.${slug}`}>\n {element}\n </FeatureFlaggedRoute>\n </TelemetryErrorBoundary>\n );\n}\n\n// Eager load the main dashboard page\nimport { DashboardPage } from \"./pages/DashboardPage\";\n\n// Lazy load all other pages\nconst OrganizationsPage = lazy(() =>\n import(\"./pages/OrganizationsPage\").then((m) => ({\n default: m.OrganizationsPage,\n })),\n);\nconst OrganizationDetailPage = lazy(() =>\n import(\"./pages/OrganizationDetailPage\").then((m) => ({\n default: m.OrganizationDetailPage,\n })),\n);\nconst CreateOrganizationPage = lazy(() =>\n import(\"./pages/CreateOrganizationPage\").then((m) => ({\n default: m.CreateOrganizationPage,\n })),\n);\nconst OrganizationMembersPage = lazy(() =>\n import(\"./pages/OrganizationMembersPage\").then((m) => ({\n default: m.OrganizationMembersPage,\n })),\n);\nconst RevenueDashboardPage = lazy(() =>\n import(\"./pages/RevenueDashboardPage\").then((m) => ({\n default: m.RevenueDashboardPage,\n })),\n);\nconst ApplicationsPage = lazy(() =>\n import(\"./pages/ApplicationsPage\").then((m) => ({\n default: m.ApplicationsPage,\n })),\n);\nconst ApplicationDetailPage = lazy(() =>\n import(\"./pages/ApplicationDetailPage\").then((m) => ({\n default: m.ApplicationDetailPage,\n })),\n);\nconst CreateApplicationPage = lazy(() =>\n import(\"./pages/CreateApplicationPage\").then((m) => ({\n default: m.CreateApplicationPage,\n })),\n);\nconst EditApplicationPage = lazy(() =>\n import(\"./pages/EditApplicationPage\").then((m) => ({\n default: m.EditApplicationPage,\n })),\n);\nconst ApplicationVersionsPage = lazy(() =>\n import(\"./pages/ApplicationVersionsPage\").then((m) => ({\n default: m.ApplicationVersionsPage,\n })),\n);\nconst OAuthCallbackPage = lazy(() =>\n import(\"./pages/OAuthCallbackPage\").then((m) => ({\n default: m.OAuthCallbackPage,\n })),\n);\nconst OAuthClientsPage = lazy(() =>\n import(\"./pages/OAuthClientsPage\").then((m) => ({\n default: m.OAuthClientsPage,\n })),\n);\nconst CreateOAuthClientPage = lazy(() =>\n import(\"./pages/CreateOAuthClientPage\").then((m) => ({\n default: m.CreateOAuthClientPage,\n })),\n);\nconst OAuthClientDetailPage = lazy(() =>\n import(\"./pages/OAuthClientDetailPage\").then((m) => ({\n default: m.OAuthClientDetailPage,\n })),\n);\nconst ApiKeysPage = lazy(() =>\n import(\"./pages/ApiKeysPage\").then((m) => ({ default: m.ApiKeysPage })),\n);\nconst CreateApiKeyPage = lazy(() =>\n import(\"./pages/CreateApiKeyPage\").then((m) => ({\n default: m.CreateApiKeyPage,\n })),\n);\nconst WebhooksPage = lazy(() =>\n import(\"./pages/WebhooksPage\").then((m) => ({ default: m.WebhooksPage })),\n);\nconst CreateWebhookPage = lazy(() =>\n import(\"./pages/CreateWebhookPage\").then((m) => ({\n default: m.CreateWebhookPage,\n })),\n);\nconst WebhookDetailPage = lazy(() =>\n import(\"./pages/WebhookDetailPage\").then((m) => ({\n default: m.WebhookDetailPage,\n })),\n);\nconst AnalyticsDashboardPage = lazy(() =>\n import(\"./pages/AnalyticsDashboardPage\").then((m) => ({\n default: m.AnalyticsDashboardPage,\n })),\n);\nconst DocumentationPage = lazy(() =>\n import(\"./pages/DocumentationPage\").then((m) => ({\n default: m.DocumentationPage,\n })),\n);\nconst ResourcesPage = lazy(() =>\n import(\"./pages/ResourcesPage\").then((m) => ({ default: m.ResourcesPage })),\n);\nconst SettingsPage = lazy(() =>\n import(\"./pages/SettingsPage\").then((m) => ({ default: m.SettingsPage })),\n);\nconst NodeLifecyclePage = lazy(() =>\n import(\"./pages/NodeLifecyclePage\").then((m) => ({\n default: m.NodeLifecyclePage,\n })),\n);\nconst PublishPage = lazy(() =>\n import(\"./pages/PublishPage\").then((m) => ({ default: m.PublishPage })),\n);\nconst AppLogsPage = lazy(() =>\n import(\"./pages/AppLogsPage\").then((m) => ({ default: m.AppLogsPage })),\n);\nconst DelegationsPage = lazy(() =>\n import(\"./pages/DelegationsPage\").then((m) => ({\n default: m.DelegationsPage,\n })),\n);\nconst ListingPreviewPage = lazy(() =>\n import(\"./pages/ListingPreviewPage\").then((m) => ({\n default: m.ListingPreviewPage,\n })),\n);\nconst StoreSubmissionPage = lazy(() =>\n import(\"./pages/StoreSubmissionPage\").then((m) => ({\n default: m.StoreSubmissionPage,\n })),\n);\nconst PublisherProfilePage = lazy(() =>\n import(\"./pages/PublisherProfilePage\").then((m) => ({\n default: m.PublisherProfilePage,\n })),\n);\nconst SetupPage = lazy(() =>\n import(\"./pages/SetupPage\").then((m) => ({ default: m.SetupPage })),\n);\nconst InvitationDecisionPage = lazy(() =>\n import(\"./pages/InvitationDecisionPage\").then((m) => ({\n default: m.InvitationDecisionPage,\n })),\n);\nconst SellerDashboardPage = lazy(() =>\n import(\"./pages/SellerDashboardPage\").then((m) => ({\n default: m.SellerDashboardPage,\n })),\n);\nconst SellerItemsPage = lazy(() =>\n import(\"./pages/SellerItemsPage\").then((m) => ({\n default: m.SellerItemsPage,\n })),\n);\nconst CreatePhysicalItemPage = lazy(() =>\n import(\"./pages/CreatePhysicalItemPage\").then((m) => ({\n default: m.CreatePhysicalItemPage,\n })),\n);\nconst SellerOrdersPage = lazy(() =>\n import(\"./pages/SellerOrdersPage\").then((m) => ({\n default: m.SellerOrdersPage,\n })),\n);\nconst EditPhysicalItemPage = lazy(() =>\n import(\"./pages/EditPhysicalItemPage\").then((m) => ({\n default: m.EditPhysicalItemPage,\n })),\n);\n\n/** Layout for app-context routes (/apps/:appId/*) — adds the org context bar. */\nfunction AppLayout() {\n return (\n <>\n <OrgContextBar />\n <Outlet />\n </>\n );\n}\n\n/** Slim org-context bar shown above every devportal page. */\nfunction OrgContextBar() {\n return (\n <div className=\"flex items-center justify-end border-b border-border-subtle bg-bg-surface/40 px-4 py-2\">\n <OrgSwitcher />\n </div>\n );\n}\n\n/**\n * The org switcher only matters on pages that actually read the active-org\n * state it controls (dashboard, apps, webhooks, analytics, revenue, create\n * flows, etc). Pages that are already scoped by their own route param (an\n * org/item detail page) or that list every org regardless of which one is\n * \"active\" (the org list) don't use that state at all, so showing a\n * switcher there is just confusing. Matched by path suffix so it doesn't\n * care which basePath a given product shell mounts devportal under, and\n * works for both the digital (`organizations`) and seller\n * (`seller/organizations`) route families since they share the same pages.\n */\nfunction hideOrgSwitcher(pathname: string): boolean {\n const segments = pathname.split(\"/\").filter(Boolean);\n const last = segments[segments.length - 1];\n const secondLast = segments[segments.length - 2];\n const thirdLast = segments[segments.length - 3];\n\n // organizations | seller/organizations (list)\n if (last === \"organizations\") return true;\n // organizations/:id | seller/organizations/:id (detail) — not /new\n if (secondLast === \"organizations\" && last !== \"new\") return true;\n // seller/items/:id (item edit) — not /new\n if (thirdLast === \"seller\" && secondLast === \"items\" && last !== \"new\")\n return true;\n\n return false;\n}\n\n/** Layout wrapping org-context devportal routes — adds the org context bar,\n * except on routes that don't depend on the active-org it controls. */\nfunction GlobalLayout() {\n const { pathname } = useLocation();\n return (\n <>\n {!hideOrgSwitcher(pathname) && <OrgContextBar />}\n <Outlet />\n </>\n );\n}\n\n/** Layout for pages that are not org-scoped (OAuth, API Keys, Docs, Resources). */\nfunction PlainLayout() {\n return <Outlet />;\n}\n\nexport function DevportalRoutes() {\n return (\n <Suspense fallback={<LoadingState message=\"Loading page...\" />}>\n <Routes>\n {/* Setup wizard — no SectionNav */}\n <Route path=\"setup\" element={gated(\"setup\", <SetupPage />)} />\n <Route\n path=\"invitations/:token\"\n element={\n <TelemetryErrorBoundary scope=\"invitations.accept\">\n <InvitationDecisionPage />\n </TelemetryErrorBoundary>\n }\n />\n\n {/* App-context routes (/apps/:appId/*) — no SectionNav.\n The app-level tab bar inside ApplicationDetailPage is the nav here. */}\n <Route element={<AppLayout />}>\n <Route\n path=\"apps/:appId\"\n element={gated(\"apps.detail\", <ApplicationDetailPage />)}\n />\n <Route\n path=\"apps/:appId/edit\"\n element={gated(\"apps.edit\", <EditApplicationPage />)}\n />\n <Route\n path=\"apps/:appId/versions\"\n element={gated(\"apps.versions\", <ApplicationVersionsPage />)}\n />\n <Route\n path=\"apps/:appId/versions/:versionId/lifecycle\"\n element={gated(\"apps.node-lifecycle\", <NodeLifecyclePage />)}\n />\n <Route\n path=\"apps/:appId/publish\"\n element={gated(\"apps.publish\", <PublishPage />)}\n />\n <Route\n path=\"apps/:appId/store-submission\"\n element={gated(\"apps.storeSubmission\", <StoreSubmissionPage />)}\n />\n <Route\n path=\"apps/:appId/listing\"\n element={gated(\"apps.listing\", <ListingPreviewPage />)}\n />\n <Route\n path=\"apps/:appId/logs\"\n element={gated(\"apps.logs\", <AppLogsPage />)}\n />\n <Route\n path=\"apps/:appId/webhooks\"\n element={gated(\"apps.webhooks\", <WebhooksPage />)}\n />\n <Route\n path=\"apps/:appId/webhooks/new\"\n element={gated(\"apps.webhooks.create\", <CreateWebhookPage />)}\n />\n <Route\n path=\"apps/:appId/webhooks/:webhookId\"\n element={gated(\"apps.webhooks.detail\", <WebhookDetailPage />)}\n />\n <Route\n path=\"apps/:appId/analytics\"\n element={gated(\"apps.analytics\", <AnalyticsDashboardPage />)}\n />\n </Route>\n\n {/* All other routes — with SectionNav */}\n <Route element={<GlobalLayout />}>\n {/* Dashboard */}\n <Route index element={gated(\"dashboard\", <DashboardPage />)} />\n\n {/* Organizations */}\n <Route\n path=\"organizations\"\n element={gated(\"organizations\", <OrganizationsPage />)}\n />\n <Route\n path=\"organizations/new\"\n element={gated(\"organizations.create\", <CreateOrganizationPage />)}\n />\n <Route\n path=\"organizations/:orgId\"\n element={gated(\"organizations.detail\", <OrganizationDetailPage />)}\n />\n <Route\n path=\"organizations/:orgId/members\"\n element={gated(\n \"organizations.members\",\n <OrganizationMembersPage />,\n )}\n />\n <Route\n path=\"organizations/:orgId/revenue\"\n element={gated(\"organizations.revenue\", <RevenueDashboardPage />)}\n />\n\n {/* Applications list and create */}\n <Route path=\"apps\" element={gated(\"apps\", <ApplicationsPage />)} />\n <Route\n path=\"apps/new\"\n element={gated(\"apps.create\", <CreateApplicationPage />)}\n />\n\n {/* Seller routes */}\n <Route\n path=\"seller\"\n element={gated(\"seller.dashboard\", <SellerDashboardPage />)}\n />\n <Route\n path=\"seller/items\"\n element={gated(\"seller.items\", <SellerItemsPage />)}\n />\n <Route\n path=\"seller/items/new\"\n element={gated(\"seller.items.create\", <CreatePhysicalItemPage />)}\n />\n <Route\n path=\"seller/items/:itemId\"\n element={gated(\"seller.items.edit\", <EditPhysicalItemPage />)}\n />\n <Route\n path=\"seller/orders\"\n element={gated(\"seller.orders\", <SellerOrdersPage />)}\n />\n\n {/* Seller organizations — same pages as the regular \"Organizations\"\n routes above, reused as-is. They tell PHYSICAL from DIGITAL by\n route (useIsSellerSection), not by a separate component. See\n DeveloperOrgKind (BOFF-7285). */}\n <Route\n path=\"seller/organizations\"\n element={gated(\"seller.organizations\", <OrganizationsPage />)}\n />\n <Route\n path=\"seller/organizations/new\"\n element={gated(\n \"seller.organizations.create\",\n <CreateOrganizationPage />,\n )}\n />\n <Route\n path=\"seller/organizations/:orgId\"\n element={gated(\n \"seller.organizations.detail\",\n <OrganizationDetailPage />,\n )}\n />\n <Route\n path=\"seller/organizations/:orgId/members\"\n element={gated(\n \"seller.organizations.members\",\n <OrganizationMembersPage />,\n )}\n />\n <Route\n path=\"seller/organizations/:orgId/revenue\"\n element={gated(\n \"seller.organizations.revenue\",\n <RevenueDashboardPage />,\n )}\n />\n\n {/* Delegations */}\n <Route\n path=\"delegations\"\n element={gated(\"delegations\", <DelegationsPage />)}\n />\n\n {/* Global Webhooks */}\n <Route\n path=\"webhooks/new\"\n element={gated(\"webhooks.create\", <CreateWebhookPage />)}\n />\n <Route\n path=\"webhooks\"\n element={gated(\"webhooks\", <WebhooksPage />)}\n />\n\n {/* Analytics & Revenue */}\n <Route\n path=\"analytics\"\n element={gated(\"analytics\", <AnalyticsDashboardPage />)}\n />\n <Route\n path=\"revenue\"\n element={gated(\"revenue\", <RevenueDashboardPage />)}\n />\n\n {/* Publisher */}\n <Route\n path=\"publisher/profile\"\n element={gated(\"publisher.profile\", <PublisherProfilePage />)}\n />\n\n {/* Settings */}\n <Route\n path=\"settings\"\n element={gated(\"settings\", <SettingsPage />)}\n />\n\n {/* Catch-all redirect to dashboard */}\n <Route path=\"*\" element={<CatchAllRedirect />} />\n </Route>\n\n {/* Non-org-context routes — no OrgContextBar */}\n <Route element={<PlainLayout />}>\n {/* OAuth Clients */}\n <Route path=\"oauth\" element={gated(\"oauth\", <OAuthClientsPage />)} />\n <Route\n path=\"oauth/new\"\n element={gated(\"oauth.create\", <CreateOAuthClientPage />)}\n />\n <Route\n path=\"oauth/callback\"\n element={gated(\"oauth.callback\", <OAuthCallbackPage />)}\n />\n <Route\n path=\"oauth/:clientId\"\n element={gated(\"oauth.detail\", <OAuthClientDetailPage />)}\n />\n\n {/* API Keys */}\n <Route path=\"api-keys\" element={gated(\"apiKeys\", <ApiKeysPage />)} />\n <Route\n path=\"api-keys/new\"\n element={gated(\"apiKeys.create\", <CreateApiKeyPage />)}\n />\n\n {/* Documentation & Resources */}\n <Route path=\"docs\" element={gated(\"docs\", <DocumentationPage />)} />\n <Route\n path=\"resources\"\n element={gated(\"resources\", <ResourcesPage />)}\n />\n </Route>\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationVersionsPage.d.ts","sourceRoot":"","sources":["../../../src/devportal/pages/ApplicationVersionsPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ApplicationVersionsPage.d.ts","sourceRoot":"","sources":["../../../src/devportal/pages/ApplicationVersionsPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA0FhC,eAAO,MAAM,uBAAuB,EAAE,EA4vDrC,CAAC"}
|