@ductape/cli 0.3.7 → 0.3.8

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.
@@ -49,7 +49,17 @@ export async function runCloud(target, verb, opts, extraArgs) {
49
49
  'provision-persist': ['resources.provisionAndPersist', [body]],
50
50
  'provision-persist-all': ['resources.provisionAndPersistAll', [body]],
51
51
  };
52
- const entry = map[verb.toLowerCase()];
52
+ const verbLower = verb.toLowerCase();
53
+ if (verbLower === 'delete' || verbLower === 'deprovision' || verbLower === 'destroy') {
54
+ throw new Error(`Ductape does not deprovision cloud resources — this is intentional, not a missing feature. ` +
55
+ `"cloud resources ${verbLower}" would need to permanently destroy real infrastructure (a bucket, ` +
56
+ `a Pub/Sub topic, a database instance, etc.), and Ductape has no way to guarantee that's safe, so ` +
57
+ `it refuses to do it at all. Delete the underlying resource yourself via the cloud provider's own ` +
58
+ `console or CLI (e.g. gcloud, aws, az). To remove Ductape's own record of a component, use ` +
59
+ `\`ductape resources <type> delete -t <tag>\` instead — that only clears Ductape's catalog entry ` +
60
+ `and never touches the real cloud resource, so it will still exist afterward and need manual cleanup.`);
61
+ }
62
+ const entry = map[verbLower];
53
63
  if (!entry)
54
64
  throw new Error(`Unknown cloud resources verb: ${verb}`);
55
65
  [method, params] = entry;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ductape/cli",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
4
4
  "description": "Ductape CLI — local platform, login, link projects, and manage resources via the proxy (Workbench-compatible)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",