@copera.ai/sdk 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -201,6 +201,43 @@ const newRow = await copera.board.createTableRow({
201
201
 
202
202
  **Returns:** `Promise<Row>`
203
203
 
204
+ #### `authenticateTableRow(params)`
205
+
206
+ Authenticate a table row by matching an identifier column and verifying a password column. Useful for building custom authentication systems using board tables.
207
+
208
+ ```typescript
209
+ const row = await copera.board.authenticateTableRow({
210
+ boardId: 'board-id',
211
+ tableId: 'table-id',
212
+ identifierColumnId: 'email-column-id',
213
+ identifierColumnValue: 'user@example.com',
214
+ passwordColumnId: 'password-column-id',
215
+ passwordColumnValue: 'user-password'
216
+ });
217
+
218
+ if ('error' in row) {
219
+ // Handle authentication error (400: not found, 401: invalid password)
220
+ console.error('Auth failed:', row.error);
221
+ } else {
222
+ // Authentication successful
223
+ console.log('Authenticated user:', row);
224
+ }
225
+ ```
226
+
227
+ **Parameters:**
228
+ - `boardId` (string, required) - The board ID
229
+ - `tableId` (string, required) - The table ID
230
+ - `identifierColumnId` (string, required) - The column ID to use as identifier (e.g., email, username)
231
+ - `identifierColumnValue` (string, required) - The value to match in the identifier column
232
+ - `passwordColumnId` (string, required) - The password column ID
233
+ - `passwordColumnValue` (string, required) - The plaintext password to verify
234
+
235
+ **Returns:** `Promise<Row>` - The authenticated row (password columns are masked with `********`)
236
+
237
+ **Errors:**
238
+ - `400 Bad Request` - No row found with the provided identifier
239
+ - `401 Unauthorized` - Invalid password
240
+
204
241
  ### Channel Methods
205
242
 
206
243
  #### `sendMessage(params)`
@@ -234,6 +271,7 @@ import {
234
271
  Column,
235
272
  ColumnValue,
236
273
  SendMessageParams,
274
+ AuthenticateTableRowParams,
237
275
  CoperaAIError
238
276
  } from '@copera.ai/sdk';
239
277
  ```
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, '__esModule', { value: true });
2
2
 
3
3
  //#region src/version.ts
4
- const COPERA_SDK_VERSION = "2.0.0";
4
+ const COPERA_SDK_VERSION = "2.1.1";
5
5
 
6
6
  //#endregion
7
7
  //#region src/constants.ts
@@ -59,6 +59,22 @@ function createRequest(apiKey, sandbox = false) {
59
59
  };
60
60
  }
61
61
 
62
+ //#endregion
63
+ //#region src/services/board/authenticate-table-row.ts
64
+ function createAuthenticateTableRow(request) {
65
+ return async function authenticateTableRow({ boardId, tableId, identifierColumnId, identifierColumnValue, passwordColumnId, passwordColumnValue }) {
66
+ return request(`/board/${boardId}/table/${tableId}/row/authenticate`, {
67
+ method: "POST",
68
+ body: JSON.stringify({
69
+ identifierColumnId,
70
+ identifierColumnValue,
71
+ passwordColumnId,
72
+ passwordColumnValue
73
+ })
74
+ });
75
+ };
76
+ }
77
+
62
78
  //#endregion
63
79
  //#region src/services/board/create-table-row.ts
64
80
  function createCreateTableRow(request) {
@@ -131,7 +147,8 @@ function createBoardHandlers(request) {
131
147
  getBoardTable: createGetBoardTable(request),
132
148
  listTableRows: createListTableRows(request),
133
149
  getTableRow: createGetTableRow(request),
134
- createTableRow: createCreateTableRow(request)
150
+ createTableRow: createCreateTableRow(request),
151
+ authenticateTableRow: createAuthenticateTableRow(request)
135
152
  };
136
153
  }
137
154
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../src/version.ts","../src/constants.ts","../src/exceptions.ts","../src/requests.ts","../src/services/board/create-table-row.ts","../src/services/board/get-board-details.ts","../src/services/board/get-board-table.ts","../src/services/board/get-table-row.ts","../src/services/board/list-board-tables.ts","../src/services/board/list-boards.ts","../src/services/board/list-table-rows.ts","../src/services/board/index.ts","../src/services/channel/send-message.ts","../src/services/channel/index.ts","../src/services/index.ts","../src/index.ts"],"sourcesContent":["/*This file is auto generated during build, DO NOT CHANGE OR MODIFY */\n\nexport const COPERA_SDK_VERSION = \"2.0.0\";\n","import { COPERA_SDK_VERSION } from \"./version.js\";\n\nexport const BASE_URL = \"https://api.copera.ai/public/v1\";\nexport const BASE_URL_DEV = \"https://api-dev.copera.ai/public/v1\";\n\nexport const COPERA_DOCS = \"https://developers.copera.ai\";\n\nexport function getHeaders(apiKey: string) {\n return {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"User-Agent\": `NodeJS SDK ${COPERA_SDK_VERSION}`,\n };\n}\n","import { COPERA_DOCS } from \"./constants.js\";\n\n/**\n * Default class for CoperaAI exceptions and errors.\n *\n * It can be serialized to JSON through the `toJSON` method.\n */\nexport class CoperaAIError extends Error {\n constructor(message: string) {\n super(\n `CoperaAI SDK Error: ${message}\\n\\nPlease, refer to the documentation at: ${COPERA_DOCS}`,\n );\n this.name = \"CoperaAIError\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n };\n }\n}\n","import { BASE_URL, BASE_URL_DEV, getHeaders } from \"./constants.js\";\n\nexport function createRequest(\n apiKey: string,\n sandbox: boolean = false,\n): <TResponse>(path: string, options: RequestInit) => Promise<TResponse> {\n const defaultHeaders = getHeaders(apiKey);\n\n const baseUrl = sandbox ? BASE_URL_DEV : BASE_URL;\n\n return async <TResponse>(\n path: string,\n options: RequestInit,\n ): Promise<TResponse> => {\n try {\n const response = await fetch(`${baseUrl}${path}`, {\n ...options,\n headers: { ...defaultHeaders, ...options?.headers },\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n return { error: data.message } as TResponse;\n }\n\n return data;\n } catch (error) {\n return { error: (error as Error).message } as TResponse;\n }\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { ColumnValue, Row } from \"../../types.js\";\n\nexport function createCreateTableRow(\n request: ReturnType<typeof createRequest>,\n) {\n return async function createTableRow({\n boardId,\n tableId,\n description,\n columns,\n }: {\n boardId: string;\n tableId: string;\n description?: string;\n columns: ColumnValue[];\n }) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row`, {\n method: \"POST\",\n body: JSON.stringify({\n description,\n columns,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Board } from \"../../types.js\";\n\nexport function createGetBoardDetails(\n request: ReturnType<typeof createRequest>,\n) {\n return async function getBoardDetails({ boardId }: { boardId: string }) {\n return request<Board>(`/board/${boardId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Table } from \"../../types.js\";\n\nexport function createGetBoardTable(request: ReturnType<typeof createRequest>) {\n return async function getBoardTable({\n boardId,\n tableId,\n }: {\n boardId: string;\n tableId: string;\n }) {\n return request<Table>(`/board/${boardId}/table/${tableId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Row } from \"../../types.js\";\n\nexport function createGetTableRow(request: ReturnType<typeof createRequest>) {\n return async function getTableRow({\n boardId,\n tableId,\n rowId,\n }: {\n boardId: string;\n tableId: string;\n rowId: string;\n }) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row/${rowId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Table } from \"../../types.js\";\n\nexport function createListBoardTables(\n request: ReturnType<typeof createRequest>,\n) {\n return async function listBoardTables({ boardId }: { boardId: string }) {\n return request<Table[]>(`/board/${boardId}/tables`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Board } from \"../../types.js\";\n\nexport function createListBoards(request: ReturnType<typeof createRequest>) {\n return async function listBoards() {\n return request<Board[]>(\"/board/list-boards\", {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Row } from \"../../types.js\";\n\nexport function createListTableRows(request: ReturnType<typeof createRequest>) {\n return async function listTableRows({\n boardId,\n tableId,\n }: {\n boardId: string;\n tableId: string;\n }) {\n return request<Row[]>(`/board/${boardId}/table/${tableId}/rows`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport { createCreateTableRow } from \"./create-table-row.js\";\nimport { createGetBoardDetails } from \"./get-board-details.js\";\nimport { createGetBoardTable } from \"./get-board-table.js\";\nimport { createGetTableRow } from \"./get-table-row.js\";\nimport { createListBoardTables } from \"./list-board-tables.js\";\nimport { createListBoards } from \"./list-boards.js\";\nimport { createListTableRows } from \"./list-table-rows.js\";\n\nexport function createBoardHandlers(request: ReturnType<typeof createRequest>) {\n return {\n listBoards: createListBoards(request),\n getBoardDetails: createGetBoardDetails(request),\n listBoardTables: createListBoardTables(request),\n getBoardTable: createGetBoardTable(request),\n listTableRows: createListTableRows(request),\n getTableRow: createGetTableRow(request),\n createTableRow: createCreateTableRow(request),\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { SendMessageParams } from \"../../types.js\";\n\nexport function createSendMessage(request: ReturnType<typeof createRequest>) {\n return async function sendMessage({\n channelId,\n message,\n name,\n }: SendMessageParams) {\n return request<void>(`/chat/channel/${channelId}/send-message`, {\n method: \"POST\",\n body: JSON.stringify({\n message,\n name,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport { createSendMessage } from \"./send-message.js\";\n\nexport function createChannelHandlers(\n request: ReturnType<typeof createRequest>,\n) {\n return {\n sendMessage: createSendMessage(request),\n };\n}\n","import type { createRequest } from \"../requests.js\";\nimport { createBoardHandlers } from \"./board/index.js\";\nimport { createChannelHandlers } from \"./channel/index.js\";\n\nexport function getHandlers(request: ReturnType<typeof createRequest>) {\n return {\n board: createBoardHandlers(request),\n channel: createChannelHandlers(request),\n };\n}\n","import { CoperaAIError } from \"./exceptions.js\";\nimport { createRequest } from \"./requests.js\";\nimport { getHandlers } from \"./services/index.js\";\n\ninterface CoperaAIOptions {\n apiKey: string;\n sandbox?: boolean;\n}\nexport function CoperaAI({ apiKey, sandbox = false }: CoperaAIOptions) {\n if (!apiKey) throw new CoperaAIError(\"API key is required!\");\n const request = createRequest(apiKey, sandbox);\n\n return getHandlers(request);\n}\n\nexport { CoperaAIError };\n\nexport default CoperaAI;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../src/version.ts","../src/constants.ts","../src/exceptions.ts","../src/requests.ts","../src/services/board/authenticate-table-row.ts","../src/services/board/create-table-row.ts","../src/services/board/get-board-details.ts","../src/services/board/get-board-table.ts","../src/services/board/get-table-row.ts","../src/services/board/list-board-tables.ts","../src/services/board/list-boards.ts","../src/services/board/list-table-rows.ts","../src/services/board/index.ts","../src/services/channel/send-message.ts","../src/services/channel/index.ts","../src/services/index.ts","../src/index.ts"],"sourcesContent":["/*This file is auto generated during build, DO NOT CHANGE OR MODIFY */\n\nexport const COPERA_SDK_VERSION = \"2.1.1\";\n","import { COPERA_SDK_VERSION } from \"./version.js\";\n\nexport const BASE_URL = \"https://api.copera.ai/public/v1\";\nexport const BASE_URL_DEV = \"https://api-dev.copera.ai/public/v1\";\n\nexport const COPERA_DOCS = \"https://developers.copera.ai\";\n\nexport function getHeaders(apiKey: string) {\n return {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"User-Agent\": `NodeJS SDK ${COPERA_SDK_VERSION}`,\n };\n}\n","import { COPERA_DOCS } from \"./constants.js\";\n\n/**\n * Default class for CoperaAI exceptions and errors.\n *\n * It can be serialized to JSON through the `toJSON` method.\n */\nexport class CoperaAIError extends Error {\n constructor(message: string) {\n super(\n `CoperaAI SDK Error: ${message}\\n\\nPlease, refer to the documentation at: ${COPERA_DOCS}`,\n );\n this.name = \"CoperaAIError\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n };\n }\n}\n","import { BASE_URL, BASE_URL_DEV, getHeaders } from \"./constants.js\";\n\nexport function createRequest(\n apiKey: string,\n sandbox: boolean = false,\n): <TResponse>(path: string, options: RequestInit) => Promise<TResponse> {\n const defaultHeaders = getHeaders(apiKey);\n\n const baseUrl = sandbox ? BASE_URL_DEV : BASE_URL;\n\n return async <TResponse>(\n path: string,\n options: RequestInit,\n ): Promise<TResponse> => {\n try {\n const response = await fetch(`${baseUrl}${path}`, {\n ...options,\n headers: { ...defaultHeaders, ...options?.headers },\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n return { error: data.message } as TResponse;\n }\n\n return data;\n } catch (error) {\n return { error: (error as Error).message } as TResponse;\n }\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { AuthenticateTableRowParams, Row } from \"../../types.js\";\n\nexport function createAuthenticateTableRow(\n request: ReturnType<typeof createRequest>,\n) {\n return async function authenticateTableRow({\n boardId,\n tableId,\n identifierColumnId,\n identifierColumnValue,\n passwordColumnId,\n passwordColumnValue,\n }: AuthenticateTableRowParams) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row/authenticate`, {\n method: \"POST\",\n body: JSON.stringify({\n identifierColumnId,\n identifierColumnValue,\n passwordColumnId,\n passwordColumnValue,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { ColumnValue, Row } from \"../../types.js\";\n\nexport function createCreateTableRow(\n request: ReturnType<typeof createRequest>,\n) {\n return async function createTableRow({\n boardId,\n tableId,\n description,\n columns,\n }: {\n boardId: string;\n tableId: string;\n description?: string;\n columns: ColumnValue[];\n }) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row`, {\n method: \"POST\",\n body: JSON.stringify({\n description,\n columns,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Board } from \"../../types.js\";\n\nexport function createGetBoardDetails(\n request: ReturnType<typeof createRequest>,\n) {\n return async function getBoardDetails({ boardId }: { boardId: string }) {\n return request<Board>(`/board/${boardId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Table } from \"../../types.js\";\n\nexport function createGetBoardTable(request: ReturnType<typeof createRequest>) {\n return async function getBoardTable({\n boardId,\n tableId,\n }: {\n boardId: string;\n tableId: string;\n }) {\n return request<Table>(`/board/${boardId}/table/${tableId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Row } from \"../../types.js\";\n\nexport function createGetTableRow(request: ReturnType<typeof createRequest>) {\n return async function getTableRow({\n boardId,\n tableId,\n rowId,\n }: {\n boardId: string;\n tableId: string;\n rowId: string;\n }) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row/${rowId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Table } from \"../../types.js\";\n\nexport function createListBoardTables(\n request: ReturnType<typeof createRequest>,\n) {\n return async function listBoardTables({ boardId }: { boardId: string }) {\n return request<Table[]>(`/board/${boardId}/tables`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Board } from \"../../types.js\";\n\nexport function createListBoards(request: ReturnType<typeof createRequest>) {\n return async function listBoards() {\n return request<Board[]>(\"/board/list-boards\", {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Row } from \"../../types.js\";\n\nexport function createListTableRows(request: ReturnType<typeof createRequest>) {\n return async function listTableRows({\n boardId,\n tableId,\n }: {\n boardId: string;\n tableId: string;\n }) {\n return request<Row[]>(`/board/${boardId}/table/${tableId}/rows`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport { createAuthenticateTableRow } from \"./authenticate-table-row.js\";\nimport { createCreateTableRow } from \"./create-table-row.js\";\nimport { createGetBoardDetails } from \"./get-board-details.js\";\nimport { createGetBoardTable } from \"./get-board-table.js\";\nimport { createGetTableRow } from \"./get-table-row.js\";\nimport { createListBoardTables } from \"./list-board-tables.js\";\nimport { createListBoards } from \"./list-boards.js\";\nimport { createListTableRows } from \"./list-table-rows.js\";\n\nexport function createBoardHandlers(request: ReturnType<typeof createRequest>) {\n return {\n listBoards: createListBoards(request),\n getBoardDetails: createGetBoardDetails(request),\n listBoardTables: createListBoardTables(request),\n getBoardTable: createGetBoardTable(request),\n listTableRows: createListTableRows(request),\n getTableRow: createGetTableRow(request),\n createTableRow: createCreateTableRow(request),\n authenticateTableRow: createAuthenticateTableRow(request),\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { SendMessageParams } from \"../../types.js\";\n\nexport function createSendMessage(request: ReturnType<typeof createRequest>) {\n return async function sendMessage({\n channelId,\n message,\n name,\n }: SendMessageParams) {\n return request<void>(`/chat/channel/${channelId}/send-message`, {\n method: \"POST\",\n body: JSON.stringify({\n message,\n name,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport { createSendMessage } from \"./send-message.js\";\n\nexport function createChannelHandlers(\n request: ReturnType<typeof createRequest>,\n) {\n return {\n sendMessage: createSendMessage(request),\n };\n}\n","import type { createRequest } from \"../requests.js\";\nimport { createBoardHandlers } from \"./board/index.js\";\nimport { createChannelHandlers } from \"./channel/index.js\";\n\nexport function getHandlers(request: ReturnType<typeof createRequest>) {\n return {\n board: createBoardHandlers(request),\n channel: createChannelHandlers(request),\n };\n}\n","import { CoperaAIError } from \"./exceptions.js\";\nimport { createRequest } from \"./requests.js\";\nimport { getHandlers } from \"./services/index.js\";\n\ninterface CoperaAIOptions {\n apiKey: string;\n sandbox?: boolean;\n}\nexport function CoperaAI({ apiKey, sandbox = false }: CoperaAIOptions) {\n if (!apiKey) throw new CoperaAIError(\"API key is required!\");\n const request = createRequest(apiKey, sandbox);\n\n return getHandlers(request);\n}\n\nexport { CoperaAIError };\n\nexport * from \"./types.js\";\n\nexport default CoperaAI;\n"],"mappings":"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"}
package/dist/index.d.cts CHANGED
@@ -39,6 +39,23 @@ interface SendMessageParams {
39
39
  message: string;
40
40
  name?: string;
41
41
  }
42
+ interface CreateRowParams {
43
+ boardId: string;
44
+ tableId: string;
45
+ description?: string;
46
+ columns: ColumnValue[];
47
+ }
48
+ interface AuthenticateTableRowParams {
49
+ boardId: string;
50
+ tableId: string;
51
+ identifierColumnId: string;
52
+ identifierColumnValue: string;
53
+ passwordColumnId: string;
54
+ passwordColumnValue: string;
55
+ }
56
+ interface ApiError {
57
+ error: string;
58
+ }
42
59
  //#endregion
43
60
  //#region src/exceptions.d.ts
44
61
  /**
@@ -109,6 +126,14 @@ declare function CoperaAI({
109
126
  description?: string;
110
127
  columns: ColumnValue[];
111
128
  }) => Promise<Row>;
129
+ authenticateTableRow: ({
130
+ boardId,
131
+ tableId,
132
+ identifierColumnId,
133
+ identifierColumnValue,
134
+ passwordColumnId,
135
+ passwordColumnValue
136
+ }: AuthenticateTableRowParams) => Promise<Row>;
112
137
  };
113
138
  channel: {
114
139
  sendMessage: ({
@@ -119,5 +144,5 @@ declare function CoperaAI({
119
144
  };
120
145
  };
121
146
  //#endregion
122
- export { CoperaAI, CoperaAI as default, CoperaAIError };
147
+ export { ApiError, AuthenticateTableRowParams, Board, Column, ColumnValue, CoperaAI, CoperaAI as default, CoperaAIError, CreateRowParams, Row, SendMessageParams, Table };
123
148
  //# sourceMappingURL=index.d.cts.map
package/dist/index.d.mts CHANGED
@@ -39,6 +39,23 @@ interface SendMessageParams {
39
39
  message: string;
40
40
  name?: string;
41
41
  }
42
+ interface CreateRowParams {
43
+ boardId: string;
44
+ tableId: string;
45
+ description?: string;
46
+ columns: ColumnValue[];
47
+ }
48
+ interface AuthenticateTableRowParams {
49
+ boardId: string;
50
+ tableId: string;
51
+ identifierColumnId: string;
52
+ identifierColumnValue: string;
53
+ passwordColumnId: string;
54
+ passwordColumnValue: string;
55
+ }
56
+ interface ApiError {
57
+ error: string;
58
+ }
42
59
  //#endregion
43
60
  //#region src/exceptions.d.ts
44
61
  /**
@@ -109,6 +126,14 @@ declare function CoperaAI({
109
126
  description?: string;
110
127
  columns: ColumnValue[];
111
128
  }) => Promise<Row>;
129
+ authenticateTableRow: ({
130
+ boardId,
131
+ tableId,
132
+ identifierColumnId,
133
+ identifierColumnValue,
134
+ passwordColumnId,
135
+ passwordColumnValue
136
+ }: AuthenticateTableRowParams) => Promise<Row>;
112
137
  };
113
138
  channel: {
114
139
  sendMessage: ({
@@ -119,5 +144,5 @@ declare function CoperaAI({
119
144
  };
120
145
  };
121
146
  //#endregion
122
- export { CoperaAI, CoperaAI as default, CoperaAIError };
147
+ export { ApiError, AuthenticateTableRowParams, Board, Column, ColumnValue, CoperaAI, CoperaAI as default, CoperaAIError, CreateRowParams, Row, SendMessageParams, Table };
123
148
  //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region src/version.ts
2
- const COPERA_SDK_VERSION = "2.0.0";
2
+ const COPERA_SDK_VERSION = "2.1.1";
3
3
 
4
4
  //#endregion
5
5
  //#region src/constants.ts
@@ -57,6 +57,22 @@ function createRequest(apiKey, sandbox = false) {
57
57
  };
58
58
  }
59
59
 
60
+ //#endregion
61
+ //#region src/services/board/authenticate-table-row.ts
62
+ function createAuthenticateTableRow(request) {
63
+ return async function authenticateTableRow({ boardId, tableId, identifierColumnId, identifierColumnValue, passwordColumnId, passwordColumnValue }) {
64
+ return request(`/board/${boardId}/table/${tableId}/row/authenticate`, {
65
+ method: "POST",
66
+ body: JSON.stringify({
67
+ identifierColumnId,
68
+ identifierColumnValue,
69
+ passwordColumnId,
70
+ passwordColumnValue
71
+ })
72
+ });
73
+ };
74
+ }
75
+
60
76
  //#endregion
61
77
  //#region src/services/board/create-table-row.ts
62
78
  function createCreateTableRow(request) {
@@ -129,7 +145,8 @@ function createBoardHandlers(request) {
129
145
  getBoardTable: createGetBoardTable(request),
130
146
  listTableRows: createListTableRows(request),
131
147
  getTableRow: createGetTableRow(request),
132
- createTableRow: createCreateTableRow(request)
148
+ createTableRow: createCreateTableRow(request),
149
+ authenticateTableRow: createAuthenticateTableRow(request)
133
150
  };
134
151
  }
135
152
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/version.ts","../src/constants.ts","../src/exceptions.ts","../src/requests.ts","../src/services/board/create-table-row.ts","../src/services/board/get-board-details.ts","../src/services/board/get-board-table.ts","../src/services/board/get-table-row.ts","../src/services/board/list-board-tables.ts","../src/services/board/list-boards.ts","../src/services/board/list-table-rows.ts","../src/services/board/index.ts","../src/services/channel/send-message.ts","../src/services/channel/index.ts","../src/services/index.ts","../src/index.ts"],"sourcesContent":["/*This file is auto generated during build, DO NOT CHANGE OR MODIFY */\n\nexport const COPERA_SDK_VERSION = \"2.0.0\";\n","import { COPERA_SDK_VERSION } from \"./version.js\";\n\nexport const BASE_URL = \"https://api.copera.ai/public/v1\";\nexport const BASE_URL_DEV = \"https://api-dev.copera.ai/public/v1\";\n\nexport const COPERA_DOCS = \"https://developers.copera.ai\";\n\nexport function getHeaders(apiKey: string) {\n return {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"User-Agent\": `NodeJS SDK ${COPERA_SDK_VERSION}`,\n };\n}\n","import { COPERA_DOCS } from \"./constants.js\";\n\n/**\n * Default class for CoperaAI exceptions and errors.\n *\n * It can be serialized to JSON through the `toJSON` method.\n */\nexport class CoperaAIError extends Error {\n constructor(message: string) {\n super(\n `CoperaAI SDK Error: ${message}\\n\\nPlease, refer to the documentation at: ${COPERA_DOCS}`,\n );\n this.name = \"CoperaAIError\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n };\n }\n}\n","import { BASE_URL, BASE_URL_DEV, getHeaders } from \"./constants.js\";\n\nexport function createRequest(\n apiKey: string,\n sandbox: boolean = false,\n): <TResponse>(path: string, options: RequestInit) => Promise<TResponse> {\n const defaultHeaders = getHeaders(apiKey);\n\n const baseUrl = sandbox ? BASE_URL_DEV : BASE_URL;\n\n return async <TResponse>(\n path: string,\n options: RequestInit,\n ): Promise<TResponse> => {\n try {\n const response = await fetch(`${baseUrl}${path}`, {\n ...options,\n headers: { ...defaultHeaders, ...options?.headers },\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n return { error: data.message } as TResponse;\n }\n\n return data;\n } catch (error) {\n return { error: (error as Error).message } as TResponse;\n }\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { ColumnValue, Row } from \"../../types.js\";\n\nexport function createCreateTableRow(\n request: ReturnType<typeof createRequest>,\n) {\n return async function createTableRow({\n boardId,\n tableId,\n description,\n columns,\n }: {\n boardId: string;\n tableId: string;\n description?: string;\n columns: ColumnValue[];\n }) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row`, {\n method: \"POST\",\n body: JSON.stringify({\n description,\n columns,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Board } from \"../../types.js\";\n\nexport function createGetBoardDetails(\n request: ReturnType<typeof createRequest>,\n) {\n return async function getBoardDetails({ boardId }: { boardId: string }) {\n return request<Board>(`/board/${boardId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Table } from \"../../types.js\";\n\nexport function createGetBoardTable(request: ReturnType<typeof createRequest>) {\n return async function getBoardTable({\n boardId,\n tableId,\n }: {\n boardId: string;\n tableId: string;\n }) {\n return request<Table>(`/board/${boardId}/table/${tableId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Row } from \"../../types.js\";\n\nexport function createGetTableRow(request: ReturnType<typeof createRequest>) {\n return async function getTableRow({\n boardId,\n tableId,\n rowId,\n }: {\n boardId: string;\n tableId: string;\n rowId: string;\n }) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row/${rowId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Table } from \"../../types.js\";\n\nexport function createListBoardTables(\n request: ReturnType<typeof createRequest>,\n) {\n return async function listBoardTables({ boardId }: { boardId: string }) {\n return request<Table[]>(`/board/${boardId}/tables`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Board } from \"../../types.js\";\n\nexport function createListBoards(request: ReturnType<typeof createRequest>) {\n return async function listBoards() {\n return request<Board[]>(\"/board/list-boards\", {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Row } from \"../../types.js\";\n\nexport function createListTableRows(request: ReturnType<typeof createRequest>) {\n return async function listTableRows({\n boardId,\n tableId,\n }: {\n boardId: string;\n tableId: string;\n }) {\n return request<Row[]>(`/board/${boardId}/table/${tableId}/rows`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport { createCreateTableRow } from \"./create-table-row.js\";\nimport { createGetBoardDetails } from \"./get-board-details.js\";\nimport { createGetBoardTable } from \"./get-board-table.js\";\nimport { createGetTableRow } from \"./get-table-row.js\";\nimport { createListBoardTables } from \"./list-board-tables.js\";\nimport { createListBoards } from \"./list-boards.js\";\nimport { createListTableRows } from \"./list-table-rows.js\";\n\nexport function createBoardHandlers(request: ReturnType<typeof createRequest>) {\n return {\n listBoards: createListBoards(request),\n getBoardDetails: createGetBoardDetails(request),\n listBoardTables: createListBoardTables(request),\n getBoardTable: createGetBoardTable(request),\n listTableRows: createListTableRows(request),\n getTableRow: createGetTableRow(request),\n createTableRow: createCreateTableRow(request),\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { SendMessageParams } from \"../../types.js\";\n\nexport function createSendMessage(request: ReturnType<typeof createRequest>) {\n return async function sendMessage({\n channelId,\n message,\n name,\n }: SendMessageParams) {\n return request<void>(`/chat/channel/${channelId}/send-message`, {\n method: \"POST\",\n body: JSON.stringify({\n message,\n name,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport { createSendMessage } from \"./send-message.js\";\n\nexport function createChannelHandlers(\n request: ReturnType<typeof createRequest>,\n) {\n return {\n sendMessage: createSendMessage(request),\n };\n}\n","import type { createRequest } from \"../requests.js\";\nimport { createBoardHandlers } from \"./board/index.js\";\nimport { createChannelHandlers } from \"./channel/index.js\";\n\nexport function getHandlers(request: ReturnType<typeof createRequest>) {\n return {\n board: createBoardHandlers(request),\n channel: createChannelHandlers(request),\n };\n}\n","import { CoperaAIError } from \"./exceptions.js\";\nimport { createRequest } from \"./requests.js\";\nimport { getHandlers } from \"./services/index.js\";\n\ninterface CoperaAIOptions {\n apiKey: string;\n sandbox?: boolean;\n}\nexport function CoperaAI({ apiKey, sandbox = false }: CoperaAIOptions) {\n if (!apiKey) throw new CoperaAIError(\"API key is required!\");\n const request = createRequest(apiKey, sandbox);\n\n return getHandlers(request);\n}\n\nexport { CoperaAIError };\n\nexport default CoperaAI;\n"],"mappings":";AAEA,MAAa,qBAAqB;;;;ACAlC,MAAa,WAAW;AACxB,MAAa,eAAe;AAE5B,MAAa,cAAc;AAE3B,SAAgB,WAAW,QAAgB;AACzC,QAAO;EACL,eAAe,UAAU;EACzB,gBAAgB;EAChB,cAAc,cAAc;EAC7B;;;;;;;;;;ACLH,IAAa,gBAAb,cAAmC,MAAM;CACvC,YAAY,SAAiB;AAC3B,QACE,uBAAuB,QAAQ,6CAA6C,cAC7E;AACD,OAAK,OAAO;;CAGd,SAAS;AACP,SAAO;GACL,MAAM,KAAK;GACX,SAAS,KAAK;GACf;;;;;;ACjBL,SAAgB,cACd,QACA,UAAmB,OACoD;CACvE,MAAM,iBAAiB,WAAW,OAAO;CAEzC,MAAM,UAAU,UAAU,eAAe;AAEzC,QAAO,OACL,MACA,YACuB;AACvB,MAAI;GACF,MAAM,WAAW,MAAM,MAAM,GAAG,UAAU,QAAQ;IAChD,GAAG;IACH,SAAS;KAAE,GAAG;KAAgB,GAAG,SAAS;KAAS;IACpD,CAAC;GAEF,MAAM,OAAO,MAAM,SAAS,MAAM;AAElC,OAAI,CAAC,SAAS,GACZ,QAAO,EAAE,OAAO,KAAK,SAAS;AAGhC,UAAO;WACA,OAAO;AACd,UAAO,EAAE,OAAQ,MAAgB,SAAS;;;;;;;ACzBhD,SAAgB,qBACd,SACA;AACA,QAAO,eAAe,eAAe,EACnC,SACA,SACA,aACA,WAMC;AACD,SAAO,QAAa,UAAU,QAAQ,SAAS,QAAQ,OAAO;GAC5D,QAAQ;GACR,MAAM,KAAK,UAAU;IACnB;IACA;IACD,CAAC;GACH,CAAC;;;;;;ACpBN,SAAgB,sBACd,SACA;AACA,QAAO,eAAe,gBAAgB,EAAE,WAAgC;AACtE,SAAO,QAAe,UAAU,WAAW,EACzC,QAAQ,OACT,CAAC;;;;;;ACNN,SAAgB,oBAAoB,SAA2C;AAC7E,QAAO,eAAe,cAAc,EAClC,SACA,WAIC;AACD,SAAO,QAAe,UAAU,QAAQ,SAAS,WAAW,EAC1D,QAAQ,OACT,CAAC;;;;;;ACVN,SAAgB,kBAAkB,SAA2C;AAC3E,QAAO,eAAe,YAAY,EAChC,SACA,SACA,SAKC;AACD,SAAO,QAAa,UAAU,QAAQ,SAAS,QAAQ,OAAO,SAAS,EACrE,QAAQ,OACT,CAAC;;;;;;ACZN,SAAgB,sBACd,SACA;AACA,QAAO,eAAe,gBAAgB,EAAE,WAAgC;AACtE,SAAO,QAAiB,UAAU,QAAQ,UAAU,EAClD,QAAQ,OACT,CAAC;;;;;;ACNN,SAAgB,iBAAiB,SAA2C;AAC1E,QAAO,eAAe,aAAa;AACjC,SAAO,QAAiB,sBAAsB,EAC5C,QAAQ,OACT,CAAC;;;;;;ACJN,SAAgB,oBAAoB,SAA2C;AAC7E,QAAO,eAAe,cAAc,EAClC,SACA,WAIC;AACD,SAAO,QAAe,UAAU,QAAQ,SAAS,QAAQ,QAAQ,EAC/D,QAAQ,OACT,CAAC;;;;;;ACJN,SAAgB,oBAAoB,SAA2C;AAC7E,QAAO;EACL,YAAY,iBAAiB,QAAQ;EACrC,iBAAiB,sBAAsB,QAAQ;EAC/C,iBAAiB,sBAAsB,QAAQ;EAC/C,eAAe,oBAAoB,QAAQ;EAC3C,eAAe,oBAAoB,QAAQ;EAC3C,aAAa,kBAAkB,QAAQ;EACvC,gBAAgB,qBAAqB,QAAQ;EAC9C;;;;;ACfH,SAAgB,kBAAkB,SAA2C;AAC3E,QAAO,eAAe,YAAY,EAChC,WACA,SACA,QACoB;AACpB,SAAO,QAAc,iBAAiB,UAAU,gBAAgB;GAC9D,QAAQ;GACR,MAAM,KAAK,UAAU;IACnB;IACA;IACD,CAAC;GACH,CAAC;;;;;;ACZN,SAAgB,sBACd,SACA;AACA,QAAO,EACL,aAAa,kBAAkB,QAAQ,EACxC;;;;;ACJH,SAAgB,YAAY,SAA2C;AACrE,QAAO;EACL,OAAO,oBAAoB,QAAQ;EACnC,SAAS,sBAAsB,QAAQ;EACxC;;;;;ACAH,SAAgB,SAAS,EAAE,QAAQ,UAAU,SAA0B;AACrE,KAAI,CAAC,OAAQ,OAAM,IAAI,cAAc,uBAAuB;AAG5D,QAAO,YAFS,cAAc,QAAQ,QAAQ,CAEnB;;AAK7B,kBAAe"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/version.ts","../src/constants.ts","../src/exceptions.ts","../src/requests.ts","../src/services/board/authenticate-table-row.ts","../src/services/board/create-table-row.ts","../src/services/board/get-board-details.ts","../src/services/board/get-board-table.ts","../src/services/board/get-table-row.ts","../src/services/board/list-board-tables.ts","../src/services/board/list-boards.ts","../src/services/board/list-table-rows.ts","../src/services/board/index.ts","../src/services/channel/send-message.ts","../src/services/channel/index.ts","../src/services/index.ts","../src/index.ts"],"sourcesContent":["/*This file is auto generated during build, DO NOT CHANGE OR MODIFY */\n\nexport const COPERA_SDK_VERSION = \"2.1.1\";\n","import { COPERA_SDK_VERSION } from \"./version.js\";\n\nexport const BASE_URL = \"https://api.copera.ai/public/v1\";\nexport const BASE_URL_DEV = \"https://api-dev.copera.ai/public/v1\";\n\nexport const COPERA_DOCS = \"https://developers.copera.ai\";\n\nexport function getHeaders(apiKey: string) {\n return {\n Authorization: `Bearer ${apiKey}`,\n \"Content-Type\": \"application/json\",\n \"User-Agent\": `NodeJS SDK ${COPERA_SDK_VERSION}`,\n };\n}\n","import { COPERA_DOCS } from \"./constants.js\";\n\n/**\n * Default class for CoperaAI exceptions and errors.\n *\n * It can be serialized to JSON through the `toJSON` method.\n */\nexport class CoperaAIError extends Error {\n constructor(message: string) {\n super(\n `CoperaAI SDK Error: ${message}\\n\\nPlease, refer to the documentation at: ${COPERA_DOCS}`,\n );\n this.name = \"CoperaAIError\";\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n };\n }\n}\n","import { BASE_URL, BASE_URL_DEV, getHeaders } from \"./constants.js\";\n\nexport function createRequest(\n apiKey: string,\n sandbox: boolean = false,\n): <TResponse>(path: string, options: RequestInit) => Promise<TResponse> {\n const defaultHeaders = getHeaders(apiKey);\n\n const baseUrl = sandbox ? BASE_URL_DEV : BASE_URL;\n\n return async <TResponse>(\n path: string,\n options: RequestInit,\n ): Promise<TResponse> => {\n try {\n const response = await fetch(`${baseUrl}${path}`, {\n ...options,\n headers: { ...defaultHeaders, ...options?.headers },\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n return { error: data.message } as TResponse;\n }\n\n return data;\n } catch (error) {\n return { error: (error as Error).message } as TResponse;\n }\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { AuthenticateTableRowParams, Row } from \"../../types.js\";\n\nexport function createAuthenticateTableRow(\n request: ReturnType<typeof createRequest>,\n) {\n return async function authenticateTableRow({\n boardId,\n tableId,\n identifierColumnId,\n identifierColumnValue,\n passwordColumnId,\n passwordColumnValue,\n }: AuthenticateTableRowParams) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row/authenticate`, {\n method: \"POST\",\n body: JSON.stringify({\n identifierColumnId,\n identifierColumnValue,\n passwordColumnId,\n passwordColumnValue,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { ColumnValue, Row } from \"../../types.js\";\n\nexport function createCreateTableRow(\n request: ReturnType<typeof createRequest>,\n) {\n return async function createTableRow({\n boardId,\n tableId,\n description,\n columns,\n }: {\n boardId: string;\n tableId: string;\n description?: string;\n columns: ColumnValue[];\n }) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row`, {\n method: \"POST\",\n body: JSON.stringify({\n description,\n columns,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Board } from \"../../types.js\";\n\nexport function createGetBoardDetails(\n request: ReturnType<typeof createRequest>,\n) {\n return async function getBoardDetails({ boardId }: { boardId: string }) {\n return request<Board>(`/board/${boardId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Table } from \"../../types.js\";\n\nexport function createGetBoardTable(request: ReturnType<typeof createRequest>) {\n return async function getBoardTable({\n boardId,\n tableId,\n }: {\n boardId: string;\n tableId: string;\n }) {\n return request<Table>(`/board/${boardId}/table/${tableId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Row } from \"../../types.js\";\n\nexport function createGetTableRow(request: ReturnType<typeof createRequest>) {\n return async function getTableRow({\n boardId,\n tableId,\n rowId,\n }: {\n boardId: string;\n tableId: string;\n rowId: string;\n }) {\n return request<Row>(`/board/${boardId}/table/${tableId}/row/${rowId}`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Table } from \"../../types.js\";\n\nexport function createListBoardTables(\n request: ReturnType<typeof createRequest>,\n) {\n return async function listBoardTables({ boardId }: { boardId: string }) {\n return request<Table[]>(`/board/${boardId}/tables`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Board } from \"../../types.js\";\n\nexport function createListBoards(request: ReturnType<typeof createRequest>) {\n return async function listBoards() {\n return request<Board[]>(\"/board/list-boards\", {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { Row } from \"../../types.js\";\n\nexport function createListTableRows(request: ReturnType<typeof createRequest>) {\n return async function listTableRows({\n boardId,\n tableId,\n }: {\n boardId: string;\n tableId: string;\n }) {\n return request<Row[]>(`/board/${boardId}/table/${tableId}/rows`, {\n method: \"GET\",\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport { createAuthenticateTableRow } from \"./authenticate-table-row.js\";\nimport { createCreateTableRow } from \"./create-table-row.js\";\nimport { createGetBoardDetails } from \"./get-board-details.js\";\nimport { createGetBoardTable } from \"./get-board-table.js\";\nimport { createGetTableRow } from \"./get-table-row.js\";\nimport { createListBoardTables } from \"./list-board-tables.js\";\nimport { createListBoards } from \"./list-boards.js\";\nimport { createListTableRows } from \"./list-table-rows.js\";\n\nexport function createBoardHandlers(request: ReturnType<typeof createRequest>) {\n return {\n listBoards: createListBoards(request),\n getBoardDetails: createGetBoardDetails(request),\n listBoardTables: createListBoardTables(request),\n getBoardTable: createGetBoardTable(request),\n listTableRows: createListTableRows(request),\n getTableRow: createGetTableRow(request),\n createTableRow: createCreateTableRow(request),\n authenticateTableRow: createAuthenticateTableRow(request),\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport type { SendMessageParams } from \"../../types.js\";\n\nexport function createSendMessage(request: ReturnType<typeof createRequest>) {\n return async function sendMessage({\n channelId,\n message,\n name,\n }: SendMessageParams) {\n return request<void>(`/chat/channel/${channelId}/send-message`, {\n method: \"POST\",\n body: JSON.stringify({\n message,\n name,\n }),\n });\n };\n}\n","import type { createRequest } from \"../../requests.js\";\nimport { createSendMessage } from \"./send-message.js\";\n\nexport function createChannelHandlers(\n request: ReturnType<typeof createRequest>,\n) {\n return {\n sendMessage: createSendMessage(request),\n };\n}\n","import type { createRequest } from \"../requests.js\";\nimport { createBoardHandlers } from \"./board/index.js\";\nimport { createChannelHandlers } from \"./channel/index.js\";\n\nexport function getHandlers(request: ReturnType<typeof createRequest>) {\n return {\n board: createBoardHandlers(request),\n channel: createChannelHandlers(request),\n };\n}\n","import { CoperaAIError } from \"./exceptions.js\";\nimport { createRequest } from \"./requests.js\";\nimport { getHandlers } from \"./services/index.js\";\n\ninterface CoperaAIOptions {\n apiKey: string;\n sandbox?: boolean;\n}\nexport function CoperaAI({ apiKey, sandbox = false }: CoperaAIOptions) {\n if (!apiKey) throw new CoperaAIError(\"API key is required!\");\n const request = createRequest(apiKey, sandbox);\n\n return getHandlers(request);\n}\n\nexport { CoperaAIError };\n\nexport * from \"./types.js\";\n\nexport default CoperaAI;\n"],"mappings":";AAEA,MAAa,qBAAqB;;;;ACAlC,MAAa,WAAW;AACxB,MAAa,eAAe;AAE5B,MAAa,cAAc;AAE3B,SAAgB,WAAW,QAAgB;AACzC,QAAO;EACL,eAAe,UAAU;EACzB,gBAAgB;EAChB,cAAc,cAAc;EAC7B;;;;;;;;;;ACLH,IAAa,gBAAb,cAAmC,MAAM;CACvC,YAAY,SAAiB;AAC3B,QACE,uBAAuB,QAAQ,6CAA6C,cAC7E;AACD,OAAK,OAAO;;CAGd,SAAS;AACP,SAAO;GACL,MAAM,KAAK;GACX,SAAS,KAAK;GACf;;;;;;ACjBL,SAAgB,cACd,QACA,UAAmB,OACoD;CACvE,MAAM,iBAAiB,WAAW,OAAO;CAEzC,MAAM,UAAU,UAAU,eAAe;AAEzC,QAAO,OACL,MACA,YACuB;AACvB,MAAI;GACF,MAAM,WAAW,MAAM,MAAM,GAAG,UAAU,QAAQ;IAChD,GAAG;IACH,SAAS;KAAE,GAAG;KAAgB,GAAG,SAAS;KAAS;IACpD,CAAC;GAEF,MAAM,OAAO,MAAM,SAAS,MAAM;AAElC,OAAI,CAAC,SAAS,GACZ,QAAO,EAAE,OAAO,KAAK,SAAS;AAGhC,UAAO;WACA,OAAO;AACd,UAAO,EAAE,OAAQ,MAAgB,SAAS;;;;;;;ACzBhD,SAAgB,2BACd,SACA;AACA,QAAO,eAAe,qBAAqB,EACzC,SACA,SACA,oBACA,uBACA,kBACA,uBAC6B;AAC7B,SAAO,QAAa,UAAU,QAAQ,SAAS,QAAQ,oBAAoB;GACzE,QAAQ;GACR,MAAM,KAAK,UAAU;IACnB;IACA;IACA;IACA;IACD,CAAC;GACH,CAAC;;;;;;ACnBN,SAAgB,qBACd,SACA;AACA,QAAO,eAAe,eAAe,EACnC,SACA,SACA,aACA,WAMC;AACD,SAAO,QAAa,UAAU,QAAQ,SAAS,QAAQ,OAAO;GAC5D,QAAQ;GACR,MAAM,KAAK,UAAU;IACnB;IACA;IACD,CAAC;GACH,CAAC;;;;;;ACpBN,SAAgB,sBACd,SACA;AACA,QAAO,eAAe,gBAAgB,EAAE,WAAgC;AACtE,SAAO,QAAe,UAAU,WAAW,EACzC,QAAQ,OACT,CAAC;;;;;;ACNN,SAAgB,oBAAoB,SAA2C;AAC7E,QAAO,eAAe,cAAc,EAClC,SACA,WAIC;AACD,SAAO,QAAe,UAAU,QAAQ,SAAS,WAAW,EAC1D,QAAQ,OACT,CAAC;;;;;;ACVN,SAAgB,kBAAkB,SAA2C;AAC3E,QAAO,eAAe,YAAY,EAChC,SACA,SACA,SAKC;AACD,SAAO,QAAa,UAAU,QAAQ,SAAS,QAAQ,OAAO,SAAS,EACrE,QAAQ,OACT,CAAC;;;;;;ACZN,SAAgB,sBACd,SACA;AACA,QAAO,eAAe,gBAAgB,EAAE,WAAgC;AACtE,SAAO,QAAiB,UAAU,QAAQ,UAAU,EAClD,QAAQ,OACT,CAAC;;;;;;ACNN,SAAgB,iBAAiB,SAA2C;AAC1E,QAAO,eAAe,aAAa;AACjC,SAAO,QAAiB,sBAAsB,EAC5C,QAAQ,OACT,CAAC;;;;;;ACJN,SAAgB,oBAAoB,SAA2C;AAC7E,QAAO,eAAe,cAAc,EAClC,SACA,WAIC;AACD,SAAO,QAAe,UAAU,QAAQ,SAAS,QAAQ,QAAQ,EAC/D,QAAQ,OACT,CAAC;;;;;;ACHN,SAAgB,oBAAoB,SAA2C;AAC7E,QAAO;EACL,YAAY,iBAAiB,QAAQ;EACrC,iBAAiB,sBAAsB,QAAQ;EAC/C,iBAAiB,sBAAsB,QAAQ;EAC/C,eAAe,oBAAoB,QAAQ;EAC3C,eAAe,oBAAoB,QAAQ;EAC3C,aAAa,kBAAkB,QAAQ;EACvC,gBAAgB,qBAAqB,QAAQ;EAC7C,sBAAsB,2BAA2B,QAAQ;EAC1D;;;;;ACjBH,SAAgB,kBAAkB,SAA2C;AAC3E,QAAO,eAAe,YAAY,EAChC,WACA,SACA,QACoB;AACpB,SAAO,QAAc,iBAAiB,UAAU,gBAAgB;GAC9D,QAAQ;GACR,MAAM,KAAK,UAAU;IACnB;IACA;IACD,CAAC;GACH,CAAC;;;;;;ACZN,SAAgB,sBACd,SACA;AACA,QAAO,EACL,aAAa,kBAAkB,QAAQ,EACxC;;;;;ACJH,SAAgB,YAAY,SAA2C;AACrE,QAAO;EACL,OAAO,oBAAoB,QAAQ;EACnC,SAAS,sBAAsB,QAAQ;EACxC;;;;;ACAH,SAAgB,SAAS,EAAE,QAAQ,UAAU,SAA0B;AACrE,KAAI,CAAC,OAAQ,OAAM,IAAI,cAAc,uBAAuB;AAG5D,QAAO,YAFS,cAAc,QAAQ,QAAQ,CAEnB;;AAO7B,kBAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@copera.ai/sdk",
3
- "version": "2.0.0",
3
+ "version": "2.1.1",
4
4
  "description": "Copera.ai NodeJS SDK",
5
5
  "type": "module",
6
6
  "publishConfig": {