@weave-apps/sdk 0.1.18 → 0.1.19

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.
@@ -74,14 +74,39 @@ export type FormClickCallback = (data: {
74
74
  type: string;
75
75
  };
76
76
  }) => void;
77
+ /**
78
+ * Workflow action from content script
79
+ */
80
+ export interface WorkflowActionPayload {
81
+ type: string;
82
+ name: string;
83
+ timestamp: number;
84
+ selector: string;
85
+ value?: string;
86
+ elementInfo: {
87
+ tagName: string;
88
+ id?: string;
89
+ className?: string;
90
+ text?: string;
91
+ attributes?: Record<string, string>;
92
+ };
93
+ }
77
94
  /**
78
95
  * Workflow saved event callback
79
96
  */
80
97
  export type WorkflowSavedCallback = (workflow: {
81
98
  name: string;
82
99
  startUrl: string;
83
- actions: any[];
100
+ actions: WorkflowActionPayload[];
84
101
  }) => void;
102
+ /**
103
+ * Data mapping for trigger-to-workflow data injection
104
+ */
105
+ export interface TriggerDataMapping {
106
+ triggerFieldLabel: string;
107
+ workflowActionIndex: number;
108
+ workflowActionSelector?: string;
109
+ }
85
110
  /**
86
111
  * Trigger saved event callback
87
112
  */
@@ -90,6 +115,8 @@ export type TriggerSavedCallback = (trigger: {
90
115
  url: string;
91
116
  events: any[];
92
117
  dataCapture: any;
118
+ linkedWorkflowId?: string;
119
+ dataMappings?: TriggerDataMapping[];
93
120
  }) => void;
