@topolo/sdk 0.2.2 → 0.2.4
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/index.cjs +39 -23
- package/dist/index.d.cts +70 -69
- package/dist/index.d.ts +70 -69
- package/dist/index.js +39 -22
- package/package.json +2 -1
- package/src/application-requirements.ts +8 -4
- package/src/applications.generated.ts +20 -10
- package/src/services.generated.ts +2 -1
- package/src/services.test.ts +12 -0
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
@@ -110,13 +109,14 @@ var SERVICES = {
|
|
|
110
109
|
chat: "https://chat.topolo.app",
|
|
111
110
|
commerce: "https://topolo-commerce-api.topolo.workers.dev",
|
|
112
111
|
crm: "https://crm-api.topolo.app",
|
|
112
|
+
feed: "https://topolo-feed-api.topolo.app",
|
|
113
113
|
forecast: "https://forecast-worker-production.topolo.workers.dev",
|
|
114
114
|
learn: "https://topololearn-api.topolo.workers.dev",
|
|
115
115
|
mail: "https://mail.topolo.app",
|
|
116
116
|
mdm: "https://topolo-mdm-api.topolo.app",
|
|
117
117
|
messaging: "https://messages.topolo.app",
|
|
118
118
|
nexus: "https://topolo-nexus-gateway.topolo.workers.dev",
|
|
119
|
-
one: "https://
|
|
119
|
+
one: "https://one.topolo.app",
|
|
120
120
|
pay: "https://topolo-pay.topolo.workers.dev",
|
|
121
121
|
"quro.api": "https://api.ol0.me",
|
|
122
122
|
"quro.redirect": "https://ol0.me",
|
|
@@ -448,24 +448,34 @@ var APPLICATIONS = {
|
|
|
448
448
|
"appDir": "TopoloFeed",
|
|
449
449
|
"name": "TopoloFeed",
|
|
450
450
|
"packageName": null,
|
|
451
|
-
"productionUrl":
|
|
452
|
-
"services": [
|
|
451
|
+
"productionUrl": "https://topolo-feed-api.topolo.app",
|
|
452
|
+
"services": [
|
|
453
|
+
"feed"
|
|
454
|
+
],
|
|
453
455
|
"deployTargets": [
|
|
454
456
|
{
|
|
455
457
|
"name": "topolo-feed-analytics-api",
|
|
456
458
|
"kind": "worker",
|
|
457
|
-
"apiUrl":
|
|
458
|
-
"domains": [
|
|
459
|
-
|
|
459
|
+
"apiUrl": "https://topolo-feed-analytics-api.topolo.app",
|
|
460
|
+
"domains": [
|
|
461
|
+
"topolo-feed-analytics-api.topolo.app"
|
|
462
|
+
],
|
|
463
|
+
"routes": [
|
|
464
|
+
"topolo-feed-analytics-api.topolo.app"
|
|
465
|
+
],
|
|
460
466
|
"serviceId": null
|
|
461
467
|
},
|
|
462
468
|
{
|
|
463
469
|
"name": "topolo-feed-api",
|
|
464
470
|
"kind": "worker",
|
|
465
|
-
"apiUrl":
|
|
466
|
-
"domains": [
|
|
467
|
-
|
|
468
|
-
|
|
471
|
+
"apiUrl": "https://topolo-feed-api.topolo.app",
|
|
472
|
+
"domains": [
|
|
473
|
+
"topolo-feed-api.topolo.app"
|
|
474
|
+
],
|
|
475
|
+
"routes": [
|
|
476
|
+
"topolo-feed-api.topolo.app"
|
|
477
|
+
],
|
|
478
|
+
"serviceId": "feed"
|
|
469
479
|
}
|
|
470
480
|
]
|
|
471
481
|
},
|
|
@@ -705,7 +715,7 @@ var APPLICATIONS = {
|
|
|
705
715
|
{
|
|
706
716
|
"name": "topoloone-worker",
|
|
707
717
|
"kind": "worker",
|
|
708
|
-
"apiUrl": "https://
|
|
718
|
+
"apiUrl": "https://one.topolo.app",
|
|
709
719
|
"domains": [],
|
|
710
720
|
"routes": [
|
|
711
721
|
"one.topolo.app/*"
|
|
@@ -1004,10 +1014,12 @@ var APPLICATION_REQUIREMENTS = [
|
|
|
1004
1014
|
evidence: [
|
|
1005
1015
|
"@topolo/ui-kit is used for the platform shell where the app has authenticated UI",
|
|
1006
1016
|
"The shared launcher/app switcher is reachable from authenticated app chrome",
|
|
1007
|
-
"Account menu and sign-out behavior use
|
|
1017
|
+
"Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu"
|
|
1008
1018
|
],
|
|
1009
1019
|
implementation: [
|
|
1010
|
-
"Use
|
|
1020
|
+
"Use TopoloAppShell for authenticated app layouts",
|
|
1021
|
+
"Use TopoloAccountMenu when a partial-shell surface still needs account chrome",
|
|
1022
|
+
"Pass app-specific account actions as additive menu items instead of forking dropdowns",
|
|
1011
1023
|
"Use shared design tokens and platform UI primitives before creating local equivalents",
|
|
1012
1024
|
"Keep mobile and desktop shell behavior aligned with the platform UI kit"
|
|
1013
1025
|
]
|
|
@@ -1111,8 +1123,9 @@ var APPLICATION_REQUIREMENTS = [
|
|
|
1111
1123
|
];
|
|
1112
1124
|
function applicationRequirementScopes(application) {
|
|
1113
1125
|
const scopes = /* @__PURE__ */ new Set(["all"]);
|
|
1114
|
-
const
|
|
1115
|
-
const
|
|
1126
|
+
const deployTargets = application.deployTargets;
|
|
1127
|
+
const hasBrowserSurface = Boolean(application.productionUrl) || deployTargets.some((target) => target.kind === "pages");
|
|
1128
|
+
const hasApiSurface = application.services.length > 0 || deployTargets.some((target) => Boolean(target.apiUrl));
|
|
1116
1129
|
if (hasBrowserSurface) scopes.add("browser");
|
|
1117
1130
|
if (hasApiSurface) scopes.add("api");
|
|
1118
1131
|
if (application.id === "cli" || application.id === "mcp" || application.id === "cloudcontrol") {
|
|
@@ -1300,10 +1313,11 @@ function statusRank(status) {
|
|
|
1300
1313
|
// src/services.ts
|
|
1301
1314
|
var DEFAULT_SERVICE_URLS = SERVICES;
|
|
1302
1315
|
function resolveServiceUrl(service, overrides) {
|
|
1303
|
-
|
|
1316
|
+
var _a;
|
|
1317
|
+
const override = overrides == null ? void 0 : overrides[service];
|
|
1304
1318
|
if (override) return override;
|
|
1305
1319
|
const envKey = `TOPOLO_SERVICE_URL_${service.replace(/\./g, "_").toUpperCase()}`;
|
|
1306
|
-
const envValue = typeof process !== "undefined" ? process.env
|
|
1320
|
+
const envValue = typeof process !== "undefined" ? (_a = process.env) == null ? void 0 : _a[envKey] : void 0;
|
|
1307
1321
|
if (envValue) return envValue;
|
|
1308
1322
|
return DEFAULT_SERVICE_URLS[service];
|
|
1309
1323
|
}
|
|
@@ -1319,8 +1333,9 @@ var TopoloClient = class {
|
|
|
1319
1333
|
fetchImpl;
|
|
1320
1334
|
debug;
|
|
1321
1335
|
constructor(options) {
|
|
1336
|
+
var _a;
|
|
1322
1337
|
if (!options.credential) throw new TopoloAuthError("credential is required");
|
|
1323
|
-
if (!options.agent
|
|
1338
|
+
if (!((_a = options.agent) == null ? void 0 : _a.clientName)) throw new TopoloAuthError("agent.clientName is required");
|
|
1324
1339
|
this.credential = options.credential;
|
|
1325
1340
|
this.agent = options.agent;
|
|
1326
1341
|
this.serviceUrls = options.serviceUrls;
|
|
@@ -1510,6 +1525,7 @@ var CrmModule = class {
|
|
|
1510
1525
|
}
|
|
1511
1526
|
client;
|
|
1512
1527
|
async listContacts(options = {}) {
|
|
1528
|
+
var _a, _b, _c;
|
|
1513
1529
|
const res = await this.client.request({
|
|
1514
1530
|
service: "crm",
|
|
1515
1531
|
path: "/api/contacts",
|
|
@@ -1519,12 +1535,12 @@ var CrmModule = class {
|
|
|
1519
1535
|
pageSize: options.pageSize
|
|
1520
1536
|
}
|
|
1521
1537
|
});
|
|
1522
|
-
const rows = Array.isArray(res
|
|
1538
|
+
const rows = Array.isArray(res == null ? void 0 : res.contacts) ? res.contacts : Array.isArray(res == null ? void 0 : res.data) ? res.data : [];
|
|
1523
1539
|
return {
|
|
1524
1540
|
contacts: rows.map(toSummary),
|
|
1525
|
-
total: res
|
|
1526
|
-
page: res
|
|
1527
|
-
pageSize: res
|
|
1541
|
+
total: (res == null ? void 0 : res.total) ?? ((_a = res == null ? void 0 : res.pagination) == null ? void 0 : _a.total) ?? rows.length,
|
|
1542
|
+
page: (res == null ? void 0 : res.page) ?? ((_b = res == null ? void 0 : res.pagination) == null ? void 0 : _b.page) ?? options.page ?? 1,
|
|
1543
|
+
pageSize: (res == null ? void 0 : res.pageSize) ?? ((_c = res == null ? void 0 : res.pagination) == null ? void 0 : _c.pageSize) ?? options.pageSize ?? rows.length
|
|
1528
1544
|
};
|
|
1529
1545
|
}
|
|
1530
1546
|
async getContact(contactId) {
|
package/dist/index.d.cts
CHANGED
|
@@ -40,13 +40,14 @@ declare const SERVICES: {
|
|
|
40
40
|
readonly chat: "https://chat.topolo.app";
|
|
41
41
|
readonly commerce: "https://topolo-commerce-api.topolo.workers.dev";
|
|
42
42
|
readonly crm: "https://crm-api.topolo.app";
|
|
43
|
+
readonly feed: "https://topolo-feed-api.topolo.app";
|
|
43
44
|
readonly forecast: "https://forecast-worker-production.topolo.workers.dev";
|
|
44
45
|
readonly learn: "https://topololearn-api.topolo.workers.dev";
|
|
45
46
|
readonly mail: "https://mail.topolo.app";
|
|
46
47
|
readonly mdm: "https://topolo-mdm-api.topolo.app";
|
|
47
48
|
readonly messaging: "https://messages.topolo.app";
|
|
48
49
|
readonly nexus: "https://topolo-nexus-gateway.topolo.workers.dev";
|
|
49
|
-
readonly one: "https://
|
|
50
|
+
readonly one: "https://one.topolo.app";
|
|
50
51
|
readonly pay: "https://topolo-pay.topolo.workers.dev";
|
|
51
52
|
readonly "quro.api": "https://api.ol0.me";
|
|
52
53
|
readonly "quro.redirect": "https://ol0.me";
|
|
@@ -70,10 +71,10 @@ declare const APPLICATIONS: {
|
|
|
70
71
|
readonly deployTargets: readonly [{
|
|
71
72
|
readonly name: "topoloadmin";
|
|
72
73
|
readonly kind: "pages";
|
|
73
|
-
readonly apiUrl:
|
|
74
|
+
readonly apiUrl: any;
|
|
74
75
|
readonly domains: readonly [];
|
|
75
76
|
readonly routes: readonly [];
|
|
76
|
-
readonly serviceId:
|
|
77
|
+
readonly serviceId: any;
|
|
77
78
|
}];
|
|
78
79
|
};
|
|
79
80
|
readonly agent: {
|
|
@@ -86,10 +87,10 @@ declare const APPLICATIONS: {
|
|
|
86
87
|
readonly deployTargets: readonly [{
|
|
87
88
|
readonly name: "topolo-agent";
|
|
88
89
|
readonly kind: "pages";
|
|
89
|
-
readonly apiUrl:
|
|
90
|
+
readonly apiUrl: any;
|
|
90
91
|
readonly domains: readonly [];
|
|
91
92
|
readonly routes: readonly [];
|
|
92
|
-
readonly serviceId:
|
|
93
|
+
readonly serviceId: any;
|
|
93
94
|
}, {
|
|
94
95
|
readonly name: "topolo-agent-worker";
|
|
95
96
|
readonly kind: "worker";
|
|
@@ -141,10 +142,10 @@ declare const APPLICATIONS: {
|
|
|
141
142
|
readonly deployTargets: readonly [{
|
|
142
143
|
readonly name: "bytes";
|
|
143
144
|
readonly kind: "pages";
|
|
144
|
-
readonly apiUrl:
|
|
145
|
+
readonly apiUrl: any;
|
|
145
146
|
readonly domains: readonly [];
|
|
146
147
|
readonly routes: readonly [];
|
|
147
|
-
readonly serviceId:
|
|
148
|
+
readonly serviceId: any;
|
|
148
149
|
}, {
|
|
149
150
|
readonly name: "r2-media-manager-worker";
|
|
150
151
|
readonly kind: "worker";
|
|
@@ -191,7 +192,7 @@ declare const APPLICATIONS: {
|
|
|
191
192
|
readonly appDir: "TopoloCli";
|
|
192
193
|
readonly name: "@topolo/cli";
|
|
193
194
|
readonly packageName: "@topolo/cli";
|
|
194
|
-
readonly productionUrl:
|
|
195
|
+
readonly productionUrl: any;
|
|
195
196
|
readonly services: readonly [];
|
|
196
197
|
readonly deployTargets: readonly [];
|
|
197
198
|
};
|
|
@@ -200,7 +201,7 @@ declare const APPLICATIONS: {
|
|
|
200
201
|
readonly appDir: "TopoloCloudControl";
|
|
201
202
|
readonly name: "topolo-cloudcontrol";
|
|
202
203
|
readonly packageName: "topolo-cloudcontrol";
|
|
203
|
-
readonly productionUrl:
|
|
204
|
+
readonly productionUrl: any;
|
|
204
205
|
readonly services: readonly [];
|
|
205
206
|
readonly deployTargets: readonly [];
|
|
206
207
|
};
|
|
@@ -221,24 +222,24 @@ declare const APPLICATIONS: {
|
|
|
221
222
|
}, {
|
|
222
223
|
readonly name: "topolo-commerce-guest-web";
|
|
223
224
|
readonly kind: "pages";
|
|
224
|
-
readonly apiUrl:
|
|
225
|
+
readonly apiUrl: any;
|
|
225
226
|
readonly domains: readonly ["guest.topolo.app", "topolo-commerce-guest-web.pages.dev"];
|
|
226
227
|
readonly routes: readonly [];
|
|
227
|
-
readonly serviceId:
|
|
228
|
+
readonly serviceId: any;
|
|
228
229
|
}, {
|
|
229
230
|
readonly name: "topolo-commerce-ops-web";
|
|
230
231
|
readonly kind: "pages";
|
|
231
|
-
readonly apiUrl:
|
|
232
|
+
readonly apiUrl: any;
|
|
232
233
|
readonly domains: readonly ["commerce.topolo.app", "topolo-commerce-ops-web.pages.dev"];
|
|
233
234
|
readonly routes: readonly [];
|
|
234
|
-
readonly serviceId:
|
|
235
|
+
readonly serviceId: any;
|
|
235
236
|
}, {
|
|
236
237
|
readonly name: "topolo-commerce-station-web";
|
|
237
238
|
readonly kind: "pages";
|
|
238
|
-
readonly apiUrl:
|
|
239
|
+
readonly apiUrl: any;
|
|
239
240
|
readonly domains: readonly ["station-commerce.topolo.app", "topolo-commerce-station-web.pages.dev"];
|
|
240
241
|
readonly routes: readonly [];
|
|
241
|
-
readonly serviceId:
|
|
242
|
+
readonly serviceId: any;
|
|
242
243
|
}];
|
|
243
244
|
};
|
|
244
245
|
readonly crm: {
|
|
@@ -251,10 +252,10 @@ declare const APPLICATIONS: {
|
|
|
251
252
|
readonly deployTargets: readonly [{
|
|
252
253
|
readonly name: "topolo-crm-frontend";
|
|
253
254
|
readonly kind: "pages";
|
|
254
|
-
readonly apiUrl:
|
|
255
|
+
readonly apiUrl: any;
|
|
255
256
|
readonly domains: readonly [];
|
|
256
257
|
readonly routes: readonly [];
|
|
257
|
-
readonly serviceId:
|
|
258
|
+
readonly serviceId: any;
|
|
258
259
|
}, {
|
|
259
260
|
readonly name: "topolo-crm-worker";
|
|
260
261
|
readonly kind: "worker";
|
|
@@ -274,10 +275,10 @@ declare const APPLICATIONS: {
|
|
|
274
275
|
readonly deployTargets: readonly [{
|
|
275
276
|
readonly name: "topolo-developers";
|
|
276
277
|
readonly kind: "pages";
|
|
277
|
-
readonly apiUrl:
|
|
278
|
+
readonly apiUrl: any;
|
|
278
279
|
readonly domains: readonly ["developers.topolo.app"];
|
|
279
280
|
readonly routes: readonly [];
|
|
280
|
-
readonly serviceId:
|
|
281
|
+
readonly serviceId: any;
|
|
281
282
|
}];
|
|
282
283
|
};
|
|
283
284
|
readonly docs: {
|
|
@@ -290,33 +291,33 @@ declare const APPLICATIONS: {
|
|
|
290
291
|
readonly deployTargets: readonly [{
|
|
291
292
|
readonly name: "topolo-docs";
|
|
292
293
|
readonly kind: "pages";
|
|
293
|
-
readonly apiUrl:
|
|
294
|
+
readonly apiUrl: any;
|
|
294
295
|
readonly domains: readonly ["docs.topolo.app"];
|
|
295
296
|
readonly routes: readonly [];
|
|
296
|
-
readonly serviceId:
|
|
297
|
+
readonly serviceId: any;
|
|
297
298
|
}];
|
|
298
299
|
};
|
|
299
300
|
readonly feed: {
|
|
300
301
|
readonly id: "feed";
|
|
301
302
|
readonly appDir: "TopoloFeed";
|
|
302
303
|
readonly name: "TopoloFeed";
|
|
303
|
-
readonly packageName:
|
|
304
|
-
readonly productionUrl:
|
|
305
|
-
readonly services: readonly [];
|
|
304
|
+
readonly packageName: any;
|
|
305
|
+
readonly productionUrl: "https://topolo-feed-api.topolo.app";
|
|
306
|
+
readonly services: readonly ["feed"];
|
|
306
307
|
readonly deployTargets: readonly [{
|
|
307
308
|
readonly name: "topolo-feed-analytics-api";
|
|
308
309
|
readonly kind: "worker";
|
|
309
|
-
readonly apiUrl:
|
|
310
|
-
readonly domains: readonly [];
|
|
311
|
-
readonly routes: readonly [];
|
|
312
|
-
readonly serviceId:
|
|
310
|
+
readonly apiUrl: "https://topolo-feed-analytics-api.topolo.app";
|
|
311
|
+
readonly domains: readonly ["topolo-feed-analytics-api.topolo.app"];
|
|
312
|
+
readonly routes: readonly ["topolo-feed-analytics-api.topolo.app"];
|
|
313
|
+
readonly serviceId: any;
|
|
313
314
|
}, {
|
|
314
315
|
readonly name: "topolo-feed-api";
|
|
315
316
|
readonly kind: "worker";
|
|
316
|
-
readonly apiUrl:
|
|
317
|
-
readonly domains: readonly [];
|
|
318
|
-
readonly routes: readonly [];
|
|
319
|
-
readonly serviceId:
|
|
317
|
+
readonly apiUrl: "https://topolo-feed-api.topolo.app";
|
|
318
|
+
readonly domains: readonly ["topolo-feed-api.topolo.app"];
|
|
319
|
+
readonly routes: readonly ["topolo-feed-api.topolo.app"];
|
|
320
|
+
readonly serviceId: "feed";
|
|
320
321
|
}];
|
|
321
322
|
};
|
|
322
323
|
readonly forecast: {
|
|
@@ -329,10 +330,10 @@ declare const APPLICATIONS: {
|
|
|
329
330
|
readonly deployTargets: readonly [{
|
|
330
331
|
readonly name: "forecast";
|
|
331
332
|
readonly kind: "pages";
|
|
332
|
-
readonly apiUrl:
|
|
333
|
+
readonly apiUrl: any;
|
|
333
334
|
readonly domains: readonly [];
|
|
334
335
|
readonly routes: readonly [];
|
|
335
|
-
readonly serviceId:
|
|
336
|
+
readonly serviceId: any;
|
|
336
337
|
}, {
|
|
337
338
|
readonly name: "forecast-worker-production";
|
|
338
339
|
readonly kind: "worker";
|
|
@@ -352,10 +353,10 @@ declare const APPLICATIONS: {
|
|
|
352
353
|
readonly deployTargets: readonly [{
|
|
353
354
|
readonly name: "topololearn";
|
|
354
355
|
readonly kind: "pages";
|
|
355
|
-
readonly apiUrl:
|
|
356
|
+
readonly apiUrl: any;
|
|
356
357
|
readonly domains: readonly ["learn.topolo.app"];
|
|
357
358
|
readonly routes: readonly [];
|
|
358
|
-
readonly serviceId:
|
|
359
|
+
readonly serviceId: any;
|
|
359
360
|
}, {
|
|
360
361
|
readonly name: "topololearn-api";
|
|
361
362
|
readonly kind: "worker";
|
|
@@ -386,7 +387,7 @@ declare const APPLICATIONS: {
|
|
|
386
387
|
readonly appDir: "TopoloMCP";
|
|
387
388
|
readonly name: "@topolo/mcp";
|
|
388
389
|
readonly packageName: "@topolo/mcp";
|
|
389
|
-
readonly productionUrl:
|
|
390
|
+
readonly productionUrl: any;
|
|
390
391
|
readonly services: readonly [];
|
|
391
392
|
readonly deployTargets: readonly [];
|
|
392
393
|
};
|
|
@@ -394,7 +395,7 @@ declare const APPLICATIONS: {
|
|
|
394
395
|
readonly id: "mdm";
|
|
395
396
|
readonly appDir: "TopoloMDM";
|
|
396
397
|
readonly name: "TopoloMDM";
|
|
397
|
-
readonly packageName:
|
|
398
|
+
readonly packageName: any;
|
|
398
399
|
readonly productionUrl: "https://mdm.topolo.app";
|
|
399
400
|
readonly services: readonly ["mdm"];
|
|
400
401
|
readonly deployTargets: readonly [{
|
|
@@ -407,10 +408,10 @@ declare const APPLICATIONS: {
|
|
|
407
408
|
}, {
|
|
408
409
|
readonly name: "topolo-mdm-console";
|
|
409
410
|
readonly kind: "pages";
|
|
410
|
-
readonly apiUrl:
|
|
411
|
+
readonly apiUrl: any;
|
|
411
412
|
readonly domains: readonly ["mdm.topolo.app", "topolo-mdm-console.pages.dev"];
|
|
412
413
|
readonly routes: readonly ["mdm.topolo.app"];
|
|
413
|
-
readonly serviceId:
|
|
414
|
+
readonly serviceId: any;
|
|
414
415
|
}];
|
|
415
416
|
};
|
|
416
417
|
readonly messaging: {
|
|
@@ -430,10 +431,10 @@ declare const APPLICATIONS: {
|
|
|
430
431
|
}, {
|
|
431
432
|
readonly name: "topolo-messaging-dispatch";
|
|
432
433
|
readonly kind: "workers";
|
|
433
|
-
readonly apiUrl:
|
|
434
|
+
readonly apiUrl: any;
|
|
434
435
|
readonly domains: readonly [];
|
|
435
436
|
readonly routes: readonly [];
|
|
436
|
-
readonly serviceId:
|
|
437
|
+
readonly serviceId: any;
|
|
437
438
|
}];
|
|
438
439
|
};
|
|
439
440
|
readonly nexus: {
|
|
@@ -446,10 +447,10 @@ declare const APPLICATIONS: {
|
|
|
446
447
|
readonly deployTargets: readonly [{
|
|
447
448
|
readonly name: "topolo-nexus-dashboard";
|
|
448
449
|
readonly kind: "pages";
|
|
449
|
-
readonly apiUrl:
|
|
450
|
+
readonly apiUrl: any;
|
|
450
451
|
readonly domains: readonly ["nexus.topolo.app", "topolo-nexus-dashboard.pages.dev"];
|
|
451
452
|
readonly routes: readonly [];
|
|
452
|
-
readonly serviceId:
|
|
453
|
+
readonly serviceId: any;
|
|
453
454
|
}, {
|
|
454
455
|
readonly name: "topolo-nexus-gateway";
|
|
455
456
|
readonly kind: "worker";
|
|
@@ -469,28 +470,28 @@ declare const APPLICATIONS: {
|
|
|
469
470
|
readonly deployTargets: readonly [{
|
|
470
471
|
readonly name: "ai-chat-rag";
|
|
471
472
|
readonly kind: "worker";
|
|
472
|
-
readonly apiUrl:
|
|
473
|
+
readonly apiUrl: any;
|
|
473
474
|
readonly domains: readonly ["ai-chat-rag.topolo.workers.dev"];
|
|
474
475
|
readonly routes: readonly [];
|
|
475
|
-
readonly serviceId:
|
|
476
|
+
readonly serviceId: any;
|
|
476
477
|
}, {
|
|
477
478
|
readonly name: "topoloone";
|
|
478
479
|
readonly kind: "pages";
|
|
479
|
-
readonly apiUrl:
|
|
480
|
+
readonly apiUrl: any;
|
|
480
481
|
readonly domains: readonly ["oneclick-dashboard.pages.dev"];
|
|
481
482
|
readonly routes: readonly [];
|
|
482
|
-
readonly serviceId:
|
|
483
|
+
readonly serviceId: any;
|
|
483
484
|
}, {
|
|
484
485
|
readonly name: "topoloone-website";
|
|
485
486
|
readonly kind: "worker";
|
|
486
|
-
readonly apiUrl:
|
|
487
|
+
readonly apiUrl: any;
|
|
487
488
|
readonly domains: readonly ["one.topolo.io"];
|
|
488
489
|
readonly routes: readonly [];
|
|
489
|
-
readonly serviceId:
|
|
490
|
+
readonly serviceId: any;
|
|
490
491
|
}, {
|
|
491
492
|
readonly name: "topoloone-worker";
|
|
492
493
|
readonly kind: "worker";
|
|
493
|
-
readonly apiUrl: "https://
|
|
494
|
+
readonly apiUrl: "https://one.topolo.app";
|
|
494
495
|
readonly domains: readonly [];
|
|
495
496
|
readonly routes: readonly ["one.topolo.app/*"];
|
|
496
497
|
readonly serviceId: "one";
|
|
@@ -516,7 +517,7 @@ declare const APPLICATIONS: {
|
|
|
516
517
|
readonly id: "quro";
|
|
517
518
|
readonly appDir: "TopoloQuro";
|
|
518
519
|
readonly name: "TopoloQuro";
|
|
519
|
-
readonly packageName:
|
|
520
|
+
readonly packageName: any;
|
|
520
521
|
readonly productionUrl: "https://quro.topolo.app";
|
|
521
522
|
readonly services: readonly ["quro.api", "quro.redirect"];
|
|
522
523
|
readonly deployTargets: readonly [{
|
|
@@ -536,10 +537,10 @@ declare const APPLICATIONS: {
|
|
|
536
537
|
}, {
|
|
537
538
|
readonly name: "quro-ui";
|
|
538
539
|
readonly kind: "pages";
|
|
539
|
-
readonly apiUrl:
|
|
540
|
+
readonly apiUrl: any;
|
|
540
541
|
readonly domains: readonly [];
|
|
541
542
|
readonly routes: readonly [];
|
|
542
|
-
readonly serviceId:
|
|
543
|
+
readonly serviceId: any;
|
|
543
544
|
}];
|
|
544
545
|
};
|
|
545
546
|
readonly roadmapper: {
|
|
@@ -552,10 +553,10 @@ declare const APPLICATIONS: {
|
|
|
552
553
|
readonly deployTargets: readonly [{
|
|
553
554
|
readonly name: "roadmapper";
|
|
554
555
|
readonly kind: "pages";
|
|
555
|
-
readonly apiUrl:
|
|
556
|
+
readonly apiUrl: any;
|
|
556
557
|
readonly domains: readonly ["roadmapper.topolo.app"];
|
|
557
558
|
readonly routes: readonly [];
|
|
558
|
-
readonly serviceId:
|
|
559
|
+
readonly serviceId: any;
|
|
559
560
|
}, {
|
|
560
561
|
readonly name: "topolo-production-roadmapper";
|
|
561
562
|
readonly kind: "worker";
|
|
@@ -575,10 +576,10 @@ declare const APPLICATIONS: {
|
|
|
575
576
|
readonly deployTargets: readonly [{
|
|
576
577
|
readonly name: "topolo-social-studio";
|
|
577
578
|
readonly kind: "pages";
|
|
578
|
-
readonly apiUrl:
|
|
579
|
+
readonly apiUrl: any;
|
|
579
580
|
readonly domains: readonly [];
|
|
580
581
|
readonly routes: readonly [];
|
|
581
|
-
readonly serviceId:
|
|
582
|
+
readonly serviceId: any;
|
|
582
583
|
}, {
|
|
583
584
|
readonly name: "topolo-social-studio-api";
|
|
584
585
|
readonly kind: "worker";
|
|
@@ -589,10 +590,10 @@ declare const APPLICATIONS: {
|
|
|
589
590
|
}, {
|
|
590
591
|
readonly name: "topolo-social-studio-queue";
|
|
591
592
|
readonly kind: "worker";
|
|
592
|
-
readonly apiUrl:
|
|
593
|
+
readonly apiUrl: any;
|
|
593
594
|
readonly domains: readonly [];
|
|
594
595
|
readonly routes: readonly [];
|
|
595
|
-
readonly serviceId:
|
|
596
|
+
readonly serviceId: any;
|
|
596
597
|
}];
|
|
597
598
|
};
|
|
598
599
|
readonly socialize: {
|
|
@@ -605,10 +606,10 @@ declare const APPLICATIONS: {
|
|
|
605
606
|
readonly deployTargets: readonly [{
|
|
606
607
|
readonly name: "socialize";
|
|
607
608
|
readonly kind: "pages";
|
|
608
|
-
readonly apiUrl:
|
|
609
|
+
readonly apiUrl: any;
|
|
609
610
|
readonly domains: readonly [];
|
|
610
611
|
readonly routes: readonly [];
|
|
611
|
-
readonly serviceId:
|
|
612
|
+
readonly serviceId: any;
|
|
612
613
|
}, {
|
|
613
614
|
readonly name: "socialize-prod-api";
|
|
614
615
|
readonly kind: "worker";
|
|
@@ -619,10 +620,10 @@ declare const APPLICATIONS: {
|
|
|
619
620
|
}, {
|
|
620
621
|
readonly name: "socialize-prod-scheduler";
|
|
621
622
|
readonly kind: "worker";
|
|
622
|
-
readonly apiUrl:
|
|
623
|
+
readonly apiUrl: any;
|
|
623
624
|
readonly domains: readonly [];
|
|
624
625
|
readonly routes: readonly [];
|
|
625
|
-
readonly serviceId:
|
|
626
|
+
readonly serviceId: any;
|
|
626
627
|
}];
|
|
627
628
|
};
|
|
628
629
|
readonly support: {
|
|
@@ -661,14 +662,14 @@ declare const APPLICATIONS: {
|
|
|
661
662
|
readonly apiUrl: "https://sites.topolo.app";
|
|
662
663
|
readonly domains: readonly ["sites.topolo.app"];
|
|
663
664
|
readonly routes: readonly [];
|
|
664
|
-
readonly serviceId:
|
|
665
|
+
readonly serviceId: any;
|
|
665
666
|
}, {
|
|
666
667
|
readonly name: "topoloweb-studio";
|
|
667
668
|
readonly kind: "pages";
|
|
668
|
-
readonly apiUrl:
|
|
669
|
+
readonly apiUrl: any;
|
|
669
670
|
readonly domains: readonly ["web.topolo.app"];
|
|
670
671
|
readonly routes: readonly [];
|
|
671
|
-
readonly serviceId:
|
|
672
|
+
readonly serviceId: any;
|
|
672
673
|
}];
|
|
673
674
|
};
|
|
674
675
|
};
|
|
@@ -750,8 +751,8 @@ declare const APPLICATION_REQUIREMENTS: readonly [{
|
|
|
750
751
|
readonly title: "Use the shared shell, launcher, and account menu";
|
|
751
752
|
readonly summary: "Browser applications should feel like one platform and should not create isolated navigation or account surfaces.";
|
|
752
753
|
readonly appliesTo: readonly ["browser"];
|
|
753
|
-
readonly evidence: readonly ["@topolo/ui-kit is used for the platform shell where the app has authenticated UI", "The shared launcher/app switcher is reachable from authenticated app chrome", "Account menu and sign-out behavior use
|
|
754
|
-
readonly implementation: readonly ["Use
|
|
754
|
+
readonly evidence: readonly ["@topolo/ui-kit is used for the platform shell where the app has authenticated UI", "The shared launcher/app switcher is reachable from authenticated app chrome", "Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu"];
|
|
755
|
+
readonly implementation: readonly ["Use TopoloAppShell for authenticated app layouts", "Use TopoloAccountMenu when a partial-shell surface still needs account chrome", "Pass app-specific account actions as additive menu items instead of forking dropdowns", "Use shared design tokens and platform UI primitives before creating local equivalents", "Keep mobile and desktop shell behavior aligned with the platform UI kit"];
|
|
755
756
|
}, {
|
|
756
757
|
readonly id: "service-registration-and-scopes";
|
|
757
758
|
readonly title: "Register protected APIs as platform services";
|
package/dist/index.d.ts
CHANGED
|
@@ -40,13 +40,14 @@ declare const SERVICES: {
|
|
|
40
40
|
readonly chat: "https://chat.topolo.app";
|
|
41
41
|
readonly commerce: "https://topolo-commerce-api.topolo.workers.dev";
|
|
42
42
|
readonly crm: "https://crm-api.topolo.app";
|
|
43
|
+
readonly feed: "https://topolo-feed-api.topolo.app";
|
|
43
44
|
readonly forecast: "https://forecast-worker-production.topolo.workers.dev";
|
|
44
45
|
readonly learn: "https://topololearn-api.topolo.workers.dev";
|
|
45
46
|
readonly mail: "https://mail.topolo.app";
|
|
46
47
|
readonly mdm: "https://topolo-mdm-api.topolo.app";
|
|
47
48
|
readonly messaging: "https://messages.topolo.app";
|
|
48
49
|
readonly nexus: "https://topolo-nexus-gateway.topolo.workers.dev";
|
|
49
|
-
readonly one: "https://
|
|
50
|
+
readonly one: "https://one.topolo.app";
|
|
50
51
|
readonly pay: "https://topolo-pay.topolo.workers.dev";
|
|
51
52
|
readonly "quro.api": "https://api.ol0.me";
|
|
52
53
|
readonly "quro.redirect": "https://ol0.me";
|
|
@@ -70,10 +71,10 @@ declare const APPLICATIONS: {
|
|
|
70
71
|
readonly deployTargets: readonly [{
|
|
71
72
|
readonly name: "topoloadmin";
|
|
72
73
|
readonly kind: "pages";
|
|
73
|
-
readonly apiUrl:
|
|
74
|
+
readonly apiUrl: any;
|
|
74
75
|
readonly domains: readonly [];
|
|
75
76
|
readonly routes: readonly [];
|
|
76
|
-
readonly serviceId:
|
|
77
|
+
readonly serviceId: any;
|
|
77
78
|
}];
|
|
78
79
|
};
|
|
79
80
|
readonly agent: {
|
|
@@ -86,10 +87,10 @@ declare const APPLICATIONS: {
|
|
|
86
87
|
readonly deployTargets: readonly [{
|
|
87
88
|
readonly name: "topolo-agent";
|
|
88
89
|
readonly kind: "pages";
|
|
89
|
-
readonly apiUrl:
|
|
90
|
+
readonly apiUrl: any;
|
|
90
91
|
readonly domains: readonly [];
|
|
91
92
|
readonly routes: readonly [];
|
|
92
|
-
readonly serviceId:
|
|
93
|
+
readonly serviceId: any;
|
|
93
94
|
}, {
|
|
94
95
|
readonly name: "topolo-agent-worker";
|
|
95
96
|
readonly kind: "worker";
|
|
@@ -141,10 +142,10 @@ declare const APPLICATIONS: {
|
|
|
141
142
|
readonly deployTargets: readonly [{
|
|
142
143
|
readonly name: "bytes";
|
|
143
144
|
readonly kind: "pages";
|
|
144
|
-
readonly apiUrl:
|
|
145
|
+
readonly apiUrl: any;
|
|
145
146
|
readonly domains: readonly [];
|
|
146
147
|
readonly routes: readonly [];
|
|
147
|
-
readonly serviceId:
|
|
148
|
+
readonly serviceId: any;
|
|
148
149
|
}, {
|
|
149
150
|
readonly name: "r2-media-manager-worker";
|
|
150
151
|
readonly kind: "worker";
|
|
@@ -191,7 +192,7 @@ declare const APPLICATIONS: {
|
|
|
191
192
|
readonly appDir: "TopoloCli";
|
|
192
193
|
readonly name: "@topolo/cli";
|
|
193
194
|
readonly packageName: "@topolo/cli";
|
|
194
|
-
readonly productionUrl:
|
|
195
|
+
readonly productionUrl: any;
|
|
195
196
|
readonly services: readonly [];
|
|
196
197
|
readonly deployTargets: readonly [];
|
|
197
198
|
};
|
|
@@ -200,7 +201,7 @@ declare const APPLICATIONS: {
|
|
|
200
201
|
readonly appDir: "TopoloCloudControl";
|
|
201
202
|
readonly name: "topolo-cloudcontrol";
|
|
202
203
|
readonly packageName: "topolo-cloudcontrol";
|
|
203
|
-
readonly productionUrl:
|
|
204
|
+
readonly productionUrl: any;
|
|
204
205
|
readonly services: readonly [];
|
|
205
206
|
readonly deployTargets: readonly [];
|
|
206
207
|
};
|
|
@@ -221,24 +222,24 @@ declare const APPLICATIONS: {
|
|
|
221
222
|
}, {
|
|
222
223
|
readonly name: "topolo-commerce-guest-web";
|
|
223
224
|
readonly kind: "pages";
|
|
224
|
-
readonly apiUrl:
|
|
225
|
+
readonly apiUrl: any;
|
|
225
226
|
readonly domains: readonly ["guest.topolo.app", "topolo-commerce-guest-web.pages.dev"];
|
|
226
227
|
readonly routes: readonly [];
|
|
227
|
-
readonly serviceId:
|
|
228
|
+
readonly serviceId: any;
|
|
228
229
|
}, {
|
|
229
230
|
readonly name: "topolo-commerce-ops-web";
|
|
230
231
|
readonly kind: "pages";
|
|
231
|
-
readonly apiUrl:
|
|
232
|
+
readonly apiUrl: any;
|
|
232
233
|
readonly domains: readonly ["commerce.topolo.app", "topolo-commerce-ops-web.pages.dev"];
|
|
233
234
|
readonly routes: readonly [];
|
|
234
|
-
readonly serviceId:
|
|
235
|
+
readonly serviceId: any;
|
|
235
236
|
}, {
|
|
236
237
|
readonly name: "topolo-commerce-station-web";
|
|
237
238
|
readonly kind: "pages";
|
|
238
|
-
readonly apiUrl:
|
|
239
|
+
readonly apiUrl: any;
|
|
239
240
|
readonly domains: readonly ["station-commerce.topolo.app", "topolo-commerce-station-web.pages.dev"];
|
|
240
241
|
readonly routes: readonly [];
|
|
241
|
-
readonly serviceId:
|
|
242
|
+
readonly serviceId: any;
|
|
242
243
|
}];
|
|
243
244
|
};
|
|
244
245
|
readonly crm: {
|
|
@@ -251,10 +252,10 @@ declare const APPLICATIONS: {
|
|
|
251
252
|
readonly deployTargets: readonly [{
|
|
252
253
|
readonly name: "topolo-crm-frontend";
|
|
253
254
|
readonly kind: "pages";
|
|
254
|
-
readonly apiUrl:
|
|
255
|
+
readonly apiUrl: any;
|
|
255
256
|
readonly domains: readonly [];
|
|
256
257
|
readonly routes: readonly [];
|
|
257
|
-
readonly serviceId:
|
|
258
|
+
readonly serviceId: any;
|
|
258
259
|
}, {
|
|
259
260
|
readonly name: "topolo-crm-worker";
|
|
260
261
|
readonly kind: "worker";
|
|
@@ -274,10 +275,10 @@ declare const APPLICATIONS: {
|
|
|
274
275
|
readonly deployTargets: readonly [{
|
|
275
276
|
readonly name: "topolo-developers";
|
|
276
277
|
readonly kind: "pages";
|
|
277
|
-
readonly apiUrl:
|
|
278
|
+
readonly apiUrl: any;
|
|
278
279
|
readonly domains: readonly ["developers.topolo.app"];
|
|
279
280
|
readonly routes: readonly [];
|
|
280
|
-
readonly serviceId:
|
|
281
|
+
readonly serviceId: any;
|
|
281
282
|
}];
|
|
282
283
|
};
|
|
283
284
|
readonly docs: {
|
|
@@ -290,33 +291,33 @@ declare const APPLICATIONS: {
|
|
|
290
291
|
readonly deployTargets: readonly [{
|
|
291
292
|
readonly name: "topolo-docs";
|
|
292
293
|
readonly kind: "pages";
|
|
293
|
-
readonly apiUrl:
|
|
294
|
+
readonly apiUrl: any;
|
|
294
295
|
readonly domains: readonly ["docs.topolo.app"];
|
|
295
296
|
readonly routes: readonly [];
|
|
296
|
-
readonly serviceId:
|
|
297
|
+
readonly serviceId: any;
|
|
297
298
|
}];
|
|
298
299
|
};
|
|
299
300
|
readonly feed: {
|
|
300
301
|
readonly id: "feed";
|
|
301
302
|
readonly appDir: "TopoloFeed";
|
|
302
303
|
readonly name: "TopoloFeed";
|
|
303
|
-
readonly packageName:
|
|
304
|
-
readonly productionUrl:
|
|
305
|
-
readonly services: readonly [];
|
|
304
|
+
readonly packageName: any;
|
|
305
|
+
readonly productionUrl: "https://topolo-feed-api.topolo.app";
|
|
306
|
+
readonly services: readonly ["feed"];
|
|
306
307
|
readonly deployTargets: readonly [{
|
|
307
308
|
readonly name: "topolo-feed-analytics-api";
|
|
308
309
|
readonly kind: "worker";
|
|
309
|
-
readonly apiUrl:
|
|
310
|
-
readonly domains: readonly [];
|
|
311
|
-
readonly routes: readonly [];
|
|
312
|
-
readonly serviceId:
|
|
310
|
+
readonly apiUrl: "https://topolo-feed-analytics-api.topolo.app";
|
|
311
|
+
readonly domains: readonly ["topolo-feed-analytics-api.topolo.app"];
|
|
312
|
+
readonly routes: readonly ["topolo-feed-analytics-api.topolo.app"];
|
|
313
|
+
readonly serviceId: any;
|
|
313
314
|
}, {
|
|
314
315
|
readonly name: "topolo-feed-api";
|
|
315
316
|
readonly kind: "worker";
|
|
316
|
-
readonly apiUrl:
|
|
317
|
-
readonly domains: readonly [];
|
|
318
|
-
readonly routes: readonly [];
|
|
319
|
-
readonly serviceId:
|
|
317
|
+
readonly apiUrl: "https://topolo-feed-api.topolo.app";
|
|
318
|
+
readonly domains: readonly ["topolo-feed-api.topolo.app"];
|
|
319
|
+
readonly routes: readonly ["topolo-feed-api.topolo.app"];
|
|
320
|
+
readonly serviceId: "feed";
|
|
320
321
|
}];
|
|
321
322
|
};
|
|
322
323
|
readonly forecast: {
|
|
@@ -329,10 +330,10 @@ declare const APPLICATIONS: {
|
|
|
329
330
|
readonly deployTargets: readonly [{
|
|
330
331
|
readonly name: "forecast";
|
|
331
332
|
readonly kind: "pages";
|
|
332
|
-
readonly apiUrl:
|
|
333
|
+
readonly apiUrl: any;
|
|
333
334
|
readonly domains: readonly [];
|
|
334
335
|
readonly routes: readonly [];
|
|
335
|
-
readonly serviceId:
|
|
336
|
+
readonly serviceId: any;
|
|
336
337
|
}, {
|
|
337
338
|
readonly name: "forecast-worker-production";
|
|
338
339
|
readonly kind: "worker";
|
|
@@ -352,10 +353,10 @@ declare const APPLICATIONS: {
|
|
|
352
353
|
readonly deployTargets: readonly [{
|
|
353
354
|
readonly name: "topololearn";
|
|
354
355
|
readonly kind: "pages";
|
|
355
|
-
readonly apiUrl:
|
|
356
|
+
readonly apiUrl: any;
|
|
356
357
|
readonly domains: readonly ["learn.topolo.app"];
|
|
357
358
|
readonly routes: readonly [];
|
|
358
|
-
readonly serviceId:
|
|
359
|
+
readonly serviceId: any;
|
|
359
360
|
}, {
|
|
360
361
|
readonly name: "topololearn-api";
|
|
361
362
|
readonly kind: "worker";
|
|
@@ -386,7 +387,7 @@ declare const APPLICATIONS: {
|
|
|
386
387
|
readonly appDir: "TopoloMCP";
|
|
387
388
|
readonly name: "@topolo/mcp";
|
|
388
389
|
readonly packageName: "@topolo/mcp";
|
|
389
|
-
readonly productionUrl:
|
|
390
|
+
readonly productionUrl: any;
|
|
390
391
|
readonly services: readonly [];
|
|
391
392
|
readonly deployTargets: readonly [];
|
|
392
393
|
};
|
|
@@ -394,7 +395,7 @@ declare const APPLICATIONS: {
|
|
|
394
395
|
readonly id: "mdm";
|
|
395
396
|
readonly appDir: "TopoloMDM";
|
|
396
397
|
readonly name: "TopoloMDM";
|
|
397
|
-
readonly packageName:
|
|
398
|
+
readonly packageName: any;
|
|
398
399
|
readonly productionUrl: "https://mdm.topolo.app";
|
|
399
400
|
readonly services: readonly ["mdm"];
|
|
400
401
|
readonly deployTargets: readonly [{
|
|
@@ -407,10 +408,10 @@ declare const APPLICATIONS: {
|
|
|
407
408
|
}, {
|
|
408
409
|
readonly name: "topolo-mdm-console";
|
|
409
410
|
readonly kind: "pages";
|
|
410
|
-
readonly apiUrl:
|
|
411
|
+
readonly apiUrl: any;
|
|
411
412
|
readonly domains: readonly ["mdm.topolo.app", "topolo-mdm-console.pages.dev"];
|
|
412
413
|
readonly routes: readonly ["mdm.topolo.app"];
|
|
413
|
-
readonly serviceId:
|
|
414
|
+
readonly serviceId: any;
|
|
414
415
|
}];
|
|
415
416
|
};
|
|
416
417
|
readonly messaging: {
|
|
@@ -430,10 +431,10 @@ declare const APPLICATIONS: {
|
|
|
430
431
|
}, {
|
|
431
432
|
readonly name: "topolo-messaging-dispatch";
|
|
432
433
|
readonly kind: "workers";
|
|
433
|
-
readonly apiUrl:
|
|
434
|
+
readonly apiUrl: any;
|
|
434
435
|
readonly domains: readonly [];
|
|
435
436
|
readonly routes: readonly [];
|
|
436
|
-
readonly serviceId:
|
|
437
|
+
readonly serviceId: any;
|
|
437
438
|
}];
|
|
438
439
|
};
|
|
439
440
|
readonly nexus: {
|
|
@@ -446,10 +447,10 @@ declare const APPLICATIONS: {
|
|
|
446
447
|
readonly deployTargets: readonly [{
|
|
447
448
|
readonly name: "topolo-nexus-dashboard";
|
|
448
449
|
readonly kind: "pages";
|
|
449
|
-
readonly apiUrl:
|
|
450
|
+
readonly apiUrl: any;
|
|
450
451
|
readonly domains: readonly ["nexus.topolo.app", "topolo-nexus-dashboard.pages.dev"];
|
|
451
452
|
readonly routes: readonly [];
|
|
452
|
-
readonly serviceId:
|
|
453
|
+
readonly serviceId: any;
|
|
453
454
|
}, {
|
|
454
455
|
readonly name: "topolo-nexus-gateway";
|
|
455
456
|
readonly kind: "worker";
|
|
@@ -469,28 +470,28 @@ declare const APPLICATIONS: {
|
|
|
469
470
|
readonly deployTargets: readonly [{
|
|
470
471
|
readonly name: "ai-chat-rag";
|
|
471
472
|
readonly kind: "worker";
|
|
472
|
-
readonly apiUrl:
|
|
473
|
+
readonly apiUrl: any;
|
|
473
474
|
readonly domains: readonly ["ai-chat-rag.topolo.workers.dev"];
|
|
474
475
|
readonly routes: readonly [];
|
|
475
|
-
readonly serviceId:
|
|
476
|
+
readonly serviceId: any;
|
|
476
477
|
}, {
|
|
477
478
|
readonly name: "topoloone";
|
|
478
479
|
readonly kind: "pages";
|
|
479
|
-
readonly apiUrl:
|
|
480
|
+
readonly apiUrl: any;
|
|
480
481
|
readonly domains: readonly ["oneclick-dashboard.pages.dev"];
|
|
481
482
|
readonly routes: readonly [];
|
|
482
|
-
readonly serviceId:
|
|
483
|
+
readonly serviceId: any;
|
|
483
484
|
}, {
|
|
484
485
|
readonly name: "topoloone-website";
|
|
485
486
|
readonly kind: "worker";
|
|
486
|
-
readonly apiUrl:
|
|
487
|
+
readonly apiUrl: any;
|
|
487
488
|
readonly domains: readonly ["one.topolo.io"];
|
|
488
489
|
readonly routes: readonly [];
|
|
489
|
-
readonly serviceId:
|
|
490
|
+
readonly serviceId: any;
|
|
490
491
|
}, {
|
|
491
492
|
readonly name: "topoloone-worker";
|
|
492
493
|
readonly kind: "worker";
|
|
493
|
-
readonly apiUrl: "https://
|
|
494
|
+
readonly apiUrl: "https://one.topolo.app";
|
|
494
495
|
readonly domains: readonly [];
|
|
495
496
|
readonly routes: readonly ["one.topolo.app/*"];
|
|
496
497
|
readonly serviceId: "one";
|
|
@@ -516,7 +517,7 @@ declare const APPLICATIONS: {
|
|
|
516
517
|
readonly id: "quro";
|
|
517
518
|
readonly appDir: "TopoloQuro";
|
|
518
519
|
readonly name: "TopoloQuro";
|
|
519
|
-
readonly packageName:
|
|
520
|
+
readonly packageName: any;
|
|
520
521
|
readonly productionUrl: "https://quro.topolo.app";
|
|
521
522
|
readonly services: readonly ["quro.api", "quro.redirect"];
|
|
522
523
|
readonly deployTargets: readonly [{
|
|
@@ -536,10 +537,10 @@ declare const APPLICATIONS: {
|
|
|
536
537
|
}, {
|
|
537
538
|
readonly name: "quro-ui";
|
|
538
539
|
readonly kind: "pages";
|
|
539
|
-
readonly apiUrl:
|
|
540
|
+
readonly apiUrl: any;
|
|
540
541
|
readonly domains: readonly [];
|
|
541
542
|
readonly routes: readonly [];
|
|
542
|
-
readonly serviceId:
|
|
543
|
+
readonly serviceId: any;
|
|
543
544
|
}];
|
|
544
545
|
};
|
|
545
546
|
readonly roadmapper: {
|
|
@@ -552,10 +553,10 @@ declare const APPLICATIONS: {
|
|
|
552
553
|
readonly deployTargets: readonly [{
|
|
553
554
|
readonly name: "roadmapper";
|
|
554
555
|
readonly kind: "pages";
|
|
555
|
-
readonly apiUrl:
|
|
556
|
+
readonly apiUrl: any;
|
|
556
557
|
readonly domains: readonly ["roadmapper.topolo.app"];
|
|
557
558
|
readonly routes: readonly [];
|
|
558
|
-
readonly serviceId:
|
|
559
|
+
readonly serviceId: any;
|
|
559
560
|
}, {
|
|
560
561
|
readonly name: "topolo-production-roadmapper";
|
|
561
562
|
readonly kind: "worker";
|
|
@@ -575,10 +576,10 @@ declare const APPLICATIONS: {
|
|
|
575
576
|
readonly deployTargets: readonly [{
|
|
576
577
|
readonly name: "topolo-social-studio";
|
|
577
578
|
readonly kind: "pages";
|
|
578
|
-
readonly apiUrl:
|
|
579
|
+
readonly apiUrl: any;
|
|
579
580
|
readonly domains: readonly [];
|
|
580
581
|
readonly routes: readonly [];
|
|
581
|
-
readonly serviceId:
|
|
582
|
+
readonly serviceId: any;
|
|
582
583
|
}, {
|
|
583
584
|
readonly name: "topolo-social-studio-api";
|
|
584
585
|
readonly kind: "worker";
|
|
@@ -589,10 +590,10 @@ declare const APPLICATIONS: {
|
|
|
589
590
|
}, {
|
|
590
591
|
readonly name: "topolo-social-studio-queue";
|
|
591
592
|
readonly kind: "worker";
|
|
592
|
-
readonly apiUrl:
|
|
593
|
+
readonly apiUrl: any;
|
|
593
594
|
readonly domains: readonly [];
|
|
594
595
|
readonly routes: readonly [];
|
|
595
|
-
readonly serviceId:
|
|
596
|
+
readonly serviceId: any;
|
|
596
597
|
}];
|
|
597
598
|
};
|
|
598
599
|
readonly socialize: {
|
|
@@ -605,10 +606,10 @@ declare const APPLICATIONS: {
|
|
|
605
606
|
readonly deployTargets: readonly [{
|
|
606
607
|
readonly name: "socialize";
|
|
607
608
|
readonly kind: "pages";
|
|
608
|
-
readonly apiUrl:
|
|
609
|
+
readonly apiUrl: any;
|
|
609
610
|
readonly domains: readonly [];
|
|
610
611
|
readonly routes: readonly [];
|
|
611
|
-
readonly serviceId:
|
|
612
|
+
readonly serviceId: any;
|
|
612
613
|
}, {
|
|
613
614
|
readonly name: "socialize-prod-api";
|
|
614
615
|
readonly kind: "worker";
|
|
@@ -619,10 +620,10 @@ declare const APPLICATIONS: {
|
|
|
619
620
|
}, {
|
|
620
621
|
readonly name: "socialize-prod-scheduler";
|
|
621
622
|
readonly kind: "worker";
|
|
622
|
-
readonly apiUrl:
|
|
623
|
+
readonly apiUrl: any;
|
|
623
624
|
readonly domains: readonly [];
|
|
624
625
|
readonly routes: readonly [];
|
|
625
|
-
readonly serviceId:
|
|
626
|
+
readonly serviceId: any;
|
|
626
627
|
}];
|
|
627
628
|
};
|
|
628
629
|
readonly support: {
|
|
@@ -661,14 +662,14 @@ declare const APPLICATIONS: {
|
|
|
661
662
|
readonly apiUrl: "https://sites.topolo.app";
|
|
662
663
|
readonly domains: readonly ["sites.topolo.app"];
|
|
663
664
|
readonly routes: readonly [];
|
|
664
|
-
readonly serviceId:
|
|
665
|
+
readonly serviceId: any;
|
|
665
666
|
}, {
|
|
666
667
|
readonly name: "topoloweb-studio";
|
|
667
668
|
readonly kind: "pages";
|
|
668
|
-
readonly apiUrl:
|
|
669
|
+
readonly apiUrl: any;
|
|
669
670
|
readonly domains: readonly ["web.topolo.app"];
|
|
670
671
|
readonly routes: readonly [];
|
|
671
|
-
readonly serviceId:
|
|
672
|
+
readonly serviceId: any;
|
|
672
673
|
}];
|
|
673
674
|
};
|
|
674
675
|
};
|
|
@@ -750,8 +751,8 @@ declare const APPLICATION_REQUIREMENTS: readonly [{
|
|
|
750
751
|
readonly title: "Use the shared shell, launcher, and account menu";
|
|
751
752
|
readonly summary: "Browser applications should feel like one platform and should not create isolated navigation or account surfaces.";
|
|
752
753
|
readonly appliesTo: readonly ["browser"];
|
|
753
|
-
readonly evidence: readonly ["@topolo/ui-kit is used for the platform shell where the app has authenticated UI", "The shared launcher/app switcher is reachable from authenticated app chrome", "Account menu and sign-out behavior use
|
|
754
|
-
readonly implementation: readonly ["Use
|
|
754
|
+
readonly evidence: readonly ["@topolo/ui-kit is used for the platform shell where the app has authenticated UI", "The shared launcher/app switcher is reachable from authenticated app chrome", "Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu"];
|
|
755
|
+
readonly implementation: readonly ["Use TopoloAppShell for authenticated app layouts", "Use TopoloAccountMenu when a partial-shell surface still needs account chrome", "Pass app-specific account actions as additive menu items instead of forking dropdowns", "Use shared design tokens and platform UI primitives before creating local equivalents", "Keep mobile and desktop shell behavior aligned with the platform UI kit"];
|
|
755
756
|
}, {
|
|
756
757
|
readonly id: "service-registration-and-scopes";
|
|
757
758
|
readonly title: "Register protected APIs as platform services";
|
package/dist/index.js
CHANGED
|
@@ -66,13 +66,14 @@ var SERVICES = {
|
|
|
66
66
|
chat: "https://chat.topolo.app",
|
|
67
67
|
commerce: "https://topolo-commerce-api.topolo.workers.dev",
|
|
68
68
|
crm: "https://crm-api.topolo.app",
|
|
69
|
+
feed: "https://topolo-feed-api.topolo.app",
|
|
69
70
|
forecast: "https://forecast-worker-production.topolo.workers.dev",
|
|
70
71
|
learn: "https://topololearn-api.topolo.workers.dev",
|
|
71
72
|
mail: "https://mail.topolo.app",
|
|
72
73
|
mdm: "https://topolo-mdm-api.topolo.app",
|
|
73
74
|
messaging: "https://messages.topolo.app",
|
|
74
75
|
nexus: "https://topolo-nexus-gateway.topolo.workers.dev",
|
|
75
|
-
one: "https://
|
|
76
|
+
one: "https://one.topolo.app",
|
|
76
77
|
pay: "https://topolo-pay.topolo.workers.dev",
|
|
77
78
|
"quro.api": "https://api.ol0.me",
|
|
78
79
|
"quro.redirect": "https://ol0.me",
|
|
@@ -404,24 +405,34 @@ var APPLICATIONS = {
|
|
|
404
405
|
"appDir": "TopoloFeed",
|
|
405
406
|
"name": "TopoloFeed",
|
|
406
407
|
"packageName": null,
|
|
407
|
-
"productionUrl":
|
|
408
|
-
"services": [
|
|
408
|
+
"productionUrl": "https://topolo-feed-api.topolo.app",
|
|
409
|
+
"services": [
|
|
410
|
+
"feed"
|
|
411
|
+
],
|
|
409
412
|
"deployTargets": [
|
|
410
413
|
{
|
|
411
414
|
"name": "topolo-feed-analytics-api",
|
|
412
415
|
"kind": "worker",
|
|
413
|
-
"apiUrl":
|
|
414
|
-
"domains": [
|
|
415
|
-
|
|
416
|
+
"apiUrl": "https://topolo-feed-analytics-api.topolo.app",
|
|
417
|
+
"domains": [
|
|
418
|
+
"topolo-feed-analytics-api.topolo.app"
|
|
419
|
+
],
|
|
420
|
+
"routes": [
|
|
421
|
+
"topolo-feed-analytics-api.topolo.app"
|
|
422
|
+
],
|
|
416
423
|
"serviceId": null
|
|
417
424
|
},
|
|
418
425
|
{
|
|
419
426
|
"name": "topolo-feed-api",
|
|
420
427
|
"kind": "worker",
|
|
421
|
-
"apiUrl":
|
|
422
|
-
"domains": [
|
|
423
|
-
|
|
424
|
-
|
|
428
|
+
"apiUrl": "https://topolo-feed-api.topolo.app",
|
|
429
|
+
"domains": [
|
|
430
|
+
"topolo-feed-api.topolo.app"
|
|
431
|
+
],
|
|
432
|
+
"routes": [
|
|
433
|
+
"topolo-feed-api.topolo.app"
|
|
434
|
+
],
|
|
435
|
+
"serviceId": "feed"
|
|
425
436
|
}
|
|
426
437
|
]
|
|
427
438
|
},
|
|
@@ -661,7 +672,7 @@ var APPLICATIONS = {
|
|
|
661
672
|
{
|
|
662
673
|
"name": "topoloone-worker",
|
|
663
674
|
"kind": "worker",
|
|
664
|
-
"apiUrl": "https://
|
|
675
|
+
"apiUrl": "https://one.topolo.app",
|
|
665
676
|
"domains": [],
|
|
666
677
|
"routes": [
|
|
667
678
|
"one.topolo.app/*"
|
|
@@ -960,10 +971,12 @@ var APPLICATION_REQUIREMENTS = [
|
|
|
960
971
|
evidence: [
|
|
961
972
|
"@topolo/ui-kit is used for the platform shell where the app has authenticated UI",
|
|
962
973
|
"The shared launcher/app switcher is reachable from authenticated app chrome",
|
|
963
|
-
"Account menu and sign-out behavior use
|
|
974
|
+
"Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu"
|
|
964
975
|
],
|
|
965
976
|
implementation: [
|
|
966
|
-
"Use
|
|
977
|
+
"Use TopoloAppShell for authenticated app layouts",
|
|
978
|
+
"Use TopoloAccountMenu when a partial-shell surface still needs account chrome",
|
|
979
|
+
"Pass app-specific account actions as additive menu items instead of forking dropdowns",
|
|
967
980
|
"Use shared design tokens and platform UI primitives before creating local equivalents",
|
|
968
981
|
"Keep mobile and desktop shell behavior aligned with the platform UI kit"
|
|
969
982
|
]
|
|
@@ -1067,8 +1080,9 @@ var APPLICATION_REQUIREMENTS = [
|
|
|
1067
1080
|
];
|
|
1068
1081
|
function applicationRequirementScopes(application) {
|
|
1069
1082
|
const scopes = /* @__PURE__ */ new Set(["all"]);
|
|
1070
|
-
const
|
|
1071
|
-
const
|
|
1083
|
+
const deployTargets = application.deployTargets;
|
|
1084
|
+
const hasBrowserSurface = Boolean(application.productionUrl) || deployTargets.some((target) => target.kind === "pages");
|
|
1085
|
+
const hasApiSurface = application.services.length > 0 || deployTargets.some((target) => Boolean(target.apiUrl));
|
|
1072
1086
|
if (hasBrowserSurface) scopes.add("browser");
|
|
1073
1087
|
if (hasApiSurface) scopes.add("api");
|
|
1074
1088
|
if (application.id === "cli" || application.id === "mcp" || application.id === "cloudcontrol") {
|
|
@@ -1256,10 +1270,11 @@ function statusRank(status) {
|
|
|
1256
1270
|
// src/services.ts
|
|
1257
1271
|
var DEFAULT_SERVICE_URLS = SERVICES;
|
|
1258
1272
|
function resolveServiceUrl(service, overrides) {
|
|
1259
|
-
|
|
1273
|
+
var _a;
|
|
1274
|
+
const override = overrides == null ? void 0 : overrides[service];
|
|
1260
1275
|
if (override) return override;
|
|
1261
1276
|
const envKey = `TOPOLO_SERVICE_URL_${service.replace(/\./g, "_").toUpperCase()}`;
|
|
1262
|
-
const envValue = typeof process !== "undefined" ? process.env
|
|
1277
|
+
const envValue = typeof process !== "undefined" ? (_a = process.env) == null ? void 0 : _a[envKey] : void 0;
|
|
1263
1278
|
if (envValue) return envValue;
|
|
1264
1279
|
return DEFAULT_SERVICE_URLS[service];
|
|
1265
1280
|
}
|
|
@@ -1275,8 +1290,9 @@ var TopoloClient = class {
|
|
|
1275
1290
|
fetchImpl;
|
|
1276
1291
|
debug;
|
|
1277
1292
|
constructor(options) {
|
|
1293
|
+
var _a;
|
|
1278
1294
|
if (!options.credential) throw new TopoloAuthError("credential is required");
|
|
1279
|
-
if (!options.agent
|
|
1295
|
+
if (!((_a = options.agent) == null ? void 0 : _a.clientName)) throw new TopoloAuthError("agent.clientName is required");
|
|
1280
1296
|
this.credential = options.credential;
|
|
1281
1297
|
this.agent = options.agent;
|
|
1282
1298
|
this.serviceUrls = options.serviceUrls;
|
|
@@ -1466,6 +1482,7 @@ var CrmModule = class {
|
|
|
1466
1482
|
}
|
|
1467
1483
|
client;
|
|
1468
1484
|
async listContacts(options = {}) {
|
|
1485
|
+
var _a, _b, _c;
|
|
1469
1486
|
const res = await this.client.request({
|
|
1470
1487
|
service: "crm",
|
|
1471
1488
|
path: "/api/contacts",
|
|
@@ -1475,12 +1492,12 @@ var CrmModule = class {
|
|
|
1475
1492
|
pageSize: options.pageSize
|
|
1476
1493
|
}
|
|
1477
1494
|
});
|
|
1478
|
-
const rows = Array.isArray(res
|
|
1495
|
+
const rows = Array.isArray(res == null ? void 0 : res.contacts) ? res.contacts : Array.isArray(res == null ? void 0 : res.data) ? res.data : [];
|
|
1479
1496
|
return {
|
|
1480
1497
|
contacts: rows.map(toSummary),
|
|
1481
|
-
total: res
|
|
1482
|
-
page: res
|
|
1483
|
-
pageSize: res
|
|
1498
|
+
total: (res == null ? void 0 : res.total) ?? ((_a = res == null ? void 0 : res.pagination) == null ? void 0 : _a.total) ?? rows.length,
|
|
1499
|
+
page: (res == null ? void 0 : res.page) ?? ((_b = res == null ? void 0 : res.pagination) == null ? void 0 : _b.page) ?? options.page ?? 1,
|
|
1500
|
+
pageSize: (res == null ? void 0 : res.pageSize) ?? ((_c = res == null ? void 0 : res.pagination) == null ? void 0 : _c.pageSize) ?? options.pageSize ?? rows.length
|
|
1484
1501
|
};
|
|
1485
1502
|
}
|
|
1486
1503
|
async getContact(contactId) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topolo/sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Typed client SDK for the Topolo platform. Used by TopoloCli, TopoloMCP, and third-party agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
],
|
|
20
20
|
"scripts": {
|
|
21
21
|
"generate:services": "node scripts/generate-services.mjs",
|
|
22
|
+
"check:generated": "node scripts/check-generated.mjs",
|
|
22
23
|
"prebuild": "node scripts/generate-services.mjs",
|
|
23
24
|
"build": "tsup src/index.ts --format esm,cjs --dts --clean",
|
|
24
25
|
"dev": "tsup src/index.ts --format esm,cjs --dts --watch",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
APPLICATIONS,
|
|
3
3
|
type ApplicationCatalogEntry,
|
|
4
|
+
type ApplicationDeployTarget,
|
|
4
5
|
type ApplicationId,
|
|
5
6
|
} from './applications.generated.js';
|
|
6
7
|
|
|
@@ -127,10 +128,12 @@ export const APPLICATION_REQUIREMENTS = [
|
|
|
127
128
|
evidence: [
|
|
128
129
|
'@topolo/ui-kit is used for the platform shell where the app has authenticated UI',
|
|
129
130
|
'The shared launcher/app switcher is reachable from authenticated app chrome',
|
|
130
|
-
'Account menu and sign-out behavior use
|
|
131
|
+
'Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu',
|
|
131
132
|
],
|
|
132
133
|
implementation: [
|
|
133
|
-
'Use
|
|
134
|
+
'Use TopoloAppShell for authenticated app layouts',
|
|
135
|
+
'Use TopoloAccountMenu when a partial-shell surface still needs account chrome',
|
|
136
|
+
'Pass app-specific account actions as additive menu items instead of forking dropdowns',
|
|
134
137
|
'Use shared design tokens and platform UI primitives before creating local equivalents',
|
|
135
138
|
'Keep mobile and desktop shell behavior aligned with the platform UI kit',
|
|
136
139
|
],
|
|
@@ -243,11 +246,12 @@ export function applicationRequirementScopes(
|
|
|
243
246
|
application: ApplicationCatalogEntry,
|
|
244
247
|
): ApplicationRequirementScope[] {
|
|
245
248
|
const scopes = new Set<ApplicationRequirementScope>(['all']);
|
|
249
|
+
const deployTargets = application.deployTargets as readonly ApplicationDeployTarget[];
|
|
246
250
|
const hasBrowserSurface =
|
|
247
|
-
Boolean(application.productionUrl) ||
|
|
251
|
+
Boolean(application.productionUrl) || deployTargets.some((target) => target.kind === 'pages');
|
|
248
252
|
const hasApiSurface =
|
|
249
253
|
application.services.length > 0 ||
|
|
250
|
-
|
|
254
|
+
deployTargets.some((target) => Boolean(target.apiUrl));
|
|
251
255
|
|
|
252
256
|
if (hasBrowserSurface) scopes.add('browser');
|
|
253
257
|
if (hasApiSurface) scopes.add('api');
|
|
@@ -319,24 +319,34 @@ export const APPLICATIONS = {
|
|
|
319
319
|
"appDir": "TopoloFeed",
|
|
320
320
|
"name": "TopoloFeed",
|
|
321
321
|
"packageName": null,
|
|
322
|
-
"productionUrl":
|
|
323
|
-
"services": [
|
|
322
|
+
"productionUrl": "https://topolo-feed-api.topolo.app",
|
|
323
|
+
"services": [
|
|
324
|
+
"feed"
|
|
325
|
+
],
|
|
324
326
|
"deployTargets": [
|
|
325
327
|
{
|
|
326
328
|
"name": "topolo-feed-analytics-api",
|
|
327
329
|
"kind": "worker",
|
|
328
|
-
"apiUrl":
|
|
329
|
-
"domains": [
|
|
330
|
-
|
|
330
|
+
"apiUrl": "https://topolo-feed-analytics-api.topolo.app",
|
|
331
|
+
"domains": [
|
|
332
|
+
"topolo-feed-analytics-api.topolo.app"
|
|
333
|
+
],
|
|
334
|
+
"routes": [
|
|
335
|
+
"topolo-feed-analytics-api.topolo.app"
|
|
336
|
+
],
|
|
331
337
|
"serviceId": null
|
|
332
338
|
},
|
|
333
339
|
{
|
|
334
340
|
"name": "topolo-feed-api",
|
|
335
341
|
"kind": "worker",
|
|
336
|
-
"apiUrl":
|
|
337
|
-
"domains": [
|
|
338
|
-
|
|
339
|
-
|
|
342
|
+
"apiUrl": "https://topolo-feed-api.topolo.app",
|
|
343
|
+
"domains": [
|
|
344
|
+
"topolo-feed-api.topolo.app"
|
|
345
|
+
],
|
|
346
|
+
"routes": [
|
|
347
|
+
"topolo-feed-api.topolo.app"
|
|
348
|
+
],
|
|
349
|
+
"serviceId": "feed"
|
|
340
350
|
}
|
|
341
351
|
]
|
|
342
352
|
},
|
|
@@ -576,7 +586,7 @@ export const APPLICATIONS = {
|
|
|
576
586
|
{
|
|
577
587
|
"name": "topoloone-worker",
|
|
578
588
|
"kind": "worker",
|
|
579
|
-
"apiUrl": "https://
|
|
589
|
+
"apiUrl": "https://one.topolo.app",
|
|
580
590
|
"domains": [],
|
|
581
591
|
"routes": [
|
|
582
592
|
"one.topolo.app/*"
|
|
@@ -11,13 +11,14 @@ export const SERVICES = {
|
|
|
11
11
|
chat: "https://chat.topolo.app",
|
|
12
12
|
commerce: "https://topolo-commerce-api.topolo.workers.dev",
|
|
13
13
|
crm: "https://crm-api.topolo.app",
|
|
14
|
+
feed: "https://topolo-feed-api.topolo.app",
|
|
14
15
|
forecast: "https://forecast-worker-production.topolo.workers.dev",
|
|
15
16
|
learn: "https://topololearn-api.topolo.workers.dev",
|
|
16
17
|
mail: "https://mail.topolo.app",
|
|
17
18
|
mdm: "https://topolo-mdm-api.topolo.app",
|
|
18
19
|
messaging: "https://messages.topolo.app",
|
|
19
20
|
nexus: "https://topolo-nexus-gateway.topolo.workers.dev",
|
|
20
|
-
one: "https://
|
|
21
|
+
one: "https://one.topolo.app",
|
|
21
22
|
pay: "https://topolo-pay.topolo.workers.dev",
|
|
22
23
|
"quro.api": "https://api.ol0.me",
|
|
23
24
|
"quro.redirect": "https://ol0.me",
|
package/src/services.test.ts
CHANGED
|
@@ -46,7 +46,9 @@ describe('service registry', () => {
|
|
|
46
46
|
it('includes every production worker API that belongs to a platform application', () => {
|
|
47
47
|
expect(DEFAULT_SERVICE_URLS).toMatchObject({
|
|
48
48
|
calendar: 'https://calendar.topolo.app',
|
|
49
|
+
feed: 'https://topolo-feed-api.topolo.app',
|
|
49
50
|
mail: 'https://mail.topolo.app',
|
|
51
|
+
one: 'https://one.topolo.app',
|
|
50
52
|
web: 'https://web-api.topolo.app',
|
|
51
53
|
});
|
|
52
54
|
expect(DEFAULT_SERVICE_URLS).not.toHaveProperty('web.api');
|
|
@@ -91,6 +93,16 @@ describe('application catalog', () => {
|
|
|
91
93
|
APPLICATIONS.web.deployTargets.find((target) => target.name === 'topoloweb-runtime')?.serviceId,
|
|
92
94
|
).toBeNull();
|
|
93
95
|
});
|
|
96
|
+
|
|
97
|
+
it('treats TopoloFeed analytics as telemetry, not an agent-callable API service', () => {
|
|
98
|
+
expect(APPLICATIONS.feed.services).toEqual(['feed']);
|
|
99
|
+
expect(
|
|
100
|
+
APPLICATIONS.feed.deployTargets.find((target) => target.name === 'topolo-feed-api')?.serviceId,
|
|
101
|
+
).toBe('feed');
|
|
102
|
+
expect(
|
|
103
|
+
APPLICATIONS.feed.deployTargets.find((target) => target.name === 'topolo-feed-analytics-api')?.serviceId,
|
|
104
|
+
).toBeNull();
|
|
105
|
+
});
|
|
94
106
|
});
|
|
95
107
|
|
|
96
108
|
describe('application requirements', () => {
|