@base44/sdk 0.7.4 → 0.7.6

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.
package/dist/client.d.ts CHANGED
@@ -56,6 +56,7 @@ export declare function createClient(config: {
56
56
  }) => Promise<import("./types.js").AgentConversation>;
57
57
  addMessage: (conversation: import("./types.js").AgentConversation, message: import("./types.js").AgentMessage) => Promise<import("./types.js").AgentMessage>;
58
58
  subscribeToConversation: (conversationId: string, onUpdate?: (conversation: import("./types.js").AgentConversation) => void) => () => void;
59
+ generateUserWhatsAppLink: (agentName: string) => Promise<import("axios").AxiosResponse<any, any>>;
59
60
  };
60
61
  cleanup: () => void;
61
62
  };
@@ -108,6 +109,7 @@ export declare function createClient(config: {
108
109
  }) => Promise<import("./types.js").AgentConversation>;
109
110
  addMessage: (conversation: import("./types.js").AgentConversation, message: import("./types.js").AgentMessage) => Promise<import("./types.js").AgentMessage>;
110
111
  subscribeToConversation: (conversationId: string, onUpdate?: (conversation: import("./types.js").AgentConversation) => void) => () => void;
112
+ generateUserWhatsAppLink: (agentName: string) => Promise<import("axios").AxiosResponse<any, any>>;
111
113
  };
112
114
  cleanup: () => void;
113
115
  };
@@ -145,6 +147,7 @@ export declare function createClientFromRequest(request: Request): {
145
147
  }) => Promise<import("./types.js").AgentConversation>;
146
148
  addMessage: (conversation: import("./types.js").AgentConversation, message: import("./types.js").AgentMessage) => Promise<import("./types.js").AgentMessage>;
147
149
  subscribeToConversation: (conversationId: string, onUpdate?: (conversation: import("./types.js").AgentConversation) => void) => () => void;
150
+ generateUserWhatsAppLink: (agentName: string) => Promise<import("axios").AxiosResponse<any, any>>;
148
151
  };
149
152
  cleanup: () => void;
150
153
  };
@@ -197,6 +200,7 @@ export declare function createClientFromRequest(request: Request): {
197
200
  }) => Promise<import("./types.js").AgentConversation>;
198
201
  addMessage: (conversation: import("./types.js").AgentConversation, message: import("./types.js").AgentMessage) => Promise<import("./types.js").AgentMessage>;
199
202
  subscribeToConversation: (conversationId: string, onUpdate?: (conversation: import("./types.js").AgentConversation) => void) => () => void;
203
+ generateUserWhatsAppLink: (agentName: string) => Promise<import("axios").AxiosResponse<any, any>>;
200
204
  };
201
205
  cleanup: () => void;
202
206
  };
@@ -17,4 +17,5 @@ export declare function createAgentsModule({ axios, socket, appId, }: AgentsModu
17
17
  }) => Promise<AgentConversation>;
18
18
  addMessage: (conversation: AgentConversation, message: AgentMessage) => Promise<AgentMessage>;
19
19
  subscribeToConversation: (conversationId: string, onUpdate?: (conversation: AgentConversation) => void) => () => void;
20
+ generateUserWhatsAppLink: (agentName: string) => Promise<import("axios").AxiosResponse<any, any>>;
20
21
  };
@@ -32,6 +32,9 @@ export function createAgentsModule({ axios, socket, appId, }) {
32
32
  },
33
33
  });
34
34
  };
35
+ const generateUserWhatsAppLink = (agentName) => {
36
+ return axios.post(`/whatsapp/generate-user-link`, { agent_name: agentName });
37
+ };
35
38
  return {
36
39
  getConversations,
37
40
  getConversation,
@@ -39,5 +42,6 @@ export function createAgentsModule({ axios, socket, appId, }) {
39
42
  createConversation,
40
43
  addMessage,
41
44
  subscribeToConversation,
45
+ generateUserWhatsAppLink,
42
46
  };
43
47
  }
@@ -1,4 +1,6 @@
1
1
  import axios from "axios";
2
+ import { isInIFrame } from "./common.js";
3
+ import { v4 as uuidv4 } from "uuid";
2
4
  export class Base44Error extends Error {
3
5
  constructor(message, status, code, data, originalError) {
4
6
  super(message);
@@ -82,11 +84,49 @@ export function createAxiosClient({ baseURL, headers = {}, token, requiresAuth =
82
84
  if (typeof window !== "undefined") {
83
85
  config.headers.set("X-Origin-URL", window.location.href);
84
86
  }
87
+ if (isInIFrame) {
88
+ const requestId = uuidv4();
89
+ try {
90
+ window.parent.postMessage({
91
+ type: "api-request-start",
92
+ requestId,
93
+ data: {
94
+ url: baseURL + config.url,
95
+ method: config.method,
96
+ body: config.data instanceof FormData
97
+ ? "[FormData object]"
98
+ : config.data,
99
+ },
100
+ }, "*");
101
+ }
102
+ catch (_a) {
103
+ /* skip the logging */
104
+ }
105
+ }
85
106
  return config;
86
107
  });
87
108
  // Handle responses
88
109
  if (interceptResponses) {
89
- client.interceptors.response.use((response) => response.data, (error) => {
110
+ client.interceptors.response.use((response) => {
111
+ var _a;
112
+ const requestId = (_a = response.config) === null || _a === void 0 ? void 0 : _a.requestId;
113
+ try {
114
+ if (isInIFrame && requestId) {
115
+ window.parent.postMessage({
116
+ type: "api-request-end",
117
+ requestId,
118
+ data: {
119
+ statusCode: response.status,
120
+ response: response.data,
121
+ },
122
+ }, "*");
123
+ }
124
+ }
125
+ catch (_b) {
126
+ /* do nothing */
127
+ }
128
+ return response.data;
129
+ }, (error) => {
90
130
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
91
131
  const message = ((_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) ||
92
132
  ((_d = (_c = error.response) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.detail) ||
@@ -0,0 +1,2 @@
1
+ export declare const isNode: boolean;
2
+ export declare const isInIFrame: boolean;
@@ -0,0 +1,2 @@
1
+ export const isNode = typeof window === "undefined";
2
+ export const isInIFrame = !isNode && window.self !== window.top;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base44/sdk",
3
- "version": "0.7.4",
3
+ "version": "0.7.6",
4
4
  "description": "JavaScript SDK for Base44 API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -20,17 +20,18 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "axios": "^1.6.2",
23
- "socket.io-client": "^4.7.5"
23
+ "socket.io-client": "^4.7.5",
24
+ "uuid": "^13.0.0"
24
25
  },
25
26
  "devDependencies": {
26
- "vitest": "^1.0.0",
27
- "@vitest/ui": "^1.0.0",
28
27
  "@vitest/coverage-istanbul": "^1.0.0",
29
28
  "@vitest/coverage-v8": "^1.0.0",
29
+ "@vitest/ui": "^1.0.0",
30
30
  "dotenv": "^16.3.1",
31
31
  "eslint": "^8.54.0",
32
32
  "nock": "^13.4.0",
33
- "typescript": "^5.3.2"
33
+ "typescript": "^5.3.2",
34
+ "vitest": "^1.0.0"
34
35
  },
35
36
  "keywords": [
36
37
  "base44",