@topolo/cli 0.6.2 → 0.6.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/generate-wrangler.mjs +17 -1
- package/dist/index.js +90 -36
- package/package.json +4 -4
|
@@ -288,6 +288,7 @@ function emitWranglerToml(targetName, target) {
|
|
|
288
288
|
lines.push(`directory = ${tomlString(target.assets.directory || target.outputDir || 'dist')}`);
|
|
289
289
|
if (target.assets.binding) lines.push(`binding = ${tomlString(target.assets.binding)}`);
|
|
290
290
|
else lines.push(`binding = "ASSETS"`);
|
|
291
|
+
if (target.assets.htmlHandling) lines.push(`html_handling = ${tomlString(target.assets.htmlHandling)}`);
|
|
291
292
|
if (target.assets.notFoundHandling) lines.push(`not_found_handling = ${tomlString(target.assets.notFoundHandling)}`);
|
|
292
293
|
if (target.assets.runWorkerFirst !== undefined) lines.push(`run_worker_first = ${tomlString(target.assets.runWorkerFirst)}`);
|
|
293
294
|
lines.push('');
|
|
@@ -390,6 +391,7 @@ function emitWranglerToml(targetName, target) {
|
|
|
390
391
|
lines.push(`[env.${env}.assets]`);
|
|
391
392
|
lines.push(`directory = ${tomlString(target.assets.directory || target.outputDir || 'dist')}`);
|
|
392
393
|
lines.push(`binding = ${tomlString(target.assets.binding || 'ASSETS')}`);
|
|
394
|
+
if (target.assets.htmlHandling) lines.push(`html_handling = ${tomlString(target.assets.htmlHandling)}`);
|
|
393
395
|
if (target.assets.notFoundHandling) lines.push(`not_found_handling = ${tomlString(target.assets.notFoundHandling)}`);
|
|
394
396
|
if (target.assets.runWorkerFirst !== undefined) lines.push(`run_worker_first = ${tomlString(target.assets.runWorkerFirst)}`);
|
|
395
397
|
lines.push('');
|
|
@@ -572,6 +574,20 @@ function emitBindings(lines, bindings, env) {
|
|
|
572
574
|
lines.push(`service = ${tomlString(service)}`);
|
|
573
575
|
lines.push('');
|
|
574
576
|
}
|
|
577
|
+
// Cloudflare Secrets Store bindings — the durable data-at-rest key escrow
|
|
578
|
+
// (docs/data-at-rest-encryption-architecture.md). Store ids differ per env
|
|
579
|
+
// (per-env Cloudflare accounts), so the shape mirrors d1/kv: per-env config
|
|
580
|
+
// objects under the binding.
|
|
581
|
+
for (const s of bindings.secretsStore || []) {
|
|
582
|
+
if (!bindingAppliesToEnv(s, env)) continue;
|
|
583
|
+
const cfg = s[env];
|
|
584
|
+
if (!cfg) continue;
|
|
585
|
+
lines.push(`[[env.${env}.secrets_store_secrets]]`);
|
|
586
|
+
lines.push(`binding = ${tomlString(s.binding)}`);
|
|
587
|
+
lines.push(`store_id = ${tomlString(cfg.storeId)}`);
|
|
588
|
+
lines.push(`secret_name = ${tomlString(cfg.secretName)}`);
|
|
589
|
+
lines.push('');
|
|
590
|
+
}
|
|
575
591
|
for (const a of bindings.ai || []) {
|
|
576
592
|
lines.push(`[env.${env}.ai]`);
|
|
577
593
|
lines.push(`binding = ${tomlString(a.binding)}`);
|
|
@@ -595,7 +611,7 @@ function emitCloudcontrol() {
|
|
|
595
611
|
deployableTargets.flatMap((target) => target.environments || ENVS),
|
|
596
612
|
);
|
|
597
613
|
cc.deploy_method = deployableTargets.length ? 'wrangler' : 'none';
|
|
598
|
-
cc.ci_provider = existing.ci_provider || '
|
|
614
|
+
cc.ci_provider = existing.ci_provider || 'local';
|
|
599
615
|
cc.quality_policy = existing.quality_policy || {
|
|
600
616
|
profile: 'first_party_app',
|
|
601
617
|
coverage: { mode: 'ratchet' },
|
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
|
]
|
|
@@ -305,7 +309,9 @@ var APPLICATIONS = {
|
|
|
305
309
|
"domains": [
|
|
306
310
|
"bugfix.topolo.app"
|
|
307
311
|
],
|
|
308
|
-
"routes": [
|
|
312
|
+
"routes": [
|
|
313
|
+
"bugfix.topolo.app"
|
|
314
|
+
],
|
|
309
315
|
"appId": "bugfix"
|
|
310
316
|
}
|
|
311
317
|
]
|
|
@@ -327,7 +333,9 @@ var APPLICATIONS = {
|
|
|
327
333
|
"domains": [
|
|
328
334
|
"bytes.topolo.app"
|
|
329
335
|
],
|
|
330
|
-
"routes": [
|
|
336
|
+
"routes": [
|
|
337
|
+
"bytes.topolo.app"
|
|
338
|
+
],
|
|
331
339
|
"appId": "bytes"
|
|
332
340
|
},
|
|
333
341
|
{
|
|
@@ -357,7 +365,9 @@ var APPLICATIONS = {
|
|
|
357
365
|
"domains": [
|
|
358
366
|
"calendar.topolo.app"
|
|
359
367
|
],
|
|
360
|
-
"routes": [
|
|
368
|
+
"routes": [
|
|
369
|
+
"calendar.topolo.app"
|
|
370
|
+
],
|
|
361
371
|
"appId": "calendar"
|
|
362
372
|
},
|
|
363
373
|
{
|
|
@@ -387,9 +397,7 @@ var APPLICATIONS = {
|
|
|
387
397
|
"domains": [
|
|
388
398
|
"campaigns.topolo.app"
|
|
389
399
|
],
|
|
390
|
-
"routes": [
|
|
391
|
-
"campaigns.topolo.app"
|
|
392
|
-
],
|
|
400
|
+
"routes": [],
|
|
393
401
|
"appId": "campaigns"
|
|
394
402
|
},
|
|
395
403
|
{
|
|
@@ -419,7 +427,9 @@ var APPLICATIONS = {
|
|
|
419
427
|
"domains": [
|
|
420
428
|
"capacity.topolo.app"
|
|
421
429
|
],
|
|
422
|
-
"routes": [
|
|
430
|
+
"routes": [
|
|
431
|
+
"capacity.topolo.app"
|
|
432
|
+
],
|
|
423
433
|
"appId": "capacity"
|
|
424
434
|
}
|
|
425
435
|
]
|
|
@@ -441,7 +451,9 @@ var APPLICATIONS = {
|
|
|
441
451
|
"domains": [
|
|
442
452
|
"chat.topolo.app"
|
|
443
453
|
],
|
|
444
|
-
"routes": [
|
|
454
|
+
"routes": [
|
|
455
|
+
"chat.topolo.app"
|
|
456
|
+
],
|
|
445
457
|
"appId": "chat"
|
|
446
458
|
},
|
|
447
459
|
{
|
|
@@ -479,7 +491,9 @@ var APPLICATIONS = {
|
|
|
479
491
|
"domains": [
|
|
480
492
|
"guest.topolo.app"
|
|
481
493
|
],
|
|
482
|
-
"routes": [
|
|
494
|
+
"routes": [
|
|
495
|
+
"guest.topolo.app"
|
|
496
|
+
],
|
|
483
497
|
"appId": null
|
|
484
498
|
},
|
|
485
499
|
{
|
|
@@ -489,7 +503,9 @@ var APPLICATIONS = {
|
|
|
489
503
|
"domains": [
|
|
490
504
|
"commerce.topolo.app"
|
|
491
505
|
],
|
|
492
|
-
"routes": [
|
|
506
|
+
"routes": [
|
|
507
|
+
"commerce.topolo.app"
|
|
508
|
+
],
|
|
493
509
|
"appId": "commerce"
|
|
494
510
|
},
|
|
495
511
|
{
|
|
@@ -499,7 +515,9 @@ var APPLICATIONS = {
|
|
|
499
515
|
"domains": [
|
|
500
516
|
"station-commerce.topolo.app"
|
|
501
517
|
],
|
|
502
|
-
"routes": [
|
|
518
|
+
"routes": [
|
|
519
|
+
"station-commerce.topolo.app"
|
|
520
|
+
],
|
|
503
521
|
"appId": null
|
|
504
522
|
}
|
|
505
523
|
]
|
|
@@ -677,7 +695,9 @@ var APPLICATIONS = {
|
|
|
677
695
|
"domains": [
|
|
678
696
|
"docs.topolo.app"
|
|
679
697
|
],
|
|
680
|
-
"routes": [
|
|
698
|
+
"routes": [
|
|
699
|
+
"docs.topolo.app"
|
|
700
|
+
],
|
|
681
701
|
"appId": null
|
|
682
702
|
},
|
|
683
703
|
{
|
|
@@ -707,7 +727,9 @@ var APPLICATIONS = {
|
|
|
707
727
|
"domains": [
|
|
708
728
|
"feed-analytics-api.topolo.app"
|
|
709
729
|
],
|
|
710
|
-
"routes": [
|
|
730
|
+
"routes": [
|
|
731
|
+
"feed-analytics-api.topolo.app"
|
|
732
|
+
],
|
|
711
733
|
"appId": null
|
|
712
734
|
},
|
|
713
735
|
{
|
|
@@ -717,7 +739,9 @@ var APPLICATIONS = {
|
|
|
717
739
|
"domains": [
|
|
718
740
|
"feed-api.topolo.app"
|
|
719
741
|
],
|
|
720
|
-
"routes": [
|
|
742
|
+
"routes": [
|
|
743
|
+
"feed-api.topolo.app"
|
|
744
|
+
],
|
|
721
745
|
"appId": null
|
|
722
746
|
},
|
|
723
747
|
{
|
|
@@ -727,7 +751,9 @@ var APPLICATIONS = {
|
|
|
727
751
|
"domains": [
|
|
728
752
|
"feed.topolo.app"
|
|
729
753
|
],
|
|
730
|
-
"routes": [
|
|
754
|
+
"routes": [
|
|
755
|
+
"feed.topolo.app"
|
|
756
|
+
],
|
|
731
757
|
"appId": "feed"
|
|
732
758
|
}
|
|
733
759
|
]
|
|
@@ -839,7 +865,9 @@ var APPLICATIONS = {
|
|
|
839
865
|
"domains": [
|
|
840
866
|
"home.topolo.app"
|
|
841
867
|
],
|
|
842
|
-
"routes": [
|
|
868
|
+
"routes": [
|
|
869
|
+
"home.topolo.app"
|
|
870
|
+
],
|
|
843
871
|
"appId": "home"
|
|
844
872
|
},
|
|
845
873
|
{
|
|
@@ -929,7 +957,9 @@ var APPLICATIONS = {
|
|
|
929
957
|
"domains": [
|
|
930
958
|
"learn.topolo.app"
|
|
931
959
|
],
|
|
932
|
-
"routes": [
|
|
960
|
+
"routes": [
|
|
961
|
+
"learn.topolo.app"
|
|
962
|
+
],
|
|
933
963
|
"appId": "learn"
|
|
934
964
|
},
|
|
935
965
|
{
|
|
@@ -983,7 +1013,9 @@ var APPLICATIONS = {
|
|
|
983
1013
|
"domains": [
|
|
984
1014
|
"mail.topolo.app"
|
|
985
1015
|
],
|
|
986
|
-
"routes": [
|
|
1016
|
+
"routes": [
|
|
1017
|
+
"mail.topolo.app"
|
|
1018
|
+
],
|
|
987
1019
|
"appId": "mail"
|
|
988
1020
|
},
|
|
989
1021
|
{
|
|
@@ -1021,7 +1053,9 @@ var APPLICATIONS = {
|
|
|
1021
1053
|
"domains": [
|
|
1022
1054
|
"mdm.topolo.app"
|
|
1023
1055
|
],
|
|
1024
|
-
"routes": [
|
|
1056
|
+
"routes": [
|
|
1057
|
+
"mdm.topolo.app"
|
|
1058
|
+
],
|
|
1025
1059
|
"appId": "mdm"
|
|
1026
1060
|
}
|
|
1027
1061
|
]
|
|
@@ -1043,7 +1077,9 @@ var APPLICATIONS = {
|
|
|
1043
1077
|
"domains": [
|
|
1044
1078
|
"messages.topolo.app"
|
|
1045
1079
|
],
|
|
1046
|
-
"routes": [
|
|
1080
|
+
"routes": [
|
|
1081
|
+
"messages.topolo.app"
|
|
1082
|
+
],
|
|
1047
1083
|
"appId": "messages"
|
|
1048
1084
|
},
|
|
1049
1085
|
{
|
|
@@ -1077,11 +1113,13 @@ var APPLICATIONS = {
|
|
|
1077
1113
|
{
|
|
1078
1114
|
"name": "topolo-nexus-dashboard",
|
|
1079
1115
|
"kind": "worker",
|
|
1080
|
-
"apiUrl":
|
|
1116
|
+
"apiUrl": "https://nexus.topolo.app",
|
|
1081
1117
|
"domains": [
|
|
1082
1118
|
"nexus.topolo.app"
|
|
1083
1119
|
],
|
|
1084
|
-
"routes": [
|
|
1120
|
+
"routes": [
|
|
1121
|
+
"nexus.topolo.app"
|
|
1122
|
+
],
|
|
1085
1123
|
"appId": null
|
|
1086
1124
|
},
|
|
1087
1125
|
{
|
|
@@ -1137,7 +1175,9 @@ var APPLICATIONS = {
|
|
|
1137
1175
|
"domains": [
|
|
1138
1176
|
"observability-watch.topolo.app"
|
|
1139
1177
|
],
|
|
1140
|
-
"routes": [
|
|
1178
|
+
"routes": [
|
|
1179
|
+
"observability-watch.topolo.app"
|
|
1180
|
+
],
|
|
1141
1181
|
"appId": "observability_watch"
|
|
1142
1182
|
}
|
|
1143
1183
|
]
|
|
@@ -1209,7 +1249,9 @@ var APPLICATIONS = {
|
|
|
1209
1249
|
"domains": [
|
|
1210
1250
|
"p2p.topolo.app"
|
|
1211
1251
|
],
|
|
1212
|
-
"routes": [
|
|
1252
|
+
"routes": [
|
|
1253
|
+
"p2p.topolo.app"
|
|
1254
|
+
],
|
|
1213
1255
|
"appId": "p2p"
|
|
1214
1256
|
},
|
|
1215
1257
|
{
|
|
@@ -1406,7 +1448,9 @@ var APPLICATIONS = {
|
|
|
1406
1448
|
"domains": [
|
|
1407
1449
|
"studio.topolo.app"
|
|
1408
1450
|
],
|
|
1409
|
-
"routes": [
|
|
1451
|
+
"routes": [
|
|
1452
|
+
"studio.topolo.app"
|
|
1453
|
+
],
|
|
1410
1454
|
"appId": "social_studio"
|
|
1411
1455
|
},
|
|
1412
1456
|
{
|
|
@@ -1444,7 +1488,9 @@ var APPLICATIONS = {
|
|
|
1444
1488
|
"domains": [
|
|
1445
1489
|
"socialize.topolo.app"
|
|
1446
1490
|
],
|
|
1447
|
-
"routes": [
|
|
1491
|
+
"routes": [
|
|
1492
|
+
"socialize.topolo.app"
|
|
1493
|
+
],
|
|
1448
1494
|
"appId": "socialize"
|
|
1449
1495
|
},
|
|
1450
1496
|
{
|
|
@@ -1454,7 +1500,9 @@ var APPLICATIONS = {
|
|
|
1454
1500
|
"domains": [
|
|
1455
1501
|
"socialize-api.topolo.app"
|
|
1456
1502
|
],
|
|
1457
|
-
"routes": [
|
|
1503
|
+
"routes": [
|
|
1504
|
+
"socialize-api.topolo.app"
|
|
1505
|
+
],
|
|
1458
1506
|
"appId": null
|
|
1459
1507
|
},
|
|
1460
1508
|
{
|
|
@@ -1514,7 +1562,9 @@ var APPLICATIONS = {
|
|
|
1514
1562
|
"domains": [
|
|
1515
1563
|
"status.topolo.app"
|
|
1516
1564
|
],
|
|
1517
|
-
"routes": [
|
|
1565
|
+
"routes": [
|
|
1566
|
+
"status.topolo.app"
|
|
1567
|
+
],
|
|
1518
1568
|
"appId": "status"
|
|
1519
1569
|
}
|
|
1520
1570
|
]
|
|
@@ -1630,7 +1680,9 @@ var APPLICATIONS = {
|
|
|
1630
1680
|
"domains": [
|
|
1631
1681
|
"voice.topolo.app"
|
|
1632
1682
|
],
|
|
1633
|
-
"routes": [
|
|
1683
|
+
"routes": [
|
|
1684
|
+
"voice.topolo.app"
|
|
1685
|
+
],
|
|
1634
1686
|
"appId": "voice"
|
|
1635
1687
|
},
|
|
1636
1688
|
{
|
|
@@ -1681,7 +1733,9 @@ var APPLICATIONS = {
|
|
|
1681
1733
|
"domains": [
|
|
1682
1734
|
"web.topolo.app"
|
|
1683
1735
|
],
|
|
1684
|
-
"routes": [
|
|
1736
|
+
"routes": [
|
|
1737
|
+
"web.topolo.app"
|
|
1738
|
+
],
|
|
1685
1739
|
"appId": "web"
|
|
1686
1740
|
}
|
|
1687
1741
|
]
|
|
@@ -1758,7 +1812,7 @@ var APPLICATION_REQUIREMENTS = [
|
|
|
1758
1812
|
"Use TopoloAppMetricCard, TopoloAppEmptyState, TopoloAppStatusBadge, TopoloAppGrid, and TopoloAppSection for repeated app body patterns",
|
|
1759
1813
|
"Keep visual QA fixtures available through visualQa=1 or __devpreview=1 so screenshot checks do not depend on live API state",
|
|
1760
1814
|
"Keep mobile and desktop shell behavior aligned with the platform UI kit",
|
|
1761
|
-
"Constrain app
|
|
1815
|
+
"Constrain the app workspace-view layout wrappers with min-width: 0, width: auto, and viewport-aware max-width so shell padding cannot create page-level horizontal overflow"
|
|
1762
1816
|
]
|
|
1763
1817
|
},
|
|
1764
1818
|
{
|
|
@@ -3504,7 +3558,7 @@ function createTopolo(options) {
|
|
|
3504
3558
|
};
|
|
3505
3559
|
}
|
|
3506
3560
|
|
|
3507
|
-
//
|
|
3561
|
+
// ../topolo-sdk/dist/node/credential-store.js
|
|
3508
3562
|
import { mkdir, readFile, writeFile, chmod } from "fs/promises";
|
|
3509
3563
|
import { existsSync } from "fs";
|
|
3510
3564
|
import { homedir, platform } from "os";
|
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.4",
|
|
4
|
+
"topoloPublishedVersion": "0.6.4",
|
|
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": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"skills"
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
|
-
"build:sdk": "pnpm --dir ../topolo-sdk build",
|
|
15
|
+
"build:sdk": "python3 ../../tooling/with-resource-lock.py ../topolo-sdk -- pnpm --dir ../topolo-sdk build",
|
|
16
16
|
"prebuild": "pnpm run build:sdk",
|
|
17
17
|
"build": "tsup && node scripts/vendor-generator.mjs",
|
|
18
18
|
"dev": "tsup --watch",
|
|
@@ -29,7 +29,7 @@
|
|
|
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
34
|
"@vitest/coverage-v8": "3.2.6",
|
|
35
35
|
"tsup": "^8.0.0",
|