ugly-app 0.1.234 → 0.1.237

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 (72) hide show
  1. package/dist/cli/feedbackResolve.d.ts.map +1 -1
  2. package/dist/cli/feedbackResolve.js +15 -18
  3. package/dist/cli/feedbackResolve.js.map +1 -1
  4. package/dist/cli/feedbackSubmit.d.ts +1 -1
  5. package/dist/cli/feedbackSubmit.d.ts.map +1 -1
  6. package/dist/cli/feedbackSubmit.js +48 -50
  7. package/dist/cli/feedbackSubmit.js.map +1 -1
  8. package/dist/cli/serverLogQueryApi.d.ts.map +1 -1
  9. package/dist/cli/serverLogQueryApi.js +47 -16
  10. package/dist/cli/serverLogQueryApi.js.map +1 -1
  11. package/dist/cli/version.d.ts +1 -1
  12. package/dist/cli/version.js +1 -1
  13. package/dist/client/AppApi.d.ts +17 -0
  14. package/dist/client/AppApi.d.ts.map +1 -0
  15. package/dist/client/AppApi.js +44 -0
  16. package/dist/client/AppApi.js.map +1 -0
  17. package/dist/client/Logger.d.ts +3 -4
  18. package/dist/client/Logger.d.ts.map +1 -1
  19. package/dist/client/Logger.js +17 -13
  20. package/dist/client/Logger.js.map +1 -1
  21. package/dist/client/components/FeedbackButton.d.ts +1 -8
  22. package/dist/client/components/FeedbackButton.d.ts.map +1 -1
  23. package/dist/client/components/FeedbackButton.js +20 -16
  24. package/dist/client/components/FeedbackButton.js.map +1 -1
  25. package/dist/server/App.d.ts.map +1 -1
  26. package/dist/server/App.js +1 -66
  27. package/dist/server/App.js.map +1 -1
  28. package/dist/server/Auth.d.ts.map +1 -1
  29. package/dist/server/Auth.js +1 -44
  30. package/dist/server/Auth.js.map +1 -1
  31. package/dist/server/Logging.d.ts +3 -4
  32. package/dist/server/Logging.d.ts.map +1 -1
  33. package/dist/server/Logging.js +80 -91
  34. package/dist/server/Logging.js.map +1 -1
  35. package/dist/server/PostgresFilter.d.ts.map +1 -1
  36. package/dist/server/PostgresFilter.js +13 -3
  37. package/dist/server/PostgresFilter.js.map +1 -1
  38. package/dist/server/index.d.ts +3 -4
  39. package/dist/server/index.d.ts.map +1 -1
  40. package/dist/server/index.js +4 -3
  41. package/dist/server/index.js.map +1 -1
  42. package/dist/server/vector.d.ts +58 -0
  43. package/dist/server/vector.d.ts.map +1 -0
  44. package/dist/server/vector.js +300 -0
  45. package/dist/server/vector.js.map +1 -0
  46. package/dist/shared/DB.d.ts +3 -86
  47. package/dist/shared/DB.d.ts.map +1 -1
  48. package/dist/shared/DB.js +1 -9
  49. package/dist/shared/DB.js.map +1 -1
  50. package/dist/shared/FrameworkRequests.d.ts +0 -31
  51. package/dist/shared/FrameworkRequests.d.ts.map +1 -1
  52. package/dist/shared/FrameworkRequests.js +0 -27
  53. package/dist/shared/FrameworkRequests.js.map +1 -1
  54. package/package.json +1 -1
  55. package/src/cli/feedbackResolve.ts +22 -22
  56. package/src/cli/feedbackSubmit.ts +55 -60
  57. package/src/cli/serverLogQueryApi.ts +53 -19
  58. package/src/cli/version.ts +1 -1
  59. package/src/client/AppApi.ts +56 -0
  60. package/src/client/Logger.ts +18 -14
  61. package/src/client/components/FeedbackButton.tsx +23 -23
  62. package/src/server/App.ts +0 -70
  63. package/src/server/Auth.ts +2 -56
  64. package/src/server/Logging.ts +96 -96
  65. package/src/server/PostgresFilter.ts +11 -3
  66. package/src/server/index.ts +24 -17
  67. package/src/server/vector.ts +380 -0
  68. package/src/shared/DB.ts +1 -9
  69. package/src/shared/FrameworkRequests.ts +0 -31
  70. package/src/shared/index.ts +0 -1
  71. package/src/server/ErrorLogAdmin.ts +0 -221
  72. package/src/server/FeedbackReport.ts +0 -109
@@ -1 +1 @@
1
- {"version":3,"file":"feedbackResolve.d.ts","sourceRoot":"","sources":["../../src/cli/feedbackResolve.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAuBD,wBAAsB,eAAe,CACnC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAuBf"}
1
+ {"version":3,"file":"feedbackResolve.d.ts","sourceRoot":"","sources":["../../src/cli/feedbackResolve.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAsBD,wBAAsB,eAAe,CACnC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -1,32 +1,29 @@
1
1
  import fs from 'node:fs';
2
+ import os from 'node:os';
2
3
  import path from 'node:path';
3
- import { getLocalUrl } from './url.js';
4
- function readTokenFromEnv() {
5
- let envContent = '';
6
- try {
7
- envContent = fs.readFileSync(path.join(process.cwd(), '.env'), 'utf-8');
4
+ function readAuth() {
5
+ const authPath = path.join(os.homedir(), '.ugly-bot', 'auth.json');
6
+ if (!fs.existsSync(authPath)) {
7
+ throw new Error('Not logged in. Run "ugly-app login" first.');
8
8
  }
9
- catch {
10
- throw new Error('No .env file found. Run "npx ugly-app login" first to set up UGLY_BOT_TOKEN.');
11
- }
12
- const match = /^UGLY_BOT_TOKEN=(.+)$/m.exec(envContent);
13
- if (!match?.[1]) {
14
- throw new Error('UGLY_BOT_TOKEN not found in .env. Run "npx ugly-app login" first.');
15
- }
16
- return match[1];
9
+ return JSON.parse(fs.readFileSync(authPath, 'utf-8'));
10
+ }
11
+ function getAppApiUrl() {
12
+ return process.env['UGLY_BOT_API'] ?? 'https://ugly.bot';
17
13
  }
18
14
  export async function resolveFeedback(opts) {
19
- const baseUrl = getLocalUrl(process.cwd());
20
- const token = readTokenFromEnv();
21
- const res = await fetch(`${baseUrl}/api/resolveFeedback`, {
15
+ const appApiUrl = getAppApiUrl();
16
+ const auth = readAuth();
17
+ const res = await fetch(`${appApiUrl}/request`, {
22
18
  method: 'POST',
23
19
  headers: {
24
- 'Authorization': `Bearer ${token}`,
20
+ 'Authorization': `Bearer ${auth.token}`,
25
21
  'Content-Type': 'application/json',
26
22
  },
27
23
  body: JSON.stringify({
24
+ function: 'feedbackReportResolve',
28
25
  input: {
29
- feedbackId: opts.feedbackId,
26
+ feedbackReportId: opts.feedbackId,
30
27
  status: opts.status,
31
28
  resolution: opts.resolution,
32
29
  },
@@ -1 +1 @@
1
- {"version":3,"file":"feedbackResolve.js","sourceRoot":"","sources":["../../src/cli/feedbackResolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQvC,SAAS,gBAAgB;IACvB,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,UAAU,GAAG,EAAE,CAAC,YAAY,CAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAChC,OAAO,CACR,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAA4B;IAE5B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IAEjC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,sBAAsB,EAAE;QACxD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,KAAK,EAAE;YAClC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE;gBACL,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,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,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,kBAAkB,CAAC;AAC3D,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"}
@@ -3,7 +3,7 @@ export interface FeedbackSubmitOptions {
3
3
  message: string;
4
4
  url?: string;
5
5
  screenshot?: string;
6
- token: string;
6
+ token?: string;
7
7
  logs?: string;
8
8
  elementMap?: string;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"feedbackSubmit.d.ts","sourceRoot":"","sources":["../../src/cli/feedbackSubmit.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAgDD,wBAAsB,cAAc,CAClC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAoDzB"}
1
+ {"version":3,"file":"feedbackSubmit.d.ts","sourceRoot":"","sources":["../../src/cli/feedbackSubmit.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA0BD,wBAAsB,cAAc,CAClC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAoEzB"}
@@ -1,80 +1,77 @@
1
1
  import fs from 'node:fs';
2
+ import os from 'node:os';
2
3
  import path from 'node:path';
3
- import { getLocalUrl } from './url.js';
4
- async function uploadScreenshot(baseUrl, token, filePath) {
5
- const ext = path.extname(filePath).slice(1) || 'png';
6
- const key = `feedback/${Date.now()}.${ext}`;
7
- // Check file exists before requesting upload URL
8
- if (!fs.existsSync(filePath)) {
9
- throw new Error(`Screenshot file not found: ${filePath}`);
4
+ import { readUglyAppConfig } from './uglyappConfig.js';
5
+ function readAuth() {
6
+ const authPath = path.join(os.homedir(), '.ugly-bot', 'auth.json');
7
+ try {
8
+ return JSON.parse(fs.readFileSync(authPath, 'utf-8'));
10
9
  }
11
- // Get presigned upload URL
12
- const presignRes = await fetch(`${baseUrl}/api/uploadUrl`, {
13
- method: 'POST',
14
- headers: {
15
- 'Authorization': `Bearer ${token}`,
16
- 'Content-Type': 'application/json',
17
- },
18
- body: JSON.stringify({
19
- input: { key, contentType: `image/${ext}` },
20
- }),
21
- });
22
- if (!presignRes.ok) {
23
- throw new Error(`Failed to get upload URL: ${presignRes.status}`);
10
+ catch {
11
+ return null;
24
12
  }
25
- const { uploadUrl, resultUrl } = (await presignRes.json());
26
- // Upload the file
27
- const fileBuffer = fs.readFileSync(filePath);
28
- const uploadRes = await fetch(uploadUrl, {
29
- method: 'PUT',
30
- headers: { 'Content-Type': `image/${ext}` },
31
- body: fileBuffer,
32
- });
33
- if (!uploadRes.ok) {
34
- throw new Error(`Failed to upload screenshot: ${uploadRes.status}`);
35
- }
36
- return resultUrl;
13
+ }
14
+ function getAppApiUrl() {
15
+ return process.env['UGLY_BOT_API'] ?? 'https://ugly.bot';
16
+ }
17
+ function getProjectId() {
18
+ const config = readUglyAppConfig(process.cwd());
19
+ return process.env['UGLY_BOT_PROJECT_ID'] ?? config?.projectId ?? 'unknown';
37
20
  }
38
21
  export async function submitFeedback(opts) {
39
- const baseUrl = getLocalUrl(process.cwd());
40
- let screenshotUri;
22
+ const appApiUrl = getAppApiUrl();
23
+ const projectId = getProjectId();
24
+ const auth = readAuth();
25
+ let screenshotBase64;
41
26
  if (opts.screenshot) {
42
- screenshotUri = await uploadScreenshot(baseUrl, opts.token, opts.screenshot);
27
+ if (!fs.existsSync(opts.screenshot)) {
28
+ throw new Error(`Screenshot file not found: ${opts.screenshot}`);
29
+ }
30
+ screenshotBase64 = fs.readFileSync(opts.screenshot).toString('base64');
43
31
  }
44
- let previousLogs;
32
+ let logs = [];
45
33
  if (opts.logs) {
46
34
  try {
47
- previousLogs = JSON.parse(opts.logs);
35
+ logs = JSON.parse(opts.logs);
48
36
  }
49
37
  catch {
50
38
  throw new Error(`--logs must be valid JSON: ${opts.logs.slice(0, 100)}`);
51
39
  }
52
40
  }
53
- let elementMap;
41
+ let context;
54
42
  if (opts.elementMap) {
55
43
  try {
56
44
  const raw = fs.readFileSync(opts.elementMap, 'utf-8');
57
45
  JSON.parse(raw); // validate it's valid JSON
58
- elementMap = raw;
46
+ context = { elementMap: raw };
59
47
  }
60
48
  catch (e) {
61
49
  throw new Error(`--element-map must be a valid JSON file: ${e.message}`);
62
50
  }
63
51
  }
64
- const res = await fetch(`${baseUrl}/api/submitFeedback`, {
52
+ const headers = {
53
+ 'Content-Type': 'application/json',
54
+ };
55
+ const token = opts.token ?? auth?.token;
56
+ if (token)
57
+ headers['Authorization'] = `Bearer ${token}`;
58
+ const fn = token ? 'feedbackReportCreate' : 'feedbackReportCreateNoAuth';
59
+ const res = await fetch(`${appApiUrl}/request`, {
65
60
  method: 'POST',
66
- headers: {
67
- 'Authorization': `Bearer ${opts.token}`,
68
- 'Content-Type': 'application/json',
69
- },
61
+ headers,
70
62
  body: JSON.stringify({
63
+ function: fn,
71
64
  input: {
65
+ projectId,
66
+ description: opts.message,
72
67
  type: opts.type,
73
- message: opts.message,
74
- url: opts.url ?? baseUrl,
75
- screenshotUri,
76
- previousLogs,
77
- elementMap,
68
+ url: opts.url ?? '',
69
+ screenshotBase64,
70
+ logs: logs.map((l) => ({
71
+ ...l,
72
+ args: [],
73
+ })),
74
+ context,
78
75
  },
79
76
  }),
80
77
  });
@@ -82,6 +79,7 @@ export async function submitFeedback(opts) {
82
79
  const body = await res.text().catch(() => '');
83
80
  throw new Error(`Failed to submit feedback: ${res.status} ${body}`);
84
81
  }
85
- return (await res.json());
82
+ const data = (await res.json());
83
+ return { id: data.result.feedbackReportId };
86
84
  }
87
85
  //# sourceMappingURL=feedbackSubmit.js.map
@@ -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":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAkBvD,SAAS,QAAQ;IACf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAe,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,MAAM,EAAE,SAAS,IAAI,SAAS,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAA2B;IAE3B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IAExB,IAAI,gBAAoC,CAAC;IACzC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,IAAI,GAAc,EAAE,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,IAAI,OAA2C,CAAC;IAChD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B;YAC5C,OAAO,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,4CAA6C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,KAAK,CAAC;IACxC,IAAI,KAAK;QAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;IAExD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,4BAA4B,CAAC;IAEzE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,UAAU,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE;gBACL,SAAS;gBACT,WAAW,EAAE,IAAI,CAAC,OAAO;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;gBACnB,gBAAgB;gBAChB,IAAI,EAAG,IAAgE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAClF,GAAG,CAAC;oBACJ,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;gBACH,OAAO;aACR;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,8BAA8B,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA6C,CAAC;IAC5E,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;AAC9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"serverLogQueryApi.d.ts","sourceRoot":"","sources":["../../src/cli/serverLogQueryApi.ts"],"names":[],"mappings":"AAmHA,KAAK,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAQjE,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1D,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
1
+ {"version":3,"file":"serverLogQueryApi.d.ts","sourceRoot":"","sources":["../../src/cli/serverLogQueryApi.ts"],"names":[],"mappings":"AAiIA,KAAK,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAEjE,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,eAAe,EAC3B,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1D,OAAO,CAAC,IAAI,CAAC,CAoDf"}
@@ -1,6 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import os from 'os';
4
+ import { readUglyAppConfig } from './uglyappConfig.js';
4
5
  function readAuth() {
5
6
  const authPath = path.join(os.homedir(), '.ugly-bot', 'auth.json');
6
7
  if (!fs.existsSync(authPath)) {
@@ -8,15 +9,23 @@ function readAuth() {
8
9
  }
9
10
  return JSON.parse(fs.readFileSync(authPath, 'utf-8'));
10
11
  }
12
+ function getAppApiUrl() {
13
+ return process.env['UGLY_BOT_API'] ?? 'https://ugly.bot';
14
+ }
15
+ function getProjectId() {
16
+ const config = readUglyAppConfig(process.cwd());
17
+ return process.env['UGLY_BOT_PROJECT_ID'] ?? config?.projectId ?? undefined;
18
+ }
11
19
  async function adminRequest(op, input) {
12
20
  const auth = readAuth();
13
- const res = await fetch(`${auth.serverUrl}/request`, {
21
+ const appApiUrl = getAppApiUrl();
22
+ const res = await fetch(`${appApiUrl}/request`, {
14
23
  method: 'POST',
15
24
  headers: {
16
25
  'Authorization': `Bearer ${auth.token}`,
17
26
  'Content-Type': 'application/json',
18
27
  },
19
- body: JSON.stringify({ op, input }),
28
+ body: JSON.stringify({ function: op, input }),
20
29
  });
21
30
  if (!res.ok) {
22
31
  const body = await res.text().catch(() => '');
@@ -61,7 +70,7 @@ function formatPerfDoc(doc) {
61
70
  function formatFeedbackDoc(doc) {
62
71
  const ts = formatTimestamp(doc['created']);
63
72
  const type = String(doc['type'] ?? '').toUpperCase().padEnd(7);
64
- const message = String(doc['message'] ?? '');
73
+ const message = String(doc['description'] ?? doc['message'] ?? '');
65
74
  const lines = [`${ts} [${type}] ${message}`];
66
75
  if (doc['status'])
67
76
  lines.push(` Status: ${doc['status']}`);
@@ -71,12 +80,15 @@ function formatFeedbackDoc(doc) {
71
80
  lines.push(` URL: ${doc['url']}`);
72
81
  if (doc['screenshotUri'])
73
82
  lines.push(` Screenshot: ${doc['screenshotUri']}`);
74
- const ctx = String(doc['context'] ?? '');
75
- if (ctx && ctx !== '{}' && ctx !== '')
76
- lines.push(` Context: ${ctx}`);
83
+ const ctx = doc['context'];
84
+ if (ctx && typeof ctx === 'object') {
85
+ const ctxStr = JSON.stringify(ctx);
86
+ if (ctxStr !== '{}')
87
+ lines.push(` Context: ${ctxStr}`);
88
+ }
77
89
  if (doc['resolution'])
78
90
  lines.push(` Resolution: ${doc['resolution']}`);
79
- const previousLogs = doc['previousLogs'];
91
+ const previousLogs = doc['logs'] ?? doc['previousLogs'];
80
92
  if (Array.isArray(previousLogs) && previousLogs.length > 0) {
81
93
  lines.push(` Console logs (${previousLogs.length}):`);
82
94
  for (const entry of previousLogs) {
@@ -93,17 +105,36 @@ const formatters = {
93
105
  perfLog: formatPerfDoc,
94
106
  feedbackReport: formatFeedbackDoc,
95
107
  };
96
- const opMap = {
97
- errorLog: 'adminGetErrorLogs',
98
- perfLog: 'adminGetPerfLogs',
99
- feedbackReport: 'adminGetFeedbackLogs',
100
- };
101
108
  export async function queryServerLogsApi(collection, options) {
102
109
  const limit = options.limit ?? 50;
103
- const input = { limit };
104
- if (options.level)
105
- input['level'] = options.level;
106
- const { items } = await adminRequest(opMap[collection], input);
110
+ const projectId = getProjectId();
111
+ let items;
112
+ if (collection === 'errorLog') {
113
+ const input = { limit };
114
+ if (options.level)
115
+ input['level'] = options.level;
116
+ if (projectId)
117
+ input['projectId'] = projectId;
118
+ const result = await adminRequest('errorLogGetList', input);
119
+ items = result.errors;
120
+ }
121
+ else if (collection === 'feedbackReport') {
122
+ // Use errorLogGetList with feedback filter or a dedicated endpoint
123
+ // For now, query the admin API directly
124
+ const input = { limit };
125
+ if (projectId)
126
+ input['projectId'] = projectId;
127
+ const result = await adminRequest('adminGetFeedbackLogs', input);
128
+ items = result.items;
129
+ }
130
+ else {
131
+ // perfLog — still uses the old admin API
132
+ const input = { limit };
133
+ if (options.level)
134
+ input['level'] = options.level;
135
+ const result = await adminRequest('adminGetPerfLogs', input);
136
+ items = result.items;
137
+ }
107
138
  // Reverse so oldest first (server returns newest first)
108
139
  items.reverse();
109
140
  if (items.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"serverLogQueryApi.js","sourceRoot":"","sources":["../../src/cli/serverLogQueryApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverLogQueryApi.js","sourceRoot":"","sources":["../../src/cli/serverLogQueryApi.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.234";
1
+ export declare const CLI_VERSION = "0.1.237";
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.234";
2
+ export const CLI_VERSION = "0.1.237";
3
3
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Client-side HTTP helper for calling ugly.bot (../app) API directly.
3
+ * Used by FeedbackButton and Logger to send data to the centralized backend.
4
+ */
5
+ export declare function initAppApi(opts: {
6
+ appApiUrl: string;
7
+ projectId: string;
8
+ getToken?: () => string | null;
9
+ }): void;
10
+ export declare function getAppApiProjectId(): string;
11
+ export declare function isAppApiInitialized(): boolean;
12
+ export declare function appApiRequest(fn: string, input: Record<string, unknown>): Promise<unknown>;
13
+ /**
14
+ * Fire-and-forget version — never throws. Used by Logger.
15
+ */
16
+ export declare function appApiRequestSilent(fn: string, input: Record<string, unknown>): void;
17
+ //# sourceMappingURL=AppApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppApi.d.ts","sourceRoot":"","sources":["../../src/client/AppApi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAChC,GAAG,IAAI,CAIP;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI,CAGN"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Client-side HTTP helper for calling ugly.bot (../app) API directly.
3
+ * Used by FeedbackButton and Logger to send data to the centralized backend.
4
+ */
5
+ let _appApiUrl = '';
6
+ let _projectId = '';
7
+ let _getToken = null;
8
+ export function initAppApi(opts) {
9
+ _appApiUrl = opts.appApiUrl.replace(/\/$/, '');
10
+ _projectId = opts.projectId;
11
+ _getToken = opts.getToken ?? null;
12
+ }
13
+ export function getAppApiProjectId() {
14
+ return _projectId;
15
+ }
16
+ export function isAppApiInitialized() {
17
+ return _appApiUrl !== '' && _projectId !== '';
18
+ }
19
+ export async function appApiRequest(fn, input) {
20
+ const token = _getToken?.();
21
+ const headers = { 'Content-Type': 'application/json' };
22
+ if (token)
23
+ headers['Authorization'] = `Bearer ${token}`;
24
+ const res = await fetch(`${_appApiUrl}/request`, {
25
+ method: 'POST',
26
+ headers,
27
+ body: JSON.stringify({
28
+ function: fn,
29
+ input: { ...input, projectId: _projectId },
30
+ }),
31
+ });
32
+ if (!res.ok)
33
+ throw new Error(`AppApi ${fn}: ${res.status}`);
34
+ return res.json();
35
+ }
36
+ /**
37
+ * Fire-and-forget version — never throws. Used by Logger.
38
+ */
39
+ export function appApiRequestSilent(fn, input) {
40
+ if (!_appApiUrl || !_projectId)
41
+ return;
42
+ appApiRequest(fn, input).catch(() => { });
43
+ }
44
+ //# sourceMappingURL=AppApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppApi.js","sourceRoot":"","sources":["../../src/client/AppApi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,IAAI,SAAS,GAAiC,IAAI,CAAC;AAEnD,MAAM,UAAU,UAAU,CAAC,IAI1B;IACC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;IAC5B,SAAS,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAU,EACV,KAA8B;IAE9B,MAAM,KAAK,GAAG,SAAS,EAAE,EAAE,CAAC;IAC5B,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC/E,IAAI,KAAK;QAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,UAAU,EAAE;QAC/C,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE;SAC3C,CAAC;KACH,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,EAAU,EACV,KAA8B;IAE9B,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU;QAAE,OAAO;IACvC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -5,9 +5,8 @@ import type { ErrorLogEntry } from '../shared/DB.js';
5
5
  */
6
6
  export declare function getConsoleBuffer(): ErrorLogEntry[];
7
7
  /**
8
- * Optionally configure the server URL for log flushing.
9
- * For same-origin apps, this does not need to be called interception is already active
10
- * and logs are sent to the relative `/logs/client` path by default.
8
+ * No-op for backward compatibility Logger now uses AppApi for flushing.
9
+ * Call initAppApi() instead to configure the API endpoint.
11
10
  */
12
- export declare function initClientLogger(serverUrl?: string): void;
11
+ export declare function initClientLogger(_serverUrl?: string): void;
13
12
  //# sourceMappingURL=Logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/client/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAC;AA6IpE;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CAElD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAK,GAAG,IAAI,CAErD"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/client/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAC;AAkJpE;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,EAAE,CAElD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,SAAK,GAAG,IAAI,CAEtD"}
@@ -1,5 +1,5 @@
1
+ import { appApiRequestSilent, isAppApiInitialized } from './AppApi.js';
1
2
  // Module-level state
2
- let _serverUrl = '';
3
3
  let _intercepted = false;
4
4
  const MAX_BUFFER = 100;
5
5
  const consoleBuffer = [];
@@ -23,15 +23,20 @@ function addToBuffer(level, args) {
23
23
  consoleBuffer.shift();
24
24
  }
25
25
  function flush() {
26
- if (sendBuffer.length === 0)
26
+ if (sendBuffer.length === 0 || !isAppApiInitialized())
27
27
  return;
28
28
  const entries = sendBuffer.splice(0);
29
- // Fire-and-forget — never throw from logging
30
- fetch(`${_serverUrl}/logs/client`, {
31
- method: 'POST',
32
- headers: { 'Content-Type': 'application/json' },
33
- body: JSON.stringify({ entries }),
34
- }).catch(() => { });
29
+ appApiRequestSilent('errorLogCaptureNoAuth', {
30
+ entries: entries.map((e) => ({
31
+ level: e.level,
32
+ message: e.message,
33
+ stack: e.stack,
34
+ url: e.url,
35
+ timestamp: e.timestamp,
36
+ source: 'browser',
37
+ type: 'console',
38
+ })),
39
+ });
35
40
  }
36
41
  function schedule() {
37
42
  if (flushTimer)
@@ -126,11 +131,10 @@ export function getConsoleBuffer() {
126
131
  return [...consoleBuffer];
127
132
  }
128
133
  /**
129
- * Optionally configure the server URL for log flushing.
130
- * For same-origin apps, this does not need to be called interception is already active
131
- * and logs are sent to the relative `/logs/client` path by default.
134
+ * No-op for backward compatibility Logger now uses AppApi for flushing.
135
+ * Call initAppApi() instead to configure the API endpoint.
132
136
  */
133
- export function initClientLogger(serverUrl = '') {
134
- _serverUrl = serverUrl.replace(/\/$/, '');
137
+ export function initClientLogger(_serverUrl = '') {
138
+ // No-op kept for backward compatibility
135
139
  }
136
140
  //# sourceMappingURL=Logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/client/Logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/client/Logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAWvE,qBAAqB;AACrB,IAAI,YAAY,GAAG,KAAK,CAAC;AACzB,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,aAAa,GAAoB,EAAE,CAAC;AAC1C,MAAM,UAAU,GAAqB,EAAE,CAAC;AACxC,IAAI,UAAU,GAAyC,IAAI,CAAC;AAE5D,SAAS,WAAW,CAAC,KAAoB,EAAE,IAAe;IACxD,MAAM,KAAK,GAAkB;QAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,KAAK;QACL,OAAO,EAAE,IAAI;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,YAAY,KAAK;YAChB,CAAC,CAAC,CAAC,CAAC,OAAO;YACX,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;gBACnC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAChB;aACA,IAAI,CAAC,GAAG,CAAC;QACZ,IAAI;KACL,CAAC;IACF,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,aAAa,CAAC,MAAM,GAAG,UAAU;QAAE,aAAa,CAAC,KAAK,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,KAAK;IACZ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE;QAAE,OAAO;IAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,mBAAmB,CAAC,uBAAuB,EAAE;QAC3C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ;IACf,IAAI,UAAU;QAAE,OAAO;IACvB,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;QAC3B,UAAU,GAAG,IAAI,CAAC;QAClB,KAAK,EAAE,CAAC;IACV,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAED,SAAS,cAAc,CAAC,KAAuB,EAAE,IAAe;IAC9D,MAAM,OAAO,GAAG,IAAI;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACxD,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC;QAClD,EAAE,KAAK,CAAC;IACV,UAAU,CAAC,IAAI,CAAC;QACd,KAAK;QACL,OAAO;QACP,KAAK;QACL,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;QACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAC;IACH,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,YAAY;QAAE,OAAO;IACzB,YAAY,GAAG,IAAI,CAAC;IAEpB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9C,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACrC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QACnB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3B,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACpC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAClB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1B,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACnC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACjB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACpC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QAClB,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACrC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QACnB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACrC,MAAM,KAAK,GAAmB;YAC5B,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK;YACrB,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE;QAClD,MAAM,OAAO,GACX,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,MAAM,KAAK,GAAmB;YAC5B,KAAK,EAAE,OAAO;YACd,OAAO;YACP,KAAK;YACL,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;YACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+CAA+C;AAC/C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IAClC,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAU,GAAG,EAAE;IAC9C,0CAA0C;AAC5C,CAAC"}
@@ -1,10 +1,3 @@
1
1
  import { type ReactNode } from 'react';
2
- interface Props {
3
- socket: {
4
- request(name: string, input: unknown): Promise<unknown>;
5
- uploadFile(file: File, key: string): Promise<string>;
6
- } | null;
7
- }
8
- export declare function FeedbackButton({ socket }: Props): ReactNode;
9
- export {};
2
+ export declare function FeedbackButton(): ReactNode;
10
3
  //# sourceMappingURL=FeedbackButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackButton.d.ts","sourceRoot":"","sources":["../../../src/client/components/FeedbackButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKzD,UAAU,KAAK;IACb,MAAM,EAAE;QACN,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACtD,GAAG,IAAI,CAAC;CACV;AAID,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG,SAAS,CAuK3D"}
1
+ {"version":3,"file":"FeedbackButton.d.ts","sourceRoot":"","sources":["../../../src/client/components/FeedbackButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQzD,wBAAgB,cAAc,IAAI,SAAS,CA6K1C"}