@cobaltio/cobalt-js 8.9.0 → 8.9.2-beta.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/cobalt.d.ts CHANGED
@@ -1,6 +1,14 @@
1
1
  /**
2
2
  * Cobalt Frontend SDK
3
3
  */
4
+ export declare enum AuthType {
5
+ OAuth2 = "oauth2",
6
+ KeyBased = "keybased"
7
+ }
8
+ export declare enum AuthStatus {
9
+ Active = "active",
10
+ Expired = "expired"
11
+ }
4
12
  /** An application in Cobalt. */
5
13
  export interface Application {
6
14
  /** Application ID */
@@ -18,16 +26,43 @@ export interface Application {
18
26
  type: string | "custom";
19
27
  /** The application slug. */
20
28
  slug: string;
21
- /**The type of auth used by application. */
29
+ /** The categories/tags for the application. */
30
+ tags?: string[];
31
+ /** The supported auth types for the application, and the fields required from the user to connect the application. */
32
+ auth_type_options?: {
33
+ [key in AuthType]: InputField[];
34
+ };
35
+ /** The list of connected accounts for this application */
36
+ connected_accounts?: {
37
+ /** The identifier (username, email, etc.) of the connected account. */
38
+ identifier: unknown;
39
+ /** The auth type used to connect the account. */
40
+ auth_type: AuthType;
41
+ /** The timestamp at which the account was connected. */
42
+ connectedAt: string;
43
+ /** The current status of the connection. */
44
+ status?: AuthStatus;
45
+ }[];
46
+ /**
47
+ * The type of auth used by application.
48
+ * @deprecated Check `auth_type_options` and `connected_accounts` for multiple auth types support.
49
+ */
22
50
  auth_type: "oauth2" | "keybased";
23
- /** Whether the user has connected the application. */
51
+ /**
52
+ * Whether the user has connected the application.
53
+ * @deprecated Check `connected_accounts` for multiple auth types support.
54
+ */
24
55
  connected?: boolean;
25
- /** Whether the connection has expired and re-auth is required. */
56
+ /**
57
+ * Whether the connection has expired and re-auth is required.
58
+ * @deprecated Check `connected_accounts` for multiple auth types support.
59
+ */
26
60
  reauth_required?: boolean;
27
- /** The fields required from the user to connect the application (for `keybased` auth type). */
61
+ /**
62
+ * The fields required from the user to connect the application (for `keybased` auth type).
63
+ * @deprecated Check `auth_type_options` for multiple auth types support.
64
+ */
28
65
  auth_input_map?: InputField[];
29
- /** The categories/tags for the application. */
30
- tags?: string[];
31
66
  }
32
67
  /** An Input field to take input from the user. */
33
68
  export interface InputField {
@@ -139,6 +174,14 @@ export interface PublicWorkflow {
139
174
  name: string;
140
175
  /**The workflow description. */
141
176
  description?: string;
177
+ /**The application's slug in which this workflow exists. */
178
+ slug?: string;
179
+ /**The workflow created at. */
180
+ createdAt: string;
181
+ /**The workflow updated at. */
182
+ updatedAt: string;
183
+ /**Whether the workflow is published. */
184
+ published: boolean;
142
185
  }
143
186
  /** The payload for creating a public workflow for the linked account. */
144
187
  export interface PublicWorkflowPayload {
package/cobalt.js CHANGED
@@ -12,7 +12,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
12
12
  });
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.Cobalt = void 0;
15
+ exports.Cobalt = exports.AuthStatus = exports.AuthType = void 0;
16
+ var AuthType;
17
+ (function (AuthType) {
18
+ AuthType["OAuth2"] = "oauth2";
19
+ AuthType["KeyBased"] = "keybased";
20
+ })(AuthType || (exports.AuthType = AuthType = {}));
21
+ var AuthStatus;
22
+ (function (AuthStatus) {
23
+ AuthStatus["Active"] = "active";
24
+ AuthStatus["Expired"] = "expired";
25
+ })(AuthStatus || (exports.AuthStatus = AuthStatus = {}));
16
26
  class Cobalt {
17
27
  /**
18
28
  * Cobalt Frontend SDK
@@ -194,7 +204,7 @@ class Cobalt {
194
204
  try {
195
205
  const app = yield this.getApp(slug);
196
206
  // oauth
197
- if (app && app.auth_type === "oauth2") {
207
+ if (app && app.auth_type === AuthType.OAuth2) {
198
208
  const connected = yield this.oauth(slug, payload);
199
209
  resolve(connected);
200
210
  // key based
package/cobalt.ts CHANGED
@@ -2,6 +2,16 @@
2
2
  * Cobalt Frontend SDK
3
3
  */
4
4
 
5
+ export enum AuthType {
6
+ OAuth2 = "oauth2",
7
+ KeyBased = "keybased",
8
+ }
9
+
10
+ export enum AuthStatus {
11
+ Active = "active",
12
+ Expired = "expired",
13
+ }
14
+
5
15
  /** An application in Cobalt. */
6
16
  export interface Application {
7
17
  /** Application ID */
@@ -19,16 +29,44 @@ export interface Application {
19
29
  type: string | "custom";
20
30
  /** The application slug. */
21
31
  slug: string;
22
- /**The type of auth used by application. */
32
+ /** The categories/tags for the application. */
33
+ tags?: string[];
34
+ /** The supported auth types for the application, and the fields required from the user to connect the application. */
35
+ auth_type_options?: {
36
+ /** The fields required from the user to connect the application. */
37
+ [key in AuthType]: InputField[];
38
+ };
39
+ /** The list of connected accounts for this application */
40
+ connected_accounts?: {
41
+ /** The identifier (username, email, etc.) of the connected account. */
42
+ identifier: unknown;
43
+ /** The auth type used to connect the account. */
44
+ auth_type: AuthType;
45
+ /** The timestamp at which the account was connected. */
46
+ connectedAt: string;
47
+ /** The current status of the connection. */
48
+ status?: AuthStatus;
49
+ }[];
50
+ /**
51
+ * The type of auth used by application.
52
+ * @deprecated Check `auth_type_options` and `connected_accounts` for multiple auth types support.
53
+ */
23
54
  auth_type: "oauth2" | "keybased";
24
- /** Whether the user has connected the application. */
55
+ /**
56
+ * Whether the user has connected the application.
57
+ * @deprecated Check `connected_accounts` for multiple auth types support.
58
+ */
25
59
  connected?: boolean;
26
- /** Whether the connection has expired and re-auth is required. */
60
+ /**
61
+ * Whether the connection has expired and re-auth is required.
62
+ * @deprecated Check `connected_accounts` for multiple auth types support.
63
+ */
27
64
  reauth_required?: boolean;
28
- /** The fields required from the user to connect the application (for `keybased` auth type). */
65
+ /**
66
+ * The fields required from the user to connect the application (for `keybased` auth type).
67
+ * @deprecated Check `auth_type_options` for multiple auth types support.
68
+ */
29
69
  auth_input_map?: InputField[];
30
- /** The categories/tags for the application. */
31
- tags?: string[];
32
70
  }
33
71
 
34
72
  /** An Input field to take input from the user. */
@@ -150,6 +188,14 @@ export interface PublicWorkflow {
150
188
  name: string;
151
189
  /**The workflow description. */
152
190
  description?: string;
191
+ /**The application's slug in which this workflow exists. */
192
+ slug?: string;
193
+ /**The workflow created at. */
194
+ createdAt: string;
195
+ /**The workflow updated at. */
196
+ updatedAt: string;
197
+ /**Whether the workflow is published. */
198
+ published: boolean;
153
199
  }
154
200
 
155
201
  /** The payload for creating a public workflow for the linked account. */
@@ -426,7 +472,7 @@ class Cobalt {
426
472
  const interval = setInterval(() => {
427
473
  this.getApp(slug)
428
474
  .then(app => {
429
- if (app && app.connected === true && !app.reauth_required) {
475
+ if (app && app.connected_accounts?.filter(a => a.auth_type === AuthType.OAuth2).some(a => a.status === AuthStatus.Active)) {
430
476
  // close auth window
431
477
  connectWindow && connectWindow.close();
432
478
  // clear interval
@@ -467,7 +513,7 @@ class Cobalt {
467
513
  const app = await this.getApp(slug);
468
514
 
469
515
  // oauth
470
- if (app && app.auth_type === "oauth2") {
516
+ if (app && app.auth_type === AuthType.OAuth2) {
471
517
  const connected = await this.oauth(slug, payload);
472
518
  resolve(connected);
473
519
  // key based
@@ -1 +1 @@
1
- window.searchData = "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";
1
+ window.searchData = "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";