ugly-app 0.1.243 → 0.1.245

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.
Files changed (115) hide show
  1. package/dist/cli/authCommands.d.ts +0 -1
  2. package/dist/cli/authCommands.d.ts.map +1 -1
  3. package/dist/cli/authCommands.js +18 -24
  4. package/dist/cli/authCommands.js.map +1 -1
  5. package/dist/cli/configure.js +9 -9
  6. package/dist/cli/configure.js.map +1 -1
  7. package/dist/cli/deployClient.d.ts.map +1 -1
  8. package/dist/cli/deployClient.js +23 -10
  9. package/dist/cli/deployClient.js.map +1 -1
  10. package/dist/cli/dev.d.ts +0 -1
  11. package/dist/cli/dev.d.ts.map +1 -1
  12. package/dist/cli/dev.js +32 -82
  13. package/dist/cli/dev.js.map +1 -1
  14. package/dist/cli/feedbackResolve.js +1 -1
  15. package/dist/cli/feedbackResolve.js.map +1 -1
  16. package/dist/cli/feedbackSubmit.js +2 -2
  17. package/dist/cli/feedbackSubmit.js.map +1 -1
  18. package/dist/cli/index.js +3 -58
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/scaffold.d.ts.map +1 -1
  21. package/dist/cli/scaffold.js +8 -39
  22. package/dist/cli/scaffold.js.map +1 -1
  23. package/dist/cli/serverLogQuery.d.ts +1 -1
  24. package/dist/cli/serverLogQuery.d.ts.map +1 -1
  25. package/dist/cli/serverLogQuery.js +11 -11
  26. package/dist/cli/serverLogQuery.js.map +1 -1
  27. package/dist/cli/serverLogQueryApi.js +2 -2
  28. package/dist/cli/serverLogQueryApi.js.map +1 -1
  29. package/dist/cli/storageClient.d.ts.map +1 -1
  30. package/dist/cli/storageClient.js +2 -13
  31. package/dist/cli/storageClient.js.map +1 -1
  32. package/dist/cli/uglyBotSetup.d.ts +2 -2
  33. package/dist/cli/uglyBotSetup.d.ts.map +1 -1
  34. package/dist/cli/uglyBotSetup.js +11 -28
  35. package/dist/cli/uglyBotSetup.js.map +1 -1
  36. package/dist/cli/uglyappConfig.d.ts +10 -5
  37. package/dist/cli/uglyappConfig.d.ts.map +1 -1
  38. package/dist/cli/uglyappConfig.js +58 -25
  39. package/dist/cli/uglyappConfig.js.map +1 -1
  40. package/dist/cli/uglyappConfig.test.js +3 -3
  41. package/dist/cli/upgrade.d.ts.map +1 -1
  42. package/dist/cli/upgrade.js +1 -25
  43. package/dist/cli/upgrade.js.map +1 -1
  44. package/dist/cli/url.js +1 -1
  45. package/dist/cli/version.d.ts +1 -1
  46. package/dist/cli/version.js +1 -1
  47. package/dist/server/App.d.ts.map +1 -1
  48. package/dist/server/App.js +8 -10
  49. package/dist/server/App.js.map +1 -1
  50. package/dist/server/Auth.d.ts +0 -2
  51. package/dist/server/Auth.d.ts.map +1 -1
  52. package/dist/server/Auth.js +31 -112
  53. package/dist/server/Auth.js.map +1 -1
  54. package/dist/server/Email.d.ts +3 -10
  55. package/dist/server/Email.d.ts.map +1 -1
  56. package/dist/server/Email.js +19 -53
  57. package/dist/server/Email.js.map +1 -1
  58. package/dist/server/PushNotification.d.ts +2 -3
  59. package/dist/server/PushNotification.d.ts.map +1 -1
  60. package/dist/server/PushNotification.js +11 -40
  61. package/dist/server/PushNotification.js.map +1 -1
  62. package/dist/server/Storage.d.ts.map +1 -1
  63. package/dist/server/Storage.js +9 -20
  64. package/dist/server/Storage.js.map +1 -1
  65. package/dist/server/ai/ProviderBalance.d.ts.map +1 -1
  66. package/dist/server/ai/ProviderBalance.js +2 -5
  67. package/dist/server/ai/ProviderBalance.js.map +1 -1
  68. package/dist/server/embeddings/EmbeddingClient.js +1 -1
  69. package/dist/server/embeddings/EmbeddingClient.js.map +1 -1
  70. package/dist/server/embeddings/providers/OpenAI.d.ts.map +1 -1
  71. package/dist/server/embeddings/providers/OpenAI.js +6 -19
  72. package/dist/server/embeddings/providers/OpenAI.js.map +1 -1
  73. package/dist/server/embeddings/types.d.ts +0 -1
  74. package/dist/server/embeddings/types.d.ts.map +1 -1
  75. package/dist/server/uglyBotProxy.d.ts +2 -0
  76. package/dist/server/uglyBotProxy.d.ts.map +1 -0
  77. package/dist/server/uglyBotProxy.js +38 -0
  78. package/dist/server/uglyBotProxy.js.map +1 -0
  79. package/dist/three/server/VideoEncoder.d.ts.map +1 -1
  80. package/dist/three/server/VideoEncoder.js +2 -1
  81. package/dist/three/server/VideoEncoder.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/cli/authCommands.ts +17 -27
  84. package/src/cli/configure.ts +10 -10
  85. package/src/cli/deployClient.ts +19 -13
  86. package/src/cli/dev.ts +30 -86
  87. package/src/cli/feedbackResolve.ts +1 -1
  88. package/src/cli/feedbackSubmit.ts +2 -2
  89. package/src/cli/index.ts +7 -61
  90. package/src/cli/scaffold.ts +9 -46
  91. package/src/cli/serverLogQuery.ts +11 -13
  92. package/src/cli/serverLogQueryApi.ts +2 -2
  93. package/src/cli/storageClient.ts +2 -15
  94. package/src/cli/uglyBotSetup.ts +10 -28
  95. package/src/cli/uglyappConfig.test.ts +3 -3
  96. package/src/cli/uglyappConfig.ts +60 -28
  97. package/src/cli/upgrade.ts +1 -30
  98. package/src/cli/url.ts +1 -1
  99. package/src/cli/version.ts +1 -1
  100. package/src/server/App.ts +8 -10
  101. package/src/server/Auth.ts +29 -116
  102. package/src/server/Email.ts +20 -69
  103. package/src/server/PushNotification.ts +11 -45
  104. package/src/server/Storage.ts +10 -26
  105. package/src/server/ai/ProviderBalance.ts +2 -5
  106. package/src/server/embeddings/EmbeddingClient.ts +1 -1
  107. package/src/server/embeddings/providers/OpenAI.ts +6 -26
  108. package/src/server/embeddings/types.ts +0 -1
  109. package/src/server/uglyBotProxy.ts +44 -0
  110. package/src/three/server/VideoEncoder.ts +2 -1
  111. package/templates/client/pages/EmailTestPage.tsx +1 -1
  112. package/templates/gitignore +1 -4
  113. package/templates/package.json +1 -1
  114. package/templates/server/index.ts +1 -1
  115. package/templates/.env.example +0 -49
