@cobaltio/cobalt-js 9.2.0-beta.4 → 9.2.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +37 -0
- package/cobalt.d.ts +16 -12
- package/cobalt.js +1 -1
- package/cobalt.ts +18 -13
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/Cobalt.html +24 -24
- package/docs/enums/AuthStatus.html +2 -2
- package/docs/enums/AuthType.html +2 -2
- package/docs/interfaces/Application.html +14 -19
- package/docs/interfaces/AuthConfig.html +5 -5
- package/docs/interfaces/CobaltOptions.html +3 -3
- package/docs/interfaces/Config.html +2 -2
- package/docs/interfaces/ConfigField.html +4 -4
- package/docs/interfaces/ConfigPayload.html +4 -4
- package/docs/interfaces/ConfigWorkflow.html +2 -2
- package/docs/interfaces/ConnectedAccount.html +14 -0
- package/docs/interfaces/ExecuteWorkflowPayload.html +5 -5
- package/docs/interfaces/Execution.html +2 -2
- package/docs/interfaces/InputField.html +9 -9
- package/docs/interfaces/KeyBasedParams.html +4 -4
- package/docs/interfaces/Label.html +3 -3
- package/docs/interfaces/OAuthParams.html +5 -5
- package/docs/interfaces/PublicWorkflow.html +8 -8
- package/docs/interfaces/PublicWorkflowPayload.html +4 -4
- package/docs/interfaces/PublicWorkflowsPayload.html +2 -2
- package/docs/interfaces/RuleOptions.html +2 -2
- package/docs/interfaces/UpdateConfigPayload.html +5 -5
- package/docs/interfaces/WorkflowPayload.html +4 -4
- package/docs/interfaces/WorkflowPayloadResponse.html +2 -2
- package/docs/llms.txt +202 -183
- package/docs/modules.html +1 -1
- package/package.json +1 -1
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm run build # Compile cobalt.ts → cobalt.js + cobalt.d.ts
|
|
9
|
+
npm run docs # Generate HTML docs (docs/) from cobalt.ts via TypeDoc
|
|
10
|
+
npm run docs:llms # Generate docs/llms.txt in LLM-friendly markdown format
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
There is no test suite (`npm test` only prints a warning).
|
|
14
|
+
|
|
15
|
+
## Architecture
|
|
16
|
+
|
|
17
|
+
This is a single-file TypeScript SDK (`cobalt.ts`) that compiles to `cobalt.js` + `cobalt.d.ts`. All source changes belong in `cobalt.ts`; the `.js` and `.d.ts` files are auto-generated and committed alongside (consumers use the compiled output directly).
|
|
18
|
+
|
|
19
|
+
**Single class:** The entire SDK is one `Cobalt` class exported from `cobalt.ts`. It wraps REST API calls to `https://api.gocobalt.io` (configurable via `baseUrl`). Authentication uses a session token (`Bearer` header) that callers set via the constructor or `cobalt.token`.
|
|
20
|
+
|
|
21
|
+
**API patterns:**
|
|
22
|
+
- All HTTP calls use native `fetch()`
|
|
23
|
+
- Throws on HTTP 400+ responses
|
|
24
|
+
- Endpoints are primarily `/api/v2/`, with some `/api/v3/` (e.g. `getAccountDetails`)
|
|
25
|
+
|
|
26
|
+
**Key functional areas in `cobalt.ts`:**
|
|
27
|
+
- Account: `getAccountDetails`, `updateAccount`
|
|
28
|
+
- Apps/Auth configs: `getApp`, `getApps`, `getAuthConfigs`, `connect`, `disconnect`
|
|
29
|
+
- Config (integration settings): `config`, `getConfigs`, `getConfig`, `updateConfig`, `deleteConfig`, and field-level CRUD
|
|
30
|
+
- Workflows: `getWorkflows`, `createWorkflow`, `deleteWorkflow`, `getWorkflowPayload`, `executeWorkflow`
|
|
31
|
+
- Executions: `getExecutions`, `getExecution`
|
|
32
|
+
|
|
33
|
+
**Auth types:** `oauth2` (opens popup window) and `keybased` (submits credential fields). The `connect()` method dispatches to `private oauth()` or `private keybased()` based on `AuthType`.
|
|
34
|
+
|
|
35
|
+
## Distribution
|
|
36
|
+
|
|
37
|
+
Published as `@cobaltio/cobalt-js` on npm. The CI workflow (`.github/workflows/npm-publish.yml`) publishes on GitHub release creation. The package targets CommonJS (`module: CommonJS`, `target: ES2020`) and is usable in both Node and browsers (via CDN).
|
package/cobalt.d.ts
CHANGED
|
@@ -9,6 +9,21 @@ export declare enum AuthStatus {
|
|
|
9
9
|
Active = "active",
|
|
10
10
|
Expired = "expired"
|
|
11
11
|
}
|
|
12
|
+
/** A connected account for an application. */
|
|
13
|
+
export interface ConnectedAccount {
|
|
14
|
+
/** The unique identifier for this connected account. */
|
|
15
|
+
connection_id: string;
|
|
16
|
+
/** The identifier of the auth config. */
|
|
17
|
+
auth_config_id: string;
|
|
18
|
+
/** The identifier (username, email, etc.) of the connected account. */
|
|
19
|
+
identifier: unknown;
|
|
20
|
+
/** The auth type used to connect the account. */
|
|
21
|
+
auth_type: AuthType;
|
|
22
|
+
/** The timestamp at which the account was connected. */
|
|
23
|
+
connectedAt: string;
|
|
24
|
+
/** The current status of the connection. */
|
|
25
|
+
status?: AuthStatus;
|
|
26
|
+
}
|
|
12
27
|
/** An application in Cobalt. */
|
|
13
28
|
export interface Application {
|
|
14
29
|
/** Application ID */
|
|
@@ -33,18 +48,7 @@ export interface Application {
|
|
|
33
48
|
[key in AuthType]: InputField[];
|
|
34
49
|
};
|
|
35
50
|
/** The list of connected accounts for this application */
|
|
36
|
-
connected_accounts?:
|
|
37
|
-
/** The identifier of the auth config. */
|
|
38
|
-
auth_config_id: string;
|
|
39
|
-
/** The identifier (username, email, etc.) of the connected account. */
|
|
40
|
-
identifier: unknown;
|
|
41
|
-
/** The auth type used to connect the account. */
|
|
42
|
-
auth_type: AuthType;
|
|
43
|
-
/** The timestamp at which the account was connected. */
|
|
44
|
-
connectedAt: string;
|
|
45
|
-
/** The current status of the connection. */
|
|
46
|
-
status?: AuthStatus;
|
|
47
|
-
}[];
|
|
51
|
+
connected_accounts?: ConnectedAccount[];
|
|
48
52
|
/**
|
|
49
53
|
* The type of auth used by application.
|
|
50
54
|
* @deprecated Check `auth_type_options` and `connected_accounts` for multiple auth types support.
|
package/cobalt.js
CHANGED
|
@@ -168,7 +168,7 @@ class Cobalt {
|
|
|
168
168
|
const interval = setInterval(() => {
|
|
169
169
|
this.getApp(slug)
|
|
170
170
|
.then(app => {
|
|
171
|
-
const oauthAccounts = app.connected_accounts?.filter(a => a.auth_type === AuthType.OAuth2 && a.status
|
|
171
|
+
const oauthAccounts = app.connected_accounts?.filter(a => a.auth_type === AuthType.OAuth2 && a.status !== AuthStatus.Expired);
|
|
172
172
|
if (app && oauthAccounts?.some(a => authConfig ? a.auth_config_id === authConfig : true)) {
|
|
173
173
|
// close auth window
|
|
174
174
|
if (autoClose)
|
package/cobalt.ts
CHANGED
|
@@ -12,6 +12,22 @@ export enum AuthStatus {
|
|
|
12
12
|
Expired = "expired",
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
/** A connected account for an application. */
|
|
16
|
+
export interface ConnectedAccount {
|
|
17
|
+
/** The unique identifier for this connected account. */
|
|
18
|
+
connection_id: string;
|
|
19
|
+
/** The identifier of the auth config. */
|
|
20
|
+
auth_config_id: string;
|
|
21
|
+
/** The identifier (username, email, etc.) of the connected account. */
|
|
22
|
+
identifier: unknown;
|
|
23
|
+
/** The auth type used to connect the account. */
|
|
24
|
+
auth_type: AuthType;
|
|
25
|
+
/** The timestamp at which the account was connected. */
|
|
26
|
+
connectedAt: string;
|
|
27
|
+
/** The current status of the connection. */
|
|
28
|
+
status?: AuthStatus;
|
|
29
|
+
}
|
|
30
|
+
|
|
15
31
|
/** An application in Cobalt. */
|
|
16
32
|
export interface Application {
|
|
17
33
|
/** Application ID */
|
|
@@ -37,18 +53,7 @@ export interface Application {
|
|
|
37
53
|
[key in AuthType]: InputField[];
|
|
38
54
|
};
|
|
39
55
|
/** The list of connected accounts for this application */
|
|
40
|
-
connected_accounts?:
|
|
41
|
-
/** The identifier of the auth config. */
|
|
42
|
-
auth_config_id: string;
|
|
43
|
-
/** The identifier (username, email, etc.) of the connected account. */
|
|
44
|
-
identifier: unknown;
|
|
45
|
-
/** The auth type used to connect the account. */
|
|
46
|
-
auth_type: AuthType;
|
|
47
|
-
/** The timestamp at which the account was connected. */
|
|
48
|
-
connectedAt: string;
|
|
49
|
-
/** The current status of the connection. */
|
|
50
|
-
status?: AuthStatus;
|
|
51
|
-
}[];
|
|
56
|
+
connected_accounts?: ConnectedAccount[];
|
|
52
57
|
/**
|
|
53
58
|
* The type of auth used by application.
|
|
54
59
|
* @deprecated Check `auth_type_options` and `connected_accounts` for multiple auth types support.
|
|
@@ -548,7 +553,7 @@ class Cobalt {
|
|
|
548
553
|
const interval = setInterval(() => {
|
|
549
554
|
this.getApp(slug)
|
|
550
555
|
.then(app => {
|
|
551
|
-
const oauthAccounts = app.connected_accounts?.filter(a => a.auth_type === AuthType.OAuth2 && a.status
|
|
556
|
+
const oauthAccounts = app.connected_accounts?.filter(a => a.auth_type === AuthType.OAuth2 && a.status !== AuthStatus.Expired);
|
|
552
557
|
if (app && oauthAccounts?.some(a => authConfig ? a.auth_config_id === authConfig : true)) {
|
|
553
558
|
// close auth window
|
|
554
559
|
if (autoClose) connectWindow && connectWindow.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "
|
|
1
|
+
window.navigationData = "eJyVlE9Lw0AQxb9LzsViQZHealEQhYaqeBAP083Uhm52l+wsNojf3aS1TbfdTNbrvPd+M/v3/Tsh3FAyTiaOVs8E5GwySAzQqq6hcoUdtsrFigpZy+tcZcn45mfgpV8qg6FsU+9OTvUCJLU5IcFatMNd3c9djryexshcAOVatfFcEZZLEDXhSPcxo6vrk9GnWi3zzzDlIHOQ3bQz0zSzQY7n4FGds8TM0Tjuc5QZQ9jq/ZgUKqmBA/05+lFvulwvpf5iWHtLD0yhIMwmQminqAvnmTjg3QaFI9z35lYctvbDu67nQeUQD8o46j7OVuYgj1jdgsUshRKK8O30LRzsCRYog4ytwkVnzVtihjjSOUzqFvW7Zm+Ub4mHcecfdMajbTzbRsDnTiL33RzpHObVZEDY/9wDPg4bs5//2MkT6xytqdeFMdi99xz/8Qu1wmiP"
|
package/docs/assets/search.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.searchData = "
|
|
1
|
+
window.searchData = "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";
|