diff --git a/docs-mdx/README.md b/docs-mdx/README.md new file mode 100644 index 0000000..b0adb5a --- /dev/null +++ b/docs-mdx/README.md @@ -0,0 +1,40 @@ +--- +title: @base44/sdk +description: - createClient - createClientFromRequest - getAccessToken - +--- + +## Classes + +- [Base44Error](classes/Base44Error.md) + +## Interfaces + +- [AppMessageContent](interfaces/AppMessageContent.md) +- [AppConversationMessage](interfaces/AppConversationMessage.md) +- [AppConversationLike](interfaces/AppConversationLike.md) +- [DenoProjectLike](interfaces/DenoProjectLike.md) +- [AppLike](interfaces/AppLike.md) +- [UserLike](interfaces/UserLike.md) +- [UserEntityLike](interfaces/UserEntityLike.md) +- [AuthConfigLike](interfaces/AuthConfigLike.md) +- [LoginViaEmailPasswordResponse](interfaces/LoginViaEmailPasswordResponse.md) +- [AuthMethods](interfaces/AuthMethods.md) + +## Type Aliases + +- [Base44Client](types/Base44Client.md) +- [AgentConversation](types/AgentConversation.md) +- [AgentMessage](types/AgentMessage.md) +- [LoginInfoResponse](types/LoginInfoResponse.md) +- [ConnectorIntegrationType](types/ConnectorIntegrationType.md) +- [ConnectorAccessTokenResponse](types/ConnectorAccessTokenResponse.md) +- [ModelFilterParams](types/ModelFilterParams.md) + +## Functions + +- [createClient](functions/createClient.md) +- [createClientFromRequest](functions/createClientFromRequest.md) +- [getAccessToken](functions/getAccessToken.md) +- [saveAccessToken](functions/saveAccessToken.md) +- [removeAccessToken](functions/removeAccessToken.md) +- [getLoginUrl](functions/getLoginUrl.md) diff --git a/docs-mdx/classes/Base44Error.md b/docs-mdx/classes/Base44Error.md new file mode 100644 index 0000000..05028d9 --- /dev/null +++ b/docs-mdx/classes/Base44Error.md @@ -0,0 +1,100 @@ +--- +title: "Class: Base44Error" +description: "utils/axios-client.ts:27" +--- + +## Hierarchy + +- `Error` + + ↳ **`Base44Error`** + +## Constructors + +### constructor + +• **new Base44Error**(`message`, `status`, `code`, `data`, `originalError`): [`Base44Error`](Base44Error.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `message` | `string` | +| `status` | `number` | +| `code` | `string` | +| `data` | `any` | +| `originalError` | `unknown` | + +#### Returns + +[`Base44Error`](Base44Error.md) + +#### Overrides + +Error.constructor + +#### Defined in + +[utils/axios-client.ts:11](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L11) + +## Properties + +### status + +• **status**: `number` + +#### Defined in + +[utils/axios-client.ts:6](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L6) + +___ + +### code + +• **code**: `string` + +#### Defined in + +[utils/axios-client.ts:7](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L7) + +___ + +### data + +• **data**: `any` + +#### Defined in + +[utils/axios-client.ts:8](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L8) + +___ + +### originalError + +• **originalError**: `unknown` + +#### Defined in + +[utils/axios-client.ts:9](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L9) + +## Methods + +### toJSON + +▸ **toJSON**(): `Object` + +#### Returns + +`Object` + +| Name | Type | +| :------ | :------ | +| `name` | `string` | +| `message` | `string` | +| `status` | `number` | +| `code` | `string` | +| `data` | `any` | + +#### Defined in + +[utils/axios-client.ts:27](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L27) diff --git a/docs-mdx/functions/createClient.md b/docs-mdx/functions/createClient.md new file mode 100644 index 0000000..eb0d04f --- /dev/null +++ b/docs-mdx/functions/createClient.md @@ -0,0 +1,82 @@ +--- +title: "Function: createClient" +description: "client.ts:30" +--- + +▸ **createClient**(`config`): `Object` + +Create a Base44 client instance + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `config` | `Object` | Client configuration | +| `config.serverUrl?` | `string` | API server URL | +| `config.appBaseUrl?` | `string` | Application base URL | +| `config.appId` | `string` | Application ID | +| `config.token?` | `string` | Authentication token | +| `config.serviceToken?` | `string` | Service role authentication token | +| `config.requiresAuth?` | `boolean` | Whether the app requires authentication | +| `config.functionsVersion?` | `string` | - | +| `config.headers?` | `Record`\<..., ...\> | - | +| `config.options?` | `CreateClientOptions` | - | + +#### Returns + +[**Base44Client**](../types/Base44Client.md) + +Base44 client instance + +
+View full type definition + +| Name | Type | +| :------ | :------ | +| `entities` | {} | +| `integrations` | {} | +| `auth` | [`AuthMethods`](../interfaces/AuthMethods.md) | +| `functions` | \{ `invoke`: (`functionName`: `string`, `data`: `Record`\<..., ...\>) => `Promise`\<...\> } | +| `functions.invoke` | [object Object] | +| `agents` | \{ `getConversations`: () => ... ; `getConversation`: (`conversationId`: ...) => ... ; `listConversations`: (`filterParams`: ...) => ... ; `createConversation`: (`conversation`: ...) => ... ; `addMessage`: (`conversation`: ..., `message`: ...) => ... ; `subscribeToConversation`: (`conversationId`: ..., `onUpdate?`: ...) => ... ; `getWhatsAppConnectURL`: (`agentName`: ...) => ... } | +| `agents.getConversations` | () => ... | +| `agents.getConversation` | (`conversationId`: ...) => ... | +| `agents.listConversations` | (`filterParams`: ...) => ... | +| `agents.createConversation` | (`conversation`: ...) => ... | +| `agents.addMessage` | (`conversation`: ..., `message`: ...) => ... | +| `agents.subscribeToConversation` | (`conversationId`: ..., `onUpdate?`: ...) => ... | +| `agents.getWhatsAppConnectURL` | (`agentName`: ...) => ... | +| `appLogs` | \{ `logUserInApp`: (`pageName`: `string`) => `Promise`\<...\> ; `fetchLogs`: (`params`: `Record`\<..., ...\>) => `Promise`\<...\> ; `getStats`: (`params`: `Record`\<..., ...\>) => `Promise`\<...\> } | +| `appLogs.logUserInApp` | [object Object] | +| `appLogs.fetchLogs` | [object Object] | +| `appLogs.getStats` | [object Object] | +| `cleanup` | () => `void` | +| `setToken` | (`newToken`: `string`) => `void` | +| `getConfig` | () => \{ `serverUrl`: `string` ; `appId`: `string` ; `requiresAuth`: `boolean` } | +| `asServiceRole` | \{ `entities`: {} ; `integrations`: {} ; `sso`: \{ `getAccessToken`: (`userid`: ...) => ... } ; `connectors`: \{ `getAccessToken`: (`integrationType`: ...) => ... } ; `functions`: \{ `invoke`: (`functionName`: ..., `data`: ...) => ... } ; `agents`: \{ `getConversations`: ... ; `getConversation`: ... ; `listConversations`: ... ; `createConversation`: ... ; `addMessage`: ... ; `subscribeToConversation`: ... ; `getWhatsAppConnectURL`: ... } ; `appLogs`: \{ `logUserInApp`: (`pageName`: ...) => ... ; `fetchLogs`: (`params`: ...) => ... ; `getStats`: (`params`: ...) => ... } ; `cleanup`: () => ... } | +| `asServiceRole.entities` | {} | +| `asServiceRole.integrations` | {} | +| `asServiceRole.sso` | \{ `getAccessToken`: (`userid`: ...) => ... } | +| `asServiceRole.sso.getAccessToken` | [object Object] | +| `asServiceRole.connectors` | \{ `getAccessToken`: (`integrationType`: ...) => ... } | +| `asServiceRole.connectors.getAccessToken` | [object Object] | +| `asServiceRole.functions` | \{ `invoke`: (`functionName`: ..., `data`: ...) => ... } | +| `asServiceRole.functions.invoke` | [object Object] | +| `asServiceRole.agents` | \{ `getConversations`: ... ; `getConversation`: ... ; `listConversations`: ... ; `createConversation`: ... ; `addMessage`: ... ; `subscribeToConversation`: ... ; `getWhatsAppConnectURL`: ... } | +| `asServiceRole.agents.getConversations` | ... | +| `asServiceRole.agents.getConversation` | ... | +| `asServiceRole.agents.listConversations` | ... | +| `asServiceRole.agents.createConversation` | ... | +| `asServiceRole.agents.addMessage` | ... | +| `asServiceRole.agents.subscribeToConversation` | ... | +| `asServiceRole.agents.getWhatsAppConnectURL` | ... | +| `asServiceRole.appLogs` | \{ `logUserInApp`: (`pageName`: ...) => ... ; `fetchLogs`: (`params`: ...) => ... ; `getStats`: (`params`: ...) => ... } | +| `asServiceRole.appLogs.logUserInApp` | [object Object] | +| `asServiceRole.appLogs.fetchLogs` | [object Object] | +| `asServiceRole.appLogs.getStats` | [object Object] | +| `asServiceRole.cleanup` | () => ... | + +
+#### Defined in + +[client.ts:30](https://github.com/base44-dev/javascript-sdk/blob/main/src/client.ts#L30) diff --git a/docs-mdx/functions/createClientFromRequest.md b/docs-mdx/functions/createClientFromRequest.md new file mode 100644 index 0000000..385772e --- /dev/null +++ b/docs-mdx/functions/createClientFromRequest.md @@ -0,0 +1,65 @@ +--- +title: "Function: createClientFromRequest" +description: "client.ts:215" +--- + +▸ **createClientFromRequest**(`request`): `Object` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `request` | `Request` | + +#### Returns + +`Object` + +| Name | Type | +| :------ | :------ | +| `entities` | {} | +| `integrations` | {} | +| `auth` | [`AuthMethods`](../interfaces/AuthMethods.md) | +| `functions` | \{ `invoke`: (`functionName`: `string`, `data`: `Record`\<..., ...\>) => `Promise`\<...\> } | +| `functions.invoke` | [object Object] | +| `agents` | \{ `getConversations`: () => ... ; `getConversation`: (`conversationId`: ...) => ... ; `listConversations`: (`filterParams`: ...) => ... ; `createConversation`: (`conversation`: ...) => ... ; `addMessage`: (`conversation`: ..., `message`: ...) => ... ; `subscribeToConversation`: (`conversationId`: ..., `onUpdate?`: ...) => ... ; `getWhatsAppConnectURL`: (`agentName`: ...) => ... } | +| `agents.getConversations` | () => ... | +| `agents.getConversation` | (`conversationId`: ...) => ... | +| `agents.listConversations` | (`filterParams`: ...) => ... | +| `agents.createConversation` | (`conversation`: ...) => ... | +| `agents.addMessage` | (`conversation`: ..., `message`: ...) => ... | +| `agents.subscribeToConversation` | (`conversationId`: ..., `onUpdate?`: ...) => ... | +| `agents.getWhatsAppConnectURL` | (`agentName`: ...) => ... | +| `appLogs` | \{ `logUserInApp`: (`pageName`: `string`) => `Promise`\<...\> ; `fetchLogs`: (`params`: `Record`\<..., ...\>) => `Promise`\<...\> ; `getStats`: (`params`: `Record`\<..., ...\>) => `Promise`\<...\> } | +| `appLogs.logUserInApp` | [object Object] | +| `appLogs.fetchLogs` | [object Object] | +| `appLogs.getStats` | [object Object] | +| `cleanup` | () => `void` | +| `setToken` | (`newToken`: `string`) => `void` | +| `getConfig` | () => \{ `serverUrl`: `string` ; `appId`: `string` ; `requiresAuth`: `boolean` } | +| `asServiceRole` | \{ `entities`: {} ; `integrations`: {} ; `sso`: \{ `getAccessToken`: (`userid`: ...) => ... } ; `connectors`: \{ `getAccessToken`: (`integrationType`: ...) => ... } ; `functions`: \{ `invoke`: (`functionName`: ..., `data`: ...) => ... } ; `agents`: \{ `getConversations`: ... ; `getConversation`: ... ; `listConversations`: ... ; `createConversation`: ... ; `addMessage`: ... ; `subscribeToConversation`: ... ; `getWhatsAppConnectURL`: ... } ; `appLogs`: \{ `logUserInApp`: (`pageName`: ...) => ... ; `fetchLogs`: (`params`: ...) => ... ; `getStats`: (`params`: ...) => ... } ; `cleanup`: () => ... } | +| `asServiceRole.entities` | {} | +| `asServiceRole.integrations` | {} | +| `asServiceRole.sso` | \{ `getAccessToken`: (`userid`: ...) => ... } | +| `asServiceRole.sso.getAccessToken` | [object Object] | +| `asServiceRole.connectors` | \{ `getAccessToken`: (`integrationType`: ...) => ... } | +| `asServiceRole.connectors.getAccessToken` | [object Object] | +| `asServiceRole.functions` | \{ `invoke`: (`functionName`: ..., `data`: ...) => ... } | +| `asServiceRole.functions.invoke` | [object Object] | +| `asServiceRole.agents` | \{ `getConversations`: ... ; `getConversation`: ... ; `listConversations`: ... ; `createConversation`: ... ; `addMessage`: ... ; `subscribeToConversation`: ... ; `getWhatsAppConnectURL`: ... } | +| `asServiceRole.agents.getConversations` | ... | +| `asServiceRole.agents.getConversation` | ... | +| `asServiceRole.agents.listConversations` | ... | +| `asServiceRole.agents.createConversation` | ... | +| `asServiceRole.agents.addMessage` | ... | +| `asServiceRole.agents.subscribeToConversation` | ... | +| `asServiceRole.agents.getWhatsAppConnectURL` | ... | +| `asServiceRole.appLogs` | \{ `logUserInApp`: (`pageName`: ...) => ... ; `fetchLogs`: (`params`: ...) => ... ; `getStats`: (`params`: ...) => ... } | +| `asServiceRole.appLogs.logUserInApp` | [object Object] | +| `asServiceRole.appLogs.fetchLogs` | [object Object] | +| `asServiceRole.appLogs.getStats` | [object Object] | +| `asServiceRole.cleanup` | () => ... | + +#### Defined in + +[client.ts:215](https://github.com/base44-dev/javascript-sdk/blob/main/src/client.ts#L215) diff --git a/docs-mdx/functions/getAccessToken.md b/docs-mdx/functions/getAccessToken.md new file mode 100644 index 0000000..d767ab2 --- /dev/null +++ b/docs-mdx/functions/getAccessToken.md @@ -0,0 +1,28 @@ +--- +title: "Function: getAccessToken" +description: "utils/auth-utils.ts:15" +--- + +▸ **getAccessToken**(`options?`): ``null`` \| `string` + +Retrieves an access token from either localStorage or URL parameters + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `options` | `Object` | Configuration options | +| `options.storageKey?` | `string` | The key to use in localStorage | +| `options.paramName?` | `string` | The URL parameter name | +| `options.saveToStorage?` | `boolean` | Whether to save the token to localStorage if found in URL | +| `options.removeFromUrl?` | `boolean` | Whether to remove the token from URL after retrieval | + +#### Returns + +``null`` \| `string` + +The access token or null if not found + +#### Defined in + +[utils/auth-utils.ts:15](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/auth-utils.ts#L15) diff --git a/docs-mdx/functions/getLoginUrl.md b/docs-mdx/functions/getLoginUrl.md new file mode 100644 index 0000000..ee03d8f --- /dev/null +++ b/docs-mdx/functions/getLoginUrl.md @@ -0,0 +1,28 @@ +--- +title: "Function: getLoginUrl" +description: "utils/auth-utils.ts:138" +--- + +▸ **getLoginUrl**(`nextUrl`, `options`): `string` + +Constructs the absolute URL for the login page + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `nextUrl` | `string` | URL to redirect back to after login | +| `options` | `Object` | Configuration options | +| `options.serverUrl` | `string` | Server URL (e.g., 'https://base44.app') | +| `options.appId` | `string` | Application ID | +| `options.loginPath?` | `string` | Path to the login endpoint | + +#### Returns + +`string` + +The complete login URL + +#### Defined in + +[utils/auth-utils.ts:138](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/auth-utils.ts#L138) diff --git a/docs-mdx/functions/removeAccessToken.md b/docs-mdx/functions/removeAccessToken.md new file mode 100644 index 0000000..3a0b05d --- /dev/null +++ b/docs-mdx/functions/removeAccessToken.md @@ -0,0 +1,25 @@ +--- +title: "Function: removeAccessToken" +description: "utils/auth-utils.ts:112" +--- + +▸ **removeAccessToken**(`options`): `boolean` + +Removes the access token from localStorage + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `options` | `Object` | Configuration options | +| `options.storageKey?` | `string` | The key to use in localStorage | + +#### Returns + +`boolean` + +Success status + +#### Defined in + +[utils/auth-utils.ts:112](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/auth-utils.ts#L112) diff --git a/docs-mdx/functions/saveAccessToken.md b/docs-mdx/functions/saveAccessToken.md new file mode 100644 index 0000000..6103eed --- /dev/null +++ b/docs-mdx/functions/saveAccessToken.md @@ -0,0 +1,26 @@ +--- +title: "Function: saveAccessToken" +description: "utils/auth-utils.ts:82" +--- + +▸ **saveAccessToken**(`token`, `options`): `boolean` + +Saves an access token to localStorage + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `token` | `string` | The access token to save | +| `options` | `Object` | Configuration options | +| `options.storageKey?` | `string` | The key to use in localStorage | + +#### Returns + +`boolean` + +Success status + +#### Defined in + +[utils/auth-utils.ts:82](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/auth-utils.ts#L82) diff --git a/docs-mdx/interfaces/AppConversationLike.md b/docs-mdx/interfaces/AppConversationLike.md new file mode 100644 index 0000000..082b2c8 --- /dev/null +++ b/docs-mdx/interfaces/AppConversationLike.md @@ -0,0 +1,44 @@ +--- +title: "Interface: AppConversationLike" +description: "modules/app.types.ts:20" +--- + +## Properties + +### id + +• `Optional` **id**: ``null`` \| `string` + +#### Defined in + +[modules/app.types.ts:17](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L17) + +___ + +### messages + +• `Optional` **messages**: ``null`` \| [`AppMessageContent`](AppMessageContent.md)[] + +#### Defined in + +[modules/app.types.ts:18](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L18) + +___ + +### model + +• `Optional` **model**: `string` + +#### Defined in + +[modules/app.types.ts:19](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L19) + +___ + +### functions\_fail\_silently + +• `Optional` **functions\_fail\_silently**: `boolean` + +#### Defined in + +[modules/app.types.ts:20](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L20) diff --git a/docs-mdx/interfaces/AppConversationMessage.md b/docs-mdx/interfaces/AppConversationMessage.md new file mode 100644 index 0000000..bfafc36 --- /dev/null +++ b/docs-mdx/interfaces/AppConversationMessage.md @@ -0,0 +1,86 @@ +--- +title: "Interface: AppConversationMessage" +description: "modules/app.types.ts:13" +--- + +## Hierarchy + +- [`AppMessageContent`](AppMessageContent.md) + + ↳ **`AppConversationMessage`** + +## Properties + +### content + +• `Optional` **content**: `string` + +#### Inherited from + +[AppMessageContent](AppMessageContent.md).[content](AppMessageContent.md#content) + +#### Defined in + +[modules/app.types.ts:4](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L4) + +___ + +### file\_urls + +• `Optional` **file\_urls**: `string`[] + +#### Inherited from + +[AppMessageContent](AppMessageContent.md).[file_urls](AppMessageContent.md#file_urls) + +#### Defined in + +[modules/app.types.ts:5](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L5) + +___ + +### custom\_context + +• `Optional` **custom\_context**: `unknown` + +#### Inherited from + +[AppMessageContent](AppMessageContent.md).[custom_context](AppMessageContent.md#custom_context) + +#### Defined in + +[modules/app.types.ts:6](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L6) + +___ + +### additional\_message\_params + +• `Optional` **additional\_message\_params**: `Record`\<`string`, `unknown`\> + +#### Inherited from + +[AppMessageContent](AppMessageContent.md).[additional_message_params](AppMessageContent.md#additional_message_params) + +#### Defined in + +[modules/app.types.ts:7](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L7) + +___ + +### id + +• `Optional` **id**: ``null`` \| `string` + +#### Defined in + +[modules/app.types.ts:12](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L12) + +___ + +### role + +• `Optional` **role**: `string` + +#### Defined in + +[modules/app.types.ts:13](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L13) diff --git a/docs-mdx/interfaces/AppLike.md b/docs-mdx/interfaces/AppLike.md new file mode 100644 index 0000000..f03ad4d --- /dev/null +++ b/docs-mdx/interfaces/AppLike.md @@ -0,0 +1,480 @@ +--- +title: "Interface: AppLike" +description: "modules/app.types.ts:82" +--- + +## Properties + +### id + +• `Optional` **id**: `string` + +#### Defined in + +[modules/app.types.ts:33](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L33) + +___ + +### conversation + +• `Optional` **conversation**: ``null`` \| [`AppConversationLike`](AppConversationLike.md) + +#### Defined in + +[modules/app.types.ts:34](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L34) + +___ + +### app\_stage + +• `Optional` **app\_stage**: `string` + +#### Defined in + +[modules/app.types.ts:35](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L35) + +___ + +### created\_date + +• `Optional` **created\_date**: `string` + +#### Defined in + +[modules/app.types.ts:36](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L36) + +___ + +### updated\_date + +• `Optional` **updated\_date**: `string` + +#### Defined in + +[modules/app.types.ts:37](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L37) + +___ + +### created\_by + +• `Optional` **created\_by**: `string` + +#### Defined in + +[modules/app.types.ts:38](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L38) + +___ + +### organization\_id + +• `Optional` **organization\_id**: `string` + +#### Defined in + +[modules/app.types.ts:39](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L39) + +___ + +### name + +• `Optional` **name**: `string` + +#### Defined in + +[modules/app.types.ts:40](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L40) + +___ + +### user\_description + +• `Optional` **user\_description**: `string` + +#### Defined in + +[modules/app.types.ts:41](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L41) + +___ + +### entities + +• `Optional` **entities**: `Record`\<`string`, `any`\> + +#### Defined in + +[modules/app.types.ts:42](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L42) + +___ + +### additional\_user\_data\_schema + +• `Optional` **additional\_user\_data\_schema**: `any` + +#### Defined in + +[modules/app.types.ts:43](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L43) + +___ + +### pages + +• `Optional` **pages**: `Object` + +#### Index signature + +▪ [key: `string`]: `string` + +#### Defined in + +[modules/app.types.ts:44](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L44) + +___ + +### components + +• **components**: `Object` + +#### Index signature + +▪ [key: `string`]: `any` + +#### Defined in + +[modules/app.types.ts:45](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L45) + +___ + +### layout + +• `Optional` **layout**: `string` + +#### Defined in + +[modules/app.types.ts:46](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L46) + +___ + +### globals\_css + +• `Optional` **globals\_css**: `string` + +#### Defined in + +[modules/app.types.ts:47](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L47) + +___ + +### agents + +• `Optional` **agents**: `Record`\<`string`, `any`\> + +#### Defined in + +[modules/app.types.ts:48](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L48) + +___ + +### logo\_url + +• `Optional` **logo\_url**: `string` + +#### Defined in + +[modules/app.types.ts:49](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L49) + +___ + +### slug + +• `Optional` **slug**: `string` + +#### Defined in + +[modules/app.types.ts:50](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L50) + +___ + +### public\_settings + +• `Optional` **public\_settings**: `string` + +#### Defined in + +[modules/app.types.ts:51](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L51) + +___ + +### is\_blocked + +• `Optional` **is\_blocked**: `boolean` + +#### Defined in + +[modules/app.types.ts:52](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L52) + +___ + +### github\_repo\_url + +• `Optional` **github\_repo\_url**: `string` + +#### Defined in + +[modules/app.types.ts:53](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L53) + +___ + +### main\_page + +• `Optional` **main\_page**: `string` + +#### Defined in + +[modules/app.types.ts:54](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L54) + +___ + +### installable\_integrations + +• `Optional` **installable\_integrations**: `any` + +#### Defined in + +[modules/app.types.ts:55](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L55) + +___ + +### backend\_project + +• `Optional` **backend\_project**: [`DenoProjectLike`](DenoProjectLike.md) + +#### Defined in + +[modules/app.types.ts:56](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L56) + +___ + +### last\_deployed\_at + +• `Optional` **last\_deployed\_at**: `string` + +#### Defined in + +[modules/app.types.ts:57](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L57) + +___ + +### is\_remixable + +• `Optional` **is\_remixable**: `boolean` + +#### Defined in + +[modules/app.types.ts:58](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L58) + +___ + +### remixed\_from\_app\_id + +• `Optional` **remixed\_from\_app\_id**: `string` + +#### Defined in + +[modules/app.types.ts:59](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L59) + +___ + +### hide\_entity\_created\_by + +• `Optional` **hide\_entity\_created\_by**: `boolean` + +#### Defined in + +[modules/app.types.ts:60](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L60) + +___ + +### platform\_version + +• `Optional` **platform\_version**: `number` + +#### Defined in + +[modules/app.types.ts:61](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L61) + +___ + +### enable\_username\_password + +• `Optional` **enable\_username\_password**: `boolean` + +#### Defined in + +[modules/app.types.ts:62](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L62) + +___ + +### auth\_config + +• `Optional` **auth\_config**: [`AuthConfigLike`](AuthConfigLike.md) + +#### Defined in + +[modules/app.types.ts:63](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L63) + +___ + +### status + +• `Optional` **status**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `state?` | ... \| ... | +| `details?` | `any` | +| `last_updated_date?` | ... \| ... | + +#### Defined in + +[modules/app.types.ts:64](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L64) + +___ + +### custom\_instructions + +• `Optional` **custom\_instructions**: `any` + +#### Defined in + +[modules/app.types.ts:69](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L69) + +___ + +### frozen\_files + +• `Optional` **frozen\_files**: `string`[] + +#### Defined in + +[modules/app.types.ts:70](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L70) + +___ + +### deep\_coding\_mode + +• `Optional` **deep\_coding\_mode**: `boolean` + +#### Defined in + +[modules/app.types.ts:71](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L71) + +___ + +### needs\_to\_add\_diff + +• `Optional` **needs\_to\_add\_diff**: `boolean` + +#### Defined in + +[modules/app.types.ts:72](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L72) + +___ + +### installed\_integration\_context\_items + +• `Optional` **installed\_integration\_context\_items**: `any`[] + +#### Defined in + +[modules/app.types.ts:73](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L73) + +___ + +### model + +• `Optional` **model**: `string` + +#### Defined in + +[modules/app.types.ts:74](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L74) + +___ + +### is\_starred + +• `Optional` **is\_starred**: `boolean` + +#### Defined in + +[modules/app.types.ts:75](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L75) + +___ + +### agents\_enabled + +• `Optional` **agents\_enabled**: `boolean` + +#### Defined in + +[modules/app.types.ts:76](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L76) + +___ + +### categories + +• `Optional` **categories**: `string`[] + +#### Defined in + +[modules/app.types.ts:77](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L77) + +___ + +### functions + +• `Optional` **functions**: `any` + +#### Defined in + +[modules/app.types.ts:78](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L78) + +___ + +### function\_names + +• `Optional` **function\_names**: `string`[] + +#### Defined in + +[modules/app.types.ts:79](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L79) + +___ + +### user\_entity + +• `Optional` **user\_entity**: [`UserEntityLike`](UserEntityLike.md) + +#### Defined in + +[modules/app.types.ts:80](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L80) + +___ + +### app\_code\_hash + +• `Optional` **app\_code\_hash**: `string` + +#### Defined in + +[modules/app.types.ts:81](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L81) + +___ + +### has\_backend\_functions\_enabled + +• `Optional` **has\_backend\_functions\_enabled**: `boolean` + +#### Defined in + +[modules/app.types.ts:82](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L82) diff --git a/docs-mdx/interfaces/AppMessageContent.md b/docs-mdx/interfaces/AppMessageContent.md new file mode 100644 index 0000000..e09a0c2 --- /dev/null +++ b/docs-mdx/interfaces/AppMessageContent.md @@ -0,0 +1,54 @@ +--- +title: "Interface: AppMessageContent" +description: "modules/app.types.ts:7" +--- + +## Hierarchy + +- **`AppMessageContent`** + + ↳ [`AppConversationMessage`](AppConversationMessage.md) + +## Indexable + +▪ [key: `string`]: `unknown` + +## Properties + +### content + +• `Optional` **content**: `string` + +#### Defined in + +[modules/app.types.ts:4](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L4) + +___ + +### file\_urls + +• `Optional` **file\_urls**: `string`[] + +#### Defined in + +[modules/app.types.ts:5](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L5) + +___ + +### custom\_context + +• `Optional` **custom\_context**: `unknown` + +#### Defined in + +[modules/app.types.ts:6](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L6) + +___ + +### additional\_message\_params + +• `Optional` **additional\_message\_params**: `Record`\<`string`, `unknown`\> + +#### Defined in + +[modules/app.types.ts:7](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L7) diff --git a/docs-mdx/interfaces/AuthConfigLike.md b/docs-mdx/interfaces/AuthConfigLike.md new file mode 100644 index 0000000..941dae8 --- /dev/null +++ b/docs-mdx/interfaces/AuthConfigLike.md @@ -0,0 +1,64 @@ +--- +title: "Interface: AuthConfigLike" +description: "modules/app.types.ts:118" +--- + +## Properties + +### enable\_username\_password + +• `Optional` **enable\_username\_password**: `boolean` + +#### Defined in + +[modules/app.types.ts:113](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L113) + +___ + +### enable\_google\_login + +• `Optional` **enable\_google\_login**: `boolean` + +#### Defined in + +[modules/app.types.ts:114](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L114) + +___ + +### enable\_microsoft\_login + +• `Optional` **enable\_microsoft\_login**: `boolean` + +#### Defined in + +[modules/app.types.ts:115](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L115) + +___ + +### enable\_facebook\_login + +• `Optional` **enable\_facebook\_login**: `boolean` + +#### Defined in + +[modules/app.types.ts:116](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L116) + +___ + +### sso\_provider\_name + +• `Optional` **sso\_provider\_name**: `string` + +#### Defined in + +[modules/app.types.ts:117](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L117) + +___ + +### enable\_sso\_login + +• `Optional` **enable\_sso\_login**: `boolean` + +#### Defined in + +[modules/app.types.ts:118](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L118) diff --git a/docs-mdx/interfaces/AuthMethods.md b/docs-mdx/interfaces/AuthMethods.md new file mode 100644 index 0000000..31d3cdf --- /dev/null +++ b/docs-mdx/interfaces/AuthMethods.md @@ -0,0 +1,384 @@ +--- +title: "Interface: AuthMethods" +description: "modules/auth.ts:166" +--- + +Public auth methods available from the SDK. +Document only the methods you want to expose and support. + +## Methods + +### me + +▸ **me**(): `Promise`\<`any`\> + +Get current user information + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +import { createClient, getAccessToken } from '@base44/sdk'; + +const client = createClient({ appId: 'your-app-id', token: getAccessToken() }); +const user = await client.auth.me(); +console.log(user); +``` + +#### Defined in + +[modules/auth.ts:24](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L24) + +___ + +### redirectToLogin + +▸ **redirectToLogin**(`nextUrl`): `void` + +Redirects the user to the app's login page + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `nextUrl` | `string` | + +#### Returns + +`void` + +**`Example`** + +```ts +// Redirect and return to current route after login +client.auth.redirectToLogin(window.location.pathname); +``` + +#### Defined in + +[modules/auth.ts:38](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L38) + +___ + +### logout + +▸ **logout**(`redirectUrl?`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `redirectUrl?` | `string` | + +#### Returns + +`void` + +**`Example`** + +```ts +// Reload the page after logout +client.auth.logout(); + +// Or redirect to a login page +client.auth.logout('/login'); +``` + +#### Defined in + +[modules/auth.ts:54](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L54) + +___ + +### setToken + +▸ **setToken**(`token`, `saveToStorage?`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `token` | `string` | +| `saveToStorage?` | `boolean` | + +#### Returns + +`void` + +**`Example`** + +```ts +// After obtaining a token from your auth flow +client.auth.setToken(accessToken); +``` + +#### Defined in + +[modules/auth.ts:68](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L68) + +___ + +### loginViaEmailPassword + +▸ **loginViaEmailPassword**(`email`, `password`, `turnstileToken?`): `Promise`\<[`LoginViaEmailPasswordResponse`](LoginViaEmailPasswordResponse.md)\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `email` | `string` | +| `password` | `string` | +| `turnstileToken?` | `string` | + +#### Returns + +`Promise`\<`LoginViaEmailPasswordResponse`\> + +**Return Object Properties:** + +| Property | Type | +| :------ | :------ | +| `access_token` | `string` | +| `user` | `any` | + + +**`Example`** + +```ts +const { access_token, user } = await client.auth.loginViaEmailPassword( + 'user@example.com', + 's3cret' +); +client.auth.setToken(access_token); +``` + +#### Defined in + +[modules/auth.ts:84](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L84) + +___ + +### isAuthenticated + +▸ **isAuthenticated**(): `Promise`\<`boolean`\> + +Verify if the current token is valid + +#### Returns + +`Promise`\<`boolean`\> + +**`Example`** + +```ts +const ok = await client.auth.isAuthenticated(); +if (!ok) client.auth.redirectToLogin('/dashboard'); +``` + +#### Defined in + +[modules/auth.ts:98](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L98) + +___ + +### inviteUser + +▸ **inviteUser**(`userEmail`, `role`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `userEmail` | `string` | +| `role` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.inviteUser('new-user@example.com', 'member'); +``` + +#### Defined in + +[modules/auth.ts:106](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L106) + +___ + +### register + +▸ **register**(`payload`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `payload` | `Object` | +| `payload.email` | `string` | +| `payload.password` | `string` | +| `payload.turnstile_token?` | ``null`` \| `string` | +| `payload.referral_code?` | ``null`` \| `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.register({ + email: 'user@example.com', + password: 's3cret', +}); +``` + +#### Defined in + +[modules/auth.ts:117](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L117) + +___ + +### verifyOtp + +▸ **verifyOtp**(`args`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `args` | `Object` | +| `args.email` | `string` | +| `args.otpCode` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.verifyOtp({ email: 'user@example.com', otpCode: '123456' }); +``` + +#### Defined in + +[modules/auth.ts:130](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L130) + +___ + +### resendOtp + +▸ **resendOtp**(`email`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `email` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.resendOtp('user@example.com'); +``` + +#### Defined in + +[modules/auth.ts:138](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L138) + +___ + +### resetPasswordRequest + +▸ **resetPasswordRequest**(`email`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `email` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.resetPasswordRequest('user@example.com'); +``` + +#### Defined in + +[modules/auth.ts:146](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L146) + +___ + +### resetPassword + +▸ **resetPassword**(`args`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `args` | `Object` | +| `args.resetToken` | `string` | +| `args.newPassword` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.resetPassword({ resetToken: 'token', newPassword: 'newPass123' }); +``` + +#### Defined in + +[modules/auth.ts:154](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L154) + +___ + +### changePassword + +▸ **changePassword**(`args`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `args` | `Object` | +| `args.userId` | `string` | +| `args.currentPassword` | `string` | +| `args.newPassword` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.changePassword({ + userId: 'abc123', + currentPassword: 'oldPass', + newPassword: 'newPass123', +}); +``` + +#### Defined in + +[modules/auth.ts:166](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L166) diff --git a/docs-mdx/interfaces/DenoProjectLike.md b/docs-mdx/interfaces/DenoProjectLike.md new file mode 100644 index 0000000..8ba77ab --- /dev/null +++ b/docs-mdx/interfaces/DenoProjectLike.md @@ -0,0 +1,44 @@ +--- +title: "Interface: DenoProjectLike" +description: "modules/app.types.ts:28" +--- + +## Properties + +### project\_id + +• **project\_id**: `string` + +#### Defined in + +[modules/app.types.ts:25](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L25) + +___ + +### project\_name + +• **project\_name**: `string` + +#### Defined in + +[modules/app.types.ts:26](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L26) + +___ + +### app\_id + +• **app\_id**: `string` + +#### Defined in + +[modules/app.types.ts:27](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L27) + +___ + +### deployment\_name\_to\_info + +• **deployment\_name\_to\_info**: `Record`\<`string`, \{ `id`: `string` ; `code`: `string` }\> + +#### Defined in + +[modules/app.types.ts:28](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L28) diff --git a/docs-mdx/interfaces/UserEntityLike.md b/docs-mdx/interfaces/UserEntityLike.md new file mode 100644 index 0000000..14a9976 --- /dev/null +++ b/docs-mdx/interfaces/UserEntityLike.md @@ -0,0 +1,62 @@ +--- +title: "Interface: UserEntityLike" +description: "modules/app.types.ts:108" +--- + +## Properties + +### type + +• **type**: `string` + +#### Defined in + +[modules/app.types.ts:90](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L90) + +___ + +### name + +• **name**: `string` + +#### Defined in + +[modules/app.types.ts:91](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L91) + +___ + +### title + +• `Optional` **title**: `string` + +#### Defined in + +[modules/app.types.ts:92](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L92) + +___ + +### properties + +• `Optional` **properties**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `role?` | ... \| ... | +| `email?` | ... \| ... | +| `full_name?` | ... \| ... | + +#### Defined in + +[modules/app.types.ts:93](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L93) + +___ + +### required + +• **required**: `string`[] + +#### Defined in + +[modules/app.types.ts:108](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L108) diff --git a/docs-mdx/interfaces/UserLike.md b/docs-mdx/interfaces/UserLike.md new file mode 100644 index 0000000..80bf64a --- /dev/null +++ b/docs-mdx/interfaces/UserLike.md @@ -0,0 +1,14 @@ +--- +title: "Interface: UserLike" +description: "modules/app.types.ts:86" +--- + +## Properties + +### id + +• `Optional` **id**: ``null`` \| `string` + +#### Defined in + +[modules/app.types.ts:86](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L86) diff --git a/docs-mdx/types/AgentConversation.md b/docs-mdx/types/AgentConversation.md new file mode 100644 index 0000000..f68d9ce --- /dev/null +++ b/docs-mdx/types/AgentConversation.md @@ -0,0 +1,21 @@ +--- +title: "Type alias: AgentConversation" +description: "modules/agents.types.ts:1" +--- + +Ƭ **AgentConversation**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `id` | `string` | +| `app_id` | `string` | +| `agent_name` | `string` | +| `created_by_id` | `string` | +| `messages` | [`AgentMessage`](AgentMessage.md)[] | +| `metadata?` | `Record`\<`string`, `any`\> | + +#### Defined in + +[modules/agents.types.ts:1](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/agents.types.ts#L1) diff --git a/docs-mdx/types/AgentMessage.md b/docs-mdx/types/AgentMessage.md new file mode 100644 index 0000000..350e32a --- /dev/null +++ b/docs-mdx/types/AgentMessage.md @@ -0,0 +1,34 @@ +--- +title: "Type alias: AgentMessage" +description: "modules/agents.types.ts:10" +--- + +Ƭ **AgentMessage**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `id` | `string` | +| `role` | ``"user"`` \| ``"assistant"`` \| ``"system"`` | +| `reasoning?` | \{ `start_date`: `string` ; `end_date?`: `string` ; `content`: `string` } | +| `reasoning.start_date` | `string` | +| `reasoning.end_date?` | `string` | +| `reasoning.content` | `string` | +| `content?` | `string` \| `Record`\<..., ...\> \| ``null`` | +| `file_urls?` | ...[] \| ``null`` | +| `tool_calls?` | ...[] \| ``null`` | +| `usage?` | \{ `prompt_tokens?`: ... ; `completion_tokens?`: ... } \| ``null`` | +| `hidden?` | `boolean` | +| `custom_context?` | ...[] \| ``null`` | +| `model?` | `string` \| ``null`` | +| `checkpoint_id?` | `string` \| ``null`` | +| `metadata?` | \{ `created_date`: `string` ; `created_by_email`: `string` ; `created_by_full_name`: ... \| ... } | +| `metadata.created_date` | `string` | +| `metadata.created_by_email` | `string` | +| `metadata.created_by_full_name` | ... \| ... | +| `additional_message_params?` | `Record`\<`string`, `any`\> | + +#### Defined in + +[modules/agents.types.ts:10](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/agents.types.ts#L10) diff --git a/docs-mdx/types/Base44Client.md b/docs-mdx/types/Base44Client.md new file mode 100644 index 0000000..7ef98f2 --- /dev/null +++ b/docs-mdx/types/Base44Client.md @@ -0,0 +1,10 @@ +--- +title: "Type alias: Base44Client" +description: "client.ts:17" +--- + +Ƭ **Base44Client**: `ReturnType`\ + +#### Defined in + +[client.ts:17](https://github.com/base44-dev/javascript-sdk/blob/main/src/client.ts#L17) diff --git a/docs-mdx/types/ConnectorAccessTokenResponse.md b/docs-mdx/types/ConnectorAccessTokenResponse.md new file mode 100644 index 0000000..a90ef36 --- /dev/null +++ b/docs-mdx/types/ConnectorAccessTokenResponse.md @@ -0,0 +1,16 @@ +--- +title: "Type alias: ConnectorAccessTokenResponse" +description: "modules/connectors.types.ts:3" +--- + +Ƭ **ConnectorAccessTokenResponse**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `access_token` | `string` | + +#### Defined in + +[modules/connectors.types.ts:3](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/connectors.types.ts#L3) diff --git a/docs-mdx/types/ConnectorIntegrationType.md b/docs-mdx/types/ConnectorIntegrationType.md new file mode 100644 index 0000000..42c2143 --- /dev/null +++ b/docs-mdx/types/ConnectorIntegrationType.md @@ -0,0 +1,10 @@ +--- +title: "Type alias: ConnectorIntegrationType" +description: "modules/connectors.types.ts:1" +--- + +Ƭ **ConnectorIntegrationType**: `string` + +#### Defined in + +[modules/connectors.types.ts:1](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/connectors.types.ts#L1) diff --git a/docs-mdx/types/LoginInfoResponse.md b/docs-mdx/types/LoginInfoResponse.md new file mode 100644 index 0000000..6b1a8d3 --- /dev/null +++ b/docs-mdx/types/LoginInfoResponse.md @@ -0,0 +1,10 @@ +--- +title: "Type alias: LoginInfoResponse" +description: "modules/app.types.ts:124" +--- + +Ƭ **LoginInfoResponse**: `Pick`\<[`AppLike`](../interfaces/AppLike.md), ``"id"`` \| ``"name"`` \| ``"slug"`` \| ``"logo_url"`` \| ``"user_description"`` \| ``"updated_date"`` \| ``"created_date"`` \| ``"auth_config"`` \| ``"platform_version"``\> + +#### Defined in + +[modules/app.types.ts:124](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L124) diff --git a/docs-mdx/types/ModelFilterParams.md b/docs-mdx/types/ModelFilterParams.md new file mode 100644 index 0000000..cfecd8c --- /dev/null +++ b/docs-mdx/types/ModelFilterParams.md @@ -0,0 +1,21 @@ +--- +title: "Type alias: ModelFilterParams" +description: "types.ts:3" +--- + +Ƭ **ModelFilterParams**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `q?` | `Record`\<`string`, `any`\> | +| `sort?` | `string` \| ``null`` | +| `sort_by?` | `string` \| ``null`` | +| `limit?` | `number` \| ``null`` | +| `skip?` | `number` \| ``null`` | +| `fields?` | ...[] \| ``null`` | + +#### Defined in + +[types.ts:3](https://github.com/base44-dev/javascript-sdk/blob/main/src/types.ts#L3) diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/docs/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..3485ab4 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,37 @@ +# @base44/sdk + +## Classes + +- [Base44Error](classes/Base44Error.md) + +## Interfaces + +- [AppMessageContent](interfaces/AppMessageContent.md) +- [AppConversationMessage](interfaces/AppConversationMessage.md) +- [AppConversationLike](interfaces/AppConversationLike.md) +- [DenoProjectLike](interfaces/DenoProjectLike.md) +- [AppLike](interfaces/AppLike.md) +- [UserLike](interfaces/UserLike.md) +- [UserEntityLike](interfaces/UserEntityLike.md) +- [AuthConfigLike](interfaces/AuthConfigLike.md) +- [LoginViaEmailPasswordResponse](interfaces/LoginViaEmailPasswordResponse.md) +- [AuthMethods](interfaces/AuthMethods.md) + +## Type Aliases + +- [Base44Client](types/Base44Client.md) +- [AgentConversation](types/AgentConversation.md) +- [AgentMessage](types/AgentMessage.md) +- [LoginInfoResponse](types/LoginInfoResponse.md) +- [ConnectorIntegrationType](types/ConnectorIntegrationType.md) +- [ConnectorAccessTokenResponse](types/ConnectorAccessTokenResponse.md) +- [ModelFilterParams](types/ModelFilterParams.md) + +## Functions + +- [createClient](functions/createClient.md) +- [createClientFromRequest](functions/createClientFromRequest.md) +- [getAccessToken](functions/getAccessToken.md) +- [saveAccessToken](functions/saveAccessToken.md) +- [removeAccessToken](functions/removeAccessToken.md) +- [getLoginUrl](functions/getLoginUrl.md) diff --git a/docs/classes/Base44Error.md b/docs/classes/Base44Error.md new file mode 100644 index 0000000..6d80606 --- /dev/null +++ b/docs/classes/Base44Error.md @@ -0,0 +1,97 @@ +# Class: Base44Error + +## Hierarchy + +- `Error` + + ↳ **`Base44Error`** + +## Constructors + +### constructor + +• **new Base44Error**(`message`, `status`, `code`, `data`, `originalError`): [`Base44Error`](Base44Error.md) + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `message` | `string` | +| `status` | `number` | +| `code` | `string` | +| `data` | `any` | +| `originalError` | `unknown` | + +#### Returns + +[`Base44Error`](Base44Error.md) + +#### Overrides + +Error.constructor + +#### Defined in + +[utils/axios-client.ts:11](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L11) + +## Properties + +### status + +• **status**: `number` + +#### Defined in + +[utils/axios-client.ts:6](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L6) + +___ + +### code + +• **code**: `string` + +#### Defined in + +[utils/axios-client.ts:7](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L7) + +___ + +### data + +• **data**: `any` + +#### Defined in + +[utils/axios-client.ts:8](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L8) + +___ + +### originalError + +• **originalError**: `unknown` + +#### Defined in + +[utils/axios-client.ts:9](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L9) + +## Methods + +### toJSON + +▸ **toJSON**(): `Object` + +#### Returns + +`Object` + +| Name | Type | +| :------ | :------ | +| `name` | `string` | +| `message` | `string` | +| `status` | `number` | +| `code` | `string` | +| `data` | `any` | + +#### Defined in + +[utils/axios-client.ts:27](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/axios-client.ts#L27) diff --git a/docs/functions/createClient.md b/docs/functions/createClient.md new file mode 100644 index 0000000..8784ec9 --- /dev/null +++ b/docs/functions/createClient.md @@ -0,0 +1,75 @@ +# Function: createClient + +▸ **createClient**(`config`): `Object` + +Create a Base44 client instance + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `config` | `Object` | Client configuration | +| `config.serverUrl?` | `string` | API server URL | +| `config.appBaseUrl?` | `string` | Application base URL | +| `config.appId` | `string` | Application ID | +| `config.token?` | `string` | Authentication token | +| `config.serviceToken?` | `string` | Service role authentication token | +| `config.requiresAuth?` | `boolean` | Whether the app requires authentication | +| `config.functionsVersion?` | `string` | - | +| `config.headers?` | `Record`\<..., ...\> | - | +| `config.options?` | `CreateClientOptions` | - | + +#### Returns + +`Object` + +Base44 client instance + +| Name | Type | +| :------ | :------ | +| `entities` | {} | +| `integrations` | {} | +| `auth` | [`AuthMethods`](../interfaces/AuthMethods.md) | +| `functions` | \{ `invoke`: (`functionName`: `string`, `data`: `Record`\<..., ...\>) => `Promise`\<...\> } | +| `functions.invoke` | [object Object] | +| `agents` | \{ `getConversations`: () => ... ; `getConversation`: (`conversationId`: ...) => ... ; `listConversations`: (`filterParams`: ...) => ... ; `createConversation`: (`conversation`: ...) => ... ; `addMessage`: (`conversation`: ..., `message`: ...) => ... ; `subscribeToConversation`: (`conversationId`: ..., `onUpdate?`: ...) => ... ; `getWhatsAppConnectURL`: (`agentName`: ...) => ... } | +| `agents.getConversations` | () => ... | +| `agents.getConversation` | (`conversationId`: ...) => ... | +| `agents.listConversations` | (`filterParams`: ...) => ... | +| `agents.createConversation` | (`conversation`: ...) => ... | +| `agents.addMessage` | (`conversation`: ..., `message`: ...) => ... | +| `agents.subscribeToConversation` | (`conversationId`: ..., `onUpdate?`: ...) => ... | +| `agents.getWhatsAppConnectURL` | (`agentName`: ...) => ... | +| `appLogs` | \{ `logUserInApp`: (`pageName`: `string`) => `Promise`\<...\> ; `fetchLogs`: (`params`: `Record`\<..., ...\>) => `Promise`\<...\> ; `getStats`: (`params`: `Record`\<..., ...\>) => `Promise`\<...\> } | +| `appLogs.logUserInApp` | [object Object] | +| `appLogs.fetchLogs` | [object Object] | +| `appLogs.getStats` | [object Object] | +| `cleanup` | () => `void` | +| `setToken` | (`newToken`: `string`) => `void` | +| `getConfig` | () => \{ `serverUrl`: `string` ; `appId`: `string` ; `requiresAuth`: `boolean` } | +| `asServiceRole` | \{ `entities`: {} ; `integrations`: {} ; `sso`: \{ `getAccessToken`: (`userid`: ...) => ... } ; `connectors`: \{ `getAccessToken`: (`integrationType`: ...) => ... } ; `functions`: \{ `invoke`: (`functionName`: ..., `data`: ...) => ... } ; `agents`: \{ `getConversations`: ... ; `getConversation`: ... ; `listConversations`: ... ; `createConversation`: ... ; `addMessage`: ... ; `subscribeToConversation`: ... ; `getWhatsAppConnectURL`: ... } ; `appLogs`: \{ `logUserInApp`: (`pageName`: ...) => ... ; `fetchLogs`: (`params`: ...) => ... ; `getStats`: (`params`: ...) => ... } ; `cleanup`: () => ... } | +| `asServiceRole.entities` | {} | +| `asServiceRole.integrations` | {} | +| `asServiceRole.sso` | \{ `getAccessToken`: (`userid`: ...) => ... } | +| `asServiceRole.sso.getAccessToken` | [object Object] | +| `asServiceRole.connectors` | \{ `getAccessToken`: (`integrationType`: ...) => ... } | +| `asServiceRole.connectors.getAccessToken` | [object Object] | +| `asServiceRole.functions` | \{ `invoke`: (`functionName`: ..., `data`: ...) => ... } | +| `asServiceRole.functions.invoke` | [object Object] | +| `asServiceRole.agents` | \{ `getConversations`: ... ; `getConversation`: ... ; `listConversations`: ... ; `createConversation`: ... ; `addMessage`: ... ; `subscribeToConversation`: ... ; `getWhatsAppConnectURL`: ... } | +| `asServiceRole.agents.getConversations` | ... | +| `asServiceRole.agents.getConversation` | ... | +| `asServiceRole.agents.listConversations` | ... | +| `asServiceRole.agents.createConversation` | ... | +| `asServiceRole.agents.addMessage` | ... | +| `asServiceRole.agents.subscribeToConversation` | ... | +| `asServiceRole.agents.getWhatsAppConnectURL` | ... | +| `asServiceRole.appLogs` | \{ `logUserInApp`: (`pageName`: ...) => ... ; `fetchLogs`: (`params`: ...) => ... ; `getStats`: (`params`: ...) => ... } | +| `asServiceRole.appLogs.logUserInApp` | [object Object] | +| `asServiceRole.appLogs.fetchLogs` | [object Object] | +| `asServiceRole.appLogs.getStats` | [object Object] | +| `asServiceRole.cleanup` | () => ... | + +#### Defined in + +[client.ts:30](https://github.com/base44-dev/javascript-sdk/blob/main/src/client.ts#L30) diff --git a/docs/functions/createClientFromRequest.md b/docs/functions/createClientFromRequest.md new file mode 100644 index 0000000..13e005f --- /dev/null +++ b/docs/functions/createClientFromRequest.md @@ -0,0 +1,62 @@ +# Function: createClientFromRequest + +▸ **createClientFromRequest**(`request`): `Object` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `request` | `Request` | + +#### Returns + +`Object` + +| Name | Type | +| :------ | :------ | +| `entities` | {} | +| `integrations` | {} | +| `auth` | [`AuthMethods`](../interfaces/AuthMethods.md) | +| `functions` | \{ `invoke`: (`functionName`: `string`, `data`: `Record`\<..., ...\>) => `Promise`\<...\> } | +| `functions.invoke` | [object Object] | +| `agents` | \{ `getConversations`: () => ... ; `getConversation`: (`conversationId`: ...) => ... ; `listConversations`: (`filterParams`: ...) => ... ; `createConversation`: (`conversation`: ...) => ... ; `addMessage`: (`conversation`: ..., `message`: ...) => ... ; `subscribeToConversation`: (`conversationId`: ..., `onUpdate?`: ...) => ... ; `getWhatsAppConnectURL`: (`agentName`: ...) => ... } | +| `agents.getConversations` | () => ... | +| `agents.getConversation` | (`conversationId`: ...) => ... | +| `agents.listConversations` | (`filterParams`: ...) => ... | +| `agents.createConversation` | (`conversation`: ...) => ... | +| `agents.addMessage` | (`conversation`: ..., `message`: ...) => ... | +| `agents.subscribeToConversation` | (`conversationId`: ..., `onUpdate?`: ...) => ... | +| `agents.getWhatsAppConnectURL` | (`agentName`: ...) => ... | +| `appLogs` | \{ `logUserInApp`: (`pageName`: `string`) => `Promise`\<...\> ; `fetchLogs`: (`params`: `Record`\<..., ...\>) => `Promise`\<...\> ; `getStats`: (`params`: `Record`\<..., ...\>) => `Promise`\<...\> } | +| `appLogs.logUserInApp` | [object Object] | +| `appLogs.fetchLogs` | [object Object] | +| `appLogs.getStats` | [object Object] | +| `cleanup` | () => `void` | +| `setToken` | (`newToken`: `string`) => `void` | +| `getConfig` | () => \{ `serverUrl`: `string` ; `appId`: `string` ; `requiresAuth`: `boolean` } | +| `asServiceRole` | \{ `entities`: {} ; `integrations`: {} ; `sso`: \{ `getAccessToken`: (`userid`: ...) => ... } ; `connectors`: \{ `getAccessToken`: (`integrationType`: ...) => ... } ; `functions`: \{ `invoke`: (`functionName`: ..., `data`: ...) => ... } ; `agents`: \{ `getConversations`: ... ; `getConversation`: ... ; `listConversations`: ... ; `createConversation`: ... ; `addMessage`: ... ; `subscribeToConversation`: ... ; `getWhatsAppConnectURL`: ... } ; `appLogs`: \{ `logUserInApp`: (`pageName`: ...) => ... ; `fetchLogs`: (`params`: ...) => ... ; `getStats`: (`params`: ...) => ... } ; `cleanup`: () => ... } | +| `asServiceRole.entities` | {} | +| `asServiceRole.integrations` | {} | +| `asServiceRole.sso` | \{ `getAccessToken`: (`userid`: ...) => ... } | +| `asServiceRole.sso.getAccessToken` | [object Object] | +| `asServiceRole.connectors` | \{ `getAccessToken`: (`integrationType`: ...) => ... } | +| `asServiceRole.connectors.getAccessToken` | [object Object] | +| `asServiceRole.functions` | \{ `invoke`: (`functionName`: ..., `data`: ...) => ... } | +| `asServiceRole.functions.invoke` | [object Object] | +| `asServiceRole.agents` | \{ `getConversations`: ... ; `getConversation`: ... ; `listConversations`: ... ; `createConversation`: ... ; `addMessage`: ... ; `subscribeToConversation`: ... ; `getWhatsAppConnectURL`: ... } | +| `asServiceRole.agents.getConversations` | ... | +| `asServiceRole.agents.getConversation` | ... | +| `asServiceRole.agents.listConversations` | ... | +| `asServiceRole.agents.createConversation` | ... | +| `asServiceRole.agents.addMessage` | ... | +| `asServiceRole.agents.subscribeToConversation` | ... | +| `asServiceRole.agents.getWhatsAppConnectURL` | ... | +| `asServiceRole.appLogs` | \{ `logUserInApp`: (`pageName`: ...) => ... ; `fetchLogs`: (`params`: ...) => ... ; `getStats`: (`params`: ...) => ... } | +| `asServiceRole.appLogs.logUserInApp` | [object Object] | +| `asServiceRole.appLogs.fetchLogs` | [object Object] | +| `asServiceRole.appLogs.getStats` | [object Object] | +| `asServiceRole.cleanup` | () => ... | + +#### Defined in + +[client.ts:215](https://github.com/base44-dev/javascript-sdk/blob/main/src/client.ts#L215) diff --git a/docs/functions/getAccessToken.md b/docs/functions/getAccessToken.md new file mode 100644 index 0000000..b95f7a1 --- /dev/null +++ b/docs/functions/getAccessToken.md @@ -0,0 +1,25 @@ +# Function: getAccessToken + +▸ **getAccessToken**(`options?`): ``null`` \| `string` + +Retrieves an access token from either localStorage or URL parameters + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `options` | `Object` | Configuration options | +| `options.storageKey?` | `string` | The key to use in localStorage | +| `options.paramName?` | `string` | The URL parameter name | +| `options.saveToStorage?` | `boolean` | Whether to save the token to localStorage if found in URL | +| `options.removeFromUrl?` | `boolean` | Whether to remove the token from URL after retrieval | + +#### Returns + +``null`` \| `string` + +The access token or null if not found + +#### Defined in + +[utils/auth-utils.ts:15](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/auth-utils.ts#L15) diff --git a/docs/functions/getLoginUrl.md b/docs/functions/getLoginUrl.md new file mode 100644 index 0000000..3ac3879 --- /dev/null +++ b/docs/functions/getLoginUrl.md @@ -0,0 +1,25 @@ +# Function: getLoginUrl + +▸ **getLoginUrl**(`nextUrl`, `options`): `string` + +Constructs the absolute URL for the login page + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `nextUrl` | `string` | URL to redirect back to after login | +| `options` | `Object` | Configuration options | +| `options.serverUrl` | `string` | Server URL (e.g., 'https://base44.app') | +| `options.appId` | `string` | Application ID | +| `options.loginPath?` | `string` | Path to the login endpoint | + +#### Returns + +`string` + +The complete login URL + +#### Defined in + +[utils/auth-utils.ts:138](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/auth-utils.ts#L138) diff --git a/docs/functions/removeAccessToken.md b/docs/functions/removeAccessToken.md new file mode 100644 index 0000000..a6c7b23 --- /dev/null +++ b/docs/functions/removeAccessToken.md @@ -0,0 +1,22 @@ +# Function: removeAccessToken + +▸ **removeAccessToken**(`options`): `boolean` + +Removes the access token from localStorage + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `options` | `Object` | Configuration options | +| `options.storageKey?` | `string` | The key to use in localStorage | + +#### Returns + +`boolean` + +Success status + +#### Defined in + +[utils/auth-utils.ts:112](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/auth-utils.ts#L112) diff --git a/docs/functions/saveAccessToken.md b/docs/functions/saveAccessToken.md new file mode 100644 index 0000000..89ddd39 --- /dev/null +++ b/docs/functions/saveAccessToken.md @@ -0,0 +1,23 @@ +# Function: saveAccessToken + +▸ **saveAccessToken**(`token`, `options`): `boolean` + +Saves an access token to localStorage + +#### Parameters + +| Name | Type | Description | +| :------ | :------ | :------ | +| `token` | `string` | The access token to save | +| `options` | `Object` | Configuration options | +| `options.storageKey?` | `string` | The key to use in localStorage | + +#### Returns + +`boolean` + +Success status + +#### Defined in + +[utils/auth-utils.ts:82](https://github.com/base44-dev/javascript-sdk/blob/main/src/utils/auth-utils.ts#L82) diff --git a/docs/interfaces/AppConversationLike.md b/docs/interfaces/AppConversationLike.md new file mode 100644 index 0000000..dbda4e0 --- /dev/null +++ b/docs/interfaces/AppConversationLike.md @@ -0,0 +1,41 @@ +# Interface: AppConversationLike + +## Properties + +### id + +• `Optional` **id**: ``null`` \| `string` + +#### Defined in + +[modules/app.types.ts:17](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L17) + +___ + +### messages + +• `Optional` **messages**: ``null`` \| [`AppMessageContent`](AppMessageContent.md)[] + +#### Defined in + +[modules/app.types.ts:18](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L18) + +___ + +### model + +• `Optional` **model**: `string` + +#### Defined in + +[modules/app.types.ts:19](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L19) + +___ + +### functions\_fail\_silently + +• `Optional` **functions\_fail\_silently**: `boolean` + +#### Defined in + +[modules/app.types.ts:20](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L20) diff --git a/docs/interfaces/AppConversationMessage.md b/docs/interfaces/AppConversationMessage.md new file mode 100644 index 0000000..7af6be3 --- /dev/null +++ b/docs/interfaces/AppConversationMessage.md @@ -0,0 +1,83 @@ +# Interface: AppConversationMessage + +## Hierarchy + +- [`AppMessageContent`](AppMessageContent.md) + + ↳ **`AppConversationMessage`** + +## Properties + +### content + +• `Optional` **content**: `string` + +#### Inherited from + +[AppMessageContent](AppMessageContent.md).[content](AppMessageContent.md#content) + +#### Defined in + +[modules/app.types.ts:4](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L4) + +___ + +### file\_urls + +• `Optional` **file\_urls**: `string`[] + +#### Inherited from + +[AppMessageContent](AppMessageContent.md).[file_urls](AppMessageContent.md#file_urls) + +#### Defined in + +[modules/app.types.ts:5](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L5) + +___ + +### custom\_context + +• `Optional` **custom\_context**: `unknown` + +#### Inherited from + +[AppMessageContent](AppMessageContent.md).[custom_context](AppMessageContent.md#custom_context) + +#### Defined in + +[modules/app.types.ts:6](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L6) + +___ + +### additional\_message\_params + +• `Optional` **additional\_message\_params**: `Record`\<`string`, `unknown`\> + +#### Inherited from + +[AppMessageContent](AppMessageContent.md).[additional_message_params](AppMessageContent.md#additional_message_params) + +#### Defined in + +[modules/app.types.ts:7](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L7) + +___ + +### id + +• `Optional` **id**: ``null`` \| `string` + +#### Defined in + +[modules/app.types.ts:12](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L12) + +___ + +### role + +• `Optional` **role**: `string` + +#### Defined in + +[modules/app.types.ts:13](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L13) diff --git a/docs/interfaces/AppLike.md b/docs/interfaces/AppLike.md new file mode 100644 index 0000000..018635e --- /dev/null +++ b/docs/interfaces/AppLike.md @@ -0,0 +1,477 @@ +# Interface: AppLike + +## Properties + +### id + +• `Optional` **id**: `string` + +#### Defined in + +[modules/app.types.ts:33](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L33) + +___ + +### conversation + +• `Optional` **conversation**: ``null`` \| [`AppConversationLike`](AppConversationLike.md) + +#### Defined in + +[modules/app.types.ts:34](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L34) + +___ + +### app\_stage + +• `Optional` **app\_stage**: `string` + +#### Defined in + +[modules/app.types.ts:35](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L35) + +___ + +### created\_date + +• `Optional` **created\_date**: `string` + +#### Defined in + +[modules/app.types.ts:36](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L36) + +___ + +### updated\_date + +• `Optional` **updated\_date**: `string` + +#### Defined in + +[modules/app.types.ts:37](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L37) + +___ + +### created\_by + +• `Optional` **created\_by**: `string` + +#### Defined in + +[modules/app.types.ts:38](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L38) + +___ + +### organization\_id + +• `Optional` **organization\_id**: `string` + +#### Defined in + +[modules/app.types.ts:39](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L39) + +___ + +### name + +• `Optional` **name**: `string` + +#### Defined in + +[modules/app.types.ts:40](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L40) + +___ + +### user\_description + +• `Optional` **user\_description**: `string` + +#### Defined in + +[modules/app.types.ts:41](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L41) + +___ + +### entities + +• `Optional` **entities**: `Record`\<`string`, `any`\> + +#### Defined in + +[modules/app.types.ts:42](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L42) + +___ + +### additional\_user\_data\_schema + +• `Optional` **additional\_user\_data\_schema**: `any` + +#### Defined in + +[modules/app.types.ts:43](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L43) + +___ + +### pages + +• `Optional` **pages**: `Object` + +#### Index signature + +▪ [key: `string`]: `string` + +#### Defined in + +[modules/app.types.ts:44](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L44) + +___ + +### components + +• **components**: `Object` + +#### Index signature + +▪ [key: `string`]: `any` + +#### Defined in + +[modules/app.types.ts:45](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L45) + +___ + +### layout + +• `Optional` **layout**: `string` + +#### Defined in + +[modules/app.types.ts:46](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L46) + +___ + +### globals\_css + +• `Optional` **globals\_css**: `string` + +#### Defined in + +[modules/app.types.ts:47](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L47) + +___ + +### agents + +• `Optional` **agents**: `Record`\<`string`, `any`\> + +#### Defined in + +[modules/app.types.ts:48](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L48) + +___ + +### logo\_url + +• `Optional` **logo\_url**: `string` + +#### Defined in + +[modules/app.types.ts:49](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L49) + +___ + +### slug + +• `Optional` **slug**: `string` + +#### Defined in + +[modules/app.types.ts:50](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L50) + +___ + +### public\_settings + +• `Optional` **public\_settings**: `string` + +#### Defined in + +[modules/app.types.ts:51](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L51) + +___ + +### is\_blocked + +• `Optional` **is\_blocked**: `boolean` + +#### Defined in + +[modules/app.types.ts:52](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L52) + +___ + +### github\_repo\_url + +• `Optional` **github\_repo\_url**: `string` + +#### Defined in + +[modules/app.types.ts:53](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L53) + +___ + +### main\_page + +• `Optional` **main\_page**: `string` + +#### Defined in + +[modules/app.types.ts:54](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L54) + +___ + +### installable\_integrations + +• `Optional` **installable\_integrations**: `any` + +#### Defined in + +[modules/app.types.ts:55](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L55) + +___ + +### backend\_project + +• `Optional` **backend\_project**: [`DenoProjectLike`](DenoProjectLike.md) + +#### Defined in + +[modules/app.types.ts:56](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L56) + +___ + +### last\_deployed\_at + +• `Optional` **last\_deployed\_at**: `string` + +#### Defined in + +[modules/app.types.ts:57](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L57) + +___ + +### is\_remixable + +• `Optional` **is\_remixable**: `boolean` + +#### Defined in + +[modules/app.types.ts:58](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L58) + +___ + +### remixed\_from\_app\_id + +• `Optional` **remixed\_from\_app\_id**: `string` + +#### Defined in + +[modules/app.types.ts:59](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L59) + +___ + +### hide\_entity\_created\_by + +• `Optional` **hide\_entity\_created\_by**: `boolean` + +#### Defined in + +[modules/app.types.ts:60](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L60) + +___ + +### platform\_version + +• `Optional` **platform\_version**: `number` + +#### Defined in + +[modules/app.types.ts:61](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L61) + +___ + +### enable\_username\_password + +• `Optional` **enable\_username\_password**: `boolean` + +#### Defined in + +[modules/app.types.ts:62](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L62) + +___ + +### auth\_config + +• `Optional` **auth\_config**: [`AuthConfigLike`](AuthConfigLike.md) + +#### Defined in + +[modules/app.types.ts:63](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L63) + +___ + +### status + +• `Optional` **status**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `state?` | ... \| ... | +| `details?` | `any` | +| `last_updated_date?` | ... \| ... | + +#### Defined in + +[modules/app.types.ts:64](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L64) + +___ + +### custom\_instructions + +• `Optional` **custom\_instructions**: `any` + +#### Defined in + +[modules/app.types.ts:69](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L69) + +___ + +### frozen\_files + +• `Optional` **frozen\_files**: `string`[] + +#### Defined in + +[modules/app.types.ts:70](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L70) + +___ + +### deep\_coding\_mode + +• `Optional` **deep\_coding\_mode**: `boolean` + +#### Defined in + +[modules/app.types.ts:71](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L71) + +___ + +### needs\_to\_add\_diff + +• `Optional` **needs\_to\_add\_diff**: `boolean` + +#### Defined in + +[modules/app.types.ts:72](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L72) + +___ + +### installed\_integration\_context\_items + +• `Optional` **installed\_integration\_context\_items**: `any`[] + +#### Defined in + +[modules/app.types.ts:73](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L73) + +___ + +### model + +• `Optional` **model**: `string` + +#### Defined in + +[modules/app.types.ts:74](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L74) + +___ + +### is\_starred + +• `Optional` **is\_starred**: `boolean` + +#### Defined in + +[modules/app.types.ts:75](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L75) + +___ + +### agents\_enabled + +• `Optional` **agents\_enabled**: `boolean` + +#### Defined in + +[modules/app.types.ts:76](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L76) + +___ + +### categories + +• `Optional` **categories**: `string`[] + +#### Defined in + +[modules/app.types.ts:77](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L77) + +___ + +### functions + +• `Optional` **functions**: `any` + +#### Defined in + +[modules/app.types.ts:78](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L78) + +___ + +### function\_names + +• `Optional` **function\_names**: `string`[] + +#### Defined in + +[modules/app.types.ts:79](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L79) + +___ + +### user\_entity + +• `Optional` **user\_entity**: [`UserEntityLike`](UserEntityLike.md) + +#### Defined in + +[modules/app.types.ts:80](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L80) + +___ + +### app\_code\_hash + +• `Optional` **app\_code\_hash**: `string` + +#### Defined in + +[modules/app.types.ts:81](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L81) + +___ + +### has\_backend\_functions\_enabled + +• `Optional` **has\_backend\_functions\_enabled**: `boolean` + +#### Defined in + +[modules/app.types.ts:82](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L82) diff --git a/docs/interfaces/AppMessageContent.md b/docs/interfaces/AppMessageContent.md new file mode 100644 index 0000000..7796543 --- /dev/null +++ b/docs/interfaces/AppMessageContent.md @@ -0,0 +1,51 @@ +# Interface: AppMessageContent + +## Hierarchy + +- **`AppMessageContent`** + + ↳ [`AppConversationMessage`](AppConversationMessage.md) + +## Indexable + +▪ [key: `string`]: `unknown` + +## Properties + +### content + +• `Optional` **content**: `string` + +#### Defined in + +[modules/app.types.ts:4](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L4) + +___ + +### file\_urls + +• `Optional` **file\_urls**: `string`[] + +#### Defined in + +[modules/app.types.ts:5](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L5) + +___ + +### custom\_context + +• `Optional` **custom\_context**: `unknown` + +#### Defined in + +[modules/app.types.ts:6](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L6) + +___ + +### additional\_message\_params + +• `Optional` **additional\_message\_params**: `Record`\<`string`, `unknown`\> + +#### Defined in + +[modules/app.types.ts:7](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L7) diff --git a/docs/interfaces/AuthConfigLike.md b/docs/interfaces/AuthConfigLike.md new file mode 100644 index 0000000..cb2d47c --- /dev/null +++ b/docs/interfaces/AuthConfigLike.md @@ -0,0 +1,61 @@ +# Interface: AuthConfigLike + +## Properties + +### enable\_username\_password + +• `Optional` **enable\_username\_password**: `boolean` + +#### Defined in + +[modules/app.types.ts:113](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L113) + +___ + +### enable\_google\_login + +• `Optional` **enable\_google\_login**: `boolean` + +#### Defined in + +[modules/app.types.ts:114](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L114) + +___ + +### enable\_microsoft\_login + +• `Optional` **enable\_microsoft\_login**: `boolean` + +#### Defined in + +[modules/app.types.ts:115](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L115) + +___ + +### enable\_facebook\_login + +• `Optional` **enable\_facebook\_login**: `boolean` + +#### Defined in + +[modules/app.types.ts:116](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L116) + +___ + +### sso\_provider\_name + +• `Optional` **sso\_provider\_name**: `string` + +#### Defined in + +[modules/app.types.ts:117](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L117) + +___ + +### enable\_sso\_login + +• `Optional` **enable\_sso\_login**: `boolean` + +#### Defined in + +[modules/app.types.ts:118](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L118) diff --git a/docs/interfaces/AuthMethods.md b/docs/interfaces/AuthMethods.md new file mode 100644 index 0000000..305ad47 --- /dev/null +++ b/docs/interfaces/AuthMethods.md @@ -0,0 +1,373 @@ +# Interface: AuthMethods + +Public auth methods available from the SDK. +Document only the methods you want to expose and support. + +## Methods + +### me + +▸ **me**(): `Promise`\<`any`\> + +Get current user information + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +import { createClient, getAccessToken } from '@base44/sdk'; + +const client = createClient({ appId: 'your-app-id', token: getAccessToken() }); +const user = await client.auth.me(); +console.log(user); +``` + +#### Defined in + +[modules/auth.ts:24](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L24) + +___ + +### redirectToLogin + +▸ **redirectToLogin**(`nextUrl`): `void` + +Redirects the user to the app's login page + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `nextUrl` | `string` | + +#### Returns + +`void` + +**`Example`** + +```ts +// Redirect and return to current route after login +client.auth.redirectToLogin(window.location.pathname); +``` + +#### Defined in + +[modules/auth.ts:38](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L38) + +___ + +### logout + +▸ **logout**(`redirectUrl?`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `redirectUrl?` | `string` | + +#### Returns + +`void` + +**`Example`** + +```ts +// Reload the page after logout +client.auth.logout(); + +// Or redirect to a login page +client.auth.logout('/login'); +``` + +#### Defined in + +[modules/auth.ts:54](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L54) + +___ + +### setToken + +▸ **setToken**(`token`, `saveToStorage?`): `void` + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `token` | `string` | +| `saveToStorage?` | `boolean` | + +#### Returns + +`void` + +**`Example`** + +```ts +// After obtaining a token from your auth flow +client.auth.setToken(accessToken); +``` + +#### Defined in + +[modules/auth.ts:68](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L68) + +___ + +### loginViaEmailPassword + +▸ **loginViaEmailPassword**(`email`, `password`, `turnstileToken?`): `Promise`\<[`LoginViaEmailPasswordResponse`](LoginViaEmailPasswordResponse.md)\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `email` | `string` | +| `password` | `string` | +| `turnstileToken?` | `string` | + +#### Returns + +`Promise`\<[`LoginViaEmailPasswordResponse`](LoginViaEmailPasswordResponse.md)\> + +**`Example`** + +```ts +const { access_token, user } = await client.auth.loginViaEmailPassword( + 'user@example.com', + 's3cret' +); +client.auth.setToken(access_token); +``` + +#### Defined in + +[modules/auth.ts:84](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L84) + +___ + +### isAuthenticated + +▸ **isAuthenticated**(): `Promise`\<`boolean`\> + +Verify if the current token is valid + +#### Returns + +`Promise`\<`boolean`\> + +**`Example`** + +```ts +const ok = await client.auth.isAuthenticated(); +if (!ok) client.auth.redirectToLogin('/dashboard'); +``` + +#### Defined in + +[modules/auth.ts:98](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L98) + +___ + +### inviteUser + +▸ **inviteUser**(`userEmail`, `role`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `userEmail` | `string` | +| `role` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.inviteUser('new-user@example.com', 'member'); +``` + +#### Defined in + +[modules/auth.ts:106](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L106) + +___ + +### register + +▸ **register**(`payload`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `payload` | `Object` | +| `payload.email` | `string` | +| `payload.password` | `string` | +| `payload.turnstile_token?` | ``null`` \| `string` | +| `payload.referral_code?` | ``null`` \| `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.register({ + email: 'user@example.com', + password: 's3cret', +}); +``` + +#### Defined in + +[modules/auth.ts:117](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L117) + +___ + +### verifyOtp + +▸ **verifyOtp**(`args`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `args` | `Object` | +| `args.email` | `string` | +| `args.otpCode` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.verifyOtp({ email: 'user@example.com', otpCode: '123456' }); +``` + +#### Defined in + +[modules/auth.ts:130](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L130) + +___ + +### resendOtp + +▸ **resendOtp**(`email`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `email` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.resendOtp('user@example.com'); +``` + +#### Defined in + +[modules/auth.ts:138](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L138) + +___ + +### resetPasswordRequest + +▸ **resetPasswordRequest**(`email`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `email` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.resetPasswordRequest('user@example.com'); +``` + +#### Defined in + +[modules/auth.ts:146](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L146) + +___ + +### resetPassword + +▸ **resetPassword**(`args`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `args` | `Object` | +| `args.resetToken` | `string` | +| `args.newPassword` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.resetPassword({ resetToken: 'token', newPassword: 'newPass123' }); +``` + +#### Defined in + +[modules/auth.ts:154](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L154) + +___ + +### changePassword + +▸ **changePassword**(`args`): `Promise`\<`any`\> + +#### Parameters + +| Name | Type | +| :------ | :------ | +| `args` | `Object` | +| `args.userId` | `string` | +| `args.currentPassword` | `string` | +| `args.newPassword` | `string` | + +#### Returns + +`Promise`\<`any`\> + +**`Example`** + +```ts +await client.auth.changePassword({ + userId: 'abc123', + currentPassword: 'oldPass', + newPassword: 'newPass123', +}); +``` + +#### Defined in + +[modules/auth.ts:166](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L166) diff --git a/docs/interfaces/DenoProjectLike.md b/docs/interfaces/DenoProjectLike.md new file mode 100644 index 0000000..ab16aed --- /dev/null +++ b/docs/interfaces/DenoProjectLike.md @@ -0,0 +1,41 @@ +# Interface: DenoProjectLike + +## Properties + +### project\_id + +• **project\_id**: `string` + +#### Defined in + +[modules/app.types.ts:25](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L25) + +___ + +### project\_name + +• **project\_name**: `string` + +#### Defined in + +[modules/app.types.ts:26](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L26) + +___ + +### app\_id + +• **app\_id**: `string` + +#### Defined in + +[modules/app.types.ts:27](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L27) + +___ + +### deployment\_name\_to\_info + +• **deployment\_name\_to\_info**: `Record`\<`string`, \{ `id`: `string` ; `code`: `string` }\> + +#### Defined in + +[modules/app.types.ts:28](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L28) diff --git a/docs/interfaces/LoginViaEmailPasswordResponse.md b/docs/interfaces/LoginViaEmailPasswordResponse.md new file mode 100644 index 0000000..bf6564f --- /dev/null +++ b/docs/interfaces/LoginViaEmailPasswordResponse.md @@ -0,0 +1,21 @@ +# Interface: LoginViaEmailPasswordResponse + +## Properties + +### access\_token + +• **access\_token**: `string` + +#### Defined in + +[modules/auth.ts:4](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L4) + +___ + +### user + +• **user**: `any` + +#### Defined in + +[modules/auth.ts:5](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/auth.ts#L5) diff --git a/docs/interfaces/UserEntityLike.md b/docs/interfaces/UserEntityLike.md new file mode 100644 index 0000000..7eb5566 --- /dev/null +++ b/docs/interfaces/UserEntityLike.md @@ -0,0 +1,59 @@ +# Interface: UserEntityLike + +## Properties + +### type + +• **type**: `string` + +#### Defined in + +[modules/app.types.ts:90](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L90) + +___ + +### name + +• **name**: `string` + +#### Defined in + +[modules/app.types.ts:91](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L91) + +___ + +### title + +• `Optional` **title**: `string` + +#### Defined in + +[modules/app.types.ts:92](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L92) + +___ + +### properties + +• `Optional` **properties**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `role?` | ... \| ... | +| `email?` | ... \| ... | +| `full_name?` | ... \| ... | + +#### Defined in + +[modules/app.types.ts:93](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L93) + +___ + +### required + +• **required**: `string`[] + +#### Defined in + +[modules/app.types.ts:108](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L108) diff --git a/docs/interfaces/UserLike.md b/docs/interfaces/UserLike.md new file mode 100644 index 0000000..7118f57 --- /dev/null +++ b/docs/interfaces/UserLike.md @@ -0,0 +1,11 @@ +# Interface: UserLike + +## Properties + +### id + +• `Optional` **id**: ``null`` \| `string` + +#### Defined in + +[modules/app.types.ts:86](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L86) diff --git a/docs/types/AgentConversation.md b/docs/types/AgentConversation.md new file mode 100644 index 0000000..38da911 --- /dev/null +++ b/docs/types/AgentConversation.md @@ -0,0 +1,18 @@ +# Type alias: AgentConversation + +Ƭ **AgentConversation**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `id` | `string` | +| `app_id` | `string` | +| `agent_name` | `string` | +| `created_by_id` | `string` | +| `messages` | [`AgentMessage`](AgentMessage.md)[] | +| `metadata?` | `Record`\<`string`, `any`\> | + +#### Defined in + +[modules/agents.types.ts:1](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/agents.types.ts#L1) diff --git a/docs/types/AgentMessage.md b/docs/types/AgentMessage.md new file mode 100644 index 0000000..bc0b68f --- /dev/null +++ b/docs/types/AgentMessage.md @@ -0,0 +1,31 @@ +# Type alias: AgentMessage + +Ƭ **AgentMessage**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `id` | `string` | +| `role` | ``"user"`` \| ``"assistant"`` \| ``"system"`` | +| `reasoning?` | \{ `start_date`: `string` ; `end_date?`: `string` ; `content`: `string` } | +| `reasoning.start_date` | `string` | +| `reasoning.end_date?` | `string` | +| `reasoning.content` | `string` | +| `content?` | `string` \| `Record`\<..., ...\> \| ``null`` | +| `file_urls?` | ...[] \| ``null`` | +| `tool_calls?` | ...[] \| ``null`` | +| `usage?` | \{ `prompt_tokens?`: ... ; `completion_tokens?`: ... } \| ``null`` | +| `hidden?` | `boolean` | +| `custom_context?` | ...[] \| ``null`` | +| `model?` | `string` \| ``null`` | +| `checkpoint_id?` | `string` \| ``null`` | +| `metadata?` | \{ `created_date`: `string` ; `created_by_email`: `string` ; `created_by_full_name`: ... \| ... } | +| `metadata.created_date` | `string` | +| `metadata.created_by_email` | `string` | +| `metadata.created_by_full_name` | ... \| ... | +| `additional_message_params?` | `Record`\<`string`, `any`\> | + +#### Defined in + +[modules/agents.types.ts:10](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/agents.types.ts#L10) diff --git a/docs/types/Base44Client.md b/docs/types/Base44Client.md new file mode 100644 index 0000000..bca0300 --- /dev/null +++ b/docs/types/Base44Client.md @@ -0,0 +1,7 @@ +# Type alias: Base44Client + +Ƭ **Base44Client**: `ReturnType`\ + +#### Defined in + +[client.ts:17](https://github.com/base44-dev/javascript-sdk/blob/main/src/client.ts#L17) diff --git a/docs/types/ConnectorAccessTokenResponse.md b/docs/types/ConnectorAccessTokenResponse.md new file mode 100644 index 0000000..24fd0ef --- /dev/null +++ b/docs/types/ConnectorAccessTokenResponse.md @@ -0,0 +1,13 @@ +# Type alias: ConnectorAccessTokenResponse + +Ƭ **ConnectorAccessTokenResponse**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `access_token` | `string` | + +#### Defined in + +[modules/connectors.types.ts:3](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/connectors.types.ts#L3) diff --git a/docs/types/ConnectorIntegrationType.md b/docs/types/ConnectorIntegrationType.md new file mode 100644 index 0000000..41637c6 --- /dev/null +++ b/docs/types/ConnectorIntegrationType.md @@ -0,0 +1,7 @@ +# Type alias: ConnectorIntegrationType + +Ƭ **ConnectorIntegrationType**: `string` + +#### Defined in + +[modules/connectors.types.ts:1](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/connectors.types.ts#L1) diff --git a/docs/types/LoginInfoResponse.md b/docs/types/LoginInfoResponse.md new file mode 100644 index 0000000..5ce760a --- /dev/null +++ b/docs/types/LoginInfoResponse.md @@ -0,0 +1,7 @@ +# Type alias: LoginInfoResponse + +Ƭ **LoginInfoResponse**: `Pick`\<[`AppLike`](../interfaces/AppLike.md), ``"id"`` \| ``"name"`` \| ``"slug"`` \| ``"logo_url"`` \| ``"user_description"`` \| ``"updated_date"`` \| ``"created_date"`` \| ``"auth_config"`` \| ``"platform_version"``\> + +#### Defined in + +[modules/app.types.ts:124](https://github.com/base44-dev/javascript-sdk/blob/main/src/modules/app.types.ts#L124) diff --git a/docs/types/ModelFilterParams.md b/docs/types/ModelFilterParams.md new file mode 100644 index 0000000..e03afa8 --- /dev/null +++ b/docs/types/ModelFilterParams.md @@ -0,0 +1,18 @@ +# Type alias: ModelFilterParams + +Ƭ **ModelFilterParams**: `Object` + +#### Type declaration + +| Name | Type | +| :------ | :------ | +| `q?` | `Record`\<`string`, `any`\> | +| `sort?` | `string` \| ``null`` | +| `sort_by?` | `string` \| ``null`` | +| `limit?` | `number` \| ``null`` | +| `skip?` | `number` \| ``null`` | +| `fields?` | ...[] \| ``null`` | + +#### Defined in + +[types.ts:3](https://github.com/base44-dev/javascript-sdk/blob/main/src/types.ts#L3) diff --git a/package-lock.json b/package-lock.json index 8418a06..a71ee95 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,8 @@ "dotenv": "^16.3.1", "eslint": "^8.54.0", "nock": "^13.4.0", + "typedoc": "^0.25.0", + "typedoc-plugin-markdown": "^3.17.0", "typescript": "^5.3.2", "vitest": "^1.0.0" } @@ -1579,6 +1581,13 @@ "node": ">=8" } }, + "node_modules/ansi-sequence-parser": { + "version": "1.1.3", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/ansi-sequence-parser/-/ansi-sequence-parser-1.1.3.tgz", + "integrity": "sha512-+fksAx9eG3Ab6LDnLs3ZqZa8KVJ/jYnX+D4Qe1azX+LFGFAXqynCQLOdLpNYN/l9e7l6hMWwZbrnctqr6eSQSw==", + "dev": true, + "license": "MIT" + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -2665,6 +2674,28 @@ "dev": true, "license": "MIT" }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2937,6 +2968,13 @@ "node": ">=6" } }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -3005,6 +3043,13 @@ "yallist": "^3.0.2" } }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true, + "license": "MIT" + }, "node_modules/magic-string": { "version": "0.30.17", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", @@ -3056,6 +3101,19 @@ "node": ">=10" } }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -3143,6 +3201,16 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/mlly": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", @@ -3205,6 +3273,13 @@ "dev": true, "license": "MIT" }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, "node_modules/nock": { "version": "13.5.6", "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz", @@ -3625,6 +3700,19 @@ "node": ">=8" } }, + "node_modules/shiki": { + "version": "0.14.7", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/shiki/-/shiki-0.14.7.tgz", + "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-sequence-parser": "^1.1.0", + "jsonc-parser": "^3.2.0", + "vscode-oniguruma": "^1.7.0", + "vscode-textmate": "^8.0.0" + } + }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", @@ -3715,8 +3803,6 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", - "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3955,10 +4041,71 @@ "node": ">=4" } }, + "node_modules/typedoc": { + "version": "0.25.13", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/typedoc/-/typedoc-0.25.13.tgz", + "integrity": "sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "lunr": "^2.3.9", + "marked": "^4.3.0", + "minimatch": "^9.0.3", + "shiki": "^0.14.7" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 16" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x" + } + }, + "node_modules/typedoc-plugin-markdown": { + "version": "3.17.1", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.17.1.tgz", + "integrity": "sha512-QzdU3fj0Kzw2XSdoL15ExLASt2WPqD7FbLeaqwT70+XjKyTshBnUlQA5nNREO1C2P8Uen0CDjsBLMsCQ+zd0lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "handlebars": "^4.7.7" + }, + "peerDependencies": { + "typedoc": ">=0.24.0" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.4.5", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -3976,6 +4123,20 @@ "dev": true, "license": "MIT" }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", @@ -4332,6 +4493,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vscode-textmate": { + "version": "8.0.0", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/vscode-textmate/-/vscode-textmate-8.0.0.tgz", + "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", + "dev": true, + "license": "MIT" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4375,6 +4550,13 @@ "node": ">=0.10.0" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://npm.dev.wixpress.com/api/npm/npm-repos/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 2b6cee7..bbe37ef 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,9 @@ "test:e2e": "vitest run tests/e2e", "test:watch": "vitest", "test:coverage": "vitest run --coverage", + "docs": "npm run docs:generate && npm run docs:process", + "docs:generate": "typedoc", + "docs:process": "node scripts/process-docs-for-mintlify.js", "prepublishOnly": "npm run build" }, "dependencies": { @@ -30,6 +33,8 @@ "dotenv": "^16.3.1", "eslint": "^8.54.0", "nock": "^13.4.0", + "typedoc": "^0.25.0", + "typedoc-plugin-markdown": "^3.17.0", "typescript": "^5.3.2", "vitest": "^1.0.0" }, diff --git a/src/index.ts b/src/index.ts index 7a4b962..a442b83 100644 --- a/src/index.ts +++ b/src/index.ts @@ -20,3 +20,4 @@ export { export type { Base44Client }; export * from "./types.js"; +export type { AuthMethods, LoginViaEmailPasswordResponse } from "./modules/auth.js"; diff --git a/src/modules/auth.ts b/src/modules/auth.ts index 412b65a..4d344f7 100644 --- a/src/modules/auth.ts +++ b/src/modules/auth.ts @@ -1,5 +1,175 @@ import { AxiosInstance } from "axios"; +export interface LoginViaEmailPasswordResponse { + access_token: string; + user: any; +} + +/** + * Public auth methods available from the SDK. + * Document only the methods you want to expose and support. + */ +export interface AuthMethods { + /** + * Get current user information + * @example + * ```ts + * import { createClient, getAccessToken } from '@base44/sdk'; + * + * const client = createClient({ appId: 'your-app-id', token: getAccessToken() }); + * const user = await client.auth.me(); + * console.log(user); + * ``` + */ + me(): Promise; + + /** Update current user data */ + /** @internal */ + updateMe(data: Record): Promise; + + /** + * Redirects the user to the app's login page + * @example + * ```ts + * // Redirect and return to current route after login + * client.auth.redirectToLogin(window.location.pathname); + * ``` + */ + redirectToLogin(nextUrl: string): void; + + /** + * Logout the current user + * Removes the token from localStorage and optionally redirects to a URL or reloads the page + */ + /** + * @example + * ```ts + * // Reload the page after logout + * client.auth.logout(); + * + * // Or redirect to a login page + * client.auth.logout('/login'); + * ``` + */ + logout(redirectUrl?: string): void; + + /** + * Set authentication token + * @param token - Auth token + * @param saveToStorage - Whether to save the token to localStorage (default true) + */ + /** + * @example + * ```ts + * // After obtaining a token from your auth flow + * client.auth.setToken(accessToken); + * ``` + */ + setToken(token: string, saveToStorage?: boolean): void; + + /** + * Login via username and password + * @returns Login response with access_token and user + */ + /** + * @example + * ```ts + * const { access_token, user } = await client.auth.loginViaEmailPassword( + * 'user@example.com', + * 's3cret' + * ); + * client.auth.setToken(access_token); + * ``` + */ + loginViaEmailPassword( + email: string, + password: string, + turnstileToken?: string + ): Promise; + + /** + * Verify if the current token is valid + * @example + * ```ts + * const ok = await client.auth.isAuthenticated(); + * if (!ok) client.auth.redirectToLogin('/dashboard'); + * ``` + */ + isAuthenticated(): Promise; + + /** + * @example + * ```ts + * await client.auth.inviteUser('new-user@example.com', 'member'); + * ``` + */ + inviteUser(userEmail: string, role: string): Promise; + + /** + * @example + * ```ts + * await client.auth.register({ + * email: 'user@example.com', + * password: 's3cret', + * }); + * ``` + */ + register(payload: { + email: string; + password: string; + turnstile_token?: string | null; + referral_code?: string | null; + }): Promise; + + /** + * @example + * ```ts + * await client.auth.verifyOtp({ email: 'user@example.com', otpCode: '123456' }); + * ``` + */ + verifyOtp(args: { email: string; otpCode: string }): Promise; + + /** + * @example + * ```ts + * await client.auth.resendOtp('user@example.com'); + * ``` + */ + resendOtp(email: string): Promise; + + /** + * @example + * ```ts + * await client.auth.resetPasswordRequest('user@example.com'); + * ``` + */ + resetPasswordRequest(email: string): Promise; + + /** + * @example + * ```ts + * await client.auth.resetPassword({ resetToken: 'token', newPassword: 'newPass123' }); + * ``` + */ + resetPassword(args: { resetToken: string; newPassword: string }): Promise; + + /** + * @example + * ```ts + * await client.auth.changePassword({ + * userId: 'abc123', + * currentPassword: 'oldPass', + * newPassword: 'newPass123', + * }); + * ``` + */ + changePassword(args: { + userId: string; + currentPassword: string; + newPassword: string; + }): Promise; +} + /** * Creates the auth module for the Base44 SDK * @param {import('axios').AxiosInstance} axios - Axios instance @@ -15,29 +185,15 @@ export function createAuthModule( serverUrl: string; appBaseUrl?: string; } -) { +): AuthMethods { return { - /** - * Get current user information - * @returns {Promise} Current user data - */ async me() { return axios.get(`/apps/${appId}/entities/User/me`); }, - /** - * Update current user data - * @param {Object} data - Updated user data - * @returns {Promise} Updated user - */ async updateMe(data: Record) { return axios.put(`/apps/${appId}/entities/User/me`, data); }, - /** - * Redirects the user to the app's login page - * @param {string} nextUrl - URL to redirect to after successful login - * @throws {Error} When not in a browser environment - */ redirectToLogin(nextUrl: string) { // This function only works in a browser environment if (typeof window === "undefined") { @@ -60,12 +216,6 @@ export function createAuthModule( window.location.href = loginUrl; }, - /** - * Logout the current user - * Removes the token from localStorage and optionally redirects to a URL or reloads the page - * @param redirectUrl - Optional URL to redirect to after logout. Reloads the page if not provided - * @returns {Promise} - */ logout(redirectUrl?: string) { // Remove token from axios headers delete axios.defaults.headers.common["Authorization"]; @@ -91,11 +241,6 @@ export function createAuthModule( } }, - /** - * Set authentication token - * @param {string} token - Auth token - * @param {boolean} [saveToStorage=true] - Whether to save the token to localStorage - */ setToken(token: string, saveToStorage = true) { if (!token) return; @@ -121,13 +266,6 @@ export function createAuthModule( } }, - /** - * Login via username and password - * @param email - User email - * @param password - User password - * @param turnstileToken - Optional Turnstile captcha token - * @returns Login response with access_token and user - */ async loginViaEmailPassword( email: string, password: string, @@ -162,10 +300,6 @@ export function createAuthModule( } }, - /** - * Verify if the current token is valid - * @returns {Promise} True if token is valid - */ async isAuthenticated() { try { await this.me(); diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 0000000..4d45ef6 --- /dev/null +++ b/typedoc.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://typedoc.org/schema.json", + "entryPoints": ["./src/index.ts"], + "out": "docs", + "plugin": ["typedoc-plugin-markdown"], + "excludePrivate": true, + "excludeProtected": true, + "excludeInternal": true, + "excludeExternals": true, + "readme": "none", + "gitRevision": "main", + "sort": ["source-order"], + "kindSortOrder": [ + "Project", + "Module", + "Namespace", + "Enum", + "Class", + "Interface", + "TypeAlias", + "Constructor", + "Property", + "Method", + "Function", + "Accessor", + "Variable" + ], + "entryDocument": "README.md", + "allReflectionsHaveOwnDocument": true, + "maxTypeConversionDepth": 2, + "hideBreadcrumbs": true, + "hideInPageTOC": true +} +