@@ -2,7 +2,6 @@ export declare function createAccount(email: string, name?: string): Promise<{
2
2
  userId: string;
3
3
  email: string;
4
4
  }>;
5
- export declare function createToken(userId: string): Promise<string>;
6
5
  export declare function createBot(slug: string, name: string): Promise<{
7
6
  userId: string;
8
7
  token: string;
@@ -1 +1 @@
1
- {"version":3,"file":"authCommands.d.ts","sourceRoot":"","sources":["../../src/cli/authCommands.ts"],"names":[],"mappings":"AAUA,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAoC5C;AAQD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMjE;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAwC5C"}
1
+ {"version":3,"file":"authCommands.d.ts","sourceRoot":"","sources":["../../src/cli/authCommands.ts"],"names":[],"mappings":"AASA,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAoC5C;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA6C5C"}
@@ -1,4 +1,3 @@
1
- import { SignJWT } from 'jose';
2
1
  import { nanoid } from 'nanoid';
3
2
  import { UGLY_BOT_URL } from '../shared/uglyBotUrl.js';
4
3
  import { initPostgres, query as pgQuery, stopPostgres } from '../server/Postgres.js';
@@ -34,35 +33,30 @@ export async function createAccount(email, name) {
34
33
  await stopPostgres();
35
34
  }
36
35
  }
