@halix/action-sdk 1.0.5 → 1.0.7

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.
@@ -1,32 +1,398 @@
1
- export declare let authToken: string, sandboxKey: string, serviceAddress: string, actionSubject: string, userContext: string, params: string, useBody: boolean;
2
- export declare function getRelatedObjects(parentElementId: string, parentKey: string, elementId: string, filter: string): Promise<any>;
3
- export declare function getObject(dataElementId: string, key: string): Promise<any>;
1
+ import { Observable } from 'rxjs';
2
+ /**
3
+ * authToken contains the authentication token that the action handler can use to make API requests
4
+ * to Halix web services. This value is set upon calling the initialize function with incoming event
5
+ * data.
6
+ */
7
+ export declare let authToken: string;
8
+ /**
9
+ * sandboxKey contains the sandbox key identifier; identifies the sandbox that the action handler is
10
+ * running in. The sandbox identifies the current solution. This value is set upon calling the
11
+ * initialize function with incoming event data.
12
+ */
13
+ export declare let sandboxKey: string;
14
+ /**
15
+ * serviceAddress contains the URL of the Halix service that the action handler can use to make API
16
+ * requests to. This value is set upon calling the initialize function with incoming event data.
17
+ */
18
+ export declare let serviceAddress: string;
19
+ /**
20
+ * actionSubject contains the identifier of the subject of the action. The subject is the object
21
+ * that the action is being performed on. The action subject's contents will differ depending on the
22
+ * context in which the action is being executed. This value is set upon calling the initialize
23
+ * function with incoming event data.
24
+ * - for formTemplateActions, the action subject is the data being edited on the form
25
+ * - for pageTemplateActions, the action subject is record containing the context variables and
26
+ * their corresponding values on the page
27
+ * - for objectSaveActions, the action subject is the object being saved
28
+ * - for calculatedFieldActions, the action subject is the object containing the calculated field
29
+ * - for singleValueActions, the action subject may differ depending on the caller
30
+ */
31
+ export declare let actionSubject: string;
32
+ /**
33
+ * userContext contains the user context information for the user that is executing the action.
34
+ * This value is set upon calling the initialize function with incoming event data.
35
+ */
36
+ export declare let userContext: string;
37
+ /**
38
+ * params contains the parameters passed to the action. If an input dialog is used, params will
39
+ * contain the values entered in the dialog. This value is set upon calling the initialize
40
+ * function with incoming event data.
41
+ */
42
+ export declare let params: string;
43
+ /**
44
+ * useBody is a flag indicating how responses should be formatted. If true, the response will be
45
+ * returned an object with the HTTP response code and ActionResponse in the body field. If false,
46
+ * the ActionResponse will be returned directly. Typically, this does not need to be set by the
47
+ * action handler and should remain false.
48
+ */
49
+ export declare let useBody: boolean;
50
+ /**
51
+ * getRelatedObjects retrieves an array of objects from the the database. The objects returned are
52
+ * related to a parent through a defined relationship in the schema. In a typical setup, action's
53
+ * auth token must have scope access to the parent object in order to access all of its related
54
+ * objects.
55
+ *
56
+ * It is common to use getRelatedObjects to retrieve all objects belonging to the current user proxy
57
+ * or organization proxy. For example, in a user context where the current user proxy element is
58
+ * "customer," an action might want to retrieve all "purchase" objects related to the current
59
+ * customer. Similarly, in an organization context where the current organization proxy is
60
+ * "business," an action might want to retrieve all "employee" objects related to the current
61
+ * business.
62
+ *
63
+ * @param parentElementId - The ID of the parent element
64
+ * @param parentKey - The key of the parent object
65
+ * @param elementId - The ID of the element
66
+ * @param filter - Optional filter criteria for the query; if not provided, all related objects will
67
+ * be returned
68
+ * @param fetchedRelationships - Optional array of relationships to fetch; if provided, the returned
69
+ * objects will include the specified related objects as nested objects
70
+ *
71
+ * @returns Promise resolving to an array of objects
72
+ */
73
+ export declare function getRelatedObjects(parentElementId: string, parentKey: string, elementId: string, filter?: string, fetchedRelationships?: string[]): Promise<any[]>;
74
+ /**
75
+ * getRelatedObjectsAsObservable retrieves an array of objects from the the database. The objects
76
+ * returned are related to a parent through a defined relationship in the schema. In a typical
77
+ * setup, action's auth token must have scope access to the parent object in order to access all of
78
+ * its related objects.
79
+ *
80
+ * It is common to use getRelatedObjects to retrieve all objects belonging to the current user proxy
81
+ * or organization proxy. For example, in a user context where the current user proxy element is
82
+ * "customer," an action might want to retrieve all "purchase" objects related to the current
83
+ * customer. Similarly, in an organization context where the current organization proxy is
84
+ * "business," an action might want to retrieve all "employee" objects related to the current
85
+ * business.
86
+ *
87
+ * @param parentElementId - The ID of the parent element
88
+ * @param parentKey - The key of the parent element
89
+ * @param elementId - The ID of the element
90
+ * @param filter - Optional filter criteria for the query; if not provided, all related objects will
91
+ * be returned
92
+ * @param fetchedRelationships - Optional array of relationships to fetch; if provided, the returned
93
+ * objects will include the specified related objects as nested objects
94
+ *
95
+ * @returns Observable resolving to an array of objects
96
+ */
97
+ export declare function getRelatedObjectsAsObservable(parentElementId: string, parentKey: string, elementId: string, filter?: string, fetchedRelationships?: string[]): Observable<any[]>;
98
+ /**
99
+ * getObject retrieves a single object from the database by its data element ID and key.
100
+ *
101
+ * @param dataElementId - The ID of the data element
102
+ * @param key - The key of the object
103
+ * @param fetchedRelationships - Optional array of relationships to fetch; if provided, the returned
104
+ * object will include the specified related objects as nested objects
105
+ * @returns Promise resolving to the object data
106
+ */
107
+ export declare function getObject(dataElementId: string, key: string, fetchedRelationships?: string[]): Promise<any>;
108
+ /**
109
+ * getObjectAsObservable retrieves a single object from the database by its data element ID and key.
110
+ *
111
+ * @param dataElementId - The ID of the data element
112
+ * @param key - The key of the object
113
+ * @param fetchedRelationships - Optional array of relationships to fetch; if provided, the returned
114
+ * object will include the specified related objects as nested objects
115
+ *
116
+ * @returns Observable resolving to the object data
117
+ */
118
+ export declare function getObjectAsObservable(dataElementId: string, key: string, fetchedRelationships?: string[]): Observable<any>;
119
+ /**
120
+ * saveRelatedObject saves a related object to the database. The objectToSave is saved, and its
121
+ * relationship to the parent object is established based on the relationship specified in the
122
+ * schema. The objectToSave must have a relationship to the parent object and the user must have
123
+ * scope access to the parent object.
124
+ *
125
+ * @param parentElementId - The ID of the parent element
126
+ * @param parentKey - The key of the parent object
127
+ * @param elementId - The element ID of the object to save
128
+ * @param objectToSave - The object data to save (as a JSON string)
129
+ * @param opts - Optional save options
130
+ *
131
+ * @returns Promise resolving to saved object, including any updates made to the object during the
132
+ * save operation (such as assigning an objKey if the object is new), or the assignment of
133
+ * calculated values
134
+ */
4
135
  export declare function saveRelatedObject(parentElementId: string, parentKey: string, elementId: string, objectToSave: string, opts?: SaveOptions): Promise<any>;
5
- export declare function sortObjectArray<T>(array: Array<T>, sort: SortField[]): T[];
136
+ /**
137
+ * saveRelatedObjectAsObservable saves a related object to the database. The objectToSave is saved,
138
+ * and its relationship to the parent object is established based on the relationship specified in
139
+ * the schema. The objectToSave must have a relationship to the parent object and the user must have
140
+ * scope access to the parent object.
141
+ *
142
+ * @param parentElementId - The ID of the parent element
143
+ * @param parentKey - The key of the parent object
144
+ * @param elementId - The element ID of the object to save
145
+ * @param objectToSave - The object data to save (as a JSON string)
146
+ * @param opts - Optional save options
147
+ *
148
+ * @returns Observable resolving to saved object, including any updates made to the object during
149
+ * the save operation (such as assigning an objKey if the object is new), or the assignment of
150
+ * calculated values
151
+ */
152
+ export declare function saveRelatedObjectAsObservable(parentElementId: string, parentKey: string, elementId: string, objectToSave: string, opts?: SaveOptions): Observable<any>;
153
+ /**
154
+ * sortObjectArray is a helper function that sorts the passed array in place by the given
155
+ * attributes. Sorting by nested attributes in the form of a delimited attribute string are
156
+ * supported (e.g., "attribute.nestedAttribute").
157
+ *
158
+ * @param array - The array to sort
159
+ * @param sort - Array of sort field specifications
160
+ * @returns The sorted array
161
+ */
162
+ export declare function sortObjectArray<T>(array: Array<T>, sort: SortField[]): Array<T>;
163
+ /**
164
+ * compareValues is a helper function that compares two values for sorting purposes. If the values
165
+ * are strings, the comparison is case-insensitive. If the values are numbers, the comparison is
166
+ * performed numerically.
167
+ *
168
+ * @param valueA - First value to compare
169
+ * @param valueB - Second value to compare
170
+ * @param descending - Whether to sort in descending order
171
+ * @param caseInsensitive - Whether to perform case-insensitive comparison for strings
172
+ *
173
+ * @returns Comparison result (-1, 0, or 1)
174
+ */
6
175
  export declare function compareValues(valueA: any, valueB: any, descending: boolean, caseInsensitive: boolean): number;
176
+ /**
177
+ * getValueFromObject is a helper function that extracts a value from an object using a dot-notation
178
+ * path. The path can include relationships. Relationship IDs may include a colon delimiter (e.g.,
179
+ * "accountMember:ownerAccountMemberKey") to specify the key of the related object. This is useful
180
+ * when an element has more than one relationship to the same object type. Otherwise, if only one
181
+ * relationship to the same object type exists, the key may be specified without the relationship ID
182
+ * (e.g., simply, "accountMember").
183
+ *
184
+ * @param object - The object to extract value from
185
+ * @param attribute - The attribute path (e.g., "user.address.city")
186
+ *
187
+ * @returns The extracted value
188
+ */
7
189
  export declare function getValueFromObject(object: any, attribute: string): any;
8
- export declare function prepareSuccessResponse(returnVal: any): any;
190
+ /**
191
+ * prepareSuccessResponse prepares a success response in the appropriate format. The action handler
192
+ * should return an ActionResponse response when the action is successful. If useBody is true, the
193
+ * response will be returned as an object with the HTTP response code and the ActionResponse in the
194
+ * body field. If useBody is false, the ActionResponse will be returned directly.
195
+ *
196
+ * @param successResponse - The value to return
197
+ *
198
+ * @returns Formatted success response; an ActionResponse unless useBody is true
199
+ */
200
+ export declare function prepareSuccessResponse(successResponse: ActionResponse): {
201
+ statusCode: number;
202
+ body: string;
203
+ } | ActionResponse;
204
+ /**
205
+ * prepareErrorResponse prepares an error response in the appropriate format. The action handler
206
+ * should return an ErrorResponse response when the action is not successful. If useBody is true,
207
+ * the response will be returned as an object with the HTTP response code and the ErrorResponse in
208
+ * the body field. If useBody is false, the ErrorResponse will be returned directly.
209
+ *
210
+ * @param errorMessage - The error message
211
+ *
212
+ * @returns Formatted error response; an ErrorResponse unless useBody is true
213
+ */
9
214
  export declare function prepareErrorResponse(errorMessage: string): {
10
215
  statusCode: number;
11
216
  body: string;
12
- errorMessage?: undefined;
13
- responseType?: undefined;
14
- } | {
15
- errorMessage: string;
16
- responseType: string;
17
- statusCode?: undefined;
18
- body?: undefined;
19
- };
217
+ } | ErrorResponse;
218
+ /**
219
+ * initialize initializes the SDK with event data. This should be called at the beginning of the
220
+ * action handler to set up the SDK with incoming information, including context information, input
221
+ * parameters, and authentication information needed to make API requests to the Halix service.
222
+ *
223
+ * @param event - The event object containing authentication and context information
224
+ */
20
225
  export declare function initialize(event: {
21
- body?: any;
226
+ body?: IncomingEventBody;
22
227
  }): void;
228
+ /**
229
+ * SortField is an interface for specifying sort fields.
230
+ */
23
231
  export interface SortField {
232
+ /** The attribute ID to sort by */
24
233
  attributeId: string;
234
+ /** Whether to sort in descending order */
25
235
  descending?: boolean;
236
+ /** Whether to perform case-insensitive comparison */
26
237
  caseInsensitive?: boolean;
238
+ /** Whether to use auto-sequencing */
27
239
  autoSequence?: boolean;
28
240
  }
241
+ /**
242
+ * SaveOptions is an interface for specifying save operation options.
243
+ */
29
244
  export interface SaveOptions {
245
+ /** Whether to bypass validation */
30
246
  bypassValidation?: boolean;
31
247
  }
248
+ /**
249
+ * BaseActionResponse is an interface defining the base properties of an action response.
250
+ */
251
+ export interface BaseActionResponse {
252
+ /**
253
+ * The type of action response
254
+ *
255
+ * listAction - Use when the action is being run from a list
256
+ * formTemplateAction - Use when the action is being run from a form template
257
+ * pageTemplateAction - Use when the action is being run from a page template
258
+ * objectSaveAction - Use when the action has been specified for use on object save events
259
+ * calculatedFieldAction - Use when the action is being used to determine calculated field values
260
+ * singleValueAction - Use when the action is being used to determine a single value in specific
261
+ * build-in platform events (e.g., determining shopping cart prices)
262
+ * error - Use when the action is not successful
263
+ */
264
+ responseType: "listAction" | "formTemplateAction" | "pageTemplateAction" | "objectSaveAction" | "calculatedFieldAction" | "singleValueAction" | "error";
265
+ /** Whether the action is an error */
266
+ isError: boolean;
267
+ /** Notification configurations; present only if the action should trigger one or more notifications */
268
+ notificationConfigs?: NotificationConfig[];
269
+ }
270
+ /**
271
+ * ActionResponse is an interface defining the properties of an action response.
272
+ */
273
+ export type ActionResponse = ListActionResponse | FormTemplateActionResponse | PageTemplateActionResponse | ObjectSaveActionResponse | CalculatedFieldActionResponse | SingleValueActionResponse;
274
+ /**
275
+ * NotificationConfig is an interface defining a notification that should be triggered by a
276
+ * successful action response.
277
+ */
278
+ export interface NotificationConfig {
279
+ /** The ID of a notification definition setup within the solution */
280
+ notificationDefinitionId: string;
281
+ /** The key of the organization proxy */
282
+ organizationProxyKey: string;
283
+ /** The object type of the data associated with the notification */
284
+ dataObjectType: string;
285
+ /** The key of the data object associated with the notification */
286
+ dataObjectKey: string;
287
+ /** The parameters to pass to the notification */
288
+ params: Record<string, any>;
289
+ emailConfig?: {
290
+ /** The type of user proxy to send the email to */
291
+ recipientUserProxyType: string;
292
+ /** The keys of the user proxies to send the email to */
293
+ recipientUserProxyKeys: string[];
294
+ /** The email address of the sender */
295
+ fromEmailAddress?: string;
296
+ /** The name of the sender */
297
+ fromNameView?: string;
298
+ /** The email address to reply to */
299
+ replyEmailAddress?: string;
300
+ /** The email address to send the email to; use when sending emails to non-user proxies/free-form email addresses; can contain a comma-separated list of email addresses */
301
+ recipientEmail?: string;
302
+ };
303
+ smsConfig?: {
304
+ /** The type of user proxy to send the SMS to */
305
+ recipientUserProxyType: string;
306
+ /** The keys of the user proxies to send the SMS to */
307
+ recipientUserProxyKeys: string[];
308
+ /** The phone number to send the SMS to; can contain a comma-separated list of phone numbers */
309
+ recipientPhone: string;
310
+ };
311
+ pushConfig?: {
312
+ /** The type of user proxy to send the push notification to */
313
+ recipientUserProxyType: string;
314
+ /** The keys of the user proxies to send the push notification to */
315
+ recipientUserProxyKeys: string[];
316
+ /** The navigation data to pass to the push notification */
317
+ navigationData?: Record<string, string>;
318
+ };
319
+ }
320
+ /**
321
+ * ListActionResponse is an interface defining the properties of a list action response. These
322
+ * properties are expected by the list framework unpon receiving an action response from an action
323
+ * handler.
324
+ */
325
+ export interface ListActionResponse extends BaseActionResponse {
326
+ responseType: "listAction";
327
+ updatedSubject: any;
328
+ successMessage: string;
329
+ }
330
+ /**
331
+ * FormTemplateActionResponse is an interface defining the properties of a form template action
332
+ * response. These properties are expected by the form framework unpon receiving an action response
333
+ * from an action handler.
334
+ */
335
+ export interface FormTemplateActionResponse extends BaseActionResponse {
336
+ responseType: "formTemplateAction";
337
+ updatedSubject: any;
338
+ successMessage: string;
339
+ }
340
+ /**
341
+ * PageTemplateActionResponse is an interface defining the properties of a page template action
342
+ * response. These properties are expected by the page framework unpon receiving an action response
343
+ * from an action handler.
344
+ */
345
+ export interface PageTemplateActionResponse extends BaseActionResponse {
346
+ responseType: "pageTemplateAction";
347
+ successMessage: string;
348
+ updatedSubject?: Record<string, any>;
349
+ refreshPage?: boolean;
350
+ }
351
+ /**
352
+ * ObjectSaveActionResponse is an interface defining the properties of an object save action
353
+ * response. These properties are expected by the object save framework unpon receiving an action
354
+ * response from an action handler.
355
+ */
356
+ export interface ObjectSaveActionResponse extends BaseActionResponse {
357
+ responseType: "objectSaveAction";
358
+ updatedSubject: any;
359
+ successMessage: string;
360
+ }
361
+ /**
362
+ * CalculatedFieldActionResponse is an interface defining the properties of a calculated field
363
+ * action response. These properties are expected by the calculated field framework unpon receiving
364
+ * an action response from an action handler.
365
+ */
366
+ export interface CalculatedFieldActionResponse extends BaseActionResponse {
367
+ responseType: "calculatedFieldAction";
368
+ calculatedValue: any;
369
+ }
370
+ /**
371
+ * SingleValueActionResponse is an interface defining the properties of a single value action
372
+ * response. These properties are expected by the caller of the action.
373
+ */
374
+ export interface SingleValueActionResponse extends BaseActionResponse {
375
+ responseType: "singleValueAction";
376
+ successMessage: string;
377
+ value: any;
378
+ }
379
+ /**
380
+ * ErrorResponse is an interface defining the properties of an error response.
381
+ */
382
+ export interface ErrorResponse {
383
+ responseType: "error";
384
+ errorMessage: string;
385
+ }
386
+ /**
387
+ * IncomingEventBody is an interface defining the properties of an incoming event body. The halix
388
+ * platform provides these properties when an action is triggered.
389
+ */
390
+ export interface IncomingEventBody {
391
+ authToken: string;
392
+ sandboxKey: string;
393
+ serviceAddress: string;
394
+ actionSubject: string;
395
+ userContext: string;
396
+ params: Record<string, any>;
397
+ }
32
398
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAGA,eAAO,IAAI,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;AAEvJ,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAiBpH;AAED,wBAAsB,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,gBAWjE;AAED,wBAAsB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,gBAc9I;AAMD,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAiBpE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CA2B7G;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAuBhE;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,GAAG,OASpD;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM;;;;;;;;;;EASxD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,GAAG,CAAA;CAAE,QAS/C;AAED,MAAM,WAAW,SAAS;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}