94
121
  /**
95
122
  * Element click event callback (for injected elements)
@@ -1 +1 @@
1
- {"version":3,"file":"WeaveDOMAPI.d.ts","sourceRoot":"","sources":["../src/WeaveDOMAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WeaveDOMAPI.d.ts","sourceRoot":"","sources":["../src/WeaveDOMAPI.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0DH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,KAAK,IAAI,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,KAAK,IAAI,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,WAAW,EAAE,GAAG,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACrC,KAAK,IAAI,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,EAAE,EAAE,MAAM,CAAC;YACX,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;CACH,KAAK,IAAI,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,IAAI,EAAE;IAChD,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,KAAK,IAAI,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE;IACzC,UAAU,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;IAClD,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KAAK,IAAI,CAAC;AAuBX;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,eAAe,CAGR;IAEf,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,qBAAqB,CAAgD;IAC7E,OAAO,CAAC,6BAA6B,CAAwD;IAC7F,OAAO,CAAC,sBAAsB,CAAiD;IAC/E,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;;IAM7B;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB;;OAEG;IACI,OAAO,IAAI,IAAI;IAQtB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8FtB;;OAEG;IACH,OAAO,CAAC,WAAW;IA4CnB;;OAEG;IACU,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI9D;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAInE;;OAEG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD;;OAEG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOtF;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxD;;;;;;;;;;;;OAYG;IACU,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO5E;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxC;;OAEG;IACU,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;OAEG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5F;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE;;OAEG;IACU,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E;;OAEG;IACU,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/E;;OAEG;IACU,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvF;;OAEG;IACU,UAAU,CACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACU,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D;;;;;;;;;;;;OAYG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D;;;;OAIG;IACU,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI7D;;;;OAIG;IACU,sBAAsB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/E;;OAEG;IACU,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,yBAAyB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,4BAA4B,EACtC,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAChC,OAAO,CAAC,MAAM,CAAC;IAelB;;;;;;;;;OASG;IACU,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,iBAAiB,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,EAClC,cAAc,GAAE,OAAe,GAC9B,OAAO,CAAC,IAAI,CAAC;IAYhB;;;OAGG;IACI,eAAe,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAI7D;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAI/B;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAI3D;;OAEG;IACI,eAAe,IAAI,IAAI;IAQ9B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,aAAa,CACxB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,oBAAoB,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GACA,OAAO,CAAC,MAAM,CAAC;IAqBlB;;;;;;;OAOG;IACU,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACU,YAAY,CACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,GACA,OAAO,CAAC,MAAM,CAAC;IAmBlB;;;;;;;OAOG;IACU,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7D;;;;;;;;;;OAUG;IACU,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;;;;;;;;;;;;;;;OAgBG;IACU,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGxD;;AAED,wBAAiC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weave-apps/sdk",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "description": "SDK for building Weave Micro Apps",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,231 +0,0 @@
1
- /**
2
- * Sidekick API Client
3
- *
4
- * Client-side API for iframe apps to interact with the Sidekick backend
5
- * through a secure proxy in the sidebar.
6
- *
7
- * Apps can call AI services and manage their own app data.
8
- */
9
- /**
10
- * AI Chat Request
11
- */
12
- export interface AIChatRequest {
13
- /** User's input prompt */
14
- prompt: string;
15
- /** Optional context for the AI */
16
- context?: string;
17
- /** Optional flag to disable JSON extraction */
18
- disableJsonExtraction?: boolean;
19
- }
20
- /**
21
- * AI Chat Response
22
- */
23
- export interface AIChatResponse {
24
- /** AI chat response content */
25
- response: string;
26
- }
27
- /**
28
- * App Data structure
29
- */
30
- export interface AppData {
31
- _id: string;
32
- /** Reference to the app component this data belongs to */
33
- appId: string;
34
- /** Company that owns this app data */
35
- companyId: string;
36
- /** User that owns this specific app data instance */
37
- userId: string;
38
- /** Key for organizing data within an app namespace */
39
- dataKey: string;
40
- /** Unstructured data - apps determine the content structure */
41
- data: Record<string, any>;
42
- createdAt: Date;
43
- updatedAt: Date;
44
- createdBy: string;
45
- }
46
- /**
47
- * Create App Data Request
48
- */
49
- export interface CreateAppDataRequest {
50
- /** Key for organizing data within an app namespace */
51
- dataKey: string;
52
- /** Unstructured data - apps determine the content structure */
53
- data: Record<string, any>;
54
- }
55
- /**
56
- * Update App Data Request
57
- */
58
- export interface UpdateAppDataRequest {
59
- /** Key for organizing data within an app namespace */
60
- dataKey: string;
61
- /** Unstructured data - apps determine the content structure */
62
- data: Record<string, any>;
63
- }
64
- /**
65
- * Pagination metadata
66
- */
67
- export interface PaginationMeta {
68
- /** Current offset */
69
- offset: number;
70
- /** Number of items per page */
71
- limit: number;
72
- /** Total number of items available */
73
- totalResultCount: number;
74
- }
75
- /**
76
- * Paginated response wrapper
77
- */
78
- export interface PaginatedResponse<T> {
79
- /** Array of data items */
80
- data: T[];
81
- /** Pagination metadata */
82
- meta: PaginationMeta;
83
- }
84
- /**
85
- * Sidekick API Client
86
- * Provides methods for iframe apps to interact with Sidekick backend
87
- */
88
- export declare class SidekickAPIClient {
89
- private pendingRequests;
90
- private messageListener;
91
- private requestCounter;
92
- private timeout;
93
- private appId;
94
- constructor();
95
- /**
96
- * Set the app ID for this client
97
- * Called automatically by SidekickBaseApp
98
- */
99
- setAppId(appId: string): void;
100
- /**
101
- * Initialize the API client and start listening for responses
102
- */
103
- private initialize;
104
- /**
105
- * Cleanup
106
- */
107
- destroy(): void;
108
- /**
109
- * Handle response from sidebar
110
- */
111
- private handleResponse;
112
- /**
113
- * Send request to sidebar
114
- */
115
- private sendRequest;
116
- /**
117
- * Send a chat message to the AI service
118
- *
119
- * Note: App ID is automatically injected by the APIBridge.
120
- * You only need to provide the prompt and optional context.
121
- *
122
- * @example
123
- * ```javascript
124
- * const response = await sidekickAPI.ai.chat({
125
- * prompt: 'What is the capital of France?',
126
- * context: 'User is learning geography'
127
- * });
128
- * ```
129
- */
130
- ai: {
131
- chat: (request: AIChatRequest) => Promise<AIChatResponse>;
132
- };
133
- /**
134
- * App Data operations - CRUD for app-specific data storage
135
- */
136
- appData: {
137
- /**
138
- * Get all app data for the current company (paginated)
139
- *
140
- * Returns a paginated response with data and metadata.
141
- * Default limit is 25 items. For apps with large datasets (500-5000+ rows),
142
- * use pagination to avoid performance issues.
143
- *
144
- * @example
145
- * ```javascript
146
- * // Get first page (default: 25 items)
147
- * const response = await sidekickAPI.appData.getAll();
148
- *
149
- * // Access the array of items
150
- * const items = response.data;
151
- * items.forEach(item => {
152
- * });
153
- * ```
154
- */
155
- getAll: () => Promise<PaginatedResponse<AppData>>;
156
- /**
157
- * Create new app data
158
- *
159
- * Note: App ID is automatically injected by the APIBridge.
160
- *
161
- * @example
162
- * ```javascript
163
- * const newData = await sidekickAPI.appData.create({
164
- * dataKey: 'user-preferences',
165
- * data: { theme: 'dark', language: 'en' }
166
- * });
167
- * ```
168
- */
169
- create: (request: CreateAppDataRequest) => Promise<AppData>;
170
- /**
171
- * Get specific app data by ID
172
- *
173
- * @example
174
- * ```javascript
175
- * const data = await sidekickAPI.appData.get('data-id-123');
176
- * ```
177
- */
178
- get: (appDataId: string) => Promise<AppData>;
179
- /**
180
- * Update existing app data
181
- *
182
- * @example
183
- * ```javascript
184
- * const updated = await sidekickAPI.appData.update('data-id-123', {
185
- * data: { theme: 'light' }
186
- * });
187
- * ```
188
- */
189
- update: (appDataId: string, request: UpdateAppDataRequest) => Promise<AppData>;
190
- /**
191
- * Delete app data
192
- *
193
- * @example
194
- * ```javascript
195
- * await sidekickAPI.appData.delete('data-id-123');
196
- * ```
197
- */
198
- delete: (appDataId: string) => Promise<void>;
199
- };
200
- /**
201
- * Utility functions for common operations
202
- *
203
- * Note: These utilities are loaded from the sidebar-loader at runtime.
204
- * They are available through the window object and don't need to be bundled with apps.
205
- */
206
- utils: {
207
- /**
208
- * Convert HTML to Markdown
209
- *
210
- * @example
211
- * ```javascript
212
- * const markdown = sidekickAPI.utils.htmlToMarkdown('<h1>Hello</h1>');
213
- * console.log(markdown); // # Hello
214
- * ```
215
- */
216
- htmlToMarkdown: (html: string) => string;
217
- /**
218
- * Convert Markdown to HTML (sanitized)
219
- *
220
- * @example
221
- * ```javascript
222
- * const html = sidekickAPI.utils.markdownToHtml('# Hello');
223
- * console.log(html); // <h1>Hello</h1>
224
- * ```
225
- */
226
- markdownToHtml: (markdown: string) => string;
227
- };
228
- }
229
- declare const sidekickAPI: SidekickAPIClient;
230
- export default sidekickAPI;
231
- //# sourceMappingURL=SidekickAPIClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SidekickAPIClient.d.ts","sourceRoot":"","sources":["../src/SidekickAPIClient.ts"],"names":[],"mappings":"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"}
@@ -1,274 +0,0 @@
1
- /**
2
- * Sidekick API Client
3
- *
4
- * Client-side API for iframe apps to interact with the Sidekick backend
5
- * through a secure proxy in the sidebar.
6
- *
7
- * Apps can call AI services and manage their own app data.
8
- */
9
- /**
10
- * API operation types
11
- */
12
- var APIOperation;
13
- (function (APIOperation) {
14
- // AI Service
15
- APIOperation["AI_CHAT"] = "AI_CHAT";
16
- // App Data Service
17
- APIOperation["APP_DATA_GET_ALL"] = "APP_DATA_GET_ALL";
18
- APIOperation["APP_DATA_CREATE"] = "APP_DATA_CREATE";
19
- APIOperation["APP_DATA_GET"] = "APP_DATA_GET";
20
- APIOperation["APP_DATA_UPDATE"] = "APP_DATA_UPDATE";
21
- APIOperation["APP_DATA_DELETE"] = "APP_DATA_DELETE";
22
- })(APIOperation || (APIOperation = {}));
23
- /**
24
- * Sidekick API Client
25
- * Provides methods for iframe apps to interact with Sidekick backend
26
- */
27
- export class SidekickAPIClient {
28
- constructor() {
29
- this.pendingRequests = new Map();
30
- this.messageListener = null;
31
- this.requestCounter = 0;
32
- this.timeout = 180000; // 3 minute timeout for API calls (AI can take time on large forms)
33
- this.appId = null; // App ID set by the app
34
- // ============================================================================
35
- // AI Service
36
- // ============================================================================
37
- /**
38
- * Send a chat message to the AI service
39
- *
40
- * Note: App ID is automatically injected by the APIBridge.
41
- * You only need to provide the prompt and optional context.
42
- *
43
- * @example
44
- * ```javascript
45
- * const response = await sidekickAPI.ai.chat({
46
- * prompt: 'What is the capital of France?',
47
- * context: 'User is learning geography'
48
- * });
49
- * ```
50
- */
51
- this.ai = {
52
- chat: async (request) => {
53
- return this.sendRequest(APIOperation.AI_CHAT, request);
54
- }
55
- };
56
- // ============================================================================
57
- // App Data Service
58
- // ============================================================================
59
- /**
60
- * App Data operations - CRUD for app-specific data storage
61
- */
62
- this.appData = {
63
- /**
64
- * Get all app data for the current company (paginated)
65
- *
66
- * Returns a paginated response with data and metadata.
67
- * Default limit is 25 items. For apps with large datasets (500-5000+ rows),
68
- * use pagination to avoid performance issues.
69
- *
70
- * @example
71
- * ```javascript
72
- * // Get first page (default: 25 items)
73
- * const response = await sidekickAPI.appData.getAll();
74
- *
75
- * // Access the array of items
76
- * const items = response.data;
77
- * items.forEach(item => {
78
- * });
79
- * ```
80
- */
81
- getAll: async () => {
82
- return this.sendRequest(APIOperation.APP_DATA_GET_ALL, {});
83
- },
84
- /**
85
- * Create new app data
86
- *
87
- * Note: App ID is automatically injected by the APIBridge.
88
- *
89
- * @example
90
- * ```javascript
91
- * const newData = await sidekickAPI.appData.create({
92
- * dataKey: 'user-preferences',
93
- * data: { theme: 'dark', language: 'en' }
94
- * });
95
- * ```
96
- */
97
- create: async (request) => {
98
- return this.sendRequest(APIOperation.APP_DATA_CREATE, request);
99
- },
100
- /**
101
- * Get specific app data by ID
102
- *
103
- * @example
104
- * ```javascript
105
- * const data = await sidekickAPI.appData.get('data-id-123');
106
- * ```
107
- */
108
- get: async (appDataId) => {
109
- return this.sendRequest(APIOperation.APP_DATA_GET, { appDataId });
110
- },
111
- /**
112
- * Update existing app data
113
- *
114
- * @example
115
- * ```javascript
116
- * const updated = await sidekickAPI.appData.update('data-id-123', {
117
- * data: { theme: 'light' }
118
- * });
119
- * ```
120
- */
121
- update: async (appDataId, request) => {
122
- return this.sendRequest(APIOperation.APP_DATA_UPDATE, {
123
- appDataId,
124
- ...request
125
- });
126
- },
127
- /**
128
- * Delete app data
129
- *
130
- * @example
131
- * ```javascript
132
- * await sidekickAPI.appData.delete('data-id-123');
133
- * ```
134
- */
135
- delete: async (appDataId) => {
136
- return this.sendRequest(APIOperation.APP_DATA_DELETE, { appDataId });
137
- }
138
- };
139
- /**
140
- * Utility functions for common operations
141
- *
142
- * Note: These utilities are loaded from the sidebar-loader at runtime.
143
- * They are available through the window object and don't need to be bundled with apps.
144
- */
145
- this.utils = {
146
- /**
147
- * Convert HTML to Markdown
148
- *
149
- * @example
150
- * ```javascript
151
- * const markdown = sidekickAPI.utils.htmlToMarkdown('<h1>Hello</h1>');
152
- * console.log(markdown); // # Hello
153
- * ```
154
- */
155
- htmlToMarkdown: (html) => {
156
- // Access the utility from window object (loaded by sidebar-loader)
157
- if (typeof window !== 'undefined' && window.__sidekickUtils?.htmlToMarkdown) {
158
- return window.__sidekickUtils.htmlToMarkdown(html);
159
- }
160
- throw new Error('htmlToMarkdown utility not available. Ensure sidebar-loader is loaded.');
161
- },
162
- /**
163
- * Convert Markdown to HTML (sanitized)
164
- *
165
- * @example
166
- * ```javascript
167
- * const html = sidekickAPI.utils.markdownToHtml('# Hello');
168
- * console.log(html); // <h1>Hello</h1>
169
- * ```
170
- */
171
- markdownToHtml: (markdown) => {
172
- // Access the utility from window object (loaded by sidebar-loader)
173
- if (typeof window !== 'undefined' && window.__sidekickUtils?.markdownToHtml) {
174
- return window.__sidekickUtils.markdownToHtml(markdown);
175
- }
176
- throw new Error('markdownToHtml utility not available. Ensure sidebar-loader is loaded.');
177
- }
178
- };
179
- this.initialize();
180
- }
181
- /**
182
- * Set the app ID for this client
183
- * Called automatically by SidekickBaseApp
184
- */
185
- setAppId(appId) {
186
- this.appId = appId;
187
- }
188
- /**
189
- * Initialize the API client and start listening for responses
190
- */
191
- initialize() {
192
- this.messageListener = (event) => {
193
- this.handleResponse(event);
194
- };
195
- window.addEventListener('message', this.messageListener);
196
- }
197
- /**
198
- * Cleanup
199
- */
200
- destroy() {
201
- if (this.messageListener) {
202
- window.removeEventListener('message', this.messageListener);
203
- this.messageListener = null;
204
- }
205
- this.pendingRequests.clear();
206
- }
207
- /**
208
- * Handle response from sidebar
209
- */
210
- handleResponse(event) {
211
- const data = event.data;
212
- if (data?.type !== 'SIDEKICK_API_RESPONSE') {
213
- return;
214
- }
215
- const response = data;
216
- const pending = this.pendingRequests.get(response.id);
217
- if (!pending) {
218
- return;
219
- }
220
- this.pendingRequests.delete(response.id);
221
- if (response.success) {
222
- pending.resolve(response.data);
223
- }
224
- else {
225
- pending.reject(new Error(response.error || 'Unknown error'));
226
- }
227
- }
228
- /**
229
- * Send request to sidebar
230
- */
231
- sendRequest(operation, payload) {
232
- return new Promise((resolve, reject) => {
233
- const id = `api-request-${++this.requestCounter}`;
234
- const request = {
235
- type: 'SIDEKICK_API_REQUEST',
236
- id,
237
- operation,
238
- payload,
239
- appId: this.appId || undefined, // Include app ID if set
240
- };
241
- // Store pending request
242
- this.pendingRequests.set(id, { resolve, reject });
243
- // Set timeout
244
- const timeoutId = setTimeout(() => {
245
- this.pendingRequests.delete(id);
246
- reject(new Error(`Request timeout: ${operation}`));
247
- }, this.timeout);
248
- // Clear timeout on resolve/reject
249
- const originalResolve = resolve;
250
- const originalReject = reject;
251
- this.pendingRequests.set(id, {
252
- resolve: (value) => {
253
- clearTimeout(timeoutId);
254
- originalResolve(value);
255
- },
256
- reject: (error) => {
257
- clearTimeout(timeoutId);
258
- originalReject(error);
259
- },
260
- });
261
- // Send to current window (sidebar APIBridge will intercept)
262
- // Apps run in the sidebar's window, not in a separate iframe
263
- window.postMessage(request, '*');
264
- APIOperation;
265
- });
266
- }
267
- }
268
- // Create singleton instance
269
- const sidekickAPI = new SidekickAPIClient();
270
- // Export for global usage
271
- if (typeof window !== 'undefined') {
272
- window.sidekickAPI = sidekickAPI;
273
- }
274
- export default sidekickAPI;