@topolo/sdk 0.2.2 → 0.2.3
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 +24 -11
- package/dist/index.d.cts +12 -11
- package/dist/index.d.ts +12 -11
- package/dist/index.js +24 -11
- package/package.json +2 -1
- package/src/application-requirements.ts +4 -2
- package/src/applications.generated.ts +19 -9
- package/src/services.generated.ts +1 -0
- package/src/services.test.ts +11 -0
package/dist/index.cjs
CHANGED
|
@@ -110,6 +110,7 @@ var SERVICES = {
|
|
|
110
110
|
chat: "https://chat.topolo.app",
|
|
111
111
|
commerce: "https://topolo-commerce-api.topolo.workers.dev",
|
|
112
112
|
crm: "https://crm-api.topolo.app",
|
|
113
|
+
feed: "https://topolo-feed-api.topolo.app",
|
|
113
114
|
forecast: "https://forecast-worker-production.topolo.workers.dev",
|
|
114
115
|
learn: "https://topololearn-api.topolo.workers.dev",
|
|
115
116
|
mail: "https://mail.topolo.app",
|
|
@@ -448,24 +449,34 @@ var APPLICATIONS = {
|
|
|
448
449
|
"appDir": "TopoloFeed",
|
|
449
450
|
"name": "TopoloFeed",
|
|
450
451
|
"packageName": null,
|
|
451
|
-
"productionUrl":
|
|
452
|
-
"services": [
|
|
452
|
+
"productionUrl": "https://topolo-feed-api.topolo.app",
|
|
453
|
+
"services": [
|
|
454
|
+
"feed"
|
|
455
|
+
],
|
|
453
456
|
"deployTargets": [
|
|
454
457
|
{
|
|
455
458
|
"name": "topolo-feed-analytics-api",
|
|
456
459
|
"kind": "worker",
|
|
457
|
-
"apiUrl":
|
|
458
|
-
"domains": [
|
|
459
|
-
|
|
460
|
+
"apiUrl": "https://topolo-feed-analytics-api.topolo.app",
|
|
461
|
+
"domains": [
|
|
462
|
+
"topolo-feed-analytics-api.topolo.app"
|
|
463
|
+
],
|
|
464
|
+
"routes": [
|
|
465
|
+
"topolo-feed-analytics-api.topolo.app"
|
|
466
|
+
],
|
|
460
467
|
"serviceId": null
|
|
461
468
|
},
|
|
462
469
|
{
|
|
463
470
|
"name": "topolo-feed-api",
|
|
464
471
|
"kind": "worker",
|
|
465
|
-
"apiUrl":
|
|
466
|
-
"domains": [
|
|
467
|
-
|
|
468
|
-
|
|
472
|
+
"apiUrl": "https://topolo-feed-api.topolo.app",
|
|
473
|
+
"domains": [
|
|
474
|
+
"topolo-feed-api.topolo.app"
|
|
475
|
+
],
|
|
476
|
+
"routes": [
|
|
477
|
+
"topolo-feed-api.topolo.app"
|
|
478
|
+
],
|
|
479
|
+
"serviceId": "feed"
|
|
469
480
|
}
|
|
470
481
|
]
|
|
471
482
|
},
|
|
@@ -1004,10 +1015,12 @@ var APPLICATION_REQUIREMENTS = [
|
|
|
1004
1015
|
evidence: [
|
|
1005
1016
|
"@topolo/ui-kit is used for the platform shell where the app has authenticated UI",
|
|
1006
1017
|
"The shared launcher/app switcher is reachable from authenticated app chrome",
|
|
1007
|
-
"Account menu and sign-out behavior use
|
|
1018
|
+
"Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu"
|
|
1008
1019
|
],
|
|
1009
1020
|
implementation: [
|
|
1010
|
-
"Use
|
|
1021
|
+
"Use TopoloAppShell for authenticated app layouts",
|
|
1022
|
+
"Use TopoloAccountMenu when a partial-shell surface still needs account chrome",
|
|
1023
|
+
"Pass app-specific account actions as additive menu items instead of forking dropdowns",
|
|
1011
1024
|
"Use shared design tokens and platform UI primitives before creating local equivalents",
|
|
1012
1025
|
"Keep mobile and desktop shell behavior aligned with the platform UI kit"
|
|
1013
1026
|
]
|
package/dist/index.d.cts
CHANGED
|
@@ -40,6 +40,7 @@ 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";
|
|
@@ -301,22 +302,22 @@ declare const APPLICATIONS: {
|
|
|
301
302
|
readonly appDir: "TopoloFeed";
|
|
302
303
|
readonly name: "TopoloFeed";
|
|
303
304
|
readonly packageName: null;
|
|
304
|
-
readonly productionUrl:
|
|
305
|
-
readonly services: readonly [];
|
|
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 [];
|
|
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"];
|
|
312
313
|
readonly serviceId: null;
|
|
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: {
|
|
@@ -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,6 +40,7 @@ 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";
|
|
@@ -301,22 +302,22 @@ declare const APPLICATIONS: {
|
|
|
301
302
|
readonly appDir: "TopoloFeed";
|
|
302
303
|
readonly name: "TopoloFeed";
|
|
303
304
|
readonly packageName: null;
|
|
304
|
-
readonly productionUrl:
|
|
305
|
-
readonly services: readonly [];
|
|
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 [];
|
|
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"];
|
|
312
313
|
readonly serviceId: null;
|
|
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: {
|
|
@@ -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,6 +66,7 @@ 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",
|
|
@@ -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
|
},
|
|
@@ -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
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topolo/sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
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",
|
|
@@ -127,10 +127,12 @@ export const APPLICATION_REQUIREMENTS = [
|
|
|
127
127
|
evidence: [
|
|
128
128
|
'@topolo/ui-kit is used for the platform shell where the app has authenticated UI',
|
|
129
129
|
'The shared launcher/app switcher is reachable from authenticated app chrome',
|
|
130
|
-
'Account menu and sign-out behavior use
|
|
130
|
+
'Account menu and sign-out behavior use TopoloAppShell or TopoloAccountMenu',
|
|
131
131
|
],
|
|
132
132
|
implementation: [
|
|
133
|
-
'Use
|
|
133
|
+
'Use TopoloAppShell for authenticated app layouts',
|
|
134
|
+
'Use TopoloAccountMenu when a partial-shell surface still needs account chrome',
|
|
135
|
+
'Pass app-specific account actions as additive menu items instead of forking dropdowns',
|
|
134
136
|
'Use shared design tokens and platform UI primitives before creating local equivalents',
|
|
135
137
|
'Keep mobile and desktop shell behavior aligned with the platform UI kit',
|
|
136
138
|
],
|
|
@@ -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
|
},
|
|
@@ -11,6 +11,7 @@ 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",
|
package/src/services.test.ts
CHANGED
|
@@ -46,6 +46,7 @@ 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',
|
|
50
51
|
web: 'https://web-api.topolo.app',
|
|
51
52
|
});
|
|
@@ -91,6 +92,16 @@ describe('application catalog', () => {
|
|
|
91
92
|
APPLICATIONS.web.deployTargets.find((target) => target.name === 'topoloweb-runtime')?.serviceId,
|
|
92
93
|
).toBeNull();
|
|
93
94
|
});
|
|
95
|
+
|
|
96
|
+
it('treats TopoloFeed analytics as telemetry, not an agent-callable API service', () => {
|
|
97
|
+
expect(APPLICATIONS.feed.services).toEqual(['feed']);
|
|
98
|
+
expect(
|
|
99
|
+
APPLICATIONS.feed.deployTargets.find((target) => target.name === 'topolo-feed-api')?.serviceId,
|
|
100
|
+
).toBe('feed');
|
|
101
|
+
expect(
|
|
102
|
+
APPLICATIONS.feed.deployTargets.find((target) => target.name === 'topolo-feed-analytics-api')?.serviceId,
|
|
103
|
+
).toBeNull();
|
|
104
|
+
});
|
|
94
105
|
});
|
|
95
106
|
|
|
96
107
|
describe('application requirements', () => {
|