@cobaltio/cobalt-js 8.8.0 → 8.9.0

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
@@ -3,16 +3,21 @@
3
3
  */
4
4
  /** An application in Cobalt. */
5
5
  export interface Application {
6
+ /** Application ID */
7
+ app_id: string;
6
8
  /**The application name. */
7
9
  name: string;
8
10
  /**The application description. */
9
11
  description: string;
10
12
  /**The application icon. */
11
13
  icon: string;
12
- /**The application slug for native apps. */
13
- type: string;
14
- /** The application slug for custom apps. */
15
- slug?: string;
14
+ /**
15
+ * @deprecated Use `slug` instead.
16
+ * The application slug for native apps and `custom` for custom apps.
17
+ */
18
+ type: string | "custom";
19
+ /** The application slug. */
20
+ slug: string;
16
21
  /**The type of auth used by application. */
17
22
  auth_type: "oauth2" | "keybased";
18
23
  /** Whether the user has connected the application. */
@@ -21,6 +26,8 @@ export interface Application {
21
26
  reauth_required?: boolean;
22
27
  /** The fields required from the user to connect the application (for `keybased` auth type). */
23
28
  auth_input_map?: InputField[];
29
+ /** The categories/tags for the application. */
30
+ tags?: string[];
24
31
  }
25
32
  /** An Input field to take input from the user. */
26
33
  export interface InputField {
@@ -30,10 +37,19 @@ export interface InputField {
30
37
  type: string;
31
38
  /** Whether the field is required. */
32
39
  required: boolean;
40
+ /** Whether the field accepts multiple values. */
41
+ multiple?: boolean;
33
42
  /** The placeholder of the field. */
34
43
  placeholder: string;
35
44
  /** The label of the field. */
36
45
  label: string;
46
+ /** The help text for the field. */
47
+ help_text?: string;
48
+ /** The options for the field. */
49
+ options?: {
50
+ name?: string;
51
+ value: string;
52
+ }[];
37
53
  }
38
54
  /** The payload object for config. */
39
55
  export interface ConfigPayload {
@@ -77,6 +93,9 @@ export interface CobaltOptions {
77
93
  /** The session token. */
78
94
  token?: string;
79
95
  }
96
+ /**
97
+ * @deprecated
98
+ */
80
99
  export interface EcosystemLead {
81
100
  _id: string;
82
101
  name?: string;
@@ -84,6 +103,9 @@ export interface EcosystemLead {
84
103
  description?: string;
85
104
  created_at: string;
86
105
  }
106
+ /**
107
+ * @deprecated
108
+ */
87
109
  export interface EcosystemLeadPayload {
88
110
  slug: string;
89
111
  name?: string;
@@ -134,6 +156,13 @@ interface PaginationProps {
134
156
  page?: number;
135
157
  limit?: number;
136
158
  }
159
+ interface PaginatedResponse<T> {
160
+ docs: T[];
161
+ totalDocs: number;
162
+ limit: number;
163
+ totalPages: number;
164
+ page: number;
165
+ }
137
166
  export interface Config {
138
167
  slug: string;
139
168
  config_id?: string;
@@ -165,6 +194,12 @@ export interface ConfigField {
165
194
  required?: boolean;
166
195
  hidden?: boolean;
167
196
  value?: any;
197
+ /** The placeholder for the field. */
198
+ placeholder?: string;
199
+ /** The help text for the field. */
200
+ help_text?: string;
201
+ /** The page this field is associated with. */
202
+ associated_page?: string;
168
203
  }
169
204
  export interface ConfigWorkflow {
170
205
  id: string;
@@ -173,6 +208,40 @@ export interface ConfigWorkflow {
173
208
  enabled: boolean;
174
209
  fields?: ConfigField[];
175
210
  }
211
+ export interface Execution {
212
+ _id: string;
213
+ id?: string;
214
+ name: string;
215
+ org_id: string;
216
+ associated_application: {
217
+ _id: string;
218
+ name: string;
219
+ icon?: string;
220
+ };
221
+ status: "COMPLETED" | "RUNNING" | "ERRORED" | "STOPPED" | "STOPPING" | "TIMED_OUT";
222
+ associated_workflow: {
223
+ _id: string;
224
+ name: string;
225
+ };
226
+ associated_trigger_application: {
227
+ _id: string;
228
+ name: string;
229
+ icon?: string;
230
+ app_type?: "custom" | string;
231
+ origin_trigger: {
232
+ _id: string;
233
+ name: string;
234
+ };
235
+ };
236
+ trigger_application_event?: string;
237
+ linked_account_id: string;
238
+ environment: "test" | "production";
239
+ config_id: string;
240
+ associated_event_id: string;
241
+ custom_trigger_id?: string;
242
+ custom_application_id?: string;
243
+ createdAt: string;
244
+ }
176
245
  declare class Cobalt {
177
246
  private baseUrl;
178
247
  token: string;
@@ -208,7 +277,7 @@ declare class Cobalt {
208
277
  */
209
278
  getApp(slug: string): Promise<Application>;
210
279
  /**
211
- * Returns all the enabled and ecosystem apps.
280
+ * Returns all the enabled apps.
212
281
  * @returns {Promise<Application[]>} The list of applications.
213
282
  */
214
283
  getApps(): Promise<Application[]>;
@@ -277,6 +346,7 @@ declare class Cobalt {
277
346
  */
278
347
  deleteConfig(slug: string, configId?: string): Promise<unknown>;
279
348
  /**
349
+ * @deprecated
280
350
  * Create a lead for an ecosystem app.
281
351
  * @param {EcosystemLeadPayload} payload The payload object for the lead.
282
352
  * @returns {Promise<EcosystemLead>}
@@ -317,14 +387,14 @@ declare class Cobalt {
317
387
  */
318
388
  getFieldOptions(lhs: string, slug: string, fieldId: string, workflowId?: string): Promise<RuleOptions>;
319
389
  /**
320
- *
390
+ * Returns the private workflows for the specified application.
321
391
  * @param {Object} params
322
392
  * @param {String} [params.slug]
323
393
  * @param {Number} [params.page]
324
394
  * @param {Number} [params.limit]
325
395
  * @returns
326
396
  */
327
- getWorkflows(params?: PublicWorkflowsPayload): Promise<PublicWorkflow[]>;
397
+ getWorkflows(params?: PublicWorkflowsPayload): Promise<PaginatedResponse<PublicWorkflow>>;
328
398
  /**
329
399
  * Create a public workflow for the linked account.
330
400
  * @param {Object} params
@@ -341,5 +411,19 @@ declare class Cobalt {
341
411
  * @returns {Promise<unknown>}
342
412
  */
343
413
  deleteWorkflow(workflowId: string): Promise<unknown>;
414
+ /**
415
+ * Returns the workflow execution logs for the linked account.
416
+ * @param {Object} [params]
417
+ * @param {Number} [params.page]
418
+ * @param {Number} [params.limit]
419
+ * @returns {Promise<PaginatedResponse<Execution>>} The paginated workflow execution logs.
420
+ */
421
+ getExecutions({ page, limit }?: PaginationProps): Promise<PaginatedResponse<Execution>>;
422
+ /**
423
+ * Returns the specified workflow execution log.
424
+ * @param {String} executionId The execution ID.
425
+ * @returns {Promise<Execution>} The specified execution log.
426
+ */
427
+ getExecution(executionId: string): Promise<Execution>;
344
428
  }
345
429
  export { Cobalt };
package/cobalt.js CHANGED
@@ -94,12 +94,12 @@ class Cobalt {
94
94
  });
95
95
  }
96
96
  /**
97
- * Returns all the enabled and ecosystem apps.
97
+ * Returns all the enabled apps.
98
98
  * @returns {Promise<Application[]>} The list of applications.
99
99
  */
100
100
  getApps() {
101
101
  return __awaiter(this, void 0, void 0, function* () {
102
- const res = yield fetch(`${this.baseUrl}/api/v2/f-sdk/application?ecosystem=true`, {
102
+ const res = yield fetch(`${this.baseUrl}/api/v2/f-sdk/application`, {
103
103
  headers: {
104
104
  authorization: `Bearer ${this.token}`,
105
105
  },
@@ -346,6 +346,7 @@ class Cobalt {
346
346
  });
347
347
  }
348
348
  /**
349
+ * @deprecated
349
350
  * Create a lead for an ecosystem app.
350
351
  * @param {EcosystemLeadPayload} payload The payload object for the lead.
351
352
  * @returns {Promise<EcosystemLead>}
@@ -467,7 +468,7 @@ class Cobalt {
467
468
  });
468
469
  }
469
470
  /**
470
- *
471
+ * Returns the private workflows for the specified application.
471
472
  * @param {Object} params
472
473
  * @param {String} [params.slug]
473
474
  * @param {Number} [params.page]
@@ -498,6 +499,7 @@ class Cobalt {
498
499
  * @returns {Promise<PublicWorkflow>} The created public workflow.
499
500
  */
500
501
  createWorkflow(params) {
502
+ var _a;
501
503
  return __awaiter(this, void 0, void 0, function* () {
502
504
  const res = yield fetch(`${this.baseUrl}/api/v2/public/workflow`, {
503
505
  method: "POST",
@@ -515,7 +517,8 @@ class Cobalt {
515
517
  const error = yield res.json();
516
518
  throw error;
517
519
  }
518
- return yield res.json();
520
+ const data = yield res.json();
521
+ return (_a = data === null || data === void 0 ? void 0 : data.workflow) !== null && _a !== void 0 ? _a : data;
519
522
  });
520
523
  }
521
524
  /**
@@ -538,5 +541,45 @@ class Cobalt {
538
541
  return yield res.json();
539
542
  });
540
543
  }
544
+ /**
545
+ * Returns the workflow execution logs for the linked account.
546
+ * @param {Object} [params]
547
+ * @param {Number} [params.page]
548
+ * @param {Number} [params.limit]
549
+ * @returns {Promise<PaginatedResponse<Execution>>} The paginated workflow execution logs.
550
+ */
551
+ getExecutions({ page = 1, limit = 10 } = {}) {
552
+ return __awaiter(this, void 0, void 0, function* () {
553
+ const res = yield fetch(`${this.baseUrl}/api/v2/public/execution?page=${page}&limit=${limit}`, {
554
+ headers: {
555
+ authorization: `Bearer ${this.token}`,
556
+ },
557
+ });
558
+ if (res.status >= 400 && res.status < 600) {
559
+ const error = yield res.json();
560
+ throw error;
561
+ }
562
+ return yield res.json();
563
+ });
564
+ }
565
+ /**
566
+ * Returns the specified workflow execution log.
567
+ * @param {String} executionId The execution ID.
568
+ * @returns {Promise<Execution>} The specified execution log.
569
+ */
570
+ getExecution(executionId) {
571
+ return __awaiter(this, void 0, void 0, function* () {
572
+ const res = yield fetch(`${this.baseUrl}/api/v2/public/execution/${executionId}`, {
573
+ headers: {
574
+ authorization: `Bearer ${this.token}`,
575
+ },
576
+ });
577
+ if (res.status >= 400 && res.status < 600) {
578
+ const error = yield res.json();
579
+ throw error;
580
+ }
581
+ return yield res.json();
582
+ });
583
+ }
541
584
  }
542
585
  exports.Cobalt = Cobalt;
package/cobalt.ts CHANGED
@@ -4,16 +4,21 @@
4
4
 
5
5
  /** An application in Cobalt. */
6
6
  export interface Application {
7
+ /** Application ID */
8
+ app_id: string;
7
9
  /**The application name. */
8
10
  name: string;
9
11
  /**The application description. */
10
12
  description: string;
11
13
  /**The application icon. */
12
14
  icon: string;
13
- /**The application slug for native apps. */
14
- type: string;
15
- /** The application slug for custom apps. */
16
- slug?: string;
15
+ /**
16
+ * @deprecated Use `slug` instead.
17
+ * The application slug for native apps and `custom` for custom apps.
18
+ */
19
+ type: string | "custom";
20
+ /** The application slug. */
21
+ slug: string;
17
22
  /**The type of auth used by application. */
18
23
  auth_type: "oauth2" | "keybased";
19
24
  /** Whether the user has connected the application. */
@@ -22,6 +27,8 @@ export interface Application {
22
27
  reauth_required?: boolean;
23
28
  /** The fields required from the user to connect the application (for `keybased` auth type). */
24
29
  auth_input_map?: InputField[];
30
+ /** The categories/tags for the application. */
31
+ tags?: string[];
25
32
  }
26
33
 
27
34
  /** An Input field to take input from the user. */
@@ -32,10 +39,19 @@ export interface InputField {
32
39
  type: string;
33
40
  /** Whether the field is required. */
34
41
  required: boolean;
42
+ /** Whether the field accepts multiple values. */
43
+ multiple?: boolean;
35
44
  /** The placeholder of the field. */
36
45
  placeholder: string;
37
46
  /** The label of the field. */
38
47
  label: string;
48
+ /** The help text for the field. */
49
+ help_text?: string;
50
+ /** The options for the field. */
51
+ options?: {
52
+ name?: string;
53
+ value: string;
54
+ }[];
39
55
  }
40
56
 
41
57
  /** The payload object for config. */
@@ -85,6 +101,9 @@ export interface CobaltOptions {
85
101
  token?: string;
86
102
  }
87
103
 
104
+ /**
105
+ * @deprecated
106
+ */
88
107
  export interface EcosystemLead {
89
108
  _id: string;
90
109
  name?: string;
@@ -93,6 +112,9 @@ export interface EcosystemLead {
93
112
  created_at: string;
94
113
  }
95
114
 
115
+ /**
116
+ * @deprecated
117
+ */
96
118
  export interface EcosystemLeadPayload {
97
119
  slug: string;
98
120
  name?: string;
@@ -149,6 +171,14 @@ interface PaginationProps {
149
171
  limit?: number;
150
172
  }
151
173
 
174
+ interface PaginatedResponse<T> {
175
+ docs: T[];
176
+ totalDocs: number;
177
+ limit: number;
178
+ totalPages: number;
179
+ page: number;
180
+ }
181
+
152
182
  export interface Config {
153
183
  slug: string;
154
184
  config_id?: string;
@@ -181,6 +211,12 @@ export interface ConfigField {
181
211
  required?: boolean;
182
212
  hidden?: boolean;
183
213
  value?: any;
214
+ /** The placeholder for the field. */
215
+ placeholder?: string;
216
+ /** The help text for the field. */
217
+ help_text?: string;
218
+ /** The page this field is associated with. */
219
+ associated_page?: string;
184
220
  }
185
221
 
186
222
  export interface ConfigWorkflow {
@@ -191,6 +227,41 @@ export interface ConfigWorkflow {
191
227
  fields?: ConfigField[];
192
228
  }
193
229
 
230
+ export interface Execution {
231
+ _id: string;
232
+ id?: string;
233
+ name: string;
234
+ org_id: string;
235
+ associated_application: {
236
+ _id: string;
237
+ name: string;
238
+ icon?: string;
239
+ },
240
+ status: "COMPLETED" | "RUNNING" | "ERRORED" | "STOPPED" | "STOPPING" | "TIMED_OUT",
241
+ associated_workflow: {
242
+ _id: string;
243
+ name: string;
244
+ },
245
+ associated_trigger_application: {
246
+ _id: string;
247
+ name: string;
248
+ icon?: string;
249
+ app_type?: "custom" | string;
250
+ origin_trigger: {
251
+ _id: string;
252
+ name: string;
253
+ }
254
+ },
255
+ trigger_application_event?: string;
256
+ linked_account_id: string;
257
+ environment: "test" | "production";
258
+ config_id: string;
259
+ associated_event_id: string;
260
+ custom_trigger_id?: string;
261
+ custom_application_id?: string;
262
+ createdAt: string;
263
+ }
264
+
194
265
  type Field = any;
195
266
 
196
267
  class Cobalt {
@@ -295,11 +366,11 @@ class Cobalt {
295
366
  }
296
367
 
297
368
  /**
298
- * Returns all the enabled and ecosystem apps.
369
+ * Returns all the enabled apps.
299
370
  * @returns {Promise<Application[]>} The list of applications.
300
371
  */
301
372
  public async getApps(): Promise<Application[]> {
302
- const res = await fetch(`${this.baseUrl}/api/v2/f-sdk/application?ecosystem=true`, {
373
+ const res = await fetch(`${this.baseUrl}/api/v2/f-sdk/application`, {
303
374
  headers: {
304
375
  authorization: `Bearer ${this.token}`,
305
376
  },
@@ -558,6 +629,7 @@ class Cobalt {
558
629
  }
559
630
 
560
631
  /**
632
+ * @deprecated
561
633
  * Create a lead for an ecosystem app.
562
634
  * @param {EcosystemLeadPayload} payload The payload object for the lead.
563
635
  * @returns {Promise<EcosystemLead>}
@@ -684,14 +756,14 @@ class Cobalt {
684
756
  }
685
757
 
686
758
  /**
687
- *
759
+ * Returns the private workflows for the specified application.
688
760
  * @param {Object} params
689
761
  * @param {String} [params.slug]
690
762
  * @param {Number} [params.page]
691
763
  * @param {Number} [params.limit]
692
764
  * @returns
693
765
  */
694
- async getWorkflows(params?: PublicWorkflowsPayload): Promise<PublicWorkflow[]> {
766
+ async getWorkflows(params?: PublicWorkflowsPayload): Promise<PaginatedResponse<PublicWorkflow>> {
695
767
  const res = await fetch(`${this.baseUrl}/api/v2/public/workflow?page=${params?.page || 1}&limit=${params?.limit || 100}${params?.slug ? `&slug=${params.slug}` : ""}`, {
696
768
  headers: {
697
769
  authorization: `Bearer ${this.token}`,
@@ -734,7 +806,8 @@ class Cobalt {
734
806
  throw error;
735
807
  }
736
808
 
737
- return await res.json();
809
+ const data = await res.json();
810
+ return data?.workflow ?? data;
738
811
  }
739
812
 
740
813
  /**
@@ -757,6 +830,48 @@ class Cobalt {
757
830
 
758
831
  return await res.json();
759
832
  }
833
+
834
+ /**
835
+ * Returns the workflow execution logs for the linked account.
836
+ * @param {Object} [params]
837
+ * @param {Number} [params.page]
838
+ * @param {Number} [params.limit]
839
+ * @returns {Promise<PaginatedResponse<Execution>>} The paginated workflow execution logs.
840
+ */
841
+ async getExecutions({ page = 1, limit = 10 }: PaginationProps = {}): Promise<PaginatedResponse<Execution>> {
842
+ const res = await fetch(`${this.baseUrl}/api/v2/public/execution?page=${page}&limit=${limit}`, {
843
+ headers: {
844
+ authorization: `Bearer ${this.token}`,
845
+ },
846
+ });
847
+
848
+ if (res.status >= 400 && res.status < 600) {
849
+ const error = await res.json();
850
+ throw error;
851
+ }
852
+
853
+ return await res.json();
854
+ }
855
+
856
+ /**
857
+ * Returns the specified workflow execution log.
858
+ * @param {String} executionId The execution ID.
859
+ * @returns {Promise<Execution>} The specified execution log.
860
+ */
861
+ async getExecution(executionId: string): Promise<Execution> {
862
+ const res = await fetch(`${this.baseUrl}/api/v2/public/execution/${executionId}`, {
863
+ headers: {
864
+ authorization: `Bearer ${this.token}`,
865
+ },
866
+ });
867
+
868
+ if (res.status >= 400 && res.status < 600) {
869
+ const error = await res.json();
870
+ throw error;
871
+ }
872
+
873
+ return await res.json();
874
+ }
760
875
  }
761
876
 
762
877
  export { Cobalt };
@@ -1 +1 @@
1
- window.navigationData = "eJyN01FLwzAQB/Dvcs/F4UCRvokoCIMNQXwQH67p1YXdkrBc0SF+d9mmroX0ktf+//drcyWvXyD0KVDDnW+QBSoIKGuowTDGSHF2en6xli1DBRvrWqgv5zff1f/kbQhsDYr17jxundCuQ0NxNsjHzPzqesCcXrQMh15MQqOGTrnOvk8Yhyg//GCJW0U45nlmhXv2qEG/jTz14nebjv2HYv1VNOze+LiPQtsFTXzXqFFMaSdNFTX40YVepv/AOdaQBTbEyfljoo2u+oatURc+rpRj2pqSzXI6ltuxAH/qmbTbOMg15jm0KJS/DYmexpbsM7vJtx/uYLj5"
1
+ window.navigationData = "eJyVk9FKwzAUht/lXBeHA0V6J6IgDByCeCFepMmpC8uS0JzihvjuslW3FpOT7Lb/939pTpK3LyDcEtRw5xphCCrwglZQgzQiBAyz4fvFijYGKlhrq6C+nN98V8fmrfdGS0Ha2VNdW8KuFRLDbJRPNfOr65FmWOjJ77kQFU0IXmVb/ZFw7KN8+UGjUYzhkOc1S7EzTnCiXyKvenXdujXuk3H9IZzsXrqwC4SbBSb+a0L8U1XDzYAaFPoOpSBUkPJz24+B56+2Rdknb94x5QbyaH1P6eM+xZxkIRo00f4h4arLvjFasqc7Rcpl3PijZLk6lLtDgfy5N8g9/VHOaV68EoT5pxfhOG3JPLOTfP8BOa3d9A=="
@@ -1 +1 @@
1
- window.searchData = "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";
1
+ window.searchData = "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";