ugly-app 0.1.293 → 0.1.294

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cloudCleanup.d.ts","sourceRoot":"","sources":["../../src/cli/cloudCleanup.ts"],"names":[],"mappings":"AASA,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD5E"}
1
+ {"version":3,"file":"cloudCleanup.d.ts","sourceRoot":"","sources":["../../src/cli/cloudCleanup.ts"],"names":[],"mappings":"AASA,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF5E"}
@@ -7,12 +7,30 @@ export async function runCloudCleanup(opts) {
7
7
  process.exit(1);
8
8
  }
9
9
  const serverUrl = auth.serverUrl || getUglyBotUrl();
10
+ const headers = { 'Authorization': `Bearer ${auth.token}` };
10
11
  // List resources
11
- const listRes = await fetch(`${serverUrl}/api/dev-resources`, {
12
- headers: { 'Authorization': `Bearer ${auth.token}` },
13
- });
12
+ const listRes = await fetch(`${serverUrl}/api/dev-resources`, { headers });
14
13
  if (!listRes.ok) {
14
+ // If listing fails but user wants to delete all, use the bulk delete endpoint
15
+ if (opts.all) {
16
+ console.log('[ugly-app] Could not list resources, attempting bulk delete...');
17
+ const delRes = await fetch(`${serverUrl}/api/dev-resources/all`, {
18
+ method: 'DELETE',
19
+ headers,
20
+ });
21
+ if (delRes.ok) {
22
+ const data = await delRes.json();
23
+ console.log(`[ugly-app] Deleted ${data.deleted} cloud dev resource(s).`);
24
+ }
25
+ else {
26
+ const body = await delRes.text().catch(() => '');
27
+ console.error(`[ugly-app] Failed to delete resources: ${delRes.status} ${body}`);
28
+ process.exit(1);
29
+ }
30
+ return;
31
+ }
15
32
  console.error(`[ugly-app] Failed to list resources: ${listRes.status} ${listRes.statusText}`);
33
+ console.error('[ugly-app] Run with --all to force-delete all resources.');
16
34
  process.exit(1);
17
35
  }
18
36
  const resources = await listRes.json();
@@ -31,18 +49,29 @@ export async function runCloudCleanup(opts) {
31
49
  console.log(' npx ugly-app cloud:cleanup --all');
32
50
  return;
33
51
  }
34
- // Delete all
52
+ // Delete all via bulk endpoint
35
53
  console.log('[ugly-app] Deleting all cloud dev resources...');
36
- for (const r of resources) {
37
- const delRes = await fetch(`${serverUrl}/api/dev-resources/${r.projectId}`, {
38
- method: 'DELETE',
39
- headers: { 'Authorization': `Bearer ${auth.token}` },
40
- });
41
- if (delRes.ok) {
42
- console.log(` Deleted: ${r.projectId}`);
43
- }
44
- else {
45
- console.error(` Failed to delete ${r.projectId}: ${delRes.status}`);
54
+ const delRes = await fetch(`${serverUrl}/api/dev-resources/all`, {
55
+ method: 'DELETE',
56
+ headers,
57
+ });
58
+ if (delRes.ok) {
59
+ const data = await delRes.json();
60
+ console.log(`[ugly-app] Deleted ${data.deleted} resource(s).`);
61
+ }
62
+ else {
63
+ // Fallback: delete one-by-one
64
+ for (const r of resources) {
65
+ const res = await fetch(`${serverUrl}/api/dev-resources/${r.projectId}`, {
66
+ method: 'DELETE',
67
+ headers,
68
+ });
69
+ if (res.ok) {
70
+ console.log(` Deleted: ${r.projectId}`);
71
+ }
72
+ else {
73
+ console.error(` Failed to delete ${r.projectId}: ${res.status}`);
74
+ }
46
75
  }
47
76
  }
48
77
  console.log('\n[ugly-app] Done.');
@@ -1 +1 @@
1
- {"version":3,"file":"cloudCleanup.js","sourceRoot":"","sources":["../../src/cli/cloudCleanup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudCleanup.js","sourceRoot":"","sources":["../../src/cli/cloudCleanup.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.293";
1
+ export declare const CLI_VERSION = "0.1.294";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.293";
2
+ export const CLI_VERSION = "0.1.294";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.293",
3
+ "version": "0.1.294",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -15,14 +15,31 @@ export async function runCloudCleanup(opts: { all?: boolean }): Promise<void> {
15
15
  }
16
16
 
17
17
  const serverUrl = auth.serverUrl || getUglyBotUrl();
18
+ const headers = { 'Authorization': `Bearer ${auth.token}` };
18
19
 
19
20
  // List resources
20
- const listRes = await fetch(`${serverUrl}/api/dev-resources`, {
21
- headers: { 'Authorization': `Bearer ${auth.token}` },
22
- });
21
+ const listRes = await fetch(`${serverUrl}/api/dev-resources`, { headers });
23
22
 
24
23
  if (!listRes.ok) {
24
+ // If listing fails but user wants to delete all, use the bulk delete endpoint
25
+ if (opts.all) {
26
+ console.log('[ugly-app] Could not list resources, attempting bulk delete...');
27
+ const delRes = await fetch(`${serverUrl}/api/dev-resources/all`, {
28
+ method: 'DELETE',
29
+ headers,
30
+ });
31
+ if (delRes.ok) {
32
+ const data = await delRes.json() as { deleted: number };
33
+ console.log(`[ugly-app] Deleted ${data.deleted} cloud dev resource(s).`);
34
+ } else {
35
+ const body = await delRes.text().catch(() => '');
36
+ console.error(`[ugly-app] Failed to delete resources: ${delRes.status} ${body}`);
37
+ process.exit(1);
38
+ }
39
+ return;
40
+ }
25
41
  console.error(`[ugly-app] Failed to list resources: ${listRes.status} ${listRes.statusText}`);
42
+ console.error('[ugly-app] Run with --all to force-delete all resources.');
26
43
  process.exit(1);
27
44
  }
28
45
 
@@ -46,17 +63,27 @@ export async function runCloudCleanup(opts: { all?: boolean }): Promise<void> {
46
63
  return;
47
64
  }
48
65
 
49
- // Delete all
66
+ // Delete all via bulk endpoint
50
67
  console.log('[ugly-app] Deleting all cloud dev resources...');
51
- for (const r of resources) {
52
- const delRes = await fetch(`${serverUrl}/api/dev-resources/${r.projectId}`, {
53
- method: 'DELETE',
54
- headers: { 'Authorization': `Bearer ${auth.token}` },
55
- });
56
- if (delRes.ok) {
57
- console.log(` Deleted: ${r.projectId}`);
58
- } else {
59
- console.error(` Failed to delete ${r.projectId}: ${delRes.status}`);
68
+ const delRes = await fetch(`${serverUrl}/api/dev-resources/all`, {
69
+ method: 'DELETE',
70
+ headers,
71
+ });
72
+ if (delRes.ok) {
73
+ const data = await delRes.json() as { deleted: number };
74
+ console.log(`[ugly-app] Deleted ${data.deleted} resource(s).`);
75
+ } else {
76
+ // Fallback: delete one-by-one
77
+ for (const r of resources) {
78
+ const res = await fetch(`${serverUrl}/api/dev-resources/${r.projectId}`, {
79
+ method: 'DELETE',
80
+ headers,
81
+ });
82
+ if (res.ok) {
83
+ console.log(` Deleted: ${r.projectId}`);
84
+ } else {
85
+ console.error(` Failed to delete ${r.projectId}: ${res.status}`);
86
+ }
60
87
  }
61
88
  }
62
89
  console.log('\n[ugly-app] Done.');
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.293";
2
+ export const CLI_VERSION = "0.1.294";