@burdenoff/microfe-devportal 2026.623.6 → 2026.623.8
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.js +37 -29
- package/dist/devportal/DevportalRoutes.js.map +1 -1
- package/dist/devportal/pages/RevenueDashboardPage.js +291 -342
- package/dist/devportal/pages/RevenueDashboardPage.js.map +1 -1
- package/dist/generated/global-operations.js +9 -3
- package/dist/generated/global-operations.js.map +1 -1
- package/package.json +1 -1
|
@@ -40,6 +40,9 @@ function Y() {
|
|
|
40
40
|
return /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(J, {}), /* @__PURE__ */ m(u, {})] });
|
|
41
41
|
}
|
|
42
42
|
function X() {
|
|
43
|
+
return /* @__PURE__ */ m(u, {});
|
|
44
|
+
}
|
|
45
|
+
function Z() {
|
|
43
46
|
return /* @__PURE__ */ m(o, {
|
|
44
47
|
fallback: /* @__PURE__ */ m(t, { message: "Loading page..." }),
|
|
45
48
|
children: /* @__PURE__ */ h(f, { children: [
|
|
@@ -131,26 +134,6 @@ function X() {
|
|
|
131
134
|
path: "apps/new",
|
|
132
135
|
element: _("apps.create", /* @__PURE__ */ m(T, {}))
|
|
133
136
|
}),
|
|
134
|
-
/* @__PURE__ */ m(d, {
|
|
135
|
-
path: "oauth",
|
|
136
|
-
element: _("oauth", /* @__PURE__ */ m(O, {}))
|
|
137
|
-
}),
|
|
138
|
-
/* @__PURE__ */ m(d, {
|
|
139
|
-
path: "oauth/new",
|
|
140
|
-
element: _("oauth.create", /* @__PURE__ */ m(k, {}))
|
|
141
|
-
}),
|
|
142
|
-
/* @__PURE__ */ m(d, {
|
|
143
|
-
path: "oauth/:clientId",
|
|
144
|
-
element: _("oauth.detail", /* @__PURE__ */ m(A, {}))
|
|
145
|
-
}),
|
|
146
|
-
/* @__PURE__ */ m(d, {
|
|
147
|
-
path: "api-keys",
|
|
148
|
-
element: _("apiKeys", /* @__PURE__ */ m(j, {}))
|
|
149
|
-
}),
|
|
150
|
-
/* @__PURE__ */ m(d, {
|
|
151
|
-
path: "api-keys/new",
|
|
152
|
-
element: _("apiKeys.create", /* @__PURE__ */ m(M, {}))
|
|
153
|
-
}),
|
|
154
137
|
/* @__PURE__ */ m(d, {
|
|
155
138
|
path: "delegations",
|
|
156
139
|
element: _("delegations", /* @__PURE__ */ m(H, {}))
|
|
@@ -171,14 +154,6 @@ function X() {
|
|
|
171
154
|
path: "revenue",
|
|
172
155
|
element: _("revenue", /* @__PURE__ */ m(S, {}))
|
|
173
156
|
}),
|
|
174
|
-
/* @__PURE__ */ m(d, {
|
|
175
|
-
path: "docs",
|
|
176
|
-
element: _("docs", /* @__PURE__ */ m(L, {}))
|
|
177
|
-
}),
|
|
178
|
-
/* @__PURE__ */ m(d, {
|
|
179
|
-
path: "resources",
|
|
180
|
-
element: _("resources", /* @__PURE__ */ m(R, {}))
|
|
181
|
-
}),
|
|
182
157
|
/* @__PURE__ */ m(d, {
|
|
183
158
|
path: "publisher/profile",
|
|
184
159
|
element: _("publisher.profile", /* @__PURE__ */ m(G, {}))
|
|
@@ -192,11 +167,44 @@ function X() {
|
|
|
192
167
|
element: /* @__PURE__ */ m(g, {})
|
|
193
168
|
})
|
|
194
169
|
]
|
|
170
|
+
}),
|
|
171
|
+
/* @__PURE__ */ h(d, {
|
|
172
|
+
element: /* @__PURE__ */ m(X, {}),
|
|
173
|
+
children: [
|
|
174
|
+
/* @__PURE__ */ m(d, {
|
|
175
|
+
path: "oauth",
|
|
176
|
+
element: _("oauth", /* @__PURE__ */ m(O, {}))
|
|
177
|
+
}),
|
|
178
|
+
/* @__PURE__ */ m(d, {
|
|
179
|
+
path: "oauth/new",
|
|
180
|
+
element: _("oauth.create", /* @__PURE__ */ m(k, {}))
|
|
181
|
+
}),
|
|
182
|
+
/* @__PURE__ */ m(d, {
|
|
183
|
+
path: "oauth/:clientId",
|
|
184
|
+
element: _("oauth.detail", /* @__PURE__ */ m(A, {}))
|
|
185
|
+
}),
|
|
186
|
+
/* @__PURE__ */ m(d, {
|
|
187
|
+
path: "api-keys",
|
|
188
|
+
element: _("apiKeys", /* @__PURE__ */ m(j, {}))
|
|
189
|
+
}),
|
|
190
|
+
/* @__PURE__ */ m(d, {
|
|
191
|
+
path: "api-keys/new",
|
|
192
|
+
element: _("apiKeys.create", /* @__PURE__ */ m(M, {}))
|
|
193
|
+
}),
|
|
194
|
+
/* @__PURE__ */ m(d, {
|
|
195
|
+
path: "docs",
|
|
196
|
+
element: _("docs", /* @__PURE__ */ m(L, {}))
|
|
197
|
+
}),
|
|
198
|
+
/* @__PURE__ */ m(d, {
|
|
199
|
+
path: "resources",
|
|
200
|
+
element: _("resources", /* @__PURE__ */ m(R, {}))
|
|
201
|
+
})
|
|
202
|
+
]
|
|
195
203
|
})
|
|
196
204
|
] })
|
|
197
205
|
});
|
|
198
206
|
}
|
|
199
207
|
//#endregion
|
|
200
|
-
export {
|
|
208
|
+
export { Z as DevportalRoutes };
|
|
201
209
|
|
|
202
210
|
//# 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 } from \"react-router-dom\";\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/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 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);\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 bg-card/40 px-4 py-2\">\n <OrgSwitcher />\n </div>\n );\n}\n\n/** Layout wrapping all devportal routes — adds the org context bar. */\nfunction GlobalLayout() {\n return (\n <>\n <OrgContextBar />\n <Outlet />\n </>\n );\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\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 {/* 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/: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 {/* 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 {/* Documentation & Resources */}\n <Route path=\"docs\" element={gated(\"docs\", <DocumentationPage />)} />\n <Route\n path=\"resources\"\n element={gated(\"resources\", <ResourcesPage />)}\n />\n\n {/* Admin surfaces (e.g. /admin/reviews) live in admin-app via\n AdminDevportalRoot — intentionally not mounted in user shells. */}\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 </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
|
|
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 } from \"react-router-dom\";\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/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 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);\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 bg-card/40 px-4 py-2\">\n <OrgSwitcher />\n </div>\n );\n}\n\n/** Layout wrapping org-context devportal routes — adds the org context bar. */\nfunction GlobalLayout() {\n return (\n <>\n <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\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 {/* 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/: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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"}
|