@cobaltio/cobalt-js 8.8.0 → 8.9.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
@@ -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;
@@ -117,6 +139,14 @@ export interface PublicWorkflow {
117
139
  name: string;
118
140
  /**The workflow description. */
119
141
  description?: string;
142
+ /**The application's slug in which this workflow exists. */
143
+ slug?: string;
144
+ /**The workflow created at. */
145
+ createdAt: string;
146
+ /**The workflow updated at. */
147
+ updatedAt: string;
148
+ /**Whether the workflow is published. */
149
+ published: boolean;
120
150
  }
121
151
  /** The payload for creating a public workflow for the linked account. */
122
152
  export interface PublicWorkflowPayload {
@@ -134,6 +164,13 @@ interface PaginationProps {
134
164
  page?: number;
135
165
  limit?: number;
136
166
  }
167
+ interface PaginatedResponse<T> {
168
+ docs: T[];
169
+ totalDocs: number;
170
+ limit: number;
171
+ totalPages: number;
172
+ page: number;
173
+ }
137
174
  export interface Config {
138
175
  slug: string;
139
176
  config_id?: string;
@@ -165,6 +202,12 @@ export interface ConfigField {
165
202
  required?: boolean;
166
203
  hidden?: boolean;
167
204
  value?: any;
205
+ /** The placeholder for the field. */
206
+ placeholder?: string;
207
+ /** The help text for the field. */
208
+ help_text?: string;
209
+ /** The page this field is associated with. */
210
+ associated_page?: string;
168
211
  }
169
212
  export interface ConfigWorkflow {
170
213
  id: string;
@@ -173,6 +216,40 @@ export interface ConfigWorkflow {
173
216
  enabled: boolean;
174
217
  fields?: ConfigField[];
175
218
  }
219
+ export interface Execution {
220
+ _id: string;
221
+ id?: string;
222
+ name: string;
223
+ org_id: string;
224
+ associated_application: {
225
+ _id: string;
226
+ name: string;
227
+ icon?: string;
228
+ };
229
+ status: "COMPLETED" | "RUNNING" | "ERRORED" | "STOPPED" | "STOPPING" | "TIMED_OUT";
230
+ associated_workflow: {
231
+ _id: string;
232
+ name: string;
233
+ };
234
+ associated_trigger_application: {
235
+ _id: string;
236
+ name: string;
237
+ icon?: string;
238
+ app_type?: "custom" | string;
239
+ origin_trigger: {
240
+ _id: string;
241
+ name: string;
242
+ };
243
+ };
244
+ trigger_application_event?: string;
245
+ linked_account_id: string;
246
+ environment: "test" | "production";
247
+ config_id: string;
248
+ associated_event_id: string;
249
+ custom_trigger_id?: string;
250
+ custom_application_id?: string;
251
+ createdAt: string;
252
+ }
176
253
  declare class Cobalt {
177
254
  private baseUrl;
178
255
  token: string;
@@ -208,7 +285,7 @@ declare class Cobalt {
208
285
  */
209
286
  getApp(slug: string): Promise<Application>;
210
287
  /**
211
- * Returns all the enabled and ecosystem apps.
288
+ * Returns all the enabled apps.
212
289
  * @returns {Promise<Application[]>} The list of applications.
213
290
  */
214
291
  getApps(): Promise<Application[]>;
@@ -277,6 +354,7 @@ declare class Cobalt {
277
354
  */
278
355
  deleteConfig(slug: string, configId?: string): Promise<unknown>;
279
356
  /**
357
+ * @deprecated
280
358
  * Create a lead for an ecosystem app.
281
359
  * @param {EcosystemLeadPayload} payload The payload object for the lead.
282
360
  * @returns {Promise<EcosystemLead>}
@@ -317,14 +395,14 @@ declare class Cobalt {
317
395
  */
318
396
  getFieldOptions(lhs: string, slug: string, fieldId: string, workflowId?: string): Promise<RuleOptions>;
319
397
  /**
320
- *
398
+ * Returns the private workflows for the specified application.
321
399
  * @param {Object} params
322
400
  * @param {String} [params.slug]
323
401
  * @param {Number} [params.page]
324
402
  * @param {Number} [params.limit]
325
403
  * @returns
326
404
  */
327
- getWorkflows(params?: PublicWorkflowsPayload): Promise<PublicWorkflow[]>;
405
+ getWorkflows(params?: PublicWorkflowsPayload): Promise<PaginatedResponse<PublicWorkflow>>;
328
406
  /**
329
407
  * Create a public workflow for the linked account.
330
408
  * @param {Object} params
@@ -341,5 +419,19 @@ declare class Cobalt {
341
419
  * @returns {Promise<unknown>}
342
420
  */
343
421
  deleteWorkflow(workflowId: string): Promise<unknown>;
422
+ /**
423
+ * Returns the workflow execution logs for the linked account.
424
+ * @param {Object} [params]
425
+ * @param {Number} [params.page]
426
+ * @param {Number} [params.limit]
427
+ * @returns {Promise<PaginatedResponse<Execution>>} The paginated workflow execution logs.
428
+ */
429
+ getExecutions({ page, limit }?: PaginationProps): Promise<PaginatedResponse<Execution>>;
430
+ /**
431
+ * Returns the specified workflow execution log.
432
+ * @param {String} executionId The execution ID.
433
+ * @returns {Promise<Execution>} The specified execution log.
434
+ */
435
+ getExecution(executionId: string): Promise<Execution>;
344
436
  }
345
437
  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;
@@ -128,6 +150,14 @@ export interface PublicWorkflow {
128
150
  name: string;
129
151
  /**The workflow description. */
130
152
  description?: string;
153
+ /**The application's slug in which this workflow exists. */
154
+ slug?: string;
155
+ /**The workflow created at. */
156
+ createdAt: string;
157
+ /**The workflow updated at. */
158
+ updatedAt: string;
159
+ /**Whether the workflow is published. */
160
+ published: boolean;
131
161
  }
132
162
 
133
163
  /** The payload for creating a public workflow for the linked account. */
@@ -149,6 +179,14 @@ interface PaginationProps {
149
179
  limit?: number;
150
180
  }
151
181
 
182
+ interface PaginatedResponse<T> {
183
+ docs: T[];
184
+ totalDocs: number;
185
+ limit: number;
186
+ totalPages: number;
187
+ page: number;
188
+ }
189
+
152
190
  export interface Config {
153
191
  slug: string;
154
192
  config_id?: string;
@@ -181,6 +219,12 @@ export interface ConfigField {
181
219
  required?: boolean;
182
220
  hidden?: boolean;
183
221
  value?: any;
222
+ /** The placeholder for the field. */
223
+ placeholder?: string;
224
+ /** The help text for the field. */
225
+ help_text?: string;
226
+ /** The page this field is associated with. */
227
+ associated_page?: string;
184
228
  }
185
229
 
186
230
  export interface ConfigWorkflow {
@@ -191,6 +235,41 @@ export interface ConfigWorkflow {
191
235
  fields?: ConfigField[];
192
236
  }
193
237
 
238
+ export interface Execution {
239
+ _id: string;
240
+ id?: string;
241
+ name: string;
242
+ org_id: string;
243
+ associated_application: {
244
+ _id: string;
245
+ name: string;
246
+ icon?: string;
247
+ },
248
+ status: "COMPLETED" | "RUNNING" | "ERRORED" | "STOPPED" | "STOPPING" | "TIMED_OUT",
249
+ associated_workflow: {
250
+ _id: string;
251
+ name: string;
252
+ },
253
+ associated_trigger_application: {
254
+ _id: string;
255
+ name: string;
256
+ icon?: string;
257
+ app_type?: "custom" | string;
258
+ origin_trigger: {
259
+ _id: string;
260
+ name: string;
261
+ }
262
+ },
263
+ trigger_application_event?: string;
264
+ linked_account_id: string;
265
+ environment: "test" | "production";
266
+ config_id: string;
267
+ associated_event_id: string;
268
+ custom_trigger_id?: string;
269
+ custom_application_id?: string;
270
+ createdAt: string;
271
+ }
272
+
194
273
  type Field = any;
195
274
 
196
275
  class Cobalt {
@@ -295,11 +374,11 @@ class Cobalt {
295
374
  }
296
375
 
297
376
  /**
298
- * Returns all the enabled and ecosystem apps.
377
+ * Returns all the enabled apps.
299
378
  * @returns {Promise<Application[]>} The list of applications.
300
379
  */
301
380
  public async getApps(): Promise<Application[]> {
302
- const res = await fetch(`${this.baseUrl}/api/v2/f-sdk/application?ecosystem=true`, {
381
+ const res = await fetch(`${this.baseUrl}/api/v2/f-sdk/application`, {
303
382
  headers: {
304
383
  authorization: `Bearer ${this.token}`,
305
384
  },
@@ -558,6 +637,7 @@ class Cobalt {
558
637
  }
559
638
 
560
639
  /**
640
+ * @deprecated
561
641
  * Create a lead for an ecosystem app.
562
642
  * @param {EcosystemLeadPayload} payload The payload object for the lead.
563
643
  * @returns {Promise<EcosystemLead>}
@@ -684,14 +764,14 @@ class Cobalt {
684
764
  }
685
765
 
686
766
  /**
687
- *
767
+ * Returns the private workflows for the specified application.
688
768
  * @param {Object} params
689
769
  * @param {String} [params.slug]
690
770
  * @param {Number} [params.page]
691
771
  * @param {Number} [params.limit]
692
772
  * @returns
693
773
  */
694
- async getWorkflows(params?: PublicWorkflowsPayload): Promise<PublicWorkflow[]> {
774
+ async getWorkflows(params?: PublicWorkflowsPayload): Promise<PaginatedResponse<PublicWorkflow>> {
695
775
  const res = await fetch(`${this.baseUrl}/api/v2/public/workflow?page=${params?.page || 1}&limit=${params?.limit || 100}${params?.slug ? `&slug=${params.slug}` : ""}`, {
696
776
  headers: {
697
777
  authorization: `Bearer ${this.token}`,
@@ -734,7 +814,8 @@ class Cobalt {
734
814
  throw error;
735
815
  }
736
816
 
737
- return await res.json();
817
+ const data = await res.json();
818
+ return data?.workflow ?? data;
738
819
  }
739
820
 
740
821
  /**
@@ -757,6 +838,48 @@ class Cobalt {
757
838
 
758
839
  return await res.json();
759
840
  }
841
+
842
+ /**
843
+ * Returns the workflow execution logs for the linked account.
844
+ * @param {Object} [params]
845
+ * @param {Number} [params.page]
846
+ * @param {Number} [params.limit]
847
+ * @returns {Promise<PaginatedResponse<Execution>>} The paginated workflow execution logs.
848
+ */
849
+ async getExecutions({ page = 1, limit = 10 }: PaginationProps = {}): Promise<PaginatedResponse<Execution>> {
850
+ const res = await fetch(`${this.baseUrl}/api/v2/public/execution?page=${page}&limit=${limit}`, {
851
+ headers: {
852
+ authorization: `Bearer ${this.token}`,
853
+ },
854
+ });
855
+
856
+ if (res.status >= 400 && res.status < 600) {
857
+ const error = await res.json();
858
+ throw error;
859
+ }
860
+
861
+ return await res.json();
862
+ }
863
+
864
+ /**
865
+ * Returns the specified workflow execution log.
866
+ * @param {String} executionId The execution ID.
867
+ * @returns {Promise<Execution>} The specified execution log.
868
+ */
869
+ async getExecution(executionId: string): Promise<Execution> {
870
+ const res = await fetch(`${this.baseUrl}/api/v2/public/execution/${executionId}`, {
871
+ headers: {
872
+ authorization: `Bearer ${this.token}`,
873
+ },
874
+ });
875
+
876
+ if (res.status >= 400 && res.status < 600) {
877
+ const error = await res.json();
878
+ throw error;
879
+ }
880
+
881
+ return await res.json();
882
+ }
760
883
  }
761
884
 
762
885
  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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";