@base44-preview/sdk 0.8.4-pr.53.f19b952 → 0.8.5-pr.52.f01053f

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
@@ -125,6 +125,9 @@ export declare function createClient(config: {
125
125
  fetchLogs(params?: Record<string, any>): Promise<any>;
126
126
  getStats(params?: Record<string, any>): Promise<any>;
127
127
  };
128
+ users: {
129
+ inviteUser(user_email: string, role: "user" | "admin"): Promise<any>;
130
+ };
128
131
  cleanup: () => void;
129
132
  };
130
133
  export declare function createClientFromRequest(request: Request): {
@@ -229,5 +232,8 @@ export declare function createClientFromRequest(request: Request): {
229
232
  fetchLogs(params?: Record<string, any>): Promise<any>;
230
233
  getStats(params?: Record<string, any>): Promise<any>;
231
234
  };
235
+ users: {
236
+ inviteUser(user_email: string, role: "user" | "admin"): Promise<any>;
237
+ };
232
238
  cleanup: () => void;
233
239
  };
package/dist/client.js CHANGED
@@ -8,6 +8,7 @@ import { getAccessToken } from "./utils/auth-utils.js";
8
8
  import { createFunctionsModule } from "./modules/functions.js";
9
9
  import { createAgentsModule } from "./modules/agents.js";
10
10
  import { createAppLogsModule } from "./modules/app-logs.js";
11
+ import { createUsersModule } from "./modules/users.js";
11
12
  import { RoomsSocket } from "./utils/socket-utils.js";
