@topolo/cli 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generate-wrangler.mjs +6 -1
- package/dist/index.js +126 -51
- package/package.json +5 -5
|
@@ -845,7 +845,12 @@ function emitCloudcontrol() {
|
|
|
845
845
|
}
|
|
846
846
|
}
|
|
847
847
|
cc.tags = existing.tags || ['application', 'cloudflare', 'github-actions', 'javascript'];
|
|
848
|
-
|
|
848
|
+
const primaryEnvironment = [...ENVS]
|
|
849
|
+
.reverse()
|
|
850
|
+
.find((environment) => deployableEnvironments.has(environment));
|
|
851
|
+
if (primaryEnvironment) {
|
|
852
|
+
cc.cloudflare_account_id = manifest.environments[primaryEnvironment].accountId;
|
|
853
|
+
}
|
|
849
854
|
|
|
850
855
|
return JSON.stringify(cc, null, 2) + '\n';
|
|
851
856
|
}
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import { platform as platform2 } from "os";
|
|
|
9
9
|
import { createInterface } from "readline/promises";
|
|
10
10
|
import { stdin as input } from "process";
|
|
11
11
|
|
|
12
|
-
//
|
|
12
|
+
// ../topolo-sdk/dist/index.js
|
|
13
13
|
function applyAuthHeaders(headers, credential) {
|
|
14
14
|
if (credential.kind === "api_key") {
|
|
15
15
|
headers.set("X-Api-Key", credential.apiKey);
|
|
@@ -137,7 +137,9 @@ var APPLICATIONS = {
|
|
|
137
137
|
"domains": [
|
|
138
138
|
"admin.topolo.app"
|
|
139
139
|
],
|
|
140
|
-
"routes": [
|
|
140
|
+
"routes": [
|
|
141
|
+
"admin.topolo.app"
|
|
142
|
+
],
|
|
141
143
|
"appId": null
|
|
142
144
|
},
|
|
143
145
|
{
|
|
@@ -185,7 +187,7 @@ var APPLICATIONS = {
|
|
|
185
187
|
"appDir": "TopoloAuth",
|
|
186
188
|
"name": "topolo-auth",
|
|
187
189
|
"packageName": "topolo-auth",
|
|
188
|
-
"productionUrl": "https://auth.topolo.app
|
|
190
|
+
"productionUrl": "https://auth.topolo.app",
|
|
189
191
|
"services": [
|
|
190
192
|
"auth"
|
|
191
193
|
],
|
|
@@ -221,7 +223,9 @@ var APPLICATIONS = {
|
|
|
221
223
|
"domains": [
|
|
222
224
|
"backup.topolo.app"
|
|
223
225
|
],
|
|
224
|
-
"routes": [
|
|
226
|
+
"routes": [
|
|
227
|
+
"backup.topolo.app"
|
|
228
|
+
],
|
|
225
229
|
"appId": "backup"
|
|
226
230
|
}
|
|
227
231
|
]
|
|
@@ -273,9 +277,7 @@ var APPLICATIONS = {
|
|
|
273
277
|
"domains": [
|
|
274
278
|
"brand.topolo.app"
|
|
275
279
|
],
|
|
276
|
-
"routes": [
|
|
277
|
-
"brand.topolo.app"
|
|
278
|
-
],
|
|
280
|
+
"routes": [],
|
|
279
281
|
"appId": "brand"
|
|
280
282
|
},
|
|
281
283
|
{
|
|
@@ -327,7 +329,9 @@ var APPLICATIONS = {
|
|
|
327
329
|
"domains": [
|
|
328
330
|
"bytes.topolo.app"
|
|
329
331
|
],
|
|
330
|
-
"routes": [
|
|
332
|
+
"routes": [
|
|
333
|
+
"bytes.topolo.app"
|
|
334
|
+
],
|
|
331
335
|
"appId": "bytes"
|
|
332
336
|
},
|
|
333
337
|
{
|
|
@@ -387,9 +391,7 @@ var APPLICATIONS = {
|
|
|
387
391
|
"domains": [
|
|
388
392
|
"campaigns.topolo.app"
|
|
389
393
|
],
|
|
390
|
-
"routes": [
|
|
391
|
-
"campaigns.topolo.app"
|
|
392
|
-
],
|
|
394
|
+
"routes": [],
|
|
393
395
|
"appId": "campaigns"
|
|
394
396
|
},
|
|
395
397
|
{
|
|
@@ -479,7 +481,9 @@ var APPLICATIONS = {
|
|
|
479
481
|
"domains": [
|
|
480
482
|
"guest.topolo.app"
|
|
481
483
|
],
|
|
482
|
-
"routes": [
|
|
484
|
+
"routes": [
|
|
485
|
+
"guest.topolo.app"
|
|
486
|
+
],
|
|
483
487
|
"appId": null
|
|
484
488
|
},
|
|
485
489
|
{
|
|
@@ -489,7 +493,9 @@ var APPLICATIONS = {
|
|
|
489
493
|
"domains": [
|
|
490
494
|
"commerce.topolo.app"
|
|
491
495
|
],
|
|
492
|
-
"routes": [
|
|
496
|
+
"routes": [
|
|
497
|
+
"commerce.topolo.app"
|
|
498
|
+
],
|
|
493
499
|
"appId": "commerce"
|
|
494
500
|
},
|
|
495
501
|
{
|
|
@@ -499,7 +505,9 @@ var APPLICATIONS = {
|
|
|
499
505
|
"domains": [
|
|
500
506
|
"station-commerce.topolo.app"
|
|
501
507
|
],
|
|
502
|
-
"routes": [
|
|
508
|
+
"routes": [
|
|
509
|
+
"station-commerce.topolo.app"
|
|
510
|
+
],
|
|
503
511
|
"appId": null
|
|
504
512
|
}
|
|
505
513
|
]
|
|
@@ -677,7 +685,9 @@ var APPLICATIONS = {
|
|
|
677
685
|
"domains": [
|
|
678
686
|
"docs.topolo.app"
|
|
679
687
|
],
|
|
680
|
-
"routes": [
|
|
688
|
+
"routes": [
|
|
689
|
+
"docs.topolo.app"
|
|
690
|
+
],
|
|
681
691
|
"appId": null
|
|
682
692
|
},
|
|
683
693
|
{
|
|
@@ -707,7 +717,9 @@ var APPLICATIONS = {
|
|
|
707
717
|
"domains": [
|
|
708
718
|
"feed-analytics-api.topolo.app"
|
|
709
719
|
],
|
|
710
|
-
"routes": [
|
|
720
|
+
"routes": [
|
|
721
|
+
"feed-analytics-api.topolo.app"
|
|
722
|
+
],
|
|
711
723
|
"appId": null
|
|
712
724
|
},
|
|
713
725
|
{
|
|
@@ -717,7 +729,9 @@ var APPLICATIONS = {
|
|
|
717
729
|
"domains": [
|
|
718
730
|
"feed-api.topolo.app"
|
|
719
731
|
],
|
|
720
|
-
"routes": [
|
|
732
|
+
"routes": [
|
|
733
|
+
"feed-api.topolo.app"
|
|
734
|
+
],
|
|
721
735
|
"appId": null
|
|
722
736
|
},
|
|
723
737
|
{
|
|
@@ -727,7 +741,9 @@ var APPLICATIONS = {
|
|
|
727
741
|
"domains": [
|
|
728
742
|
"feed.topolo.app"
|
|
729
743
|
],
|
|
730
|
-
"routes": [
|
|
744
|
+
"routes": [
|
|
745
|
+
"feed.topolo.app"
|
|
746
|
+
],
|
|
731
747
|
"appId": "feed"
|
|
732
748
|
}
|
|
733
749
|
]
|
|
@@ -839,7 +855,9 @@ var APPLICATIONS = {
|
|
|
839
855
|
"domains": [
|
|
840
856
|
"home.topolo.app"
|
|
841
857
|
],
|
|
842
|
-
"routes": [
|
|
858
|
+
"routes": [
|
|
859
|
+
"home.topolo.app"
|
|
860
|
+
],
|
|
843
861
|
"appId": "home"
|
|
844
862
|
},
|
|
845
863
|
{
|
|
@@ -929,7 +947,9 @@ var APPLICATIONS = {
|
|
|
929
947
|
"domains": [
|
|
930
948
|
"learn.topolo.app"
|
|
931
949
|
],
|
|
932
|
-
"routes": [
|
|
950
|
+
"routes": [
|
|
951
|
+
"learn.topolo.app"
|
|
952
|
+
],
|
|
933
953
|
"appId": "learn"
|
|
934
954
|
},
|
|
935
955
|
{
|
|
@@ -1021,7 +1041,9 @@ var APPLICATIONS = {
|
|
|
1021
1041
|
"domains": [
|
|
1022
1042
|
"mdm.topolo.app"
|
|
1023
1043
|
],
|
|
1024
|
-
"routes": [
|
|
1044
|
+
"routes": [
|
|
1045
|
+
"mdm.topolo.app"
|
|
1046
|
+
],
|
|
1025
1047
|
"appId": "mdm"
|
|
1026
1048
|
}
|
|
1027
1049
|
]
|
|
@@ -1043,7 +1065,9 @@ var APPLICATIONS = {
|
|
|
1043
1065
|
"domains": [
|
|
1044
1066
|
"messages.topolo.app"
|
|
1045
1067
|
],
|
|
1046
|
-
"routes": [
|
|
1068
|
+
"routes": [
|
|
1069
|
+
"messages.topolo.app"
|
|
1070
|
+
],
|
|
1047
1071
|
"appId": "messages"
|
|
1048
1072
|
},
|
|
1049
1073
|
{
|
|
@@ -1077,11 +1101,13 @@ var APPLICATIONS = {
|
|
|
1077
1101
|
{
|
|
1078
1102
|
"name": "topolo-nexus-dashboard",
|
|
1079
1103
|
"kind": "worker",
|
|
1080
|
-
"apiUrl":
|
|
1104
|
+
"apiUrl": "https://nexus.topolo.app",
|
|
1081
1105
|
"domains": [
|
|
1082
1106
|
"nexus.topolo.app"
|
|
1083
1107
|
],
|
|
1084
|
-
"routes": [
|
|
1108
|
+
"routes": [
|
|
1109
|
+
"nexus.topolo.app"
|
|
1110
|
+
],
|
|
1085
1111
|
"appId": null
|
|
1086
1112
|
},
|
|
1087
1113
|
{
|
|
@@ -1209,7 +1235,9 @@ var APPLICATIONS = {
|
|
|
1209
1235
|
"domains": [
|
|
1210
1236
|
"p2p.topolo.app"
|
|
1211
1237
|
],
|
|
1212
|
-
"routes": [
|
|
1238
|
+
"routes": [
|
|
1239
|
+
"p2p.topolo.app"
|
|
1240
|
+
],
|
|
1213
1241
|
"appId": "p2p"
|
|
1214
1242
|
},
|
|
1215
1243
|
{
|
|
@@ -1406,7 +1434,9 @@ var APPLICATIONS = {
|
|
|
1406
1434
|
"domains": [
|
|
1407
1435
|
"studio.topolo.app"
|
|
1408
1436
|
],
|
|
1409
|
-
"routes": [
|
|
1437
|
+
"routes": [
|
|
1438
|
+
"studio.topolo.app"
|
|
1439
|
+
],
|
|
1410
1440
|
"appId": "social_studio"
|
|
1411
1441
|
},
|
|
1412
1442
|
{
|
|
@@ -1444,7 +1474,9 @@ var APPLICATIONS = {
|
|
|
1444
1474
|
"domains": [
|
|
1445
1475
|
"socialize.topolo.app"
|
|
1446
1476
|
],
|
|
1447
|
-
"routes": [
|
|
1477
|
+
"routes": [
|
|
1478
|
+
"socialize.topolo.app"
|
|
1479
|
+
],
|
|
1448
1480
|
"appId": "socialize"
|
|
1449
1481
|
},
|
|
1450
1482
|
{
|
|
@@ -1454,7 +1486,9 @@ var APPLICATIONS = {
|
|
|
1454
1486
|
"domains": [
|
|
1455
1487
|
"socialize-api.topolo.app"
|
|
1456
1488
|
],
|
|
1457
|
-
"routes": [
|
|
1489
|
+
"routes": [
|
|
1490
|
+
"socialize-api.topolo.app"
|
|
1491
|
+
],
|
|
1458
1492
|
"appId": null
|
|
1459
1493
|
},
|
|
1460
1494
|
{
|
|
@@ -1514,7 +1548,9 @@ var APPLICATIONS = {
|
|
|
1514
1548
|
"domains": [
|
|
1515
1549
|
"status.topolo.app"
|
|
1516
1550
|
],
|
|
1517
|
-
"routes": [
|
|
1551
|
+
"routes": [
|
|
1552
|
+
"status.topolo.app"
|
|
1553
|
+
],
|
|
1518
1554
|
"appId": "status"
|
|
1519
1555
|
}
|
|
1520
1556
|
]
|
|
@@ -1630,7 +1666,9 @@ var APPLICATIONS = {
|
|
|
1630
1666
|
"domains": [
|
|
1631
1667
|
"voice.topolo.app"
|
|
1632
1668
|
],
|
|
1633
|
-
"routes": [
|
|
1669
|
+
"routes": [
|
|
1670
|
+
"voice.topolo.app"
|
|
1671
|
+
],
|
|
1634
1672
|
"appId": "voice"
|
|
1635
1673
|
},
|
|
1636
1674
|
{
|
|
@@ -1681,7 +1719,9 @@ var APPLICATIONS = {
|
|
|
1681
1719
|
"domains": [
|
|
1682
1720
|
"web.topolo.app"
|
|
1683
1721
|
],
|
|
1684
|
-
"routes": [
|
|
1722
|
+
"routes": [
|
|
1723
|
+
"web.topolo.app"
|
|
1724
|
+
],
|
|
1685
1725
|
"appId": "web"
|
|
1686
1726
|
}
|
|
1687
1727
|
]
|
|
@@ -3363,7 +3403,6 @@ var CrmModule = class {
|
|
|
3363
3403
|
constructor(client) {
|
|
3364
3404
|
this.client = client;
|
|
3365
3405
|
}
|
|
3366
|
-
client;
|
|
3367
3406
|
async listContacts(options = {}) {
|
|
3368
3407
|
const res = await this.client.request({
|
|
3369
3408
|
service: "crm",
|
|
@@ -3409,7 +3448,6 @@ var IdentityModule = class {
|
|
|
3409
3448
|
constructor(client) {
|
|
3410
3449
|
this.client = client;
|
|
3411
3450
|
}
|
|
3412
|
-
client;
|
|
3413
3451
|
/** Returns the resolved user, organization, and permission set for the
|
|
3414
3452
|
* current credential. Equivalent to `TopoloClient.introspect()` — exposed
|
|
3415
3453
|
* on this module for symmetry with the other domain modules. */
|
|
@@ -3504,7 +3542,7 @@ function createTopolo(options) {
|
|
|
3504
3542
|
};
|
|
3505
3543
|
}
|
|
3506
3544
|
|
|
3507
|
-
//
|
|
3545
|
+
// ../topolo-sdk/dist/node/credential-store.js
|
|
3508
3546
|
import { mkdir, readFile, writeFile, chmod } from "fs/promises";
|
|
3509
3547
|
import { existsSync } from "fs";
|
|
3510
3548
|
import { homedir, platform } from "os";
|
|
@@ -4724,14 +4762,26 @@ function isEvidenceStampFresh(stamp) {
|
|
|
4724
4762
|
return Date.now() - recordedAt <= EVIDENCE_FRESHNESS_MS;
|
|
4725
4763
|
}
|
|
4726
4764
|
var SKIPPED_DIRS = /* @__PURE__ */ new Set([
|
|
4765
|
+
".action-normalize",
|
|
4766
|
+
".claude",
|
|
4767
|
+
".codex-worktrees",
|
|
4768
|
+
".deploy",
|
|
4727
4769
|
".git",
|
|
4728
4770
|
".next",
|
|
4771
|
+
".playwright",
|
|
4772
|
+
".topolo-tmp",
|
|
4729
4773
|
".turbo",
|
|
4774
|
+
".worktrees",
|
|
4730
4775
|
".wrangler",
|
|
4776
|
+
"_tmp",
|
|
4777
|
+
"_worktrees",
|
|
4778
|
+
"artifacts",
|
|
4731
4779
|
"build",
|
|
4732
4780
|
"coverage",
|
|
4733
4781
|
"dist",
|
|
4734
|
-
"node_modules"
|
|
4782
|
+
"node_modules",
|
|
4783
|
+
"output",
|
|
4784
|
+
"tmp"
|
|
4735
4785
|
]);
|
|
4736
4786
|
var SOURCE_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
4737
4787
|
".cjs",
|
|
@@ -5416,8 +5466,11 @@ function sharedAuthEvidence(evidence) {
|
|
|
5416
5466
|
if (text.includes("TopoloAuthMiddleware")) items.push("source=TopoloAuthMiddleware");
|
|
5417
5467
|
if (text.includes("TopoloClient")) items.push("source=TopoloClient");
|
|
5418
5468
|
if (text.includes("TopoloOAuth")) items.push("source=TopoloOAuth");
|
|
5419
|
-
|
|
5420
|
-
|
|
5469
|
+
const browserRecords = productionBrowserSourceRecords(evidence);
|
|
5470
|
+
const blockingBoot = browserRecords.find(({ text: source }) => /\b(?:auth|authClient|topoloAuth)\.initialize(?:Session)?\(\s*\)/i.test(source));
|
|
5471
|
+
const backgroundBoot = browserRecords.find(({ text: source }) => /cookieRefresh:\s*['"]background['"]/.test(source));
|
|
5472
|
+
if (blockingBoot) items.push("auth-boot=blocking-cookie-refresh", `auth-boot-file=${blockingBoot.path}`);
|
|
5473
|
+
if (backgroundBoot) items.push("auth-boot=background-cookie-refresh", `auth-background-file=${backgroundBoot.path}`);
|
|
5421
5474
|
if (/Authorization.*Bearer/i.test(text) && (text.includes("/validate") || text.includes("TOPOLO_AUTH_URL") || text.includes("AUTH_BASE_URL") || text.includes("auth.topolo.app"))) {
|
|
5422
5475
|
items.push("source=auth-validate-fetch");
|
|
5423
5476
|
}
|
|
@@ -5436,7 +5489,8 @@ function documentedOperatorLocalAuthBoundaryEvidence(evidence) {
|
|
|
5436
5489
|
}
|
|
5437
5490
|
function sharedShellEvidence(evidence) {
|
|
5438
5491
|
const deps = dependencyNames(evidence);
|
|
5439
|
-
const
|
|
5492
|
+
const browserRecords = productionBrowserSourceRecords(evidence);
|
|
5493
|
+
const text = browserRecords.map((record4) => record4.text).join("\n");
|
|
5440
5494
|
const items = [];
|
|
5441
5495
|
if (deps.has("@topolo-io/app-shell")) items.push("dependency=@topolo-io/app-shell");
|
|
5442
5496
|
if (deps.has("@topolo-io/ui-kit")) items.push("dependency=@topolo-io/ui-kit");
|
|
@@ -5456,11 +5510,9 @@ function sharedShellEvidence(evidence) {
|
|
|
5456
5510
|
const hasVisualQaFixtures = hasVisualQaMode && /fixture|visualQaResponse|visualQaApi|mock[A-Z]\w*|devpreview/i.test(text) && /fetch|useQuery|api/i.test(text);
|
|
5457
5511
|
if (hasVisualQaFixtures) items.push("source=visual-qa-fixtures");
|
|
5458
5512
|
if (/from\s+['"]lucide-react['"]/.test(text)) items.push("local=direct-lucide-react");
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
if (/(?:<span[^>]*>|<div[^>]*>)[^<]{0,16}[◈◇⬡⬢▣◉✉▷✦○◆✕⚙🔑💡⚠✓♫]/.test(text)) {
|
|
5463
|
-
items.push("local=raw-symbol-icons");
|
|
5513
|
+
const rawSymbolRecord = browserRecords.find(({ text: source }) => /(?:icon|Icon)\s*:\s*['"][◈◇⬡⬢▣◉✉▷✦○◆✕⚙🔑💡⚠✓♫]/.test(source) || /(?:<span[^>]*>|<div[^>]*>)[^<]{0,16}[◈◇⬡⬢▣◉✉▷✦○◆✕⚙🔑💡⚠✓♫]/.test(source));
|
|
5514
|
+
if (rawSymbolRecord) {
|
|
5515
|
+
items.push("local=raw-symbol-icons", `raw-symbol-file=${rawSymbolRecord.path}`);
|
|
5464
5516
|
}
|
|
5465
5517
|
if (text.includes(["Topolo", "Workspace", "Shell"].join(""))) items.push("forbidden=workspace-shell");
|
|
5466
5518
|
if (/\bTopoloShell\b/.test(text)) items.push("legacy=TopoloShellFrame");
|
|
@@ -5490,6 +5542,16 @@ function hasLocalBrowserSurface(evidence) {
|
|
|
5490
5542
|
(file) => file.endsWith(".tsx") || file.endsWith(".jsx") || file.includes("/src/client/") || file.includes("/client/")
|
|
5491
5543
|
);
|
|
5492
5544
|
}
|
|
5545
|
+
function productionBrowserSourceRecords(evidence) {
|
|
5546
|
+
return evidence.source.records.filter((record4) => {
|
|
5547
|
+
const sourcePath = record4.path.toLowerCase();
|
|
5548
|
+
if (/(^|\/)(?:__tests__|test|tests|scripts|fixtures|migrations)(\/|$)/.test(sourcePath)) return false;
|
|
5549
|
+
if (/\.(?:test|spec)\.[^.]+$/.test(sourcePath)) return false;
|
|
5550
|
+
if (/\/apps\/(?:api|analytics|gateway|jobs|queue|runtime|worker)\//.test(sourcePath)) return false;
|
|
5551
|
+
if (/\.(?:tsx|jsx)$/.test(sourcePath)) return true;
|
|
5552
|
+
return /\/(?:web|marketing|desktop)\/src\//.test(sourcePath) && /\.(?:ts|js)$/.test(sourcePath);
|
|
5553
|
+
});
|
|
5554
|
+
}
|
|
5493
5555
|
function organizationScopeEvidence(evidence) {
|
|
5494
5556
|
const text = evidence.source.text;
|
|
5495
5557
|
const items = [];
|
|
@@ -5657,18 +5719,21 @@ function findWranglerFiles(appRoot) {
|
|
|
5657
5719
|
return ["wrangler.json", "wrangler.jsonc", "wrangler.toml"].filter((file) => isFile(path.join(appRoot, file))).map((file) => relativeTopoloPath(path.join(appRoot, file)));
|
|
5658
5720
|
}
|
|
5659
5721
|
function readSourceIndex(root) {
|
|
5660
|
-
if (!isDirectory(root)) return { files: [], text: "" };
|
|
5722
|
+
if (!isDirectory(root)) return { files: [], text: "", records: [] };
|
|
5661
5723
|
const files = collectSourceFiles(root, 4e3);
|
|
5662
|
-
const
|
|
5724
|
+
const records = files.map((file) => {
|
|
5725
|
+
let text = "";
|
|
5663
5726
|
try {
|
|
5664
|
-
|
|
5727
|
+
text = readFileSync3(file, "utf8");
|
|
5665
5728
|
} catch {
|
|
5666
|
-
|
|
5729
|
+
text = "";
|
|
5667
5730
|
}
|
|
5731
|
+
return { path: relativeTopoloPath(file), text };
|
|
5668
5732
|
});
|
|
5669
5733
|
return {
|
|
5670
|
-
files:
|
|
5671
|
-
text:
|
|
5734
|
+
files: records.map((record4) => record4.path),
|
|
5735
|
+
text: records.map((record4) => record4.text).join("\n"),
|
|
5736
|
+
records
|
|
5672
5737
|
};
|
|
5673
5738
|
}
|
|
5674
5739
|
function collectSourceFiles(root, limit) {
|
|
@@ -6192,7 +6257,7 @@ var APPLICATION_CAPABILITY_REGISTRY = {
|
|
|
6192
6257
|
platform: ["@topolo-io/notifications"],
|
|
6193
6258
|
developer: []
|
|
6194
6259
|
}, [], [], [], ["notification-consumer"], ["notification-inbox-smoke"]),
|
|
6195
|
-
notification_producer: capability("notification_producer", "TopoloNotify + TopoloDevelopers", platformTarget, ["
|
|
6260
|
+
notification_producer: capability("notification_producer", "TopoloNotify + TopoloDevelopers", platformTarget, ["api"], ["api"], {
|
|
6196
6261
|
platform: ["@topolo-io/notifications", "@topolo-io/auth-middleware"],
|
|
6197
6262
|
developer: []
|
|
6198
6263
|
}, [], ["events:write"], [], ["notification-producer-adapter", "notification-contracts"], ["notification-delivery-smoke"]),
|
|
@@ -10421,7 +10486,10 @@ function manifestProvidesResource(manifest, resource) {
|
|
|
10421
10486
|
return false;
|
|
10422
10487
|
}
|
|
10423
10488
|
function packageVersion(packageName, target) {
|
|
10424
|
-
if (target === "platform")
|
|
10489
|
+
if (target === "platform") {
|
|
10490
|
+
if (packageName === "@topolo-io/notifications") return "^0.6.8";
|
|
10491
|
+
return "latest";
|
|
10492
|
+
}
|
|
10425
10493
|
if (packageName === "@topolo/login") return "^0.1.0";
|
|
10426
10494
|
if (packageName === "@topolo/sdk") return "^0.8.1";
|
|
10427
10495
|
throw new Error(`Capability registry exposed private package ${packageName} to a third-party application.`);
|
|
@@ -10534,6 +10602,12 @@ function resolveManifestApplicationUrl(manifest, environment) {
|
|
|
10534
10602
|
}
|
|
10535
10603
|
return `https://${target.subdomain}.${domain}`;
|
|
10536
10604
|
}
|
|
10605
|
+
function resolveManifestHealthcheckPath(manifest) {
|
|
10606
|
+
const targets = manifest.targets || {};
|
|
10607
|
+
const targetName = manifest.primaryTarget || (targets.web ? "web" : Object.keys(targets)[0]);
|
|
10608
|
+
const healthcheckPath = targetName ? targets[targetName]?.healthcheckPath?.trim() : "";
|
|
10609
|
+
return healthcheckPath && healthcheckPath.startsWith("/") && !healthcheckPath.startsWith("//") ? healthcheckPath : "/health";
|
|
10610
|
+
}
|
|
10537
10611
|
function assertRegistration(value) {
|
|
10538
10612
|
const registration = record2(value);
|
|
10539
10613
|
const required = [
|
|
@@ -10680,6 +10754,7 @@ async function loadApplicationReconcileRequest(options) {
|
|
|
10680
10754
|
pricingType: registration.pricing.type,
|
|
10681
10755
|
monthlyPrice: registration.pricing.monthlyPrice ?? null,
|
|
10682
10756
|
productionUrl,
|
|
10757
|
+
healthcheckPath: resolveManifestHealthcheckPath(manifest),
|
|
10683
10758
|
demoUrl: registration.ownerType === "topolo_first_party" ? productionUrl : registration.demoUrl ?? productionUrl,
|
|
10684
10759
|
repoUrl: registration.repoUrl ?? null,
|
|
10685
10760
|
supportEmail: registration.supportEmail,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topolo/cli",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"topoloPublishedVersion": "0.6.
|
|
3
|
+
"version": "0.6.1",
|
|
4
|
+
"topoloPublishedVersion": "0.6.1",
|
|
5
5
|
"description": "Command-line interface for Topolo developers, operators, and agents, with internal first-party scaffolding available under the topolo platform namespace.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
"commander": "^12.1.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@topolo/sdk": "
|
|
32
|
+
"@topolo/sdk": "file:../topolo-sdk",
|
|
33
33
|
"@types/node": "^20.12.0",
|
|
34
|
-
"@vitest/coverage-v8": "
|
|
34
|
+
"@vitest/coverage-v8": "3.2.6",
|
|
35
35
|
"tsup": "^8.0.0",
|
|
36
36
|
"typescript": "^5.4.0",
|
|
37
|
-
"vitest": "
|
|
37
|
+
"vitest": "3.2.6"
|
|
38
38
|
},
|
|
39
39
|
"engines": {
|
|
40
40
|
"node": ">=20"
|