37
- function getJwtSecret() {
38
- const secret = process.env.JWT_SECRET;
39
- if (!secret)
40
- throw new Error('JWT_SECRET env var is required');
41
- return new TextEncoder().encode(secret);
42
- }
43
- export async function createToken(userId) {
44
- return new SignJWT({ sub: userId })
45
- .setProtectedHeader({ alg: 'HS256' })
46
- .setExpirationTime('30d')
47
- .setIssuedAt()
48
- .sign(getJwtSecret());
49
- }
50
36
  export async function createBot(slug, name) {
51
37
  const fs = await import('fs');
52
- let envContent = '';
38
+ let projectToken = '';
39
+ // Read from .uglyapp config
53
40
  try {
54
- envContent = fs.readFileSync('.env', 'utf-8');
41
+ const config = JSON.parse(fs.readFileSync('.uglyapp', 'utf-8'));
42
+ if (typeof config.uglyBotToken === 'string')
43
+ projectToken = config.uglyBotToken;
55
44
  }
56
- catch {
57
- throw new Error('No .env file found. Run "npx ugly-app login" first to set up UGLY_BOT_TOKEN.');
45
+ catch { /* no .uglyapp */ }
46
+ // Fall back to .env for backwards compatibility
47
+ if (!projectToken) {
48
+ try {
49
+ const envContent = fs.readFileSync('.env', 'utf-8');
50
+ const tokenMatch = /^UGLY_BOT_TOKEN=(.+)$/m.exec(envContent);
51
+ if (tokenMatch?.[1])
52
+ projectToken = tokenMatch[1];
53
+ }
54
+ catch { /* no .env either */ }
58
55
  }
59
- const tokenMatch = /^UGLY_BOT_TOKEN=(.+)$/m.exec(envContent);
60
- if (!tokenMatch?.[1]) {
61
- throw new Error('UGLY_BOT_TOKEN not found in .env. Run "npx ugly-app login" first.');
56
+ if (!projectToken) {
57
+ throw new Error('uglyBotToken not found in .uglyapp. Run "npx ugly-app login" first.');
62
58
  }
63
- const projectToken = tokenMatch[1];
64
- const urlMatch = /^UGLY_BOT_URL=(.+)$/m.exec(envContent);
65
- const serverUrl = urlMatch?.[1] ?? UGLY_BOT_URL;
59
+ const serverUrl = UGLY_BOT_URL;
66
60
  const res = await fetch(`${serverUrl}/request`, {
67
61
  method: 'POST',
68
62
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"authCommands.js","sourceRoot":"","sources":["../../src/cli/authCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authCommands.js","sourceRoot":"","sources":["../../src/cli/authCommands.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,11 @@ import fs from 'fs';
2
2
  import { nanoid } from 'nanoid';
3
3
  import path from 'path';
4
4
  import readline from 'readline';
5
- import { printPortTable, readUglyAppConfig, validatePortStart, writeUglyAppConfig, } from './uglyappConfig.js';
6
- async function promptPortStart(rl) {
5
+ import { printLocalPorts, readUglyAppConfig, validateLocalPort, writeUglyAppConfig, } from './uglyappConfig.js';
6
+ async function promptLocalPort(rl) {
7
7
  return new Promise((resolve) => {
8
8
  const ask = () => {
9
- rl.question('Port start? [3000]: ', (answer) => {
9
+ rl.question('Local port? [3000]: ', (answer) => {
10
10
  const raw = answer.trim() || '3000';
11
11
  const parsed = parseInt(raw, 10);
12
12
  // String(parsed) !== raw catches "3000abc" → parseInt returns 3000 but string differs
@@ -28,7 +28,7 @@ export async function configureProject(cwd) {
28
28
  const configPath = path.join(cwd, '.uglyapp');
29
29
  if (fs.existsSync(configPath)) {
30
30
  const existing = readUglyAppConfig(cwd);
31
- console.warn(`[uglyapp] .uglyapp already exists (projectId: ${existing?.projectId}, portStart: ${existing?.portStart}). Remove it first to reconfigure.`);
31
+ console.warn(`[uglyapp] .uglyapp already exists (projectId: ${existing?.projectId}, localPort: ${existing?.localPort}). Remove it first to reconfigure.`);
32
32
  return;
33
33
  }
34
34
  const rl = readline.createInterface({
@@ -36,14 +36,14 @@ export async function configureProject(cwd) {
36
36
  output: process.stdout,
37
37
  });
38
38
  try {
39
- const portStart = await promptPortStart(rl);
40
- validatePortStart(portStart); // warns on conflicts, does not throw
39
+ const localPort = await promptLocalPort(rl);
40
+ validateLocalPort(localPort); // warns on conflicts, does not throw
41
41
  const projectId = nanoid(10);
42
- writeUglyAppConfig(cwd, { projectId, portStart });
42
+ writeUglyAppConfig(cwd, { projectId, localPort });
43
43
  console.log(`\n[uglyapp] Created .uglyapp`);
44
44
  console.log(` projectId: ${projectId}`);
45
- console.log(` portStart: ${portStart}`);
46
- printPortTable(portStart);
45
+ console.log(` localPort: ${localPort}`);
46
+ printLocalPorts(localPort);
47
47
  console.log('Commit .uglyapp to share port assignments with your team.');
48
48
  }
49
49
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/cli/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,KAAK,UAAU,eAAe,CAAC,EAAsB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,EAAE,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC;gBACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjC,sFAAsF;gBACtF,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;oBACzB,MAAM,IAAI,CAAC;oBACX,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,EACtB,CAAC;oBACD,OAAO,CAAC,KAAK,CACX,kBAAkB,GAAG,2CAA2C,CACjE,CAAC;oBACF,GAAG,EAAE,CAAC;gBACR,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,GAAG,EAAE,CAAC;IACR,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAE9C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CACV,iDAAiD,QAAQ,EAAE,SAAS,gBAAgB,QAAQ,EAAE,SAAS,oCAAoC,CAC5I,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;QAC5C,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,qCAAqC;QAEnE,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,kBAAkB,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAElD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;QACzC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/cli/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,KAAK,UAAU,eAAe,CAAC,EAAsB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,GAAG,EAAE;YACf,EAAE,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC7C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC;gBACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACjC,sFAAsF;gBACtF,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;oBACzB,MAAM,IAAI,CAAC;oBACX,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,EACtB,CAAC;oBACD,OAAO,CAAC,KAAK,CACX,kBAAkB,GAAG,2CAA2C,CACjE,CAAC;oBACF,GAAG,EAAE,CAAC;gBACR,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,GAAG,EAAE,CAAC;IACR,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAE9C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CACV,iDAAiD,QAAQ,EAAE,SAAS,gBAAgB,QAAQ,EAAE,SAAS,oCAAoC,CAC5I,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC;QAC5C,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,qCAAqC;QAEnE,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,kBAAkB,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAElD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;QACzC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deployClient.d.ts","sourceRoot":"","sources":["../../src/cli/deployClient.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAsB1D;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"deployClient.d.ts","sourceRoot":"","sources":["../../src/cli/deployClient.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CA4B1D;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,CAAC,CAAC,CAgBZ;AAED,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -2,21 +2,34 @@ import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { UGLY_BOT_URL } from '../shared/uglyBotUrl.js';
4
4
  export function readDeployConfig(cwd) {
5
- const envPath = path.join(cwd, '.env');
6
- let content;
5
+ // Read from .uglyapp config
6
+ const configPath = path.join(cwd, '.uglyapp');
7
+ let token;
8
+ let deployUrl = UGLY_BOT_URL;
7
9
  try {
8
- content = fs.readFileSync(envPath, 'utf-8');
10
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
11
+ if (typeof config.uglyBotToken === 'string')
12
+ token = config.uglyBotToken;
13
+ if (typeof config.deployUrl === 'string')
14
+ deployUrl = config.deployUrl;
9
15
  }
10
16
  catch {
11
- throw new Error('No .env file found. Run "npx ugly-app login" first to set up UGLY_BOT_TOKEN.');
17
+ // Fall back to .env for backwards compatibility
18
+ try {
19
+ const content = fs.readFileSync(path.join(cwd, '.env'), 'utf-8');
20
+ const tokenMatch = /^UGLY_BOT_TOKEN=(.+)$/m.exec(content);
21
+ if (tokenMatch?.[1])
22
+ token = tokenMatch[1].trim();
23
+ const urlMatch = /^DEPLOY_URL=(.+)$/m.exec(content);
24
+ if (urlMatch?.[1])
25
+ deployUrl = urlMatch[1].trim();
26
+ }
27
+ catch { /* no .env either */ }
12
28
  }
13
- const tokenMatch = /^UGLY_BOT_TOKEN=(.+)$/m.exec(content);
14
- if (!tokenMatch?.[1]) {
15
- throw new Error('UGLY_BOT_TOKEN not found in .env. Run "npx ugly-app login" first.');
29
+ if (!token) {
30
+ throw new Error('uglyBotToken not found in .uglyapp. Run "npx ugly-app login" first.');
16
31
  }
17
- const urlMatch = /^DEPLOY_URL=(.+)$/m.exec(content);
18
- const deployUrl = urlMatch?.[1]?.trim() || UGLY_BOT_URL;
19
- return { token: tokenMatch[1].trim(), deployUrl };
32
+ return { token, deployUrl };
20
33
  }
21
34
  export async function deployRequest(op, input, config) {
22
35
  const res = await fetch(`${config.deployUrl}/request`, {
@@ -1 +1 @@
1
- {"version":3,"file":"deployClient.js","sourceRoot":"","sources":["../../src/cli/deployClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAOvD,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC;IAExD,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAU,EACV,KAA8B,EAC9B,MAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,SAAS,UAAU,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE;YACvC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;KACpC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,QAAgB,EAChB,WAAmB;IAEnB,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;QACpC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE;QACxC,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"deployClient.js","sourceRoot":"","sources":["../../src/cli/deployClient.ts"],"names":[],"mappings":"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"}
package/dist/cli/dev.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export declare function runDev(opts?: {
2
2
  watch: boolean;
3
3
  verbose: boolean;
4
- local: boolean;
5
4
  }): Promise<void>;
6
5
  //# sourceMappingURL=dev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAuEA,wBAAsB,MAAM,CAAC,IAAI,GAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAmD,GAAG,OAAO,CAAC,IAAI,CAAC,CA0MvJ"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAqDA,wBAAsB,MAAM,CAAC,IAAI,GAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAqC,GAAG,OAAO,CAAC,IAAI,CAAC,CAoKzH"}
package/dist/cli/dev.js CHANGED
@@ -22,7 +22,7 @@ function waitForPort(port, retries = 30, intervalMs = 1000) {
22
22
  });
23
23
  }
24
24
  import { runMigrations } from './migrate.js';
25
- import { computeEnvVars, readUglyAppConfig, validatePortStart, } from './uglyappConfig.js';
25
+ import { computeEnvVars, readUglyAppConfig, validateLocalPort, } from './uglyappConfig.js';
26
26
  async function waitForPostgres(url, opts) {
27
27
  for (let i = 0; i < opts.retries; i++) {
28
28
  try {
@@ -36,39 +36,25 @@ async function waitForPostgres(url, opts) {
36
36
  // fall through to retry
37
37
  }
38
38
  if (i === opts.retries - 1)
39
- throw new Error(`[ugly-app] PostgreSQL not ready after ${Math.round((opts.retries * opts.intervalMs) / 1000)}s — Is Docker running? Try: ugly-app docker start`);
39
+ throw new Error(`[ugly-app] PostgreSQL not ready after ${Math.round((opts.retries * opts.intervalMs) / 1000)}s — check ugly.bot connection`);
40
40
  // Print a dot every 5s so the user knows we're making progress
41
41
  if (i % 5 === 4)
42
42
  process.stdout.write('.');
43
43
  await new Promise((r) => setTimeout(r, opts.intervalMs));
44
44
  }
45
45
  }
46
- async function ensureProjectDatabase(projectId) {
47
- const adminUrl = `postgresql://app:app@localhost:5432/app`;
48
- const client = new pg.Client({ connectionString: adminUrl });
49
- try {
50
- await client.connect();
51
- const result = await client.query(`SELECT 1 FROM pg_database WHERE datname = $1`, [projectId]);
52
- if (result.rowCount === 0) {
53
- await client.query(`CREATE DATABASE "${projectId.replace(/"/g, '""')}" OWNER app`);
54
- console.log(`[ugly-app] Created database: ${projectId}`);
55
- }
56
- }
57
- finally {
58
- await client.end();
59
- }
60
- }
61
- export async function runDev(opts = { watch: false, verbose: false, local: false }) {
46
+ export async function runDev(opts = { watch: false, verbose: false }) {
62
47
  // Read .uglyapp config and inject computed env vars before spawning any child process.
63
- // Vars set here take precedence over .env values because dotenv (used by tsx --env-file)
64
- // skips vars already present in process.env (override: false behavior).
65
48
  const config = readUglyAppConfig(process.cwd());
66
49
  if (config !== null) {
67
- validatePortStart(config.portStart); // warns on conflicts
50
+ validateLocalPort(config.localPort); // warns on conflicts
68
51
  const envVars = computeEnvVars(config);
69
52
  for (const [key, value] of Object.entries(envVars)) {
70
53
  process.env[key] = value;
71
54
  }
55
+ // Inject config fields as env vars for the server process
56
+ if (config.uglyBotToken)
57
+ process.env['UGLY_BOT_TOKEN'] = config.uglyBotToken;
72
58
  }
73
59
  // ── Set universal dev env vars ─────────────────────────────────────────────
74
60
  if (!process.env['NODE_ENV'])
@@ -83,8 +69,6 @@ export async function runDev(opts = { watch: false, verbose: false, local: false
83
69
  const port = process.env['PORT'] ?? '4321';
84
70
  try {
85
71
  if (process.platform === 'win32') {
86
- // Find PID listening on the port and kill it. netstat output looks like:
87
- // TCP 0.0.0.0:4321 0.0.0.0:0 LISTENING 12345
88
72
  const out = execSync(`netstat -ano | findstr :${port} | findstr LISTENING`, { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
89
73
  const pids = new Set(out.split('\n').map(line => line.trim().split(/\s+/).pop()).filter(Boolean));
90
74
  for (const pid of pids) {
@@ -101,54 +85,36 @@ export async function runDev(opts = { watch: false, verbose: false, local: false
101
85
  catch {
102
86
  // best-effort — port may simply not be in use
103
87
  }
104
- // ── 1. Start infrastructure (cloud sidecar or local Docker) ───────────────
105
- let useDocker = opts.local;
106
- if (!useDocker) {
107
- const { readUglyBotAuth, isTokenValid } = await import('./uglyBotAuth.js');
108
- const auth = readUglyBotAuth();
109
- if (!auth?.token || !isTokenValid(auth)) {
110
- console.warn('[ugly-app] No ugly.bot auth — falling back to Docker (run `npx ugly-app login` for cloud dev)');
111
- useDocker = true;
112
- }
113
- else if (config) {
114
- const { startDevTunnel } = await import('./devTunnel.js');
115
- try {
116
- // Relay proxy tunnel traffic to the main app server port
117
- const appPort = config.portStart ? config.portStart : parseInt(port, 10);
118
- const ports = await startDevTunnel({ projectId: config.projectId, token: auth.token, vitePort: appPort });
119
- process.env['POSTGRES_URL'] = `postgresql://app:app@localhost:${ports.postgres}/${config.projectId}`;
120
- process.env['NATS_URL'] = `nats://localhost:${ports.nats}`;
121
- process.env['MINIO_ENDPOINT'] = `http://localhost:${ports.s3}`;
122
- process.env['QDRANT_URL'] = `http://localhost:${ports.qdrantHttp}`;
123
- }
124
- catch (err) {
125
- console.error(`[ugly-app] Sidecar failed: ${err.message}`);
126
- console.error('[ugly-app] Start with --local for offline Docker mode');
127
- process.exit(1);
128
- }
129
- }
88
+ // ── 1. Start cloud tunnel (sidecar) ──────────────────────────────────────
89
+ const { readUglyBotAuth, isTokenValid } = await import('./uglyBotAuth.js');
90
+ const auth = readUglyBotAuth();
91
+ if (!auth?.token || !isTokenValid(auth)) {
92
+ console.error('[ugly-app] Not logged in. Run `npx ugly-app login` first.');
93
+ process.exit(1);
130
94
  }
131
- if (useDocker) {
132
- const { isDockerRunning, dockerStart } = await import('./docker.js');
133
- if (!(await isDockerRunning())) {
134
- dockerStart();
95
+ if (config) {
96
+ const { startDevTunnel } = await import('./devTunnel.js');
97
+ try {
98
+ const appPort = config.localPort ? config.localPort : parseInt(port, 10);
99
+ const ports = await startDevTunnel({ projectId: config.projectId, token: auth.token, vitePort: appPort });
100
+ process.env['POSTGRES_URL'] = `postgresql://app:app@localhost:${ports.postgres}/${config.projectId}`;
101
+ process.env['NATS_URL'] = `nats://localhost:${ports.nats}`;
102
+ process.env['MINIO_ENDPOINT'] = `http://localhost:${ports.s3}`;
103
+ process.env['QDRANT_URL'] = `http://localhost:${ports.qdrantHttp}`;
104
+ }
105
+ catch (err) {
106
+ console.error(`[ugly-app] Cloud tunnel failed: ${err.message}`);
107
+ process.exit(1);
135
108
  }
136
109
  }
137
- // ── 2. Wait for PostgreSQL to be reachable (use admin DB) ──────────────────
138
- // Use POSTGRES_URL for sidecar (ephemeral port) or admin URL for Docker (fixed port)
139
- const pgWaitUrl = useDocker
140
- ? 'postgresql://app:app@localhost:5432/app'
141
- : (process.env['POSTGRES_URL'] ?? 'postgresql://app:app@localhost:5432/app');
110
+ // ── 2. Wait for PostgreSQL to be reachable ────────────────────────────────
111
+ const pgWaitUrl = process.env['POSTGRES_URL'] ?? 'postgresql://app:app@localhost:5432/app';
142
112
  process.stdout.write('[ugly-app] Waiting for PostgreSQL');
143
113
  await waitForPostgres(pgWaitUrl, { retries: 30, intervalMs: 1000 });
144
114
  process.stdout.write(' ✓\n');
145
- // ── 3. Ensure per-project database exists (Docker only — cloud manages its own DBs)
146
- if (config && useDocker) {
147
- await ensureProjectDatabase(config.projectId);
148
- }
149
- // ── 4. Run any pending migrations ─────────────────────────────────────────
115
+ // ── 3. Run any pending migrations ─────────────────────────────────────────
150
116
  await runMigrations();
151
- // ── 6. Spawn dev processes (docker already running detached) ───────────────
117
+ // ── 4. Spawn dev processes ────────────────────────────────────────────────
152
118
  const verbose = opts.verbose;
153
119
  if (verbose) {
154
120
  console.log('[ugly-app] Verbose mode enabled');
@@ -159,31 +125,15 @@ export async function runDev(opts = { watch: false, verbose: false, local: false
159
125
  console.log(`[ugly-app] POSTGRES_URL: ${process.env['POSTGRES_URL'] ?? '(default)'}`);
160
126
  }
161
127
  return new Promise((resolve, reject) => {
162
- // tsc and eslint are wrapped with `|| true` so their failures don't kill
163
- // the session. We build a single quoted shell string so the `||` is
164
- // evaluated by the inner sh (inside concurrently), not by the outer shell
165
- // that launches concurrently itself.
166
128
  const isWin = process.platform === 'win32';
167
129
  const noFail = (cmd) => isWin ? `(${cmd} || (exit /b 0))` : `${cmd} || true`;
168
- // Use local node_modules/.bin/ binaries directly instead of npx.
169
- // npx on older npm versions (e.g. 7.x) dumps verbose timing logs and can
170
- // resolve to the wrong global package (e.g. `esw` the esbuild wrapper
171
- // instead of `eslint-watch`'s `esw` binary).
172
130
  const binDir = path.join(process.cwd(), 'node_modules', '.bin') + path.sep;
173
131
  const bin = (name) => `"${binDir}${name}"`;
174
- // Quote each concurrently sub-command so spaces/operators are preserved
175
- // when the outer shell reassembles argv.
176
132
  const q = (s) => `"${s.replace(/"/g, '\\"')}"`;
177
133
  const serverCmd = opts.watch
178
- ? `${bin('tsx')} watch --env-file=.env --clear-screen=false --ignore ./client --ignore "**/node_modules/**" server/index.ts`
179
- : `${bin('tsx')} --env-file=.env server/index.ts`;
180
- // Only include eslint-watch if the esw binary exists (it requires eslint <9
181
- // and may not be installed in projects using eslint 9+).
134
+ ? `${bin('tsx')} watch --clear-screen=false --ignore ./client --ignore "**/node_modules/**" server/index.ts`
135
+ : `${bin('tsx')} server/index.ts`;
182
136
  const hasEsw = fs.existsSync(path.join(binDir, 'esw'));
183
- // On Windows, concurrently's line-buffered prefixed output collides with
184
- // npm's \r-based progress bar and cmd.exe pipe buffering, garbling log
185
- // lines and making the server look stuck. --raw bypasses concurrently's
186
- // output buffering so child stdout/stderr flows straight through.
187
137
  const rawFlag = isWin ? '--raw' : '';
188
138
  const namesFlag = isWin
189
139
  ? ''
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ function readAuth() {
10
10
  return JSON.parse(fs.readFileSync(authPath, 'utf-8'));
11
11
  }
12
12
  function getAppApiUrl() {
13
- return process.env['UGLY_BOT_API'] ?? UGLY_BOT_URL;
13
+ return UGLY_BOT_URL;
14
14
  }
15
15
  export async function resolveFeedback(opts) {
16
16
  const appApiUrl = getAppApiUrl();
@@ -1 +1 @@
1
- {"version":3,"file":"feedbackResolve.js","sourceRoot":"","sources":["../../src/cli/feedbackResolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAcvD,SAAS,QAAQ;IACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAe,CAAC;AACtE,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA4B;IAE5B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IAExB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,UAAU,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;YACvC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,uBAAuB;YACjC,KAAK,EAAE;gBACL,gBAAgB,EAAE,IAAI,CAAC,UAAU;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B;SACF,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"feedbackResolve.js","sourceRoot":"","sources":["../../src/cli/feedbackResolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAcvD,SAAS,QAAQ;IACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAe,CAAC;AACtE,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA4B;IAE5B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IAExB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,UAAU,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;YACvC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,uBAAuB;YACjC,KAAK,EAAE;gBACL,gBAAgB,EAAE,IAAI,CAAC,UAAU;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B;SACF,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
@@ -13,11 +13,11 @@ function readAuth() {
13
13
  }
14
14
  }
15
15
  function getAppApiUrl() {
16
- return process.env['UGLY_BOT_API'] ?? UGLY_BOT_URL;
16
+ return UGLY_BOT_URL;
17
17
  }
18
18
  function getProjectId() {
19
19
  const config = readUglyAppConfig(process.cwd());
20
- return process.env['UGLY_BOT_PROJECT_ID'] ?? config?.projectId ?? 'unknown';
20
+ return config?.projectId ?? 'unknown';
21
21
  }
22
22
  export async function submitFeedback(opts) {
23
23
  const appApiUrl = getAppApiUrl();
@@ -1 +1 @@
1
- {"version":3,"file":"feedbackSubmit.js","sourceRoot":"","sources":["../../src/cli/feedbackSubmit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedbackSubmit.js","sourceRoot":"","sources":["../../src/cli/feedbackSubmit.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -36,46 +36,16 @@ program
36
36
  });
37
37
  program
38
38
  .command('dev')
39
- .description('Start server, vite, tsc, and eslint concurrently (cloud tunnel or local Docker)')
39
+ .description('Start server, vite, tsc, and eslint concurrently (cloud tunnel)')
40
40
  .option('--watch', 'Enable file watchers (tsx watch, tsc --watch, eslint --watch)')
41
41
  .option('--verbose', 'Show detailed startup and process output for debugging')
42
- .option('--local', 'Use local Docker instead of cloud tunnel for infrastructure')
43
42
  .option('--ugly-bot-local', 'Use local ugly.bot on localhost:3000 for auth/API, localhost:9000 for CDN')
44
43
  .action(async (opts) => {
45
44
  try {
46
45
  if (opts.uglyBotLocal) {
47
46
  process.env['UGLY_BOT_LOCAL'] = '1';
48
47
  }
49
- await runDev({ watch: opts.watch ?? false, verbose: opts.verbose ?? false, local: opts.local ?? false });
50
- }
51
- catch (e) {
52
- console.error(e.message);
53
- process.exit(1);
54
- }
55
- });
56
- const docker = program
57
- .command('docker')
58
- .description('Manage shared Docker infrastructure (Postgres, NATS, MinIO, Qdrant)');
59
- docker
60
- .command('start')
61
- .description('Start shared Docker infrastructure at ~/.ugly-app/')
62
- .action(async () => {
63
- try {
64
- const { dockerStart } = await import('./docker.js');
65
- dockerStart();
66
- }
67
- catch (e) {
68
- console.error(e.message);
69
- process.exit(1);
70
- }
71
- });
72
- docker
73
- .command('stop')
74
- .description('Stop shared Docker infrastructure (data is preserved)')
75
- .action(async () => {
76
- try {
77
- const { dockerStop } = await import('./docker.js');
78
- dockerStop();
48
+ await runDev({ watch: opts.watch ?? false, verbose: opts.verbose ?? false });
79
49
  }
80
50
  catch (e) {
81
51
  console.error(e.message);
@@ -148,13 +118,6 @@ program
148
118
  process.exit(1);
149
119
  }
150
120
  });
151
- program
152
- .command('db:migrate-postgres')
153
- .description('Migrate data from MongoDB to PostgreSQL')
154
- .action(async () => {
155
- const { runMigrateToPostgres } = await import('./migrateToPostgres.js');
156
- await runMigrateToPostgres();
157
- });
158
121
  program
159
122
  .command('publish:assets')
160
123
  .description('Publish static assets to CDN')
@@ -194,7 +157,6 @@ program
194
157
  try {
195
158
  const { queryServerLogs } = await import('./serverLogQuery.js');
196
159
  await queryServerLogs('errorLog', {
197
- envFile: '.env',
198
160
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
199
161
  json: opts.json,
200
162
  });
@@ -231,7 +193,6 @@ program
231
193
  try {
232
194
  const { queryServerLogs } = await import('./serverLogQuery.js');
233
195
  await queryServerLogs('perfLog', {
234
- envFile: '.env',
235
196
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
236
197
  json: opts.json,
237
198
  });
@@ -268,7 +229,6 @@ program
268
229
  try {
269
230
  const { queryServerLogs } = await import('./serverLogQuery.js');
270
231
  await queryServerLogs('feedbackReport', {
271
- envFile: '.env',
272
232
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
273
233
  json: opts.json,
274
234
  });
@@ -392,21 +352,6 @@ program
392
352
  process.exit(1);
393
353
  }
394
354
  });
395
- program
396
- .command('auth:create-token')
397
- .description('Generate a JWT login token for an existing userId')
398
- .requiredOption('--user-id <userId>', 'User ID to generate token for')
399
- .action(async (opts) => {
400
- try {
401
- const { createToken } = await import('./authCommands.js');
402
- const token = await createToken(opts.userId);
403
- console.log(JSON.stringify({ token }, null, 2));
404
- }
405
- catch (e) {
406
- console.error(e.message);
407
- process.exit(1);
408
- }
409
- });
410
355
  program
411
356
  .command('auth:create-bot')
412
357
  .description('Create a bot user account on ugly.bot for this project (idempotent)')
@@ -443,7 +388,7 @@ program
443
388
  process.exit(1);
444
389
  }
445
390
  const { runUglyBotSetup } = await import('./uglyBotSetup.js');
446
- await runUglyBotSetup(config.projectId, path.join(process.cwd(), '.env'));
391
+ await runUglyBotSetup(config.projectId, path.join(process.cwd(), '.uglyapp'));
447
392
  }
448
393
  catch (e) {
449
394
  console.error(e.message);