12
13
  /**
13
14
  * Create a Base44 client instance
@@ -83,6 +84,7 @@ export function createClient(config) {
83
84
  token,
84
85
  }),
85
86
  appLogs: createAppLogsModule(axiosClient, appId),
87
+ users: createUsersModule(axiosClient, appId),
86
88
  cleanup: () => {
87
89
  socket.disconnect();
88
90
  },
@@ -172,7 +174,7 @@ export function createClientFromRequest(request) {
172
174
  const appId = request.headers.get("Base44-App-Id");
173
175
  const serverUrlHeader = request.headers.get("Base44-Api-Url");
174
176
  const functionsVersion = request.headers.get("Base44-Functions-Version");
175
- const clientIpHeader = request.headers.get("Base44-Client-IP");
177
+ const stateHeader = request.headers.get("Base44-State");
176
178
  if (!appId) {
177
179
  throw new Error("Base44-App-Id header is required, but is was not found on the request");
178
180
  }
@@ -197,8 +199,8 @@ export function createClientFromRequest(request) {
197
199
  }
198
200
  // Prepare additional headers to propagate
199
201
  const additionalHeaders = {};
200
- if (clientIpHeader) {
201
- additionalHeaders["Base44-Client-IP"] = clientIpHeader;
202
+ if (stateHeader) {
203
+ additionalHeaders["Base44-State"] = stateHeader;
202
204
  }
203
205
  return createClient({
204
206
  serverUrl: serverUrlHeader || "https://base44.app",
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createClient, createClientFromRequest, type Base44Client } from "./client.js";
2
2
  import { Base44Error } from "./utils/axios-client.js";
3
3
  import { getAccessToken, saveAccessToken, removeAccessToken, getLoginUrl } from "./utils/auth-utils.js";
4
- export { createClient, createClientFromRequest, Base44Error, getAccessToken, saveAccessToken, removeAccessToken, getLoginUrl, };
4
+ import { appParams } from "./utils/app-params.js";
5
+ export { createClient, createClientFromRequest, Base44Error, getAccessToken, saveAccessToken, removeAccessToken, getLoginUrl, appParams };
5
6
  export type { Base44Client };
6
7
  export * from "./types.js";
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createClient, createClientFromRequest } from "./client.js";
2
2
  import { Base44Error } from "./utils/axios-client.js";
3
3
  import { getAccessToken, saveAccessToken, removeAccessToken, getLoginUrl, } from "./utils/auth-utils.js";
4
- export { createClient, createClientFromRequest, Base44Error, getAccessToken, saveAccessToken, removeAccessToken, getLoginUrl, };
4
+ import { appParams } from "./utils/app-params.js";
5
+ export { createClient, createClientFromRequest, Base44Error, getAccessToken, saveAccessToken, removeAccessToken, getLoginUrl, appParams };
5
6
  export * from "./types.js";
@@ -0,0 +1,16 @@
1
+ import { AxiosInstance } from "axios";
2
+ /**
3
+ * Creates the users module for the Base44 SDK
4
+ * @param {AxiosInstance} axios - Axios instance
5
+ * @param {string} appId - Application ID
6
+ * @returns {Object} Users module
7
+ */
8
+ export declare function createUsersModule(axios: AxiosInstance, appId: string): {
9
+ /**
10
+ * Invite a user to the application
11
+ * @param {string} user_email - User's email address
12
+ * @param {'user'|'admin'} role - User's role (user or admin)
13
+ * @returns {Promise<any>}
14
+ */
15
+ inviteUser(user_email: string, role: "user" | "admin"): Promise<any>;
16
+ };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Creates the users module for the Base44 SDK
3
+ * @param {AxiosInstance} axios - Axios instance
4
+ * @param {string} appId - Application ID
5
+ * @returns {Object} Users module
6
+ */
7
+ export function createUsersModule(axios, appId) {
8
+ return {
9
+ /**
10
+ * Invite a user to the application
11
+ * @param {string} user_email - User's email address
12
+ * @param {'user'|'admin'} role - User's role (user or admin)
13
+ * @returns {Promise<any>}
14
+ */
15
+ async inviteUser(user_email, role) {
16
+ if (role !== "user" && role !== "admin") {
17
+ throw new Error(`Invalid role: "${role}". Role must be either "user" or "admin".`);
18
+ }
19
+ const response = await axios.post(`/apps/${appId}/runtime/users/invite-user`, { user_email, role });
20
+ return response;
21
+ },
22
+ };
23
+ }
@@ -0,0 +1,13 @@
1
+ export declare const appParams: {
2
+ appId?: undefined;
3
+ serverUrl?: undefined;
4
+ token?: undefined;
5
+ fromUrl?: undefined;
6
+ functionsVersion?: undefined;
7
+ } | {
8
+ appId: any;
9
+ serverUrl: any;
10
+ token: any;
11
+ fromUrl: any;
12
+ functionsVersion: any;
13
+ };
@@ -0,0 +1,44 @@
1
+ import { isBrowser } from './common';
2
+ const toSnakeCase = (str) => {
3
+ return str.replace(/([A-Z])/g, '_$1').toLowerCase();
4
+ };
5
+ const getAppParamValue = (paramName, { defaultValue = undefined, removeFromUrl = false } = {}) => {
6
+ const storageKey = `base44_${toSnakeCase(paramName)}`;
7
+ const urlParams = new URLSearchParams(window.location.search);
8
+ const searchParam = urlParams.get(paramName);
9
+ if (removeFromUrl) {
10
+ urlParams.delete(paramName);
11
+ const newUrl = `${window.location.pathname}${urlParams.toString() ? `?${urlParams.toString()}` : ""}${window.location.hash}`;
12
+ window.history.replaceState({}, document.title, newUrl);
13
+ }
14
+ if (searchParam) {
15
+ localStorage.setItem(storageKey, searchParam);
16
+ return searchParam;
17
+ }
18
+ if (defaultValue) {
19
+ localStorage.setItem(storageKey, defaultValue);
20
+ return defaultValue;
21
+ }
22
+ const storedValue = localStorage.getItem(storageKey);
23
+ if (storedValue) {
24
+ return storedValue;
25
+ }
26
+ return null;
27
+ };
28
+ const getAppParams = () => {
29
+ if (!isBrowser) {
30
+ return {};
31
+ }
32
+ if (getAppParamValue("clear_access_token") === 'true') {
33
+ localStorage.removeItem('base44_access_token');
34
+ localStorage.removeItem('token');
35
+ }
36
+ return {
37
+ appId: getAppParamValue("app_id", { defaultValue: import.meta.env.VITE_BASE44_APP_ID }),
38
+ serverUrl: getAppParamValue("server_url", { defaultValue: import.meta.env.VITE_BASE44_BACKEND_URL }),
39
+ token: getAppParamValue("access_token", { removeFromUrl: true }),
40
+ fromUrl: getAppParamValue("from_url", { defaultValue: window.location.href }),
41
+ functionsVersion: getAppParamValue("functions_version", { defaultValue: import.meta.env.VITE_BASE44_FUNCTIONS_VERSION }),
42
+ };
43
+ };
44
+ export const appParams = getAppParams();
@@ -1,2 +1,3 @@
1
1
  export declare const isNode: boolean;
2
+ export declare const isBrowser: boolean;
2
3
  export declare const isInIFrame: boolean;
@@ -1,2 +1,3 @@
1
1
  export const isNode = typeof window === "undefined";
2
- export const isInIFrame = !isNode && window.self !== window.top;
2
+ export const isBrowser = !isNode;
3
+ export const isInIFrame = isBrowser && window.self !== window.top;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@base44-preview/sdk",
3
- "version": "0.8.4-pr.53.f19b952",
3
+ "version": "0.8.5-pr.52.f01053f",
4
4
  "description": "JavaScript SDK for Base44 API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",