@burdenoff/microfe-devportal 2026.1112.2 → 2026.1113.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/DevportalRoot.js +65 -119
- package/dist/devportal/DevportalRoot.js.map +1 -1
- package/dist/devportal/components/AppCard.js +72 -69
- package/dist/devportal/components/AppCard.js.map +1 -1
- package/dist/devportal/components/DeveloperSettingsHub.d.ts +6 -0
- package/dist/devportal/components/DeveloperSettingsHub.js +59 -0
- package/dist/devportal/components/DeveloperSettingsHub.js.map +1 -0
- package/dist/devportal/components/ImageUploadField.js +82 -80
- package/dist/devportal/components/ImageUploadField.js.map +1 -1
- package/dist/devportal/components/SectionNav.d.ts +1 -1
- package/dist/devportal/components/SectionNav.js +60 -36
- package/dist/devportal/components/SectionNav.js.map +1 -1
- package/dist/devportal/components/StoreImage.d.ts +15 -0
- package/dist/devportal/components/StoreImage.js +30 -0
- package/dist/devportal/components/StoreImage.js.map +1 -0
- package/dist/devportal/components/index.d.ts +1 -0
- package/dist/devportal/components/index.js +17 -16
- package/dist/devportal/hooks/usePackageUpload.d.ts +46 -4
- package/dist/devportal/hooks/usePackageUpload.js +90 -36
- package/dist/devportal/hooks/usePackageUpload.js.map +1 -1
- package/dist/devportal/pages/AdminReviewPage.js +205 -202
- package/dist/devportal/pages/AdminReviewPage.js.map +1 -1
- package/dist/devportal/pages/AnalyticsDashboardPage.js +186 -179
- package/dist/devportal/pages/AnalyticsDashboardPage.js.map +1 -1
- package/dist/devportal/pages/ApiKeysPage.js +113 -111
- package/dist/devportal/pages/ApiKeysPage.js.map +1 -1
- package/dist/devportal/pages/AppLogsPage.js +80 -84
- package/dist/devportal/pages/AppLogsPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationDetailPage.js +529 -504
- package/dist/devportal/pages/ApplicationDetailPage.js.map +1 -1
- package/dist/devportal/pages/ApplicationsPage.js +186 -183
- package/dist/devportal/pages/ApplicationsPage.js.map +1 -1
- package/dist/devportal/pages/CreateApiKeyPage.js +163 -166
- package/dist/devportal/pages/CreateApiKeyPage.js.map +1 -1
- package/dist/devportal/pages/CreateOAuthClientPage.js +134 -130
- package/dist/devportal/pages/CreateOAuthClientPage.js.map +1 -1
- package/dist/devportal/pages/CreatePhysicalItemPage.js +2 -2
- package/dist/devportal/pages/CreatePhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/DelegationsPage.js +11 -11
- package/dist/devportal/pages/DocumentationPage.js +100 -94
- package/dist/devportal/pages/DocumentationPage.js.map +1 -1
- package/dist/devportal/pages/EditApplicationPage.js +379 -377
- package/dist/devportal/pages/EditApplicationPage.js.map +1 -1
- package/dist/devportal/pages/EditPhysicalItemPage.js +312 -307
- package/dist/devportal/pages/EditPhysicalItemPage.js.map +1 -1
- package/dist/devportal/pages/InvitationDecisionPage.js +83 -79
- package/dist/devportal/pages/InvitationDecisionPage.js.map +1 -1
- package/dist/devportal/pages/ListingPreviewPage.js +175 -171
- package/dist/devportal/pages/ListingPreviewPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientDetailPage.js +76 -76
- package/dist/devportal/pages/OAuthClientDetailPage.js.map +1 -1
- package/dist/devportal/pages/OAuthClientsPage.js +126 -124
- package/dist/devportal/pages/OAuthClientsPage.js.map +1 -1
- package/dist/devportal/pages/OrganizationDetailPage.js +19 -19
- package/dist/devportal/pages/OrganizationMembersPage.js +223 -204
- package/dist/devportal/pages/OrganizationMembersPage.js.map +1 -1
- package/dist/devportal/pages/ResourcesPage.d.ts +6 -0
- package/dist/devportal/pages/ResourcesPage.js +171 -155
- package/dist/devportal/pages/ResourcesPage.js.map +1 -1
- package/dist/devportal/pages/SellerDashboardPage.js +117 -115
- package/dist/devportal/pages/SellerDashboardPage.js.map +1 -1
- package/dist/devportal/pages/SellerItemsPage.js +202 -199
- package/dist/devportal/pages/SellerItemsPage.js.map +1 -1
- package/dist/devportal/pages/SettingsPage.js +330 -315
- package/dist/devportal/pages/SettingsPage.js.map +1 -1
- package/dist/devportal/pages/SetupPage.js +5 -5
- package/dist/devportal/pages/StoreSubmissionPage.js +133 -131
- package/dist/devportal/pages/StoreSubmissionPage.js.map +1 -1
- package/dist/devportal/pages/WebhookDetailPage.js +6 -6
- package/dist/devportal/pages/WebhooksPage.js +39 -39
- package/dist/devportal/pages/WebhooksPage.js.map +1 -1
- package/dist/devportal/utils/appDetailTabs.d.ts +73 -0
- package/dist/devportal/utils/appDetailTabs.js +62 -0
- package/dist/devportal/utils/appDetailTabs.js.map +1 -0
- package/dist/devportal/utils/developerNav.d.ts +39 -0
- package/dist/devportal/utils/developerNav.js +304 -0
- package/dist/devportal/utils/developerNav.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
// src/devportal/utils/developerNav.ts
|
|
2
|
+
var e = [
|
|
3
|
+
{
|
|
4
|
+
id: "devportal-dashboard",
|
|
5
|
+
path: "",
|
|
6
|
+
i18nKey: "devportal.dashboard",
|
|
7
|
+
fallback: "Dashboard",
|
|
8
|
+
order: 10
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
id: "devportal-organizations",
|
|
12
|
+
path: "organizations",
|
|
13
|
+
i18nKey: "devportal.organizations",
|
|
14
|
+
fallback: "Organizations",
|
|
15
|
+
order: 20
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: "devportal-apps",
|
|
19
|
+
path: "apps",
|
|
20
|
+
i18nKey: "devportal.myApps",
|
|
21
|
+
fallback: "My Apps",
|
|
22
|
+
order: 30
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: "devportal-timecampus-applets",
|
|
26
|
+
path: "timecampus-applets",
|
|
27
|
+
i18nKey: "devportal.nav.timecampusApplets",
|
|
28
|
+
fallback: "TimeCampus Applets",
|
|
29
|
+
order: 35
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: "devportal-oauth",
|
|
33
|
+
path: "oauth",
|
|
34
|
+
i18nKey: "devportal.oauthClients",
|
|
35
|
+
fallback: "OAuth Clients",
|
|
36
|
+
order: 40
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "devportal-api-keys",
|
|
40
|
+
path: "api-keys",
|
|
41
|
+
i18nKey: "devportal.apiKeys",
|
|
42
|
+
fallback: "API Keys",
|
|
43
|
+
order: 50
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: "devportal-webhooks",
|
|
47
|
+
path: "webhooks",
|
|
48
|
+
i18nKey: "devportal.webhooks",
|
|
49
|
+
fallback: "Webhooks",
|
|
50
|
+
order: 60
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: "devportal-analytics",
|
|
54
|
+
path: "analytics",
|
|
55
|
+
i18nKey: "devportal.analytics",
|
|
56
|
+
fallback: "Analytics",
|
|
57
|
+
order: 70
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "devportal-revenue",
|
|
61
|
+
path: "",
|
|
62
|
+
absolutePath: "/billing/earnings",
|
|
63
|
+
i18nKey: "devportal.revenue",
|
|
64
|
+
fallback: "Revenue",
|
|
65
|
+
order: 80
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: "devportal-docs",
|
|
69
|
+
path: "docs",
|
|
70
|
+
i18nKey: "devportal.documentation",
|
|
71
|
+
fallback: "Documentation",
|
|
72
|
+
order: 90
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "devportal-resources",
|
|
76
|
+
path: "resources",
|
|
77
|
+
i18nKey: "devportal.resources",
|
|
78
|
+
fallback: "Resources",
|
|
79
|
+
order: 100
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: "devportal-settings",
|
|
83
|
+
path: "settings",
|
|
84
|
+
i18nKey: "devportal.settings",
|
|
85
|
+
fallback: "Settings",
|
|
86
|
+
order: 110
|
|
87
|
+
}
|
|
88
|
+
], t = [
|
|
89
|
+
e[0],
|
|
90
|
+
e[1],
|
|
91
|
+
e[2],
|
|
92
|
+
e[3],
|
|
93
|
+
{
|
|
94
|
+
id: "devportal-analytics",
|
|
95
|
+
path: "analytics",
|
|
96
|
+
i18nKey: "devportal.analytics",
|
|
97
|
+
fallback: "Analytics",
|
|
98
|
+
order: 40
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
...e[8],
|
|
102
|
+
order: 50
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: "devportal-docs",
|
|
106
|
+
path: "docs",
|
|
107
|
+
i18nKey: "devportal.documentation",
|
|
108
|
+
fallback: "Documentation",
|
|
109
|
+
order: 60
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: "devportal-publisher",
|
|
113
|
+
path: "publisher/profile",
|
|
114
|
+
i18nKey: "devportal.nav.publisher",
|
|
115
|
+
fallback: "Publisher",
|
|
116
|
+
order: 70
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: "devportal-settings",
|
|
120
|
+
path: "settings",
|
|
121
|
+
i18nKey: "devportal.developerSettings.title",
|
|
122
|
+
fallback: "Developer settings",
|
|
123
|
+
order: 80
|
|
124
|
+
}
|
|
125
|
+
];
|
|
126
|
+
function n(n) {
|
|
127
|
+
return n ? t : e;
|
|
128
|
+
}
|
|
129
|
+
var r = [
|
|
130
|
+
{
|
|
131
|
+
id: "dashboard",
|
|
132
|
+
path: "",
|
|
133
|
+
i18nKey: "devportal.nav.dashboard",
|
|
134
|
+
fallback: "Dashboard",
|
|
135
|
+
order: 10
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: "apps",
|
|
139
|
+
path: "apps",
|
|
140
|
+
i18nKey: "devportal.nav.apps",
|
|
141
|
+
fallback: "Apps",
|
|
142
|
+
order: 20
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
id: "timecampus-applets",
|
|
146
|
+
path: "timecampus-applets",
|
|
147
|
+
i18nKey: "devportal.nav.timecampusApplets",
|
|
148
|
+
fallback: "TimeCampus Applets",
|
|
149
|
+
order: 30
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: "organizations",
|
|
153
|
+
path: "organizations",
|
|
154
|
+
i18nKey: "devportal.nav.organizations",
|
|
155
|
+
fallback: "Organizations",
|
|
156
|
+
order: 40
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
id: "delegations",
|
|
160
|
+
path: "delegations",
|
|
161
|
+
i18nKey: "devportal.nav.delegations",
|
|
162
|
+
fallback: "Delegations",
|
|
163
|
+
order: 50
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: "revenue",
|
|
167
|
+
path: "revenue",
|
|
168
|
+
i18nKey: "devportal.nav.revenue",
|
|
169
|
+
fallback: "Revenue",
|
|
170
|
+
order: 60
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
id: "docs",
|
|
174
|
+
path: "docs",
|
|
175
|
+
i18nKey: "devportal.nav.docs",
|
|
176
|
+
fallback: "Docs",
|
|
177
|
+
order: 70
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
id: "resources",
|
|
181
|
+
path: "resources",
|
|
182
|
+
i18nKey: "devportal.nav.resources",
|
|
183
|
+
fallback: "Resources",
|
|
184
|
+
order: 80
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
id: "publisher",
|
|
188
|
+
path: "publisher/profile",
|
|
189
|
+
i18nKey: "devportal.nav.publisher",
|
|
190
|
+
fallback: "Publisher",
|
|
191
|
+
order: 90
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
id: "settings",
|
|
195
|
+
path: "settings",
|
|
196
|
+
i18nKey: "devportal.nav.settings",
|
|
197
|
+
fallback: "Settings",
|
|
198
|
+
order: 100
|
|
199
|
+
}
|
|
200
|
+
], i = (e) => {
|
|
201
|
+
let t = r.find((t) => t.id === e);
|
|
202
|
+
if (!t) throw Error(`Unknown section: ${e}`);
|
|
203
|
+
return t;
|
|
204
|
+
}, a = [
|
|
205
|
+
i("dashboard"),
|
|
206
|
+
i("apps"),
|
|
207
|
+
i("timecampus-applets"),
|
|
208
|
+
i("organizations"),
|
|
209
|
+
{
|
|
210
|
+
id: "analytics",
|
|
211
|
+
path: "analytics",
|
|
212
|
+
i18nKey: "devportal.nav.analytics",
|
|
213
|
+
fallback: "Analytics",
|
|
214
|
+
order: 50
|
|
215
|
+
},
|
|
216
|
+
i("revenue"),
|
|
217
|
+
i("docs"),
|
|
218
|
+
i("publisher"),
|
|
219
|
+
{
|
|
220
|
+
id: "settings",
|
|
221
|
+
path: "settings",
|
|
222
|
+
i18nKey: "devportal.developerSettings.title",
|
|
223
|
+
fallback: "Developer settings",
|
|
224
|
+
order: 100
|
|
225
|
+
}
|
|
226
|
+
];
|
|
227
|
+
function o(e) {
|
|
228
|
+
return e ? a : r;
|
|
229
|
+
}
|
|
230
|
+
var s = [
|
|
231
|
+
"api-keys",
|
|
232
|
+
"oauth",
|
|
233
|
+
"webhooks",
|
|
234
|
+
"delegations"
|
|
235
|
+
];
|
|
236
|
+
function c(e, t) {
|
|
237
|
+
return t === "publisher" ? ["publisher"] : e && t === "settings" ? s : [];
|
|
238
|
+
}
|
|
239
|
+
var l = [
|
|
240
|
+
{
|
|
241
|
+
id: "api-keys",
|
|
242
|
+
path: "api-keys",
|
|
243
|
+
titleKey: "devportal.developerSettings.apiKeys.title",
|
|
244
|
+
titleFallback: "API keys",
|
|
245
|
+
descriptionKey: "devportal.developerSettings.apiKeys.description",
|
|
246
|
+
descriptionFallback: "Create, rotate and revoke keys for scripts and backend services."
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
id: "oauth",
|
|
250
|
+
path: "oauth",
|
|
251
|
+
titleKey: "devportal.developerSettings.oauth.title",
|
|
252
|
+
titleFallback: "OAuth apps",
|
|
253
|
+
descriptionKey: "devportal.developerSettings.oauth.description",
|
|
254
|
+
descriptionFallback: "Register apps that sign people in, and manage their client ID, secret and permissions."
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
id: "webhooks",
|
|
258
|
+
path: "webhooks",
|
|
259
|
+
titleKey: "devportal.developerSettings.webhooks.title",
|
|
260
|
+
titleFallback: "Webhooks",
|
|
261
|
+
descriptionKey: "devportal.developerSettings.webhooks.description",
|
|
262
|
+
descriptionFallback: "Send platform events to your own services and check deliveries."
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
id: "delegations",
|
|
266
|
+
path: "delegations",
|
|
267
|
+
titleKey: "devportal.developerSettings.delegations.title",
|
|
268
|
+
titleFallback: "Apps acting for you",
|
|
269
|
+
descriptionKey: "devportal.developerSettings.delegations.description",
|
|
270
|
+
descriptionFallback: "See which apps act on your behalf and revoke access you granted."
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
id: "app-logs",
|
|
274
|
+
path: "apps",
|
|
275
|
+
titleKey: "devportal.developerSettings.appLogs.title",
|
|
276
|
+
titleFallback: "App logs",
|
|
277
|
+
descriptionKey: "devportal.developerSettings.appLogs.description",
|
|
278
|
+
descriptionFallback: "Pick an app to read its audit trail of changes and access events."
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
id: "analytics",
|
|
282
|
+
path: "analytics",
|
|
283
|
+
titleKey: "devportal.developerSettings.analytics.title",
|
|
284
|
+
titleFallback: "Analytics",
|
|
285
|
+
descriptionKey: "devportal.developerSettings.analytics.description",
|
|
286
|
+
descriptionFallback: "API calls, active users and error rate for your apps."
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
id: "docs",
|
|
290
|
+
path: "docs",
|
|
291
|
+
titleKey: "devportal.developerSettings.docs.title",
|
|
292
|
+
titleFallback: "Documentation",
|
|
293
|
+
descriptionKey: "devportal.developerSettings.docs.description",
|
|
294
|
+
descriptionFallback: "Guides, API reference, SDKs and learning material."
|
|
295
|
+
}
|
|
296
|
+
];
|
|
297
|
+
function u(e, t) {
|
|
298
|
+
if (t.absolutePath) return t.absolutePath;
|
|
299
|
+
let n = (e ?? "").replace(/\/$/, "");
|
|
300
|
+
return t.path ? `${n}/${t.path.replace(/^\//, "")}` : n || "/";
|
|
301
|
+
}
|
|
302
|
+
export { l as DEVELOPER_SETTINGS_ENTRIES, n as getMenuEntries, o as getSectionEntries, c as getSectionMatchPrefixes, u as resolveEntryPath };
|
|
303
|
+
|
|
304
|
+
//# sourceMappingURL=developerNav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"developerNav.js","names":["LEGACY_MENU","FLUIDGRIDS_MENU","getMenuEntries","isFluidgrids","LEGACY_SECTIONS","byId","found","entry","id","FLUIDGRIDS_SECTIONS","getSectionEntries","SETTINGS_AREA_PATHS","getSectionMatchPrefixes","sectionId","DEVELOPER_SETTINGS_ENTRIES","resolveEntryPath","base","basePath"],"sources":["../../../src/devportal/utils/developerNav.ts"],"sourcesContent":["/**\n * Menu and hub structure for the Developer Portal, as plain data.\n *\n * FluidGrids (Navigation v2, BOFF-11863) gets one \"Developer settings\" area that\n * lists API keys, OAuth apps, webhooks, delegations, app logs, analytics and\n * documentation, instead of a long flat menu. Every other app keeps today's\n * menus exactly: `getMenuEntries(false)` and `getSectionEntries(false)` return\n * the legacy lists unchanged. Components map `id` to an icon and `i18nKey` to\n * a translation; nothing here depends on React.\n */\n\nexport interface NavEntry {\n id: string;\n /** Path under the module's base path (no leading base), \"\" for the index. */\n path: string;\n /** Absolute shell path; wins over `path` and is not prefixed by the base path. */\n absolutePath?: string;\n i18nKey: string;\n fallback: string;\n order: number;\n}\n\n/** The shell menu registered by DevportalRoot, exactly as before the rework. */\nconst LEGACY_MENU: readonly NavEntry[] = [\n {\n id: \"devportal-dashboard\",\n path: \"\",\n i18nKey: \"devportal.dashboard\",\n fallback: \"Dashboard\",\n order: 10,\n },\n {\n id: \"devportal-organizations\",\n path: \"organizations\",\n i18nKey: \"devportal.organizations\",\n fallback: \"Organizations\",\n order: 20,\n },\n {\n id: \"devportal-apps\",\n path: \"apps\",\n i18nKey: \"devportal.myApps\",\n fallback: \"My Apps\",\n order: 30,\n },\n {\n id: \"devportal-timecampus-applets\",\n path: \"timecampus-applets\",\n i18nKey: \"devportal.nav.timecampusApplets\",\n fallback: \"TimeCampus Applets\",\n order: 35,\n },\n {\n id: \"devportal-oauth\",\n path: \"oauth\",\n i18nKey: \"devportal.oauthClients\",\n fallback: \"OAuth Clients\",\n order: 40,\n },\n {\n id: \"devportal-api-keys\",\n path: \"api-keys\",\n i18nKey: \"devportal.apiKeys\",\n fallback: \"API Keys\",\n order: 50,\n },\n {\n id: \"devportal-webhooks\",\n path: \"webhooks\",\n i18nKey: \"devportal.webhooks\",\n fallback: \"Webhooks\",\n order: 60,\n },\n {\n id: \"devportal-analytics\",\n path: \"analytics\",\n i18nKey: \"devportal.analytics\",\n fallback: \"Analytics\",\n order: 70,\n },\n {\n id: \"devportal-revenue\",\n path: \"\",\n absolutePath: \"/billing/earnings\",\n i18nKey: \"devportal.revenue\",\n fallback: \"Revenue\",\n order: 80,\n },\n {\n id: \"devportal-docs\",\n path: \"docs\",\n i18nKey: \"devportal.documentation\",\n fallback: \"Documentation\",\n order: 90,\n },\n {\n id: \"devportal-resources\",\n path: \"resources\",\n i18nKey: \"devportal.resources\",\n fallback: \"Resources\",\n order: 100,\n },\n {\n id: \"devportal-settings\",\n path: \"settings\",\n i18nKey: \"devportal.settings\",\n fallback: \"Settings\",\n order: 110,\n },\n];\n\n/**\n * FluidGrids menu: the everyday items stay, and every rarer page (API keys,\n * OAuth apps, webhooks, delegations, app logs) moves under Developer settings.\n * Resources is merged into Documentation, so it has no entry of its own.\n */\nconst FLUIDGRIDS_MENU: readonly NavEntry[] = [\n LEGACY_MENU[0],\n LEGACY_MENU[1],\n LEGACY_MENU[2],\n LEGACY_MENU[3],\n {\n id: \"devportal-analytics\",\n path: \"analytics\",\n i18nKey: \"devportal.analytics\",\n fallback: \"Analytics\",\n order: 40,\n },\n { ...LEGACY_MENU[8], order: 50 },\n {\n id: \"devportal-docs\",\n path: \"docs\",\n i18nKey: \"devportal.documentation\",\n fallback: \"Documentation\",\n order: 60,\n },\n {\n id: \"devportal-publisher\",\n path: \"publisher/profile\",\n i18nKey: \"devportal.nav.publisher\",\n fallback: \"Publisher\",\n order: 70,\n },\n {\n id: \"devportal-settings\",\n path: \"settings\",\n i18nKey: \"devportal.developerSettings.title\",\n fallback: \"Developer settings\",\n order: 80,\n },\n];\n\nexport function getMenuEntries(isFluidgrids: boolean): readonly NavEntry[] {\n return isFluidgrids ? FLUIDGRIDS_MENU : LEGACY_MENU;\n}\n\n/** The in-page section bar (`SectionNav`), as before the rework. */\nconst LEGACY_SECTIONS: readonly NavEntry[] = [\n {\n id: \"dashboard\",\n path: \"\",\n i18nKey: \"devportal.nav.dashboard\",\n fallback: \"Dashboard\",\n order: 10,\n },\n {\n id: \"apps\",\n path: \"apps\",\n i18nKey: \"devportal.nav.apps\",\n fallback: \"Apps\",\n order: 20,\n },\n {\n id: \"timecampus-applets\",\n path: \"timecampus-applets\",\n i18nKey: \"devportal.nav.timecampusApplets\",\n fallback: \"TimeCampus Applets\",\n order: 30,\n },\n {\n id: \"organizations\",\n path: \"organizations\",\n i18nKey: \"devportal.nav.organizations\",\n fallback: \"Organizations\",\n order: 40,\n },\n {\n id: \"delegations\",\n path: \"delegations\",\n i18nKey: \"devportal.nav.delegations\",\n fallback: \"Delegations\",\n order: 50,\n },\n {\n id: \"revenue\",\n path: \"revenue\",\n i18nKey: \"devportal.nav.revenue\",\n fallback: \"Revenue\",\n order: 60,\n },\n {\n id: \"docs\",\n path: \"docs\",\n i18nKey: \"devportal.nav.docs\",\n fallback: \"Docs\",\n order: 70,\n },\n {\n id: \"resources\",\n path: \"resources\",\n i18nKey: \"devportal.nav.resources\",\n fallback: \"Resources\",\n order: 80,\n },\n {\n id: \"publisher\",\n path: \"publisher/profile\",\n i18nKey: \"devportal.nav.publisher\",\n fallback: \"Publisher\",\n order: 90,\n },\n {\n id: \"settings\",\n path: \"settings\",\n i18nKey: \"devportal.nav.settings\",\n fallback: \"Settings\",\n order: 100,\n },\n];\n\nconst byId = (id: string): NavEntry => {\n const found = LEGACY_SECTIONS.find((entry) => entry.id === id);\n if (!found) throw new Error(`Unknown section: ${id}`);\n return found;\n};\n\nconst FLUIDGRIDS_SECTIONS: readonly NavEntry[] = [\n byId(\"dashboard\"),\n byId(\"apps\"),\n byId(\"timecampus-applets\"),\n byId(\"organizations\"),\n {\n id: \"analytics\",\n path: \"analytics\",\n i18nKey: \"devportal.nav.analytics\",\n fallback: \"Analytics\",\n order: 50,\n },\n byId(\"revenue\"),\n byId(\"docs\"),\n byId(\"publisher\"),\n {\n id: \"settings\",\n path: \"settings\",\n i18nKey: \"devportal.developerSettings.title\",\n fallback: \"Developer settings\",\n order: 100,\n },\n];\n\nexport function getSectionEntries(isFluidgrids: boolean): readonly NavEntry[] {\n return isFluidgrids ? FLUIDGRIDS_SECTIONS : LEGACY_SECTIONS;\n}\n\n/**\n * Extra path prefixes that keep a section highlighted. In the FluidGrids bar\n * the Developer settings item stays active on every page it contains.\n */\n/** Pages that live inside Developer settings and have no bar item of their own. */\nconst SETTINGS_AREA_PATHS: readonly string[] = [\n \"api-keys\",\n \"oauth\",\n \"webhooks\",\n \"delegations\",\n];\n\nexport function getSectionMatchPrefixes(\n isFluidgrids: boolean,\n sectionId: string,\n): readonly string[] {\n if (sectionId === \"publisher\") return [\"publisher\"];\n if (isFluidgrids && sectionId === \"settings\") {\n return SETTINGS_AREA_PATHS;\n }\n return [];\n}\n\nexport interface DeveloperSettingsEntry {\n id: string;\n /** Path under the module's base path. */\n path: string;\n titleKey: string;\n titleFallback: string;\n descriptionKey: string;\n descriptionFallback: string;\n}\n\n/**\n * The Developer settings hub. One name per thing: \"OAuth apps\" are the sign-in\n * credentials; \"apps\" on their own are the developer applications you publish.\n */\nexport const DEVELOPER_SETTINGS_ENTRIES: readonly DeveloperSettingsEntry[] = [\n {\n id: \"api-keys\",\n path: \"api-keys\",\n titleKey: \"devportal.developerSettings.apiKeys.title\",\n titleFallback: \"API keys\",\n descriptionKey: \"devportal.developerSettings.apiKeys.description\",\n descriptionFallback:\n \"Create, rotate and revoke keys for scripts and backend services.\",\n },\n {\n id: \"oauth\",\n path: \"oauth\",\n titleKey: \"devportal.developerSettings.oauth.title\",\n titleFallback: \"OAuth apps\",\n descriptionKey: \"devportal.developerSettings.oauth.description\",\n descriptionFallback:\n \"Register apps that sign people in, and manage their client ID, secret and permissions.\",\n },\n {\n id: \"webhooks\",\n path: \"webhooks\",\n titleKey: \"devportal.developerSettings.webhooks.title\",\n titleFallback: \"Webhooks\",\n descriptionKey: \"devportal.developerSettings.webhooks.description\",\n descriptionFallback:\n \"Send platform events to your own services and check deliveries.\",\n },\n {\n id: \"delegations\",\n path: \"delegations\",\n titleKey: \"devportal.developerSettings.delegations.title\",\n titleFallback: \"Apps acting for you\",\n descriptionKey: \"devportal.developerSettings.delegations.description\",\n descriptionFallback:\n \"See which apps act on your behalf and revoke access you granted.\",\n },\n {\n id: \"app-logs\",\n // Logs are per application, so this opens the app list; each app has its\n // own logs page at apps/:appId/logs.\n path: \"apps\",\n titleKey: \"devportal.developerSettings.appLogs.title\",\n titleFallback: \"App logs\",\n descriptionKey: \"devportal.developerSettings.appLogs.description\",\n descriptionFallback:\n \"Pick an app to read its audit trail of changes and access events.\",\n },\n {\n id: \"analytics\",\n path: \"analytics\",\n titleKey: \"devportal.developerSettings.analytics.title\",\n titleFallback: \"Analytics\",\n descriptionKey: \"devportal.developerSettings.analytics.description\",\n descriptionFallback:\n \"API calls, active users and error rate for your apps.\",\n },\n {\n id: \"docs\",\n path: \"docs\",\n titleKey: \"devportal.developerSettings.docs.title\",\n titleFallback: \"Documentation\",\n descriptionKey: \"devportal.developerSettings.docs.description\",\n descriptionFallback: \"Guides, API reference, SDKs and learning material.\",\n },\n];\n\n/** Join a module base path and an entry path without doubling slashes. */\nexport function resolveEntryPath(\n basePath: string | undefined,\n entry: Pick<NavEntry, \"path\" | \"absolutePath\">,\n): string {\n if (entry.absolutePath) return entry.absolutePath;\n const base = (basePath ?? \"\").replace(/\\/$/, \"\");\n if (!entry.path) return base || \"/\";\n return `${base}/${entry.path.replace(/^\\//, \"\")}`;\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/microfe-devportal",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.1113.2",
|
|
4
4
|
"description": "Burdenoff Developer Portal Microfrontend - Complete developer operations interface",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
},
|
|
97
97
|
"peerDependencies": {
|
|
98
98
|
"@apollo/client": "^4.0.11",
|
|
99
|
-
"@burdenoff/fe-libs": "
|
|
99
|
+
"@burdenoff/fe-libs": "2026.1113.8",
|
|
100
100
|
"react": "^19.0.0",
|
|
101
101
|
"react-dom": "^19.0.0",
|
|
102
102
|
"react-router": "^8.3.0",
|