@awell-health/awell-extensions 2.0.67 → 2.0.69

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. package/dist/extensions/bland/actions/getCallDetails/config/dataPoints.d.ts +6 -0
  2. package/dist/extensions/bland/actions/getCallDetails/config/dataPoints.js +10 -0
  3. package/dist/extensions/bland/actions/getCallDetails/config/dataPoints.js.map +1 -0
  4. package/dist/extensions/bland/actions/getCallDetails/config/fields.d.ts +18 -0
  5. package/dist/extensions/bland/actions/getCallDetails/config/fields.js +21 -0
  6. package/dist/extensions/bland/actions/getCallDetails/config/fields.js.map +1 -0
  7. package/dist/extensions/bland/actions/getCallDetails/config/index.d.ts +2 -0
  8. package/dist/extensions/bland/actions/getCallDetails/config/index.js +9 -0
  9. package/dist/extensions/bland/actions/getCallDetails/config/index.js.map +1 -0
  10. package/dist/extensions/bland/actions/getCallDetails/getCallDetails.d.ts +4 -0
  11. package/dist/extensions/bland/actions/getCallDetails/getCallDetails.js +33 -0
  12. package/dist/extensions/bland/actions/getCallDetails/getCallDetails.js.map +1 -0
  13. package/dist/extensions/bland/actions/getCallDetails/index.d.ts +1 -0
  14. package/dist/extensions/bland/actions/getCallDetails/index.js +18 -0
  15. package/dist/extensions/bland/actions/getCallDetails/index.js.map +1 -0
  16. package/dist/extensions/bland/actions/index.d.ts +47 -2
  17. package/dist/extensions/bland/actions/index.js +2 -0
  18. package/dist/extensions/bland/actions/index.js.map +1 -1
  19. package/dist/extensions/bland/actions/sendCall/config/dataPoints.d.ts +1 -5
  20. package/dist/extensions/bland/actions/sendCall/config/dataPoints.js +4 -6
  21. package/dist/extensions/bland/actions/sendCall/config/dataPoints.js.map +1 -1
  22. package/dist/extensions/bland/actions/sendCall/config/fields.d.ts +20 -0
  23. package/dist/extensions/bland/actions/sendCall/config/fields.js +49 -0
  24. package/dist/extensions/bland/actions/sendCall/config/fields.js.map +1 -1
  25. package/dist/extensions/bland/actions/sendCall/sendCall.js +40 -11
  26. package/dist/extensions/bland/actions/sendCall/sendCall.js.map +1 -1
  27. package/dist/extensions/bland/actions/sendCallWithPathway/config/dataPoints.d.ts +1 -5
  28. package/dist/extensions/bland/actions/sendCallWithPathway/config/dataPoints.js +4 -6
  29. package/dist/extensions/bland/actions/sendCallWithPathway/config/dataPoints.js.map +1 -1
  30. package/dist/extensions/bland/actions/sendCallWithPathway/config/fields.d.ts +20 -0
  31. package/dist/extensions/bland/actions/sendCallWithPathway/config/fields.js +49 -0
  32. package/dist/extensions/bland/actions/sendCallWithPathway/config/fields.js.map +1 -1
  33. package/dist/extensions/bland/actions/sendCallWithPathway/sendCallWithPathway.js +40 -11
  34. package/dist/extensions/bland/actions/sendCallWithPathway/sendCallWithPathway.js.map +1 -1
  35. package/dist/extensions/bland/api/client.d.ts +2 -1
  36. package/dist/extensions/bland/api/client.js +4 -0
  37. package/dist/extensions/bland/api/client.js.map +1 -1
  38. package/dist/extensions/bland/api/schema/GetCallDetails.schema.d.ts +150 -0
  39. package/dist/extensions/bland/api/schema/GetCallDetails.schema.js +50 -0
  40. package/dist/extensions/bland/api/schema/GetCallDetails.schema.js.map +1 -0
  41. package/dist/extensions/bland/api/schema/SendCall.schema.d.ts +3 -0
  42. package/dist/extensions/bland/api/schema/SendCall.schema.js +1 -0
  43. package/dist/extensions/bland/api/schema/SendCall.schema.js.map +1 -1
  44. package/dist/extensions/bland/api/schema/index.d.ts +1 -0
  45. package/dist/extensions/bland/api/schema/index.js +1 -0
  46. package/dist/extensions/bland/api/schema/index.js.map +1 -1
  47. package/dist/extensions/calDotCom/schema.d.ts +24 -24
  48. package/dist/extensions/calendly/schema.d.ts +6 -6
  49. package/dist/extensions/canvasMedical/v1/validation/appointment.zod.d.ts +8 -8
  50. package/dist/extensions/canvasMedical/v1/validation/task.zod.d.ts +4 -4
  51. package/dist/extensions/elation/actions/createPatient.d.ts +6 -0
  52. package/dist/extensions/elation/actions/createPatient.js +11 -1
  53. package/dist/extensions/elation/actions/createPatient.js.map +1 -1
  54. package/dist/extensions/elation/actions/index.d.ts +12 -0
  55. package/dist/extensions/elation/actions/updatePatient.d.ts +6 -0
  56. package/dist/extensions/elation/actions/updatePatient.js +17 -1
  57. package/dist/extensions/elation/actions/updatePatient.js.map +1 -1
  58. package/dist/extensions/elation/types/patient.d.ts +1 -0
  59. package/dist/extensions/hubspot/actions/sendEmailWithSmtp/config/fields.d.ts +2 -2
  60. package/dist/extensions/hubspot/lib/smtpApi/smtp.schema.d.ts +2 -2
  61. package/dist/extensions/infobip/v1/actions/sendEmail/config/fields.d.ts +2 -2
  62. package/dist/extensions/infobip/v1/actions/sendSms/config/fields.d.ts +2 -2
  63. package/dist/extensions/mailchimp/v1/actions/sendEmail/config/fields.d.ts +2 -2
  64. package/dist/extensions/mailchimp/v1/actions/sendEmailWithTemplate/config/fields.d.ts +2 -2
  65. package/dist/extensions/mailgun/v1/actions/sendEmail/config/fields.d.ts +2 -2
  66. package/dist/extensions/mailgun/v1/actions/sendEmailWithTemplate/config/fields.d.ts +3 -3
  67. package/dist/extensions/markdown.json +1 -1
  68. package/dist/extensions/medplum/actions/createServiceRequest/config/fields.d.ts +2 -2
  69. package/dist/extensions/medplum/actions/createTask/config/fields.d.ts +2 -2
  70. package/dist/extensions/medplum/fhir/schemas/resources/serviceRequest.schema.d.ts +2 -2
  71. package/dist/extensions/medplum/fhir/schemas/resources/task.schema.d.ts +2 -2
  72. package/dist/extensions/sendgrid-extension/v1/actions/sendEmail/config/fields.d.ts +2 -2
  73. package/dist/extensions/zendesk/v1/actions/createTask/config/fields.d.ts +2 -2
  74. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ export declare const dataPoints: {
2
+ callData: {
3
+ key: string;
4
+ valueType: "json";
5
+ };
6
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dataPoints = void 0;
4
+ exports.dataPoints = {
5
+ callData: {
6
+ key: 'callData',
7
+ valueType: 'json',
8
+ },
9
+ };
10
+ //# sourceMappingURL=dataPoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/getCallDetails/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,QAAQ,EAAE;QACR,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { FieldType } from '@awell-health/extensions-core';
2
+ import z from 'zod';
3
+ export declare const fields: {
4
+ callId: {
5
+ id: string;
6
+ label: string;
7
+ description: string;
8
+ type: FieldType.STRING;
9
+ required: true;
10
+ };
11
+ };
12
+ export declare const FieldsValidationSchema: z.ZodObject<{
13
+ callId: z.ZodString;
14
+ }, "strip", z.ZodTypeAny, {
15
+ callId: string;
16
+ }, {
17
+ callId: string;
18
+ }>;
@@ -0,0 +1,21 @@
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.FieldsValidationSchema = exports.fields = void 0;
7
+ const extensions_core_1 = require("@awell-health/extensions-core");
8
+ const zod_1 = __importDefault(require("zod"));
9
+ exports.fields = {
10
+ callId: {
11
+ id: 'callId',
12
+ label: 'Call ID',
13
+ description: 'The unique identifier of the call for which you want to retrieve detailed information.',
14
+ type: extensions_core_1.FieldType.STRING,
15
+ required: true,
16
+ },
17
+ };
18
+ exports.FieldsValidationSchema = zod_1.default.object({
19
+ callId: zod_1.default.string().min(1),
20
+ });
21
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/getCallDetails/config/fields.ts"],"names":[],"mappings":";;;;;;AAAA,mEAAqE;AACrE,8CAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,SAAS;QAChB,WAAW,EACT,wFAAwF;QAC1F,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;KACf;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,aAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACwB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { fields, FieldsValidationSchema } from './fields';
2
+ export { dataPoints } from './dataPoints';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dataPoints = exports.FieldsValidationSchema = exports.fields = void 0;
4
+ var fields_1 = require("./fields");
5
+ Object.defineProperty(exports, "fields", { enumerable: true, get: function () { return fields_1.fields; } });
6
+ Object.defineProperty(exports, "FieldsValidationSchema", { enumerable: true, get: function () { return fields_1.FieldsValidationSchema; } });
7
+ var dataPoints_1 = require("./dataPoints");
8
+ Object.defineProperty(exports, "dataPoints", { enumerable: true, get: function () { return dataPoints_1.dataPoints; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/getCallDetails/config/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AAAhD,gGAAA,MAAM,OAAA;AAAE,gHAAA,sBAAsB,OAAA;AACvC,2CAAyC;AAAhC,wGAAA,UAAU,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Action } from '@awell-health/extensions-core';
2
+ import { type settings } from '../../settings';
3
+ import { fields, dataPoints } from './config';
4
+ export declare const getCallDetails: Action<typeof fields, typeof settings, keyof typeof dataPoints>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCallDetails = void 0;
4
+ const extensions_core_1 = require("@awell-health/extensions-core");
5
+ const lodash_1 = require("lodash");
6
+ const validatePayloadAndCreateSdk_1 = require("../../lib/validatePayloadAndCreateSdk");
7
+ const config_1 = require("./config");
8
+ exports.getCallDetails = {
9
+ key: 'getCallDetails',
10
+ category: extensions_core_1.Category.COMMUNICATION,
11
+ title: 'Get call details',
12
+ description: 'Retrieve detailed information, metadata and transcripts for a call.',
13
+ fields: config_1.fields,
14
+ previewable: false,
15
+ dataPoints: config_1.dataPoints,
16
+ onEvent: async ({ payload, onComplete }) => {
17
+ const { fields, blandSdk } = await (0, validatePayloadAndCreateSdk_1.validatePayloadAndCreateSdk)({
18
+ fieldsSchema: config_1.FieldsValidationSchema,
19
+ payload,
20
+ });
21
+ const { data } = await blandSdk.getCallDetails({
22
+ call_id: fields.callId,
23
+ });
24
+ await onComplete({
25
+ data_points: {
26
+ callData: (0, lodash_1.isEmpty)(data.analysis)
27
+ ? undefined
28
+ : JSON.stringify(data.analysis),
29
+ },
30
+ });
31
+ },
32
+ };
33
+ //# sourceMappingURL=getCallDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCallDetails.js","sourceRoot":"","sources":["../../../../../extensions/bland/actions/getCallDetails/getCallDetails.ts"],"names":[],"mappings":";;;AACA,mEAAwD;AACxD,mCAAgC;AAChC,uFAAmF;AAEnF,qCAAqE;AAExD,QAAA,cAAc,GAIvB;IACF,GAAG,EAAE,gBAAgB;IACrB,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,qEAAqE;IACvE,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAiB,EAAE;QACxD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,yDAA2B,EAAC;YAC7D,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC;YAC7C,OAAO,EAAE,MAAM,CAAC,MAAM;SACvB,CAAC,CAAA;QAEF,MAAM,UAAU,CAAC;YACf,WAAW,EAAE;gBACX,QAAQ,EAAE,IAAA,gBAAO,EAAC,IAAI,CAAC,QAAQ,CAAC;oBAC9B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAClC;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -0,0 +1 @@
1
+ export * from './getCallDetails';
@@ -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("./getCallDetails"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/bland/actions/getCallDetails/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC"}
@@ -15,6 +15,20 @@ export declare const actions: {
15
15
  type: import("@awell-health/extensions-core").FieldType.TEXT;
16
16
  required: true;
17
17
  };
18
+ requestData: {
19
+ id: string;
20
+ label: string;
21
+ description: string;
22
+ type: import("@awell-health/extensions-core").FieldType.JSON;
23
+ required: false;
24
+ };
25
+ analysisSchema: {
26
+ id: string;
27
+ label: string;
28
+ description: string;
29
+ type: import("@awell-health/extensions-core").FieldType.JSON;
30
+ required: false;
31
+ };
18
32
  }, {
19
33
  apiKey: {
20
34
  key: string;
@@ -23,7 +37,7 @@ export declare const actions: {
23
37
  description: string;
24
38
  required: true;
25
39
  };
26
- }, "status" | "callId">;
40
+ }, "call_id">;
27
41
  sendCall: import("@awell-health/extensions-core").Action<{
28
42
  phoneNumber: {
29
43
  id: string;
@@ -40,6 +54,37 @@ export declare const actions: {
40
54
  type: import("@awell-health/extensions-core").FieldType.TEXT;
41
55
  required: true;
42
56
  };
57
+ requestData: {
58
+ id: string;
59
+ label: string;
60
+ description: string;
61
+ type: import("@awell-health/extensions-core").FieldType.JSON;
62
+ required: false;
63
+ };
64
+ analysisSchema: {
65
+ id: string;
66
+ label: string;
67
+ description: string;
68
+ type: import("@awell-health/extensions-core").FieldType.JSON;
69
+ required: false;
70
+ };
71
+ }, {
72
+ apiKey: {
73
+ key: string;
74
+ label: string;
75
+ obfuscated: true;
76
+ description: string;
77
+ required: true;
78
+ };
79
+ }, "call_id">;
80
+ getCallDetails: import("@awell-health/extensions-core").Action<{
81
+ callId: {
82
+ id: string;
83
+ label: string;
84
+ description: string;
85
+ type: import("@awell-health/extensions-core").FieldType.STRING;
86
+ required: true;
87
+ };
43
88
  }, {
44
89
  apiKey: {
45
90
  key: string;
@@ -48,5 +93,5 @@ export declare const actions: {
48
93
  description: string;
49
94
  required: true;
50
95
  };
51
- }, "status" | "callId">;
96
+ }, "callData">;
52
97
  };
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.actions = void 0;
4
4
  const sendCall_1 = require("./sendCall");
5
5
  const sendCallWithPathway_1 = require("./sendCallWithPathway");
6
+ const getCallDetails_1 = require("./getCallDetails");
6
7
  exports.actions = {
7
8
  sendCallWithPathway: sendCallWithPathway_1.sendCallWithPathway,
8
9
  sendCall: sendCall_1.sendCall,
10
+ getCallDetails: getCallDetails_1.getCallDetails,
9
11
  };
10
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/bland/actions/index.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AACrC,+DAA2D;AAE9C,QAAA,OAAO,GAAG;IACrB,mBAAmB,EAAnB,yCAAmB;IACnB,QAAQ,EAAR,mBAAQ;CACT,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/bland/actions/index.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AACrC,+DAA2D;AAC3D,qDAAiD;AAEpC,QAAA,OAAO,GAAG;IACrB,mBAAmB,EAAnB,yCAAmB;IACnB,QAAQ,EAAR,mBAAQ;IACR,cAAc,EAAd,+BAAc;CACf,CAAA"}
@@ -1,9 +1,5 @@
1
1
  export declare const dataPoints: {
2
- callId: {
3
- key: string;
4
- valueType: "string";
5
- };
6
- status: {
2
+ call_id: {
7
3
  key: string;
8
4
  valueType: "string";
9
5
  };
@@ -2,12 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dataPoints = void 0;
4
4
  exports.dataPoints = {
5
- callId: {
6
- key: 'callId',
7
- valueType: 'string',
8
- },
9
- status: {
10
- key: 'status',
5
+ call_id: {
6
+ // This key cannot be changed as it will break the integration!
7
+ // Needs to match exactly with the key in the payload sent by Bland
8
+ key: 'call_id',
11
9
  valueType: 'string',
12
10
  },
13
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/sendCall/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,SAAS,EAAE,QAAQ;KACpB;IACD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA"}
1
+ {"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/sendCall/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE;QACP,+DAA+D;QAC/D,mEAAmE;QACnE,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA"}
@@ -16,14 +16,34 @@ export declare const fields: {
16
16
  type: FieldType.TEXT;
17
17
  required: true;
18
18
  };
19
+ requestData: {
20
+ id: string;
21
+ label: string;
22
+ description: string;
23
+ type: FieldType.JSON;
24
+ required: false;
25
+ };
26
+ analysisSchema: {
27
+ id: string;
28
+ label: string;
29
+ description: string;
30
+ type: FieldType.JSON;
31
+ required: false;
32
+ };
19
33
  };
20
34
  export declare const FieldsValidationSchema: z.ZodObject<{
21
35
  phoneNumber: z.ZodString;
22
36
  task: z.ZodString;
37
+ requestData: z.ZodEffects<z.ZodOptional<z.ZodString>, Record<string, unknown> | undefined, string | undefined>;
38
+ analysisSchema: z.ZodEffects<z.ZodOptional<z.ZodString>, Record<string, unknown> | undefined, string | undefined>;
23
39
  }, "strip", z.ZodTypeAny, {
24
40
  task: string;
25
41
  phoneNumber: string;
42
+ requestData?: Record<string, unknown> | undefined;
43
+ analysisSchema?: Record<string, unknown> | undefined;
26
44
  }, {
27
45
  task: string;
28
46
  phoneNumber: string;
47
+ requestData?: string | undefined;
48
+ analysisSchema?: string | undefined;
29
49
  }>;
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FieldsValidationSchema = exports.fields = void 0;
7
7
  const extensions_core_1 = require("@awell-health/extensions-core");
8
+ const lodash_1 = require("lodash");
8
9
  const zod_1 = __importDefault(require("zod"));
9
10
  exports.fields = {
10
11
  phoneNumber: {
@@ -22,9 +23,57 @@ exports.fields = {
22
23
  type: extensions_core_1.FieldType.TEXT,
23
24
  required: true,
24
25
  },
26
+ requestData: {
27
+ id: 'requestData',
28
+ label: 'Request data',
29
+ description: 'Any JSON you put in here will be visible to the AI agent during the call - and can also be referenced with Prompt Variables.',
30
+ type: extensions_core_1.FieldType.JSON,
31
+ required: false,
32
+ },
33
+ analysisSchema: {
34
+ id: 'analysisSchema',
35
+ label: 'Analysis schema',
36
+ description: 'Define a JSON schema for how you want to get information about the call - information like email addresses, names, appointment times or any other type of custom data.',
37
+ type: extensions_core_1.FieldType.JSON,
38
+ required: false,
39
+ },
25
40
  };
26
41
  exports.FieldsValidationSchema = zod_1.default.object({
27
42
  phoneNumber: zod_1.default.string().min(1),
28
43
  task: zod_1.default.string().min(1),
44
+ requestData: zod_1.default
45
+ .optional(zod_1.default.string())
46
+ .transform((str, ctx) => {
47
+ if ((0, lodash_1.isNil)(str) || (0, lodash_1.isEmpty)(str))
48
+ return undefined;
49
+ try {
50
+ const parsedJson = JSON.parse(str);
51
+ if ((0, lodash_1.isEmpty)(parsedJson)) {
52
+ return undefined;
53
+ }
54
+ return parsedJson;
55
+ }
56
+ catch (e) {
57
+ ctx.addIssue({ code: 'custom', message: 'Invalid JSON.' });
58
+ return zod_1.default.NEVER;
59
+ }
60
+ }),
61
+ analysisSchema: zod_1.default
62
+ .optional(zod_1.default.string())
63
+ .transform((str, ctx) => {
64
+ if ((0, lodash_1.isNil)(str) || (0, lodash_1.isEmpty)(str))
65
+ return undefined;
66
+ try {
67
+ const parsedJson = JSON.parse(str);
68
+ if ((0, lodash_1.isEmpty)(parsedJson)) {
69
+ return undefined;
70
+ }
71
+ return parsedJson;
72
+ }
73
+ catch (e) {
74
+ ctx.addIssue({ code: 'custom', message: 'Invalid JSON.' });
75
+ return zod_1.default.NEVER;
76
+ }
77
+ }),
29
78
  });
30
79
  //# sourceMappingURL=fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/sendCall/config/fields.ts"],"names":[],"mappings":";;;;;;AAAA,mEAIsC;AACtC,8CAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE,IAAI;KACf;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,WAAW,EACT,0FAA0F;QAC5F,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;KACf;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,aAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC0B,CAAC,CAAA"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/sendCall/config/fields.ts"],"names":[],"mappings":";;;;;;AAAA,mEAIsC;AACtC,mCAAuC;AACvC,8CAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE,IAAI;KACf;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,WAAW,EACT,0FAA0F;QAC5F,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,8HAA8H;QAChI,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,wKAAwK;QAC1K,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,KAAK;KAChB;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,aAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,aAAC;SACX,QAAQ,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC;SACpB,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAuC,EAAE;QAC3D,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAEhD,IAAI;YACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAElC,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,EAAE;gBACvB,OAAO,SAAS,CAAA;aACjB;YAED,OAAO,UAAU,CAAA;SAClB;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAA;YAC1D,OAAO,aAAC,CAAC,KAAK,CAAA;SACf;IACH,CAAC,CAAC;IACJ,cAAc,EAAE,aAAC;SACd,QAAQ,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC;SACpB,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAuC,EAAE;QAC3D,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAEhD,IAAI;YACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAElC,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,EAAE;gBACvB,OAAO,SAAS,CAAA;aACjB;YAED,OAAO,UAAU,CAAA;SAClB;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAA;YAC1D,OAAO,aAAC,CAAC,KAAK,CAAA;SACf;IACH,CAAC,CAAC;CAC6C,CAAC,CAAA"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sendCall = void 0;
4
4
  const extensions_core_1 = require("@awell-health/extensions-core");
5
- const addEventLog_1 = require("../../../../src/lib/awell/addEventLog");
5
+ // import { addActivityEventLog } from '../../../../src/lib/awell/addEventLog'
6
6
  const validatePayloadAndCreateSdk_1 = require("../../lib/validatePayloadAndCreateSdk");
7
7
  const config_1 = require("./config");
8
8
  exports.sendCall = {
@@ -18,21 +18,50 @@ exports.sendCall = {
18
18
  fieldsSchema: config_1.FieldsValidationSchema,
19
19
  payload,
20
20
  });
21
+ const metaData = {
22
+ awell_patient_id: payload.patient.id,
23
+ awell_care_flow_definition_id: payload.pathway.definition_id,
24
+ awell_care_flow_id: payload.pathway.id,
25
+ awell_activity_id: payload.activity.id,
26
+ };
21
27
  const { data } = await blandSdk.sendCall({
22
28
  phone_number: fields.phoneNumber,
23
29
  task: fields.task,
30
+ /**
31
+ * A POST request will be made to this endpoint when the call ends
32
+ *
33
+ * [!!]
34
+ * Currently only works with the sandbox environment but that's good enough for Workit bootcamp.
35
+ * Todo: We need to ensure we grab the right base URL, depending on the environment.
36
+ */
37
+ webhook: `https://api.sandbox.awellhealth.com/rest/v2/extension_activities/${payload.activity.id}/complete?dp_in_body=call_id`,
38
+ request_data: fields.requestData,
39
+ metadata: metaData,
40
+ analysis_schema: fields.analysisSchema,
24
41
  });
25
- await onComplete({
26
- data_points: {
27
- callId: data.call_id,
28
- status: data.status,
29
- },
30
- events: [
31
- (0, addEventLog_1.addActivityEventLog)({
32
- message: `Call sent to Bland. Status: ${data.status}, Call ID: ${data.call_id}`,
33
- }),
34
- ],
42
+ console.log('Bland call details', {
43
+ awell_activity_id: metaData.awell_activity_id,
44
+ ...data,
35
45
  });
46
+ /**
47
+ * Completion of the activity happens via a
48
+ * Webhook to the endpoint provided in the `webhook` field.
49
+ *
50
+ * In an ideal world, we have an additional method like `await onWait({events...})`
51
+ * that we can use to push some logs to the activity's timeline without completing or erroring the activity.
52
+ * We can use this to log the call status and call ID which we receive immediately from Bland when we make the request.
53
+ */
54
+ // await onComplete({
55
+ // data_points: {
56
+ // callId: data.call_id,
57
+ // status: data.status,
58
+ // },
59
+ // events: [
60
+ // addActivityEventLog({
61
+ // message: `Call sent to Bland. Status: ${data.status}, Call ID: ${data.call_id}, Message: ${data.message}`,
62
+ // }),
63
+ // ],
64
+ // })
36
65
  },
37
66
  };
38
67
  //# sourceMappingURL=sendCall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sendCall.js","sourceRoot":"","sources":["../../../../../extensions/bland/actions/sendCall/sendCall.ts"],"names":[],"mappings":";;;AACA,mEAAwD;AACxD,uEAA2E;AAC3E,uFAAmF;AAEnF,qCAAqE;AAExD,QAAA,QAAQ,GAIjB;IACF,GAAG,EAAE,UAAU;IACf,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,4DAA4D;IACzE,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAiB,EAAE;QACxD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,yDAA2B,EAAC;YAC7D,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;YACvC,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAA;QAEF,MAAM,UAAU,CAAC;YACf,WAAW,EAAE;gBACX,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;YACD,MAAM,EAAE;gBACN,IAAA,iCAAmB,EAAC;oBAClB,OAAO,EAAE,+BAA+B,IAAI,CAAC,MAAM,cAAc,IAAI,CAAC,OAAO,EAAE;iBAChF,CAAC;aACH;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"sendCall.js","sourceRoot":"","sources":["../../../../../extensions/bland/actions/sendCall/sendCall.ts"],"names":[],"mappings":";;;AACA,mEAAwD;AACxD,8EAA8E;AAC9E,uFAAmF;AAEnF,qCAAqE;AAExD,QAAA,QAAQ,GAIjB;IACF,GAAG,EAAE,UAAU;IACf,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,KAAK,EAAE,WAAW;IAClB,WAAW,EAAE,4DAA4D;IACzE,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAiB,EAAE;QACxD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,yDAA2B,EAAC;YAC7D,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG;YACf,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;YACpC,6BAA6B,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;YAC5D,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;YACtC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;SACvC,CAAA;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC;YACvC,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB;;;;;;eAMG;YACH,OAAO,EAAE,oEAAoE,OAAO,CAAC,QAAQ,CAAC,EAAE,8BAA8B;YAC9H,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,QAAQ,EAAE,QAAQ;YAClB,eAAe,EAAE,MAAM,CAAC,cAAc;SACvC,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE;YAChC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,GAAG,IAAI;SACR,CAAC,CAAA;QAEF;;;;;;;WAOG;QACH,qBAAqB;QACrB,mBAAmB;QACnB,4BAA4B;QAC5B,2BAA2B;QAC3B,OAAO;QACP,cAAc;QACd,4BAA4B;QAC5B,mHAAmH;QACnH,UAAU;QACV,OAAO;QACP,KAAK;IACP,CAAC;CACF,CAAA"}
@@ -1,9 +1,5 @@
1
1
  export declare const dataPoints: {
2
- callId: {
3
- key: string;
4
- valueType: "string";
5
- };
6
- status: {
2
+ call_id: {
7
3
  key: string;
8
4
  valueType: "string";
9
5
  };
@@ -2,12 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dataPoints = void 0;
4
4
  exports.dataPoints = {
5
- callId: {
6
- key: 'callId',
7
- valueType: 'string',
8
- },
9
- status: {
10
- key: 'status',
5
+ call_id: {
6
+ // This key cannot be changed as it will break the integration!
7
+ // Needs to match exactly with the key in the payload sent by Bland
8
+ key: 'call_id',
11
9
  valueType: 'string',
12
10
  },
13
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/sendCallWithPathway/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,SAAS,EAAE,QAAQ;KACpB;IACD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA"}
1
+ {"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/sendCallWithPathway/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE;QACP,+DAA+D;QAC/D,mEAAmE;QACnE,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA"}
@@ -16,14 +16,34 @@ export declare const fields: {
16
16
  type: FieldType.TEXT;
17
17
  required: true;
18
18
  };
19
+ requestData: {
20
+ id: string;
21
+ label: string;
22
+ description: string;
23
+ type: FieldType.JSON;
24
+ required: false;
25
+ };
26
+ analysisSchema: {
27
+ id: string;
28
+ label: string;
29
+ description: string;
30
+ type: FieldType.JSON;
31
+ required: false;
32
+ };
19
33
  };
20
34
  export declare const FieldsValidationSchema: z.ZodObject<{
21
35
  phoneNumber: z.ZodString;
22
36
  pathwayId: z.ZodString;
37
+ requestData: z.ZodEffects<z.ZodOptional<z.ZodString>, Record<string, unknown> | undefined, string | undefined>;
38
+ analysisSchema: z.ZodEffects<z.ZodOptional<z.ZodString>, Record<string, unknown> | undefined, string | undefined>;
23
39
  }, "strip", z.ZodTypeAny, {
24
40
  phoneNumber: string;
25
41
  pathwayId: string;
42
+ requestData?: Record<string, unknown> | undefined;
43
+ analysisSchema?: Record<string, unknown> | undefined;
26
44
  }, {
27
45
  phoneNumber: string;
28
46
  pathwayId: string;
47
+ requestData?: string | undefined;
48
+ analysisSchema?: string | undefined;
29
49
  }>;
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FieldsValidationSchema = exports.fields = void 0;
7
7
  const extensions_core_1 = require("@awell-health/extensions-core");
8
+ const lodash_1 = require("lodash");
8
9
  const zod_1 = __importDefault(require("zod"));
9
10
  exports.fields = {
10
11
  phoneNumber: {
@@ -22,9 +23,57 @@ exports.fields = {
22
23
  type: extensions_core_1.FieldType.TEXT,
23
24
  required: true,
24
25
  },
26
+ requestData: {
27
+ id: 'requestData',
28
+ label: 'Request data',
29
+ description: 'Any JSON you put in here will be visible to the AI agent during the call - and can also be referenced with Prompt Variables.',
30
+ type: extensions_core_1.FieldType.JSON,
31
+ required: false,
32
+ },
33
+ analysisSchema: {
34
+ id: 'analysisSchema',
35
+ label: 'Analysis schema',
36
+ description: 'Define a JSON schema for how you want to get information about the call - information like email addresses, names, appointment times or any other type of custom data.',
37
+ type: extensions_core_1.FieldType.JSON,
38
+ required: false,
39
+ },
25
40
  };
26
41
  exports.FieldsValidationSchema = zod_1.default.object({
27
42
  phoneNumber: zod_1.default.string().min(1),
28
43
  pathwayId: zod_1.default.string().min(1),
44
+ requestData: zod_1.default
45
+ .optional(zod_1.default.string())
46
+ .transform((str, ctx) => {
47
+ if ((0, lodash_1.isNil)(str) || (0, lodash_1.isEmpty)(str))
48
+ return undefined;
49
+ try {
50
+ const parsedJson = JSON.parse(str);
51
+ if ((0, lodash_1.isEmpty)(parsedJson)) {
52
+ return undefined;
53
+ }
54
+ return parsedJson;
55
+ }
56
+ catch (e) {
57
+ ctx.addIssue({ code: 'custom', message: 'Invalid JSON.' });
58
+ return zod_1.default.NEVER;
59
+ }
60
+ }),
61
+ analysisSchema: zod_1.default
62
+ .optional(zod_1.default.string())
63
+ .transform((str, ctx) => {
64
+ if ((0, lodash_1.isNil)(str) || (0, lodash_1.isEmpty)(str))
65
+ return undefined;
66
+ try {
67
+ const parsedJson = JSON.parse(str);
68
+ if ((0, lodash_1.isEmpty)(parsedJson)) {
69
+ return undefined;
70
+ }
71
+ return parsedJson;
72
+ }
73
+ catch (e) {
74
+ ctx.addIssue({ code: 'custom', message: 'Invalid JSON.' });
75
+ return zod_1.default.NEVER;
76
+ }
77
+ }),
29
78
  });
30
79
  //# sourceMappingURL=fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/sendCallWithPathway/config/fields.ts"],"names":[],"mappings":";;;;;;AAAA,mEAIsC;AACtC,8CAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,2EAA2E;QAC7E,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;KACf;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,aAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACqB,CAAC,CAAA"}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/bland/actions/sendCallWithPathway/config/fields.ts"],"names":[],"mappings":";;;;;;AAAA,mEAIsC;AACtC,mCAAuC;AACvC,8CAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,2EAA2E;QAC7E,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,8HAA8H;QAChI,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,wKAAwK;QAC1K,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,KAAK;KAChB;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,aAAC,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,SAAS,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,WAAW,EAAE,aAAC;SACX,QAAQ,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC;SACpB,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAuC,EAAE;QAC3D,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAEhD,IAAI;YACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAElC,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,EAAE;gBACvB,OAAO,SAAS,CAAA;aACjB;YAED,OAAO,UAAU,CAAA;SAClB;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAA;YAC1D,OAAO,aAAC,CAAC,KAAK,CAAA;SACf;IACH,CAAC,CAAC;IACJ,cAAc,EAAE,aAAC;SACd,QAAQ,CAAC,aAAC,CAAC,MAAM,EAAE,CAAC;SACpB,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAuC,EAAE;QAC3D,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,IAAI,IAAA,gBAAO,EAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAEhD,IAAI;YACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAElC,IAAI,IAAA,gBAAO,EAAC,UAAU,CAAC,EAAE;gBACvB,OAAO,SAAS,CAAA;aACjB;YAED,OAAO,UAAU,CAAA;SAClB;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAA;YAC1D,OAAO,aAAC,CAAC,KAAK,CAAA;SACf;IACH,CAAC,CAAC;CAC6C,CAAC,CAAA"}