@awell-health/awell-extensions 2.0.196 → 2.0.197

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.
Files changed (64) hide show
  1. package/dist/extensions/index.js +2 -0
  2. package/dist/extensions/index.js.map +1 -1
  3. package/dist/extensions/markdown.json +4 -0
  4. package/dist/extensions/text-em-all/actions/createCallBroadcast/__testdata__/CreateCallBroadcast.mock.d.ts +88 -0
  5. package/dist/extensions/text-em-all/actions/createCallBroadcast/__testdata__/CreateCallBroadcast.mock.js +92 -0
  6. package/dist/extensions/text-em-all/actions/createCallBroadcast/__testdata__/CreateCallBroadcast.mock.js.map +1 -0
  7. package/dist/extensions/text-em-all/actions/createCallBroadcast/config.d.ts +254 -0
  8. package/dist/extensions/text-em-all/actions/createCallBroadcast/config.js +166 -0
  9. package/dist/extensions/text-em-all/actions/createCallBroadcast/config.js.map +1 -0
  10. package/dist/extensions/text-em-all/actions/createCallBroadcast/createCallBroadcast.d.ts +4 -0
  11. package/dist/extensions/text-em-all/actions/createCallBroadcast/createCallBroadcast.js +55 -0
  12. package/dist/extensions/text-em-all/actions/createCallBroadcast/createCallBroadcast.js.map +1 -0
  13. package/dist/extensions/text-em-all/actions/createCallBroadcast/index.d.ts +1 -0
  14. package/dist/extensions/text-em-all/actions/createCallBroadcast/index.js +18 -0
  15. package/dist/extensions/text-em-all/actions/createCallBroadcast/index.js.map +1 -0
  16. package/dist/extensions/text-em-all/actions/createCallBroadcast/types.d.ts +2 -0
  17. package/dist/extensions/text-em-all/actions/createCallBroadcast/types.js +6 -0
  18. package/dist/extensions/text-em-all/actions/createCallBroadcast/types.js.map +1 -0
  19. package/dist/extensions/text-em-all/actions/createSMSBroadcast/__testdata__/CreateSMSBroadcast.mock.d.ts +55 -0
  20. package/dist/extensions/text-em-all/actions/createSMSBroadcast/__testdata__/CreateSMSBroadcast.mock.js +59 -0
  21. package/dist/extensions/text-em-all/actions/createSMSBroadcast/__testdata__/CreateSMSBroadcast.mock.js.map +1 -0
  22. package/dist/extensions/text-em-all/actions/createSMSBroadcast/config.d.ts +82 -0
  23. package/dist/extensions/text-em-all/actions/createSMSBroadcast/config.js +87 -0
  24. package/dist/extensions/text-em-all/actions/createSMSBroadcast/config.js.map +1 -0
  25. package/dist/extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.d.ts +4 -0
  26. package/dist/extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.js +49 -0
  27. package/dist/extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.js.map +1 -0
  28. package/dist/extensions/text-em-all/actions/createSMSBroadcast/index.d.ts +1 -0
  29. package/dist/extensions/text-em-all/actions/createSMSBroadcast/index.js +18 -0
  30. package/dist/extensions/text-em-all/actions/createSMSBroadcast/index.js.map +1 -0
  31. package/dist/extensions/text-em-all/actions/createSMSBroadcast/types.d.ts +2 -0
  32. package/dist/extensions/text-em-all/actions/createSMSBroadcast/types.js +6 -0
  33. package/dist/extensions/text-em-all/actions/createSMSBroadcast/types.js.map +1 -0
  34. package/dist/extensions/text-em-all/actions/index.d.ts +69 -0
  35. package/dist/extensions/text-em-all/actions/index.js +9 -0
  36. package/dist/extensions/text-em-all/actions/index.js.map +1 -0
  37. package/dist/extensions/text-em-all/actions/types.d.ts +152 -0
  38. package/dist/extensions/text-em-all/actions/types.js +60 -0
  39. package/dist/extensions/text-em-all/actions/types.js.map +1 -0
  40. package/dist/extensions/text-em-all/actions/utils/validateJsonField.d.ts +2 -0
  41. package/dist/extensions/text-em-all/actions/utils/validateJsonField.js +32 -0
  42. package/dist/extensions/text-em-all/actions/utils/validateJsonField.js.map +1 -0
  43. package/dist/extensions/text-em-all/index.d.ts +2 -0
  44. package/dist/extensions/text-em-all/index.js +21 -0
  45. package/dist/extensions/text-em-all/index.js.map +1 -0
  46. package/dist/extensions/text-em-all/lib/client.d.ts +17 -0
  47. package/dist/extensions/text-em-all/lib/client.js +64 -0
  48. package/dist/extensions/text-em-all/lib/client.js.map +1 -0
  49. package/dist/extensions/text-em-all/lib/index.d.ts +1 -0
  50. package/dist/extensions/text-em-all/lib/index.js +18 -0
  51. package/dist/extensions/text-em-all/lib/index.js.map +1 -0
  52. package/dist/extensions/text-em-all/settings.d.ts +48 -0
  53. package/dist/extensions/text-em-all/settings.js +41 -0
  54. package/dist/extensions/text-em-all/settings.js.map +1 -0
  55. package/dist/extensions/text-em-all/webhooks/broadcastStatusChange.d.ts +15 -0
  56. package/dist/extensions/text-em-all/webhooks/broadcastStatusChange.js +42 -0
  57. package/dist/extensions/text-em-all/webhooks/broadcastStatusChange.js.map +1 -0
  58. package/dist/extensions/text-em-all/webhooks/index.d.ts +1 -0
  59. package/dist/extensions/text-em-all/webhooks/index.js +6 -0
  60. package/dist/extensions/text-em-all/webhooks/index.js.map +1 -0
  61. package/dist/extensions/text-em-all/webhooks/types.d.ts +24 -0
  62. package/dist/extensions/text-em-all/webhooks/types.js +15 -0
  63. package/dist/extensions/text-em-all/webhooks/types.js.map +1 -0
  64. package/package.json +4 -1
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCallBroadcast = void 0;
4
+ const zod_1 = require("zod");
5
+ const extensions_core_1 = require("@awell-health/extensions-core");
6
+ const config_1 = require("./config");
7
+ const settings_1 = require("../../settings");
8
+ const lib_1 = require("../../lib");
9
+ exports.createCallBroadcast = {
10
+ key: 'createCallBroadcast',
11
+ title: 'Send a new call broadcast',
12
+ description: 'A broadcast is a feature that allows you to initiate a call to a recipient at specific time',
13
+ category: extensions_core_1.Category.COMMUNICATION,
14
+ fields: config_1.fields,
15
+ dataPoints: config_1.dataPoints,
16
+ previewable: false,
17
+ onEvent: async ({ payload, onComplete, onError, helpers }) => {
18
+ const { fields: { broadcastName: BroadcastName, broadcastType: BroadcastType, startDate: StartDate, callerID: CallerID, transferAndConnect: TransferAndConnect, audio: Audio, maxMessageLength: MaxMessageLength, retryTimes: RetryTimes, callThrottle: CallThrottle, checkCallingWindow: CheckCallingWindow, continueOnNextDay: ContinueOnNextDay, phoneNumber, }, settings, } = (0, extensions_core_1.validate)({
19
+ schema: zod_1.z.object({ fields: config_1.FieldsSchema, settings: settings_1.SettingsSchema }),
20
+ payload,
21
+ });
22
+ const client = new lib_1.TextEmAllClient(settings);
23
+ const request = {
24
+ BroadcastName,
25
+ BroadcastType,
26
+ StartDate,
27
+ CallerID,
28
+ TransferAndConnect,
29
+ Audio,
30
+ MaxMessageLength,
31
+ RetryTimes,
32
+ CallThrottle,
33
+ CheckCallingWindow,
34
+ ContinueOnNextDay,
35
+ Contacts: [{ PrimaryPhone: phoneNumber }],
36
+ };
37
+ const { data } = await client.createBroadcast(request);
38
+ await onComplete({
39
+ events: [
40
+ {
41
+ date: new Date().toISOString(),
42
+ text: { en: `Broadcast created. Response: ${JSON.stringify(data)}` },
43
+ },
44
+ ],
45
+ data_points: {
46
+ broadcastId: data.BroadcastID.toString(),
47
+ broadcastStatus: data.BroadcastStatus,
48
+ uriBroadcastDetails: data.UriBroadcastDetails,
49
+ broadcastStatusCategory: data.BroadcastStatusCategory,
50
+ broadcastStartDate: data.StartDate,
51
+ },
52
+ });
53
+ },
54
+ };
55
+ //# sourceMappingURL=createCallBroadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCallBroadcast.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createCallBroadcast/createCallBroadcast.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAA+E;AAC/E,qCAA2D;AAC3D,6CAA8D;AAC9D,mCAA2C;AAE9B,QAAA,mBAAmB,GAI5B;IACF,GAAG,EAAE,qBAAqB;IAC1B,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,6FAA6F;IAC/F,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,mBAAU;IACV,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3D,MAAM,EACJ,MAAM,EAAE,EACN,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,GACZ,EACD,QAAQ,GACT,GAAG,IAAA,0BAAQ,EAAC;YACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAY,EAAE,QAAQ,EAAE,yBAAc,EAAE,CAAC;YACpE,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,IAAI,qBAAe,CAAC,QAAQ,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG;YACd,aAAa;YACb,aAAa;YACb,SAAS;YACT,QAAQ;YACR,kBAAkB;YAClB,KAAK;YACL,gBAAgB;YAChB,UAAU;YACV,YAAY;YACZ,kBAAkB;YAClB,iBAAiB;YACjB,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;SAC1C,CAAA;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACtD,MAAM,UAAU,CAAC;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,gCAAgC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE;iBACrE;aACF;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACxC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;gBACrD,kBAAkB,EAAE,IAAI,CAAC,SAAS;aACnC;SACF,CAAC,CAAA;IACJ,CAAC;CAC+C,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './createCallBroadcast';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./createCallBroadcast"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createCallBroadcast/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
@@ -0,0 +1,2 @@
1
+ import { z } from 'zod';
2
+ export declare const BroadcastTypes: z.ZodEnum<["Announcement", "Survey"]>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BroadcastTypes = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.BroadcastTypes = zod_1.z.enum(['Announcement', 'Survey']);
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createCallBroadcast/types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,cAAc,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,55 @@
1
+ export declare const CreateSMSBroadcastMockResponse: {
2
+ status: number;
3
+ statusText: string;
4
+ headers: {
5
+ Location: string;
6
+ };
7
+ data: {
8
+ Uri: string;
9
+ UriBroadcastDetails: string;
10
+ BroadcastID: number;
11
+ BroadcastName: string;
12
+ BroadcastType: string;
13
+ BroadcastStatus: string;
14
+ BroadcastStatusCategory: string;
15
+ CreatedDate: string;
16
+ StartDate: string;
17
+ CompletedDate: null;
18
+ TextNumberID: string;
19
+ TextMessage: string;
20
+ CreditsUsed: null;
21
+ MaxCreditCost: number;
22
+ PhoneNumberCount: number;
23
+ TotalCompleted: number;
24
+ User: {
25
+ PinCode: null;
26
+ UserID: number;
27
+ UserName: null;
28
+ FirstName: null;
29
+ LastName: null;
30
+ Email: null;
31
+ Phone: null;
32
+ CallerID: null;
33
+ IsMasterUser: boolean;
34
+ AuthToken: null;
35
+ State: null;
36
+ Permissions: null;
37
+ };
38
+ RetryTimes: number;
39
+ CallThrottle: number;
40
+ LivePersonTotal: number;
41
+ AnsweringMachineTotal: number;
42
+ BusyNoAnswerTotal: number;
43
+ InvalidNumberTotal: number;
44
+ SurveyResponseTotal: number;
45
+ TransferTotal: number;
46
+ SurveyResponses: null;
47
+ MaxMessageLength: number;
48
+ MessageRecordingInstruction: null;
49
+ EstimatedDuration: number;
50
+ EstimatedCompletion: null;
51
+ ExcludedDaysIgnored: boolean;
52
+ CallingWindowIgnored: boolean;
53
+ NotEnoughTimeToComplete: boolean;
54
+ };
55
+ };
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateSMSBroadcastMockResponse = void 0;
4
+ exports.CreateSMSBroadcastMockResponse = {
5
+ status: 200,
6
+ statusText: 'OK',
7
+ headers: {
8
+ Location: 'https://staging-rest.call-em-all.com/v1/broadcasts',
9
+ },
10
+ data: {
11
+ Uri: '/v1/broadcasts/10006607',
12
+ UriBroadcastDetails: '/v1/broadcasts/10006607/details',
13
+ BroadcastID: 10006607,
14
+ BroadcastName: 'testBroadcast',
15
+ BroadcastType: 'SMS',
16
+ BroadcastStatus: 'AuthorizationApproved',
17
+ BroadcastStatusCategory: 'Scheduled',
18
+ CreatedDate: '2020-11-20 14:04:09-0600',
19
+ StartDate: '2025-01-02 13:15:00-0000',
20
+ CompletedDate: null,
21
+ TextNumberID: '2142960678',
22
+ TextMessage: 'This is a test text message. Please reply.',
23
+ CreditsUsed: null,
24
+ MaxCreditCost: 1,
25
+ PhoneNumberCount: 1,
26
+ TotalCompleted: 0,
27
+ User: {
28
+ PinCode: null,
29
+ UserID: 215790,
30
+ UserName: null,
31
+ FirstName: null,
32
+ LastName: null,
33
+ Email: null,
34
+ Phone: null,
35
+ CallerID: null,
36
+ IsMasterUser: false,
37
+ AuthToken: null,
38
+ State: null,
39
+ Permissions: null,
40
+ },
41
+ RetryTimes: 1,
42
+ CallThrottle: 0,
43
+ LivePersonTotal: 0,
44
+ AnsweringMachineTotal: 0,
45
+ BusyNoAnswerTotal: 0,
46
+ InvalidNumberTotal: 0,
47
+ SurveyResponseTotal: 0,
48
+ TransferTotal: 0,
49
+ SurveyResponses: null,
50
+ MaxMessageLength: 30,
51
+ MessageRecordingInstruction: null,
52
+ EstimatedDuration: 0,
53
+ EstimatedCompletion: null,
54
+ ExcludedDaysIgnored: false,
55
+ CallingWindowIgnored: false,
56
+ NotEnoughTimeToComplete: false,
57
+ },
58
+ };
59
+ //# sourceMappingURL=CreateSMSBroadcast.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateSMSBroadcast.mock.js","sourceRoot":"","sources":["../../../../../../extensions/text-em-all/actions/createSMSBroadcast/__testdata__/CreateSMSBroadcast.mock.ts"],"names":[],"mappings":";;;AAEa,QAAA,8BAA8B,GAAG;IAC5C,MAAM,EAAE,GAAG;IACX,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,QAAQ,EAAE,oDAAoD;KAC/D;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,yBAAyB;QAC9B,mBAAmB,EAAE,iCAAiC;QACtD,WAAW,EAAE,QAAQ;QACrB,aAAa,EAAE,eAAe;QAC9B,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,uBAAuB;QACxC,uBAAuB,EAAE,WAAW;QACpC,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,0BAA0B;QACrC,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,CAAC;QACnB,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,KAAK;YACnB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI;SAClB;QACD,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,CAAC;QAClB,qBAAqB,EAAE,CAAC;QACxB,iBAAiB,EAAE,CAAC;QACpB,kBAAkB,EAAE,CAAC;QACrB,mBAAmB,EAAE,CAAC;QACtB,aAAa,EAAE,CAAC;QAChB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,EAAE;QACpB,2BAA2B,EAAE,IAAI;QACjC,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,IAAI;QACzB,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,uBAAuB,EAAE,KAAK;KAC/B;CAC+B,CAAA"}
@@ -0,0 +1,82 @@
1
+ import { z } from 'zod';
2
+ import { FieldType, StringType } from '@awell-health/extensions-core';
3
+ export declare const fields: {
4
+ broadcastName: {
5
+ id: string;
6
+ label: string;
7
+ type: FieldType.STRING;
8
+ required: true;
9
+ description: string;
10
+ };
11
+ phoneNumber: {
12
+ id: string;
13
+ label: string;
14
+ type: FieldType.STRING;
15
+ stringType: StringType.PHONE;
16
+ required: true;
17
+ description: string;
18
+ };
19
+ textMessage: {
20
+ id: string;
21
+ label: string;
22
+ type: FieldType.TEXT;
23
+ required: true;
24
+ description: string;
25
+ };
26
+ textNumberID: {
27
+ id: string;
28
+ label: string;
29
+ type: FieldType.NUMERIC;
30
+ required: false;
31
+ description: string;
32
+ };
33
+ startDate: {
34
+ id: string;
35
+ label: string;
36
+ type: FieldType.DATE;
37
+ required: false;
38
+ description: string;
39
+ };
40
+ };
41
+ export declare const dataPoints: {
42
+ broadcastId: {
43
+ key: string;
44
+ valueType: "number";
45
+ };
46
+ broadcastStatus: {
47
+ key: string;
48
+ valueType: "string";
49
+ };
50
+ uriBroadcastDetails: {
51
+ key: string;
52
+ valueType: "string";
53
+ };
54
+ broadcastStatusCategory: {
55
+ key: string;
56
+ valueType: "string";
57
+ };
58
+ broadcastStartDate: {
59
+ key: string;
60
+ valueType: "string";
61
+ };
62
+ };
63
+ export declare const FieldsSchema: z.ZodObject<{
64
+ broadcastName: z.ZodString;
65
+ phoneNumber: z.ZodEffects<z.ZodString, string, string>;
66
+ textMessage: z.ZodString;
67
+ textNumberID: z.ZodOptional<z.ZodNumber>;
68
+ startDate: z.ZodEffects<z.ZodOptional<z.ZodEffects<z.ZodDate, string, Date>>, string | undefined, Date | undefined>;
69
+ }, "strip", z.ZodTypeAny, {
70
+ phoneNumber: string;
71
+ broadcastName: string;
72
+ textMessage: string;
73
+ startDate?: string | undefined;
74
+ textNumberID?: number | undefined;
75
+ }, {
76
+ phoneNumber: string;
77
+ broadcastName: string;
78
+ textMessage: string;
79
+ startDate?: Date | undefined;
80
+ textNumberID?: number | undefined;
81
+ }>;
82
+ export type ActionFields = z.infer<typeof FieldsSchema>;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FieldsSchema = exports.dataPoints = exports.fields = void 0;
7
+ const zod_1 = require("zod");
8
+ const extensions_core_1 = require("@awell-health/extensions-core");
9
+ const libphonenumber_js_1 = require("libphonenumber-js");
10
+ const lodash_1 = require("lodash");
11
+ const format_1 = __importDefault(require("date-fns/format"));
12
+ exports.fields = {
13
+ broadcastName: {
14
+ id: 'broadcastName',
15
+ label: 'Broadcast Name',
16
+ type: extensions_core_1.FieldType.STRING,
17
+ required: true,
18
+ description: 'The name of the broadcast.',
19
+ },
20
+ phoneNumber: {
21
+ id: 'phoneNumber',
22
+ label: 'Phone Number',
23
+ type: extensions_core_1.FieldType.STRING,
24
+ stringType: extensions_core_1.StringType.PHONE,
25
+ required: true,
26
+ description: 'The primary phone number of the recipient. Must be a valid North American Numbering Plan (NANP) phone number.',
27
+ },
28
+ textMessage: {
29
+ id: 'textMessage',
30
+ label: 'Text Message',
31
+ type: extensions_core_1.FieldType.TEXT,
32
+ required: true,
33
+ description: 'The text of the message for a text type broadcast. The max length is based on the setting in your account.',
34
+ },
35
+ textNumberID: {
36
+ id: 'textNumberID',
37
+ label: 'Text Number ID',
38
+ type: extensions_core_1.FieldType.NUMERIC,
39
+ required: false,
40
+ description: 'The ID of the text number your messages will be sent from. If omitted, the default text number on your account will be used.',
41
+ },
42
+ startDate: {
43
+ id: 'startDate',
44
+ label: 'Start Date',
45
+ type: extensions_core_1.FieldType.DATE,
46
+ required: false,
47
+ description: 'The time the broadcast should start. Will default to start immediately. If provided must be a datetime as ISO 8601 string and time to send the message in UTC',
48
+ },
49
+ };
50
+ exports.dataPoints = {
51
+ broadcastId: {
52
+ key: 'broadcastId',
53
+ valueType: 'number',
54
+ },
55
+ broadcastStatus: {
56
+ key: 'broadcastStatus',
57
+ valueType: 'string',
58
+ },
59
+ uriBroadcastDetails: {
60
+ key: 'uriBroadcastDetails',
61
+ valueType: 'string',
62
+ },
63
+ broadcastStatusCategory: {
64
+ key: 'broadcastStatusCategory',
65
+ valueType: 'string',
66
+ },
67
+ broadcastStartDate: {
68
+ key: 'broadcastStartDate',
69
+ valueType: 'string',
70
+ },
71
+ };
72
+ exports.FieldsSchema = zod_1.z.object({
73
+ broadcastName: zod_1.z.string(),
74
+ phoneNumber: zod_1.z.string().transform((phone) => {
75
+ const parsedNumber = (0, libphonenumber_js_1.parsePhoneNumber)(phone);
76
+ return parsedNumber.format('NATIONAL'); // Returns "(XXX) XXX-XXXX" NANP format
77
+ }),
78
+ textMessage: zod_1.z.string(),
79
+ textNumberID: zod_1.z.number().optional(),
80
+ startDate: extensions_core_1.DateTimeSchema.optional().transform((date) => {
81
+ if ((0, lodash_1.isNil)(date) || date === '')
82
+ return undefined;
83
+ // format is required: 2/1/2020 1:15PM',
84
+ return (0, format_1.default)(new Date(date), 'M/d/yyyy h:mmaa');
85
+ }),
86
+ });
87
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createSMSBroadcast/config.ts"],"names":[],"mappings":";;;;;;AAAA,6BAAuB;AAEvB,mEAMsC;AACtC,yDAAoD;AACpD,mCAA8B;AAC9B,6DAAoC;AAEvB,QAAA,MAAM,GAAG;IACpB,aAAa,EAAE;QACb,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,4BAA4B;KAC1C;IACD,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,+GAA+G;KAClH;IACD,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,4GAA4G;KAC/G;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,8HAA8H;KACjI;IACD,SAAS,EAAE;QACT,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,+JAA+J;KAClK;CACe,CAAA;AAEL,QAAA,UAAU,GAAG;IACxB,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,eAAe,EAAE;QACf,GAAG,EAAE,iBAAiB;QACtB,SAAS,EAAE,QAAQ;KACpB;IACD,mBAAmB,EAAE;QACnB,GAAG,EAAE,qBAAqB;QAC1B,SAAS,EAAE,QAAQ;KACpB;IACD,uBAAuB,EAAE;QACvB,GAAG,EAAE,yBAAyB;QAC9B,SAAS,EAAE,QAAQ;KACpB;IACD,kBAAkB,EAAE;QAClB,GAAG,EAAE,oBAAoB;QACzB,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA;AAElC,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1C,MAAM,YAAY,GAAG,IAAA,oCAAgB,EAAC,KAAK,CAAC,CAAA;QAC5C,OAAO,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,CAAC,uCAAuC;IAChF,CAAC,CAAC;IACF,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,gCAAc,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACtD,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,SAAS,CAAA;QAChD,wCAAwC;QACxC,OAAO,IAAA,gBAAM,EAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAA;IAClD,CAAC,CAAC;CACH,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Action } from '@awell-health/extensions-core';
2
+ import { fields, dataPoints } from './config';
3
+ import { type settings } from '../../settings';
4
+ export declare const createSMSBroadcast: Action<typeof fields, typeof settings, keyof typeof dataPoints>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSMSBroadcast = void 0;
4
+ const zod_1 = require("zod");
5
+ const extensions_core_1 = require("@awell-health/extensions-core");
6
+ const config_1 = require("./config");
7
+ const settings_1 = require("../../settings");
8
+ const lib_1 = require("../../lib");
9
+ exports.createSMSBroadcast = {
10
+ key: 'createSMSBroadcast',
11
+ title: 'Send a new SMS broadcast',
12
+ description: 'A broadcast is a feature that allows you to send a text message to a recipient at specific time',
13
+ category: extensions_core_1.Category.COMMUNICATION,
14
+ fields: config_1.fields,
15
+ dataPoints: config_1.dataPoints,
16
+ previewable: false,
17
+ onEvent: async ({ payload, onComplete, onError, helpers }) => {
18
+ const { fields: { broadcastName: BroadcastName, phoneNumber, textMessage: TextMessage, textNumberID: TextNumberID, startDate: StartDate, }, settings, } = (0, extensions_core_1.validate)({
19
+ schema: zod_1.z.object({ fields: config_1.FieldsSchema, settings: settings_1.SettingsSchema }),
20
+ payload,
21
+ });
22
+ const client = new lib_1.TextEmAllClient(settings);
23
+ const request = {
24
+ BroadcastName,
25
+ BroadcastType: 'SMS',
26
+ TextMessage,
27
+ TextNumberID,
28
+ StartDate,
29
+ Contacts: [{ PrimaryPhone: phoneNumber }],
30
+ };
31
+ const { data } = await client.createBroadcast(request);
32
+ await onComplete({
33
+ events: [
34
+ {
35
+ date: new Date().toISOString(),
36
+ text: { en: `Broadcast created. Response: ${JSON.stringify(data)}` },
37
+ },
38
+ ],
39
+ data_points: {
40
+ broadcastId: data.BroadcastID.toString(),
41
+ broadcastStatus: data.BroadcastStatus,
42
+ uriBroadcastDetails: data.UriBroadcastDetails,
43
+ broadcastStatusCategory: data.BroadcastStatusCategory,
44
+ broadcastStartDate: data.StartDate,
45
+ },
46
+ });
47
+ },
48
+ };
49
+ //# sourceMappingURL=createSMSBroadcast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSMSBroadcast.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAA+E;AAC/E,qCAA2D;AAC3D,6CAA8D;AAC9D,mCAA2C;AAE9B,QAAA,kBAAkB,GAI3B;IACF,GAAG,EAAE,oBAAoB;IACzB,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACT,iGAAiG;IACnG,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,mBAAU;IACV,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,MAAM,EACJ,MAAM,EAAE,EACN,aAAa,EAAE,aAAa,EAC5B,WAAW,EACX,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GACrB,EACD,QAAQ,GACT,GAAG,IAAA,0BAAQ,EAAC;YACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAY,EAAE,QAAQ,EAAE,yBAAc,EAAE,CAAC;YACpE,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,IAAI,qBAAe,CAAC,QAAQ,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG;YACd,aAAa;YACb,aAAa,EAAE,KAAK;YACpB,WAAW;YACX,YAAY;YACZ,SAAS;YACT,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;SAC1C,CAAA;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACtD,MAAM,UAAU,CAAC;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,gCAAgC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE;iBACrE;aACF;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACxC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;gBACrD,kBAAkB,EAAE,IAAI,CAAC,SAAS;aACnC;SACF,CAAC,CAAA;IACJ,CAAC;CAC+C,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './createSMSBroadcast';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./createSMSBroadcast"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createSMSBroadcast/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC"}
@@ -0,0 +1,2 @@
1
+ import { z } from 'zod';
2
+ export declare const BroadcastTypes: z.ZodEnum<["SMS"]>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BroadcastTypes = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.BroadcastTypes = zod_1.z.enum(['SMS']);
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createSMSBroadcast/types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,cAAc,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA"}
@@ -0,0 +1,69 @@
1
+ export declare const actions: {
2
+ createSMSBroadcast: import("@awell-health/extensions-core").Action<{
3
+ broadcastName: {
4
+ id: string;
5
+ label: string;
6
+ type: import("@awell-health/extensions-core").FieldType.STRING;
7
+ required: true;
8
+ description: string;
9
+ };
10
+ phoneNumber: {
11
+ id: string;
12
+ label: string;
13
+ type: import("@awell-health/extensions-core").FieldType.STRING;
14
+ stringType: import("@awell-health/extensions-core").StringType.PHONE;
15
+ required: true;
16
+ description: string;
17
+ };
18
+ textMessage: {
19
+ id: string;
20
+ label: string;
21
+ type: import("@awell-health/extensions-core").FieldType.TEXT;
22
+ required: true;
23
+ description: string;
24
+ };
25
+ textNumberID: {
26
+ id: string;
27
+ label: string;
28
+ type: import("@awell-health/extensions-core").FieldType.NUMERIC;
29
+ required: false;
30
+ description: string;
31
+ };
32
+ startDate: {
33
+ id: string;
34
+ label: string;
35
+ type: import("@awell-health/extensions-core").FieldType.DATE;
36
+ required: false;
37
+ description: string;
38
+ };
39
+ }, {
40
+ customerKey: {
41
+ label: string;
42
+ key: string;
43
+ obfuscated: true;
44
+ required: true;
45
+ description: string;
46
+ };
47
+ customerSecret: {
48
+ label: string;
49
+ key: string;
50
+ obfuscated: true;
51
+ required: true;
52
+ description: string;
53
+ };
54
+ token: {
55
+ label: string;
56
+ key: string;
57
+ obfuscated: true;
58
+ required: true;
59
+ description: string;
60
+ };
61
+ baseUrl: {
62
+ label: string;
63
+ key: string;
64
+ obfuscated: false;
65
+ required: true;
66
+ description: string;
67
+ };
68
+ }, "broadcastId" | "broadcastStatus" | "uriBroadcastDetails" | "broadcastStatusCategory" | "broadcastStartDate">;
69
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.actions = void 0;
4
+ const createSMSBroadcast_1 = require("./createSMSBroadcast");
5
+ // createCallBroadcast is not included here because we cannot test it yet and it's not currently needed
6
+ exports.actions = {
7
+ createSMSBroadcast: createSMSBroadcast_1.createSMSBroadcast,
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/text-em-all/actions/index.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAEzD,uGAAuG;AAC1F,QAAA,OAAO,GAAG;IACrB,kBAAkB,EAAlB,uCAAkB;CACnB,CAAA"}