pulse-feedback-widget 0.2.0 → 1.0.1

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,3 +1,3 @@
1
1
  import type { PulseWidgetProps } from './types';
2
- export declare function PulseWidget({ projectId, supabaseUrl, supabaseAnonKey, position, accentColor, greeting, placeholder, hideOnPaths, collectEmail, metadata, onOpen, onClose: onCloseProp, onSubmit, }: PulseWidgetProps): import("react/jsx-runtime").JSX.Element | null;
2
+ export declare function PulseWidget({ projectId, apiKey, apiUrl, position, accentColor, greeting, placeholder, hideOnPaths, collectEmail, metadata, onOpen, onClose: onCloseProp, onSubmit, }: PulseWidgetProps): import("react/jsx-runtime").JSX.Element | null;
3
3
  //# sourceMappingURL=PulseWidget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PulseWidget.d.ts","sourceRoot":"","sources":["../src/PulseWidget.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAahD,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,WAAkC,EAClC,eAA2C,EAC3C,QAAyB,EACzB,WAAuB,EACvB,QAAmB,EACnB,WAAoC,EACpC,WAAgB,EAChB,YAAmB,EACnB,QAAa,EACb,MAAM,EACN,OAAO,EAAE,WAAW,EACpB,QAAQ,GACT,EAAE,gBAAgB,kDAmFlB"}
1
+ {"version":3,"file":"PulseWidget.d.ts","sourceRoot":"","sources":["../src/PulseWidget.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAYhD,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,MAAM,EACN,MAAwB,EACxB,QAAyB,EACzB,WAAuB,EACvB,QAAmB,EACnB,WAAoC,EACpC,WAAgB,EAChB,YAAmB,EACnB,QAAa,EACb,MAAM,EACN,OAAO,EAAE,WAAW,EACpB,QAAQ,GACT,EAAE,gBAAgB,kDA6ElB"}
@@ -2,14 +2,13 @@
2
2
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
3
  import { lazy, useState, useMemo, useEffect, Suspense } from 'react';
4
4
  import { getDeviceId } from './lib/device.mjs';
5
- import { getSupabaseClient } from './lib/supabase.mjs';
5
+ import { createHttpClient } from './lib/http.mjs';
6
6
  import { checkUnreadReplies } from './lib/api.mjs';
7
7
  import { TriggerButton } from './components/TriggerButton.mjs';
8
8
 
9
9
  const FeedbackPanel = lazy(() => import('./components/FeedbackPanel.mjs').then((m) => ({ default: m.FeedbackPanel })));
10
- const DEFAULT_SUPABASE_URL = 'https://egjvwkcksdjjacjzuptr.supabase.co';
11
- const DEFAULT_SUPABASE_ANON_KEY = 'sb_publishable_cBRLqd3V5xczMldqPDzxRQ_bOOanbTS';
12
- function PulseWidget({ projectId, supabaseUrl = DEFAULT_SUPABASE_URL, supabaseAnonKey = DEFAULT_SUPABASE_ANON_KEY, position = 'bottom-right', accentColor = '#6366F1', greeting = 'Hi! 👋', placeholder = "What's on your mind?", hideOnPaths = [], collectEmail = true, metadata = {}, onOpen, onClose: onCloseProp, onSubmit, }) {
10
+ const DEFAULT_API_URL = 'https://10-pulse.vercel.app';
11
+ function PulseWidget({ projectId, apiKey, apiUrl = DEFAULT_API_URL, position = 'bottom-right', accentColor = '#6366F1', greeting = 'Hi! 👋', placeholder = "What's on your mind?", hideOnPaths = [], collectEmail = true, metadata = {}, onOpen, onClose: onCloseProp, onSubmit, }) {
13
12
  const [isOpen, setIsOpen] = useState(false);
14
13
  const [hasNotification, setHasNotification] = useState(false);
15
14
  const [hidden, setHidden] = useState(false);
@@ -18,16 +17,12 @@ function PulseWidget({ projectId, supabaseUrl = DEFAULT_SUPABASE_URL, supabaseAn
18
17
  console.error('[Pulse] Invalid projectId: must be a non-empty string');
19
18
  return null;
20
19
  }
21
- if (!supabaseUrl || !supabaseUrl.startsWith('https://')) {
22
- console.error('[Pulse] Invalid supabaseUrl: must start with https://');
23
- return null;
24
- }
25
- if (!supabaseAnonKey || typeof supabaseAnonKey !== 'string') {
26
- console.error('[Pulse] Invalid supabaseAnonKey: must be a non-empty string');
20
+ if (!apiKey || typeof apiKey !== 'string') {
21
+ console.error('[Pulse] Invalid apiKey: must be a non-empty string');
27
22
  return null;
28
23
  }
29
24
  const deviceId = useMemo(() => getDeviceId(), []);
30
- const client = useMemo(() => getSupabaseClient(supabaseUrl, supabaseAnonKey, deviceId), [supabaseUrl, supabaseAnonKey, deviceId]);
25
+ const client = useMemo(() => createHttpClient(apiUrl, apiKey, deviceId), [apiUrl, apiKey, deviceId]);
31
26
  // Check if widget should be hidden on current path
32
27
  useEffect(() => {
33
28
  if (typeof window === 'undefined')
@@ -41,7 +36,7 @@ function PulseWidget({ projectId, supabaseUrl = DEFAULT_SUPABASE_URL, supabaseAn
41
36
  return;
42
37
  let cancelled = false;
43
38
  async function check() {
44
- const unread = await checkUnreadReplies(client, deviceId);
39
+ const unread = await checkUnreadReplies(client);
45
40
  if (!cancelled)
46
41
  setHasNotification(unread);
47
42
  }
@@ -53,7 +48,7 @@ function PulseWidget({ projectId, supabaseUrl = DEFAULT_SUPABASE_URL, supabaseAn
53
48
  return (jsxs(Fragment, { children: [!isOpen && (jsx(TriggerButton, { onClick: () => {
54
49
  setIsOpen(true);
55
50
  onOpen?.();
56
- }, position: position, accentColor: accentColor, hasNotification: hasNotification })), isOpen && (jsx(Suspense, { fallback: null, children: jsx(FeedbackPanel, { client: client, projectId: projectId, deviceId: deviceId, accentColor: accentColor, greeting: greeting, placeholder: placeholder, collectEmail: collectEmail, metadata: metadata, position: position, onClose: () => {
51
+ }, position: position, accentColor: accentColor, hasNotification: hasNotification })), isOpen && (jsx(Suspense, { fallback: null, children: jsx(FeedbackPanel, { client: client, accentColor: accentColor, greeting: greeting, placeholder: placeholder, collectEmail: collectEmail, metadata: metadata, position: position, onClose: () => {
57
52
  setIsOpen(false);
58
53
  setHasNotification(false);
59
54
  onCloseProp?.();
@@ -1 +1 @@
1
- {"version":3,"file":"PulseWidget.mjs","sources":["../src/PulseWidget.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AASA;AAIA;AACA;AAEM;;;;;;AAqBF;AACA;;;AAGA;AACA;;;AAGA;AACA;;AAGF;;;;;;AASE;AACA;AACF;;;AAIE;;;AAEA;;AAEE;;;AAEF;;AAEF;AAEA;AAAY;AAEZ;;;AAOQ;;;;;AA8BV;;"}
1
+ {"version":3,"file":"PulseWidget.mjs","sources":["../src/PulseWidget.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AASA;AAIA;AAEM;;;;;;AAqBF;AACA;;;AAGA;AACA;;AAGF;;;;;;AASE;AACA;AACF;;;AAIE;;;AAEA;AACE;AACA;;;AAEF;;AAEF;AAEA;AAAY;AAEZ;;;;;;;;AAmCF;;"}
@@ -1,7 +1,7 @@
1
- import type { SupabaseClient } from '@supabase/supabase-js';
1
+ import type { HttpClient } from '../lib/http';
2
2
  import type { Thread } from '../types';
3
3
  interface ConversationViewProps {
4
- client: SupabaseClient;
4
+ client: HttpClient;
5
5
  thread: Thread;
6
6
  accentColor: string;
7
7
  onBack: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationView.d.ts","sourceRoot":"","sources":["../../src/components/ConversationView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAIhD,UAAU,qBAAqB;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,qBAAqB,2CAmG9F"}
1
+ {"version":3,"file":"ConversationView.d.ts","sourceRoot":"","sources":["../../src/components/ConversationView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAIhD,UAAU,qBAAqB;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,qBAAqB,2CAmG9F"}
@@ -1,14 +1,12 @@
1
- import type { SupabaseClient } from '@supabase/supabase-js';
1
+ import type { HttpClient } from '../lib/http';
2
2
  interface FeedbackFormProps {
3
- client: SupabaseClient;
4
- projectId: string;
5
- deviceId: string;
3
+ client: HttpClient;
6
4
  accentColor: string;
7
5
  placeholder: string;
8
6
  collectEmail: boolean;
9
7
  metadata: Record<string, unknown>;
10
8
  onSubmit?: (threadId: string) => void;
11
9
  }
12
- export declare function FeedbackForm({ client, projectId, deviceId, accentColor, placeholder, collectEmail, metadata, onSubmit: onSubmitCallback, }: FeedbackFormProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function FeedbackForm({ client, accentColor, placeholder, collectEmail, metadata, onSubmit: onSubmitCallback, }: FeedbackFormProps): import("react/jsx-runtime").JSX.Element;
13
11
  export {};
14
12
  //# sourceMappingURL=FeedbackForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackForm.d.ts","sourceRoot":"","sources":["../../src/components/FeedbackForm.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAU5D,UAAU,iBAAiB;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,SAAS,EACT,QAAQ,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,EAAE,gBAAgB,GAC3B,EAAE,iBAAiB,2CA4InB"}
1
+ {"version":3,"file":"FeedbackForm.d.ts","sourceRoot":"","sources":["../../src/components/FeedbackForm.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C,UAAU,iBAAiB;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,EAAE,gBAAgB,GAC3B,EAAE,iBAAiB,2CA0InB"}
@@ -7,7 +7,7 @@ import { SuccessState } from './SuccessState.mjs';
7
7
  import styles from './FeedbackForm.module.css.mjs';
8
8
 
9
9
  const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
10
- function FeedbackForm({ client, projectId, deviceId, accentColor, placeholder, collectEmail, metadata, onSubmit: onSubmitCallback, }) {
10
+ function FeedbackForm({ client, accentColor, placeholder, collectEmail, metadata, onSubmit: onSubmitCallback, }) {
11
11
  const [type, setType] = useState(null);
12
12
  const [subject, setSubject] = useState('');
13
13
  const [body, setBody] = useState('');
@@ -28,8 +28,6 @@ function FeedbackForm({ client, projectId, deviceId, accentColor, placeholder, c
28
28
  setError(null);
29
29
  const ctx = captureContext();
30
30
  const threadId = await submitFeedback(client, {
31
- projectSlug: projectId,
32
- deviceId,
33
31
  type,
34
32
  subject: subject.trim(),
35
33
  body: body.trim(),
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackForm.mjs","sources":["../../src/components/FeedbackForm.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"FeedbackForm.mjs","sources":["../../src/components/FeedbackForm.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1,8 +1,6 @@
1
- import type { SupabaseClient } from '@supabase/supabase-js';
1
+ import type { HttpClient } from '../lib/http';
2
2
  interface FeedbackPanelProps {
3
- client: SupabaseClient;
4
- projectId: string;
5
- deviceId: string;
3
+ client: HttpClient;
6
4
  accentColor: string;
7
5
  greeting: string;
8
6
  placeholder: string;
@@ -12,6 +10,6 @@ interface FeedbackPanelProps {
12
10
  onClose: () => void;
13
11
  onSubmit?: (threadId: string) => void;
14
12
  }
15
- export declare function FeedbackPanel({ client, projectId, deviceId, accentColor, greeting, placeholder, collectEmail, metadata, position, onClose, onSubmit, }: FeedbackPanelProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function FeedbackPanel({ client, accentColor, greeting, placeholder, collectEmail, metadata, position, onClose, onSubmit, }: FeedbackPanelProps): import("react/jsx-runtime").JSX.Element;
16
14
  export {};
17
15
  //# sourceMappingURL=FeedbackPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackPanel.d.ts","sourceRoot":"","sources":["../../src/components/FeedbackPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAO5D,UAAU,kBAAkB;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,cAAc,GAAG,aAAa,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAID,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE,kBAAkB,2CAuGpB"}
1
+ {"version":3,"file":"FeedbackPanel.d.ts","sourceRoot":"","sources":["../../src/components/FeedbackPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAO9C,UAAU,kBAAkB;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,cAAc,GAAG,aAAa,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAID,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE,kBAAkB,2CAqGpB"}
@@ -5,7 +5,7 @@ import { ThreadList } from './ThreadList.mjs';
5
5
  import { ConversationView } from './ConversationView.mjs';
6
6
  import styles from './FeedbackPanel.module.css.mjs';
7
7
 
8
- function FeedbackPanel({ client, projectId, deviceId, accentColor, greeting, placeholder, collectEmail, metadata, position, onClose, onSubmit, }) {
8
+ function FeedbackPanel({ client, accentColor, greeting, placeholder, collectEmail, metadata, position, onClose, onSubmit, }) {
9
9
  const [tab, setTab] = useState('new');
10
10
  const [selectedThread, setSelectedThread] = useState(null);
11
11
  const [isDark, setIsDark] = useState(false);
@@ -30,7 +30,7 @@ function FeedbackPanel({ client, projectId, deviceId, accentColor, greeting, pla
30
30
  return (jsx(ConversationView, { client: client, thread: selectedThread, accentColor: accentColor, onBack: () => setSelectedThread(null) }));
31
31
  }
32
32
  if (tab === 'new') {
33
- return (jsx(FeedbackForm, { client: client, projectId: projectId, deviceId: deviceId, accentColor: accentColor, placeholder: placeholder, collectEmail: collectEmail, metadata: metadata, onSubmit: onSubmit }));
33
+ return (jsx(FeedbackForm, { client: client, accentColor: accentColor, placeholder: placeholder, collectEmail: collectEmail, metadata: metadata, onSubmit: onSubmit }));
34
34
  }
35
35
  return (jsx(ThreadList, { client: client, onSelectThread: (thread) => setSelectedThread(thread) }));
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FeedbackPanel.mjs","sources":["../../src/components/FeedbackPanel.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"FeedbackPanel.mjs","sources":["../../src/components/FeedbackPanel.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { SupabaseClient } from '@supabase/supabase-js';
1
+ import type { HttpClient } from '../lib/http';
2
2
  import type { Thread } from '../types';
3
3
  interface ThreadListProps {
4
- client: SupabaseClient;
4
+ client: HttpClient;
5
5
  onSelectThread: (thread: Thread) => void;
6
6
  }
7
7
  export declare function ThreadList({ client, onSelectThread }: ThreadListProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadList.d.ts","sourceRoot":"","sources":["../../src/components/ThreadList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAavC,UAAU,eAAe;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,eAAe,2CAqDrE"}
1
+ {"version":3,"file":"ThreadList.d.ts","sourceRoot":"","sources":["../../src/components/ThreadList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAavC,UAAU,eAAe;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,eAAe,2CAqDrE"}
package/dist/lib/api.d.ts CHANGED
@@ -1,8 +1,6 @@
1
- import type { SupabaseClient } from '@supabase/supabase-js';
1
+ import type { HttpClient } from './http';
2
2
  import type { FeedbackType, Thread, Message } from '../types';
3
3
  interface SubmitFeedbackParams {
4
- projectSlug: string;
5
- deviceId: string;
6
4
  type: FeedbackType;
7
5
  subject: string;
8
6
  body: string;
@@ -13,23 +11,11 @@ interface SubmitFeedbackParams {
13
11
  appVersion?: string;
14
12
  screenSize?: string;
15
13
  metadata?: Record<string, unknown>;
16
- attachments?: {
17
- path: string;
18
- name: string;
19
- type: string;
20
- size: number;
21
- }[];
22
14
  }
23
- export declare function submitFeedback(client: SupabaseClient, params: SubmitFeedbackParams): Promise<string | null>;
24
- export declare function getMyThreads(client: SupabaseClient): Promise<Thread[]>;
25
- export declare function getThreadMessages(client: SupabaseClient, threadId: string): Promise<Message[]>;
26
- export declare function sendUserReply(client: SupabaseClient, threadId: string, body: string): Promise<boolean>;
27
- export declare function checkUnreadReplies(client: SupabaseClient, deviceId: string): Promise<boolean>;
28
- export declare function uploadAttachment(client: SupabaseClient, deviceId: string, threadId: string, file: File): Promise<{
29
- path: string;
30
- name: string;
31
- type: string;
32
- size: number;
33
- } | null>;
15
+ export declare function submitFeedback(client: HttpClient, params: SubmitFeedbackParams): Promise<string | null>;
16
+ export declare function getMyThreads(client: HttpClient): Promise<Thread[]>;
17
+ export declare function getThreadMessages(client: HttpClient, threadId: string): Promise<Message[]>;
18
+ export declare function sendUserReply(client: HttpClient, threadId: string, body: string): Promise<boolean>;
19
+ export declare function checkUnreadReplies(client: HttpClient): Promise<boolean>;
34
20
  export {};
35
21
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAKnF,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5E;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BxB;AAID,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB;AAID,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,EAAE,CAAC,CAkBpB;AAID,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAelB;AAID,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAID,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,IAAI,GACT,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAsB5E"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAI9D,UAAU,oBAAoB;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBxB;AAID,wBAAsB,YAAY,CAChC,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAID,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,EAAE,CAAC,CASpB;AAID,wBAAsB,aAAa,CACjC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CASlB;AAID,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,OAAO,CAAC,CASlB"}
package/dist/lib/api.mjs CHANGED
@@ -1,104 +1,57 @@
1
- import { fromDbMessage, fromDbThread } from '../types.mjs';
2
-
3
1
  // ── Widget API Layer ──
4
2
  async function submitFeedback(client, params) {
5
- try {
6
- const { data, error } = await client.rpc('create_thread_with_message', {
7
- p_project_slug: params.projectSlug,
8
- p_device_id: params.deviceId,
9
- p_type: params.type,
10
- p_subject: params.subject,
11
- p_body: params.body,
12
- p_user_email: params.userEmail || null,
13
- p_user_name: params.userName || null,
14
- p_page_url: params.pageUrl || null,
15
- p_user_agent: params.userAgent || null,
16
- p_app_version: params.appVersion || null,
17
- p_screen_size: params.screenSize || null,
18
- p_metadata: params.metadata || {},
19
- p_attachments: params.attachments || [],
20
- });
21
- if (error) {
22
- console.warn('[Pulse] Submit error:', error.message);
23
- return null;
24
- }
25
- return data;
26
- }
27
- catch (err) {
28
- console.warn('[Pulse] Network error:', err);
3
+ const { data, error } = await client.post('/api/v1/feedback', {
4
+ type: params.type,
5
+ subject: params.subject,
6
+ body: params.body,
7
+ email: params.userEmail || undefined,
8
+ name: params.userName || undefined,
9
+ pageUrl: params.pageUrl || undefined,
10
+ userAgent: params.userAgent || undefined,
11
+ screenSize: params.screenSize || undefined,
12
+ metadata: params.metadata || {},
13
+ });
14
+ if (error) {
15
+ console.warn('[Pulse] Submit error:', error);
29
16
  return null;
30
17
  }
18
+ return data?.threadId ?? null;
31
19
  }
32
20
  // ── Get My Threads ──
33
21
  async function getMyThreads(client) {
34
- try {
35
- const { data, error } = await client
36
- .from('threads')
37
- .select('*')
38
- .order('created_at', { ascending: false });
39
- if (error) {
40
- console.warn('[Pulse] Fetch threads error:', error.message);
41
- return [];
42
- }
43
- return data.map(fromDbThread);
44
- }
45
- catch (err) {
46
- console.warn('[Pulse] Network error:', err);
22
+ const { data, error } = await client.get('/api/v1/threads');
23
+ if (error) {
24
+ console.warn('[Pulse] Fetch threads error:', error);
47
25
  return [];
48
26
  }
27
+ return data ?? [];
49
28
  }
50
29
  // ── Get Thread Messages ──
51
30
  async function getThreadMessages(client, threadId) {
52
- try {
53
- const { data, error } = await client
54
- .from('messages')
55
- .select('*')
56
- .eq('thread_id', threadId)
57
- .order('created_at', { ascending: true });
58
- if (error) {
59
- console.warn('[Pulse] Fetch messages error:', error.message);
60
- return [];
61
- }
62
- return data.map(fromDbMessage);
63
- }
64
- catch (err) {
65
- console.warn('[Pulse] Network error:', err);
31
+ const { data, error } = await client.get(`/api/v1/threads/${threadId}/messages`);
32
+ if (error) {
33
+ console.warn('[Pulse] Fetch messages error:', error);
66
34
  return [];
67
35
  }
36
+ return data ?? [];
68
37
  }
69
38
  // ── Send Reply (user) ──
70
39
  async function sendUserReply(client, threadId, body) {
71
- try {
72
- const { error } = await client
73
- .from('messages')
74
- .insert({ thread_id: threadId, sender: 'user', body });
75
- if (error) {
76
- console.warn('[Pulse] Reply error:', error.message);
77
- return false;
78
- }
79
- return true;
80
- }
81
- catch (err) {
82
- console.warn('[Pulse] Network error:', err);
40
+ const { error } = await client.post(`/api/v1/threads/${threadId}/reply`, { body });
41
+ if (error) {
42
+ console.warn('[Pulse] Reply error:', error);
83
43
  return false;
84
44
  }
45
+ return true;
85
46
  }
86
47
  // ── Check Unread Replies ──
87
- async function checkUnreadReplies(client, deviceId) {
88
- try {
89
- const { data, error } = await client.rpc('check_unread_replies', {
90
- p_device_id: deviceId,
91
- });
92
- if (error) {
93
- console.warn('[Pulse] Unread check error:', error.message);
94
- return false;
95
- }
96
- return data;
97
- }
98
- catch (err) {
99
- console.warn('[Pulse] Network error:', err);
48
+ async function checkUnreadReplies(client) {
49
+ const { data, error } = await client.get('/api/v1/unread');
50
+ if (error) {
51
+ console.warn('[Pulse] Unread check error:', error);
100
52
  return false;
101
53
  }
54
+ return data?.hasUnread ?? false;
102
55
  }
103
56
 
104
57
  export { checkUnreadReplies, getMyThreads, getThreadMessages, sendUserReply, submitFeedback };
@@ -1 +1 @@
1
- {"version":3,"file":"api.mjs","sources":["../../src/lib/api.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AAwBO,eAAe,cAAc,CAClC,MAAsB,EACtB,MAA4B,EAAA;AAE5B,IAAA,IAAI;AACF,QAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE;YACrE,cAAc,EAAE,MAAM,CAAC,WAAW;YAClC,WAAW,EAAE,MAAM,CAAC,QAAQ;YAC5B,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,SAAS,EAAE,MAAM,CAAC,OAAO;YACzB,MAAM,EAAE,MAAM,CAAC,IAAI;AACnB,YAAA,YAAY,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;AACtC,YAAA,WAAW,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;AACpC,YAAA,UAAU,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;AAClC,YAAA,YAAY,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;AACtC,YAAA,aAAa,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;AACxC,YAAA,aAAa,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI;AACxC,YAAA,UAAU,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;AACjC,YAAA,aAAa,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;AACxC,SAAA,CAAC;QAEF,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC;AACpD,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,IAAc;IACvB;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;AAC3C,QAAA,OAAO,IAAI;IACb;AACF;AAEA;AAEO,eAAe,YAAY,CAChC,MAAsB,EAAA;AAEtB,IAAA,IAAI;AACF,QAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM;aAC3B,IAAI,CAAC,SAAS;aACd,MAAM,CAAC,GAAG;aACV,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAE5C,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,OAAO,CAAC;AAC3D,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,OAAQ,IAAmB,CAAC,GAAG,CAAC,YAAY,CAAC;IAC/C;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;AAC3C,QAAA,OAAO,EAAE;IACX;AACF;AAEA;AAEO,eAAe,iBAAiB,CACrC,MAAsB,EACtB,QAAgB,EAAA;AAEhB,IAAA,IAAI;AACF,QAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM;aAC3B,IAAI,CAAC,UAAU;aACf,MAAM,CAAC,GAAG;AACV,aAAA,EAAE,CAAC,WAAW,EAAE,QAAQ;aACxB,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAE3C,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC,OAAO,CAAC;AAC5D,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,OAAQ,IAAoB,CAAC,GAAG,CAAC,aAAa,CAAC;IACjD;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;AAC3C,QAAA,OAAO,EAAE;IACX;AACF;AAEA;AAEO,eAAe,aAAa,CACjC,MAAsB,EACtB,QAAgB,EAChB,IAAY,EAAA;AAEZ,IAAA,IAAI;AACF,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM;aACrB,IAAI,CAAC,UAAU;AACf,aAAA,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAExD,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC;AACnD,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,IAAI;IACb;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;AAC3C,QAAA,OAAO,KAAK;IACd;AACF;AAEA;AAEO,eAAe,kBAAkB,CACtC,MAAsB,EACtB,QAAgB,EAAA;AAEhB,IAAA,IAAI;AACF,QAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE;AAC/D,YAAA,WAAW,EAAE,QAAQ;AACtB,SAAA,CAAC;QAEF,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,CAAC;AAC1D,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,OAAO,IAAe;IACxB;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;AAC3C,QAAA,OAAO,KAAK;IACd;AACF;;;;"}
1
+ {"version":3,"file":"api.mjs","sources":["../../src/lib/api.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AAoBO,eAAe,cAAc,CAClC,MAAkB,EAClB,MAA4B,EAAA;AAE5B,IAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAuB,kBAAkB,EAAE;QAClF,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,QAAA,KAAK,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;AACpC,QAAA,IAAI,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;AAClC,QAAA,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;AACpC,QAAA,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;AACxC,QAAA,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;AAC1C,QAAA,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;AAChC,KAAA,CAAC;IAEF,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC;AAC5C,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,IAAI,EAAE,QAAQ,IAAI,IAAI;AAC/B;AAEA;AAEO,eAAe,YAAY,CAChC,MAAkB,EAAA;AAElB,IAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAW,iBAAiB,CAAC;IAErE,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC;AACnD,QAAA,OAAO,EAAE;IACX;IAEA,OAAO,IAAI,IAAI,EAAE;AACnB;AAEA;AAEO,eAAe,iBAAiB,CACrC,MAAkB,EAClB,QAAgB,EAAA;AAEhB,IAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAY,CAAA,gBAAA,EAAmB,QAAQ,CAAA,SAAA,CAAW,CAAC;IAE3F,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC;AACpD,QAAA,OAAO,EAAE;IACX;IAEA,OAAO,IAAI,IAAI,EAAE;AACnB;AAEA;AAEO,eAAe,aAAa,CACjC,MAAkB,EAClB,QAAgB,EAChB,IAAY,EAAA;AAEZ,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA,gBAAA,EAAmB,QAAQ,CAAA,MAAA,CAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;IAElF,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC;AAC3C,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,OAAO,IAAI;AACb;AAEA;AAEO,eAAe,kBAAkB,CACtC,MAAkB,EAAA;AAElB,IAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAyB,gBAAgB,CAAC;IAElF,IAAI,KAAK,EAAE;AACT,QAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC;AAClD,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,OAAO,IAAI,EAAE,SAAS,IAAI,KAAK;AACjC;;;;"}
@@ -0,0 +1,12 @@
1
+ export interface HttpClient {
2
+ get<T>(path: string): Promise<{
3
+ data: T | null;
4
+ error: string | null;
5
+ }>;
6
+ post<T>(path: string, body: unknown): Promise<{
7
+ data: T | null;
8
+ error: string | null;
9
+ }>;
10
+ }
11
+ export declare function createHttpClient(apiUrl: string, apiKey: string, deviceId: string): HttpClient;
12
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CACzF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAsC7F"}
@@ -0,0 +1,39 @@
1
+ // ── Pulse HTTP Client ──
2
+ function createHttpClient(apiUrl, apiKey, deviceId) {
3
+ const headers = {
4
+ 'Content-Type': 'application/json',
5
+ 'x-api-key': apiKey,
6
+ 'x-device-id': deviceId,
7
+ };
8
+ async function request(path, options) {
9
+ try {
10
+ const res = await fetch(`${apiUrl}${path}`, {
11
+ ...options,
12
+ headers: { ...headers, ...options?.headers },
13
+ });
14
+ const json = await res.json();
15
+ if (!res.ok) {
16
+ return { data: null, error: json.error || `HTTP ${res.status}` };
17
+ }
18
+ return { data: json.data, error: null };
19
+ }
20
+ catch (err) {
21
+ console.warn('[Pulse] Network error:', err);
22
+ return { data: null, error: 'Network error' };
23
+ }
24
+ }
25
+ return {
26
+ get(path) {
27
+ return request(path);
28
+ },
29
+ post(path, body) {
30
+ return request(path, {
31
+ method: 'POST',
32
+ body: JSON.stringify(body),
33
+ });
34
+ },
35
+ };
36
+ }
37
+
38
+ export { createHttpClient };
39
+ //# sourceMappingURL=http.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.mjs","sources":["../../src/lib/http.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;SAOgB,gBAAgB,CAAC,MAAc,EAAE,MAAc,EAAE,QAAgB,EAAA;AAC/E,IAAA,MAAM,OAAO,GAA2B;AACtC,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,aAAa,EAAE,QAAQ;KACxB;AAED,IAAA,eAAe,OAAO,CAAI,IAAY,EAAE,OAAqB,EAAA;AAC3D,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAA,EAAG,IAAI,CAAA,CAAE,EAAE;AAC1C,gBAAA,GAAG,OAAO;gBACV,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE;AAC7C,aAAA,CAAC;AAEF,YAAA,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;AAE7B,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACX,gBAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAA,KAAA,EAAQ,GAAG,CAAC,MAAM,CAAA,CAAE,EAAE;YAClE;YAEA,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAS,EAAE,KAAK,EAAE,IAAI,EAAE;QAC9C;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;YAC3C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE;QAC/C;IACF;IAEA,OAAO;AACL,QAAA,GAAG,CAAI,IAAY,EAAA;AACjB,YAAA,OAAO,OAAO,CAAI,IAAI,CAAC;QACzB,CAAC;QACD,IAAI,CAAI,IAAY,EAAE,IAAa,EAAA;YACjC,OAAO,OAAO,CAAI,IAAI,EAAE;AACtB,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3B,aAAA,CAAC;QACJ,CAAC;KACF;AACH;;;;"}
package/dist/types.d.ts CHANGED
@@ -16,7 +16,6 @@ export interface Thread {
16
16
  screenSize: string | null;
17
17
  metadata: Record<string, unknown>;
18
18
  isRead: boolean;
19
- isStarred: boolean;
20
19
  createdAt: string;
21
20
  updatedAt: string;
22
21
  }
@@ -37,8 +36,8 @@ export interface Attachment {
37
36
  }
38
37
  export interface PulseWidgetProps {
39
38
  projectId: string;
40
- supabaseUrl?: string;
41
- supabaseAnonKey?: string;
39
+ apiKey: string;
40
+ apiUrl?: string;
42
41
  position?: 'bottom-right' | 'bottom-left';
43
42
  accentColor?: string;
44
43
  greeting?: string;
@@ -56,34 +55,4 @@ export declare const FEEDBACK_TYPES: {
56
55
  label: string;
57
56
  color: string;
58
57
  }[];
59
- export interface DbThread {
60
- id: string;
61
- project_id: string;
62
- device_id: string;
63
- type: FeedbackType;
64
- status: ThreadStatus;
65
- subject: string;
66
- user_email: string | null;
67
- user_name: string | null;
68
- page_url: string | null;
69
- user_agent: string | null;
70
- app_version: string | null;
71
- screen_size: string | null;
72
- metadata: Record<string, unknown>;
73
- is_read: boolean;
74
- is_starred: boolean;
75
- created_at: string;
76
- updated_at: string;
77
- }
78
- export interface DbMessage {
79
- id: string;
80
- thread_id: string;
81
- sender: MessageSender;
82
- body: string;
83
- attachments: Attachment[];
84
- is_internal: boolean;
85
- created_at: string;
86
- }
87
- export declare function fromDbThread(row: DbThread): Thread;
88
- export declare function fromDbMessage(row: DbMessage): Message;
89
58
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/E,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;AAEjD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAGD,eAAO,MAAM,cAAc,EAAE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAMhG,CAAC"}
package/dist/types.mjs CHANGED
@@ -7,39 +7,6 @@ const FEEDBACK_TYPES = [
7
7
  { value: 'praise', emoji: '🎉', label: 'Praise', color: '#10B981' },
8
8
  { value: 'other', emoji: '💬', label: 'Other', color: '#6B7280' },
9
9
  ];
10
- // Mappers
11
- function fromDbThread(row) {
12
- return {
13
- id: row.id,
14
- projectId: row.project_id,
15
- deviceId: row.device_id,
16
- type: row.type,
17
- status: row.status,
18
- subject: row.subject,
19
- userEmail: row.user_email,
20
- userName: row.user_name,
21
- pageUrl: row.page_url,
22
- userAgent: row.user_agent,
23
- appVersion: row.app_version,
24
- screenSize: row.screen_size,
25
- metadata: row.metadata,
26
- isRead: row.is_read,
27
- isStarred: row.is_starred,
28
- createdAt: row.created_at,
29
- updatedAt: row.updated_at,
30
- };
31
- }
32
- function fromDbMessage(row) {
33
- return {
34
- id: row.id,
35
- threadId: row.thread_id,
36
- sender: row.sender,
37
- body: row.body,
38
- attachments: row.attachments,
39
- isInternal: row.is_internal,
40
- createdAt: row.created_at,
41
- };
42
- }
43
10
 
44
- export { FEEDBACK_TYPES, fromDbMessage, fromDbThread };
11
+ export { FEEDBACK_TYPES };
45
12
  //# sourceMappingURL=types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sources":["../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AA6DA;AACO,MAAM,cAAc,GAA2E;AACpG,IAAA,EAAE,KAAK,EAAE,KAAK,EAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAO,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,EAAE,KAAK,EAAE,SAAS,EAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAG,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;AACtE,IAAA,EAAE,KAAK,EAAE,QAAQ,EAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAI,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,EAAE,KAAK,EAAE,OAAO,EAAK,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAK,KAAK,EAAE,SAAS,EAAE;;AAkCzE;AACM,SAAU,YAAY,CAAC,GAAa,EAAA;IACxC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B;AACH;AAEM,SAAU,aAAa,CAAC,GAAc,EAAA;IAC1C,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B;AACH;;;;"}
1
+ {"version":3,"file":"types.mjs","sources":["../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AA4DA;AACO,MAAM,cAAc,GAA2E;AACpG,IAAA,EAAE,KAAK,EAAE,KAAK,EAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAO,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,EAAE,KAAK,EAAE,SAAS,EAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAG,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;AACtE,IAAA,EAAE,KAAK,EAAE,QAAQ,EAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAI,KAAK,EAAE,SAAS,EAAE;AACvE,IAAA,EAAE,KAAK,EAAE,OAAO,EAAK,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAK,KAAK,EAAE,SAAS,EAAE;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pulse-feedback-widget",
3
- "version": "0.2.0",
3
+ "version": "1.0.1",
4
4
  "description": "Drop-in feedback widget for React apps. Collect bugs, features, questions, and praise from users.",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",
@@ -33,9 +33,6 @@
33
33
  "react": "^18.0.0 || ^19.0.0",
34
34
  "react-dom": "^18.0.0 || ^19.0.0"
35
35
  },
36
- "dependencies": {
37
- "@supabase/supabase-js": "^2.49.0"
38
- },
39
36
  "devDependencies": {
40
37
  "@rollup/plugin-commonjs": "^28.0.0",
41
38
  "@rollup/plugin-node-resolve": "^16.0.0",
@@ -1,4 +0,0 @@
1
- import { SupabaseClient } from '@supabase/supabase-js';
2
- export declare function getSupabaseClient(url: string, anonKey: string, deviceId: string): SupabaseClient;
3
- export declare function resetSupabaseClient(): void;
4
- //# sourceMappingURL=supabase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/lib/supabase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIrE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CAWhG;AAGD,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -1,19 +0,0 @@
1
- import { createClient } from '@supabase/supabase-js';
2
-
3
- // ── Widget Supabase Client ──
4
- let client = null;
5
- function getSupabaseClient(url, anonKey, deviceId) {
6
- if (!client) {
7
- client = createClient(url, anonKey, {
8
- global: {
9
- headers: {
10
- 'x-device-id': deviceId,
11
- },
12
- },
13
- });
14
- }
15
- return client;
16
- }
17
-
18
- export { getSupabaseClient };
19
- //# sourceMappingURL=supabase.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supabase.mjs","sources":["../../src/lib/supabase.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AAIA,IAAI,MAAM,GAA0B,IAAI;SAExB,iBAAiB,CAAC,GAAW,EAAE,OAAe,EAAE,QAAgB,EAAA;IAC9E,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE;AAClC,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE;AACP,oBAAA,aAAa,EAAE,QAAQ;AACxB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;IACJ;AACA,IAAA,OAAO,MAAM;AACf;;;;"}