@awell-health/awell-extensions 2.1.13 → 2.1.14

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 (43) 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/zendesk/index.d.ts +2 -0
  5. package/dist/extensions/zendesk/index.js +52 -0
  6. package/dist/extensions/zendesk/index.js.map +1 -0
  7. package/dist/extensions/zendesk/settings.d.ts +37 -0
  8. package/dist/extensions/zendesk/settings.js +39 -0
  9. package/dist/extensions/zendesk/settings.js.map +1 -0
  10. package/dist/extensions/zendesk/v1/actions/createTicket/config/dataPoints.d.ts +10 -0
  11. package/dist/extensions/zendesk/v1/actions/createTicket/config/dataPoints.js +14 -0
  12. package/dist/extensions/zendesk/v1/actions/createTicket/config/dataPoints.js.map +1 -0
  13. package/dist/extensions/zendesk/v1/actions/createTicket/config/fields.d.ts +76 -0
  14. package/dist/extensions/zendesk/v1/actions/createTicket/config/fields.js +67 -0
  15. package/dist/extensions/zendesk/v1/actions/createTicket/config/fields.js.map +1 -0
  16. package/dist/extensions/zendesk/v1/actions/createTicket/config/index.d.ts +2 -0
  17. package/dist/extensions/zendesk/v1/actions/createTicket/config/index.js +9 -0
  18. package/dist/extensions/zendesk/v1/actions/createTicket/config/index.js.map +1 -0
  19. package/dist/extensions/zendesk/v1/actions/createTicket/createTicket.d.ts +4 -0
  20. package/dist/extensions/zendesk/v1/actions/createTicket/createTicket.js +67 -0
  21. package/dist/extensions/zendesk/v1/actions/createTicket/createTicket.js.map +1 -0
  22. package/dist/extensions/zendesk/v1/actions/createTicket/index.d.ts +1 -0
  23. package/dist/extensions/zendesk/v1/actions/createTicket/index.js +6 -0
  24. package/dist/extensions/zendesk/v1/actions/createTicket/index.js.map +1 -0
  25. package/dist/extensions/zendesk/v1/actions/index.d.ts +1 -0
  26. package/dist/extensions/zendesk/v1/actions/index.js +6 -0
  27. package/dist/extensions/zendesk/v1/actions/index.js.map +1 -0
  28. package/dist/extensions/zendesk/v1/client/client.d.ts +7 -0
  29. package/dist/extensions/zendesk/v1/client/client.js +32 -0
  30. package/dist/extensions/zendesk/v1/client/client.js.map +1 -0
  31. package/dist/extensions/zendesk/v1/client/error.d.ts +5 -0
  32. package/dist/extensions/zendesk/v1/client/error.js +50 -0
  33. package/dist/extensions/zendesk/v1/client/error.js.map +1 -0
  34. package/dist/extensions/zendesk/v1/client/index.d.ts +2 -0
  35. package/dist/extensions/zendesk/v1/client/index.js +7 -0
  36. package/dist/extensions/zendesk/v1/client/index.js.map +1 -0
  37. package/dist/extensions/zendesk/v1/client/types.d.ts +44 -0
  38. package/dist/extensions/zendesk/v1/client/types.js +3 -0
  39. package/dist/extensions/zendesk/v1/client/types.js.map +1 -0
  40. package/dist/extensions/zendesk/v1/types.d.ts +19 -0
  41. package/dist/extensions/zendesk/v1/types.js +3 -0
  42. package/dist/extensions/zendesk/v1/types.js.map +1 -0
  43. package/package.json +1 -1
@@ -90,6 +90,7 @@ const twilio_1 = require("./twilio");
90
90
  const westFax_1 = require("./westFax");
91
91
  const workramp_1 = require("./workramp");
92
92
  const zendeskSell_1 = require("./zendeskSell");
93
+ const zendesk_1 = require("./zendesk");
93
94
  const zoom_1 = require("./zoom");
94
95
  const srfax_1 = require("./srfax");
95
96
  const json = __importStar(require("./markdown.json"));
@@ -151,6 +152,7 @@ exports.extensions = [
151
152
  westFax_1.WestFax,
152
153
  workramp_1.Workramp,
153
154
  zendeskSell_1.ZendeskSell,
155
+ zendesk_1.Zendesk,
154
156
  zoom_1.zoom,
155
157
  srfax_1.srfax,
156
158
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../extensions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA6C;AAC7C,yCAAqC;AACrC,qCAAiC;AACjC,mCAA+B;AAC/B,6CAAyC;AACzC,mCAA+B;AAC/B,mCAA+B;AAC/B,2CAAuC;AACvC,yCAAqC;AACrC,mDAA+C;AAC/C,qCAAiC;AACjC,6CAAyC;AACzC,yCAAqC;AACrC,+CAA2C;AAC3C,6CAAyC;AACzC,+CAA2C;AAC3C,6CAAyC;AACzC,yCAAqC;AACrC,+CAA2C;AAC3C,uCAAmC;AACnC,iCAA6B;AAC7B,iDAA6C;AAC7C,uDAAkD;AAClD,yCAAqC;AACrC,2CAAuC;AACvC,6CAAyC;AACzC,2CAAuC;AACvC,yCAAqC;AACrC,+CAA0C;AAC1C,uCAAmC;AACnC,iEAA6D;AAC7D,uCAAmC;AACnC,yCAAqC;AACrC,2CAAuC;AACvC,2CAAuC;AACvC,uCAAmC;AACnC,iCAAsC;AACtC,uCAAmC;AACnC,+CAA2C;AAC3C,0CAA0C;AAC1C,+CAA2C;AAC3C,iCAA6B;AAC7B,yCAAqC;AACrC,6DAA+C;AAC/C,iCAA6B;AAC7B,qCAAiC;AACjC,mCAA+B;AAC/B,qCAAiC;AACjC,yCAAqC;AACrC,yCAAqC;AACrC,+CAAyC;AACzC,2CAAuC;AACvC,qCAAiC;AACjC,uCAAmC;AACnC,yCAAqC;AACrC,+CAA2C;AAC3C,iCAA6B;AAC7B,mCAA+B;AAE/B,sDAAuC;AAG1B,QAAA,QAAQ,GAAa,IAAI,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,aAAK;IACL,aAAK;IACL,2BAAY;IACZ,mBAAQ;IACR,eAAM;IACN,aAAK;IACL,uBAAU;IACV,qBAAS;IACT,mBAAQ;IACR,6BAAa;IACb,eAAM;IACN,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,uBAAU;IACV,yBAAW;IACX,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,iBAAO;IACP,WAAI;IACJ,2BAAY;IACZ,gCAAc;IACd,mBAAQ;IACR,qBAAS;IACT,uBAAU;IACV,qBAAS;IACT,mBAAQ;IACR,wBAAU;IACV,iBAAO;IACP,2CAAoB;IACpB,iBAAO;IACP,mBAAQ;IACR,qBAAS;IACT,qBAAS;IACT,iBAAO;IACP,oBAAa;IACb,yBAAW;IACX,iBAAO;IACP,aAAa;IACb,yBAAW;IACX,WAAI;IACJ,mBAAQ;IACR,6BAAQ;IACR,WAAI;IACJ,eAAM;IACN,aAAK;IACL,eAAM;IACN,mBAAQ;IACR,mBAAQ;IACR,uBAAS;IACT,qBAAS;IACT,eAAM;IACN,iBAAO;IACP,mBAAQ;IACR,yBAAW;IACX,WAAI;IACJ,aAAK;CACN,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../extensions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA6C;AAC7C,yCAAqC;AACrC,qCAAiC;AACjC,mCAA+B;AAC/B,6CAAyC;AACzC,mCAA+B;AAC/B,mCAA+B;AAC/B,2CAAuC;AACvC,yCAAqC;AACrC,mDAA+C;AAC/C,qCAAiC;AACjC,6CAAyC;AACzC,yCAAqC;AACrC,+CAA2C;AAC3C,6CAAyC;AACzC,+CAA2C;AAC3C,6CAAyC;AACzC,yCAAqC;AACrC,+CAA2C;AAC3C,uCAAmC;AACnC,iCAA6B;AAC7B,iDAA6C;AAC7C,uDAAkD;AAClD,yCAAqC;AACrC,2CAAuC;AACvC,6CAAyC;AACzC,2CAAuC;AACvC,yCAAqC;AACrC,+CAA0C;AAC1C,uCAAmC;AACnC,iEAA6D;AAC7D,uCAAmC;AACnC,yCAAqC;AACrC,2CAAuC;AACvC,2CAAuC;AACvC,uCAAmC;AACnC,iCAAsC;AACtC,uCAAmC;AACnC,+CAA2C;AAC3C,0CAA0C;AAC1C,+CAA2C;AAC3C,iCAA6B;AAC7B,yCAAqC;AACrC,6DAA+C;AAC/C,iCAA6B;AAC7B,qCAAiC;AACjC,mCAA+B;AAC/B,qCAAiC;AACjC,yCAAqC;AACrC,yCAAqC;AACrC,+CAAyC;AACzC,2CAAuC;AACvC,qCAAiC;AACjC,uCAAmC;AACnC,yCAAqC;AACrC,+CAA2C;AAC3C,uCAAmC;AACnC,iCAA6B;AAC7B,mCAA+B;AAE/B,sDAAuC;AAG1B,QAAA,QAAQ,GAAa,IAAI,CAAA;AAEzB,QAAA,UAAU,GAAG;IACxB,aAAK;IACL,aAAK;IACL,2BAAY;IACZ,mBAAQ;IACR,eAAM;IACN,aAAK;IACL,uBAAU;IACV,qBAAS;IACT,mBAAQ;IACR,6BAAa;IACb,eAAM;IACN,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,uBAAU;IACV,yBAAW;IACX,uBAAU;IACV,mBAAQ;IACR,yBAAW;IACX,iBAAO;IACP,WAAI;IACJ,2BAAY;IACZ,gCAAc;IACd,mBAAQ;IACR,qBAAS;IACT,uBAAU;IACV,qBAAS;IACT,mBAAQ;IACR,wBAAU;IACV,iBAAO;IACP,2CAAoB;IACpB,iBAAO;IACP,mBAAQ;IACR,qBAAS;IACT,qBAAS;IACT,iBAAO;IACP,oBAAa;IACb,yBAAW;IACX,iBAAO;IACP,aAAa;IACb,yBAAW;IACX,WAAI;IACJ,mBAAQ;IACR,6BAAQ;IACR,WAAI;IACJ,eAAM;IACN,aAAK;IACL,eAAM;IACN,mBAAQ;IACR,mBAAQ;IACR,uBAAS;IACT,qBAAS;IACT,eAAM;IACN,iBAAO;IACP,mBAAQ;IACR,yBAAW;IACX,iBAAO;IACP,WAAI;IACJ,aAAK;CACN,CAAA"}
@@ -223,6 +223,10 @@
223
223
  "readme": "---\ntitle: Workramp\ndescription: WorkRamp is the all-in-one LMS platform for employees, customers, and partners. \n---\n# Workramp\n\nWorkramp is a learning management platform helping to upskill employees and educate partners and customers.\n\n## Extension settings\n\nThere are no extension settings (e.g. API keys) to set. Simply enable the extension and then utilize the EventPayload webhook to subscribe to events.\n\n## Webhooks\n\n### EventPayload\nListens to an event and starts a care flow, using the `user.id` field as a unique patient identifier.\n\nTo learn more about webhooks, visit [their developer site](https://developers.workramp.com/reference/introduction-to-webhooks).",
224
224
  "changelog": "# Workramp changelog\n\n## 2024-08-28\n\nCreated the extension."
225
225
  },
226
+ "zendesk": {
227
+ "readme": "# Zendesk Support\n\nZendesk Support is a customer service platform that provides ticketing, knowledge base, and customer communication tools.\n\n## Extension settings\n\nTo set up this extension, you will need to provide the following:\n\n1. **Zendesk Subdomain:** your Zendesk subdomain (e.g., \"company\" for company.zendesk.com)\n2. **OAuth Client ID:** the client ID of the OAuth app you created in Zendesk\n3. **OAuth Client Secret:** the client secret of the OAuth app you created in Zendesk\n\nYou'll have to set up an [OAuth app](https://developer.zendesk.com/api-reference/introduction/security-and-auth/#oauth-access-token) in Zendesk to provision a client ID and secret.\n\n## Actions\n\n### Create Ticket\n\nCreates a new support ticket in Zendesk with the specified details.\n\n**Required fields:**\n- Subject: The subject line of the ticket\n- Comment: The initial comment/description for the ticket\n\n**Optional fields:**\n- Group ID: The ID of the group to assign the ticket to\n- Priority: The priority level (urgent, high, normal, or low)\n- External ID: An external identifier to link this ticket to your system\n- Tag: A tag to add to the ticket\n\n**Returns:**\n- Ticket ID: The unique identifier of the created ticket\n- Ticket URL: Direct link to the ticket in Zendesk agent interface\n",
228
+ "changelog": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\n## [1.0.0] - 2025-01-10\n\n### Added\n\n- Initial release of Zendesk Support extension\n- Create Ticket action with OAuth authentication\n- Support for all major ticket fields: subject, comment, group_id, priority, external_id, tags\n"
229
+ },
226
230
  "zendeskSell": {
227
231
  "readme": "---\ntitle: Zendesk Sell\ndescription: Zendesk Sell is a customer service and support platform that provides a suite of tools and software for businesses to manage their customer interactions.\n---\n\n# Zendesk Sell\n\nZendesk Sell is a customer service and support platform that provides a suite of tools and software for businesses to manage their customer interactions. It offers a range of customer service solutions, including help desk ticketing systems, customer support and engagement, and self-service options. Zendesk is designed to help companies streamline their customer support processes, improve communication with their customers, and resolve issues more efficiently.\n\n## Extension settings\n\nIn order to set up this extension, you will to authenticate with the Sell API and need an API token. You can visit Zendesk Sales CRM dashboard and go to **Settings > Integration > OAuth** to enable and create an API token. Read more about how to get an access token for the Sell API [here](https://developer.zendesk.com/documentation/sales-crm/first-call/).\n\n## Custom Actions\n\n### Create task\n\nCreates a new task. You can create either a floating task or create a related task and associate it with one of the resource types: Leads, Contacts, Deals.\n\n### Complete task\n\nMarks a task as completed.\n",
228
232
  "changelog": "# Zendesk changelog\n"
@@ -0,0 +1,2 @@
1
+ import { type Extension } from '@awell-health/extensions-core';
2
+ export declare const Zendesk: Extension;
@@ -0,0 +1,52 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Zendesk = void 0;
37
+ const extensions_core_1 = require("@awell-health/extensions-core");
38
+ const actions = __importStar(require("./v1/actions"));
39
+ const settings_1 = require("./settings");
40
+ exports.Zendesk = {
41
+ key: 'zendesk',
42
+ title: 'Zendesk Support',
43
+ icon_url: 'https://res.cloudinary.com/da7x4rzl4/image/upload/v1697013804/Awell%20Extensions/zendesk-icon.png',
44
+ description: 'Zendesk Support is a customer service platform that provides ticketing, knowledge base, and customer communication tools.',
45
+ category: extensions_core_1.Category.CUSTOMER_SUPPORT,
46
+ author: {
47
+ authorType: extensions_core_1.AuthorType.AWELL,
48
+ },
49
+ actions,
50
+ settings: settings_1.settings,
51
+ };
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../extensions/zendesk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mEAAoE;AACpE,sDAAuC;AACvC,yCAAqC;AAExB,QAAA,OAAO,GAAc;IAChC,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EACN,mGAAmG;IACrG,WAAW,EACT,2HAA2H;IAC7H,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,MAAM,EAAE;QACN,UAAU,EAAE,4BAAU,CAAC,KAAK;KAC7B;IACD,OAAO;IACP,QAAQ,EAAR,mBAAQ;CACT,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ export declare const settings: {
3
+ subdomain: {
4
+ label: string;
5
+ key: string;
6
+ obfuscated: false;
7
+ required: true;
8
+ description: string;
9
+ };
10
+ user_email: {
11
+ label: string;
12
+ key: string;
13
+ obfuscated: false;
14
+ required: true;
15
+ description: string;
16
+ };
17
+ api_token: {
18
+ label: string;
19
+ key: string;
20
+ obfuscated: true;
21
+ required: true;
22
+ description: string;
23
+ };
24
+ };
25
+ export declare const SettingsValidationSchema: z.ZodObject<{
26
+ subdomain: z.ZodString;
27
+ user_email: z.ZodString;
28
+ api_token: z.ZodString;
29
+ }, "strip", z.ZodTypeAny, {
30
+ user_email: string;
31
+ subdomain: string;
32
+ api_token: string;
33
+ }, {
34
+ user_email: string;
35
+ subdomain: string;
36
+ api_token: string;
37
+ }>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SettingsValidationSchema = exports.settings = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.settings = {
6
+ subdomain: {
7
+ label: 'Zendesk Subdomain',
8
+ key: 'subdomain',
9
+ obfuscated: false,
10
+ required: true,
11
+ description: 'Your Zendesk subdomain (e.g., "company" for company.zendesk.com)',
12
+ },
13
+ user_email: {
14
+ label: 'User Email',
15
+ key: 'user_email',
16
+ obfuscated: false,
17
+ required: true,
18
+ description: 'Your Zendesk user email address',
19
+ },
20
+ api_token: {
21
+ label: 'API Token',
22
+ key: 'api_token',
23
+ obfuscated: true,
24
+ required: true,
25
+ description: 'Your Zendesk API token',
26
+ },
27
+ };
28
+ exports.SettingsValidationSchema = zod_1.z.object({
29
+ subdomain: zod_1.z.string().nonempty({
30
+ message: 'Missing "Zendesk Subdomain" in the extension settings.',
31
+ }),
32
+ user_email: zod_1.z.string().email({
33
+ message: 'Invalid "User Email" in the extension settings.',
34
+ }),
35
+ api_token: zod_1.z.string().nonempty({
36
+ message: 'Missing "API Token" in the extension settings.',
37
+ }),
38
+ });
39
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../extensions/zendesk/settings.ts"],"names":[],"mappings":";;;AACA,6BAAuB;AAEV,QAAA,QAAQ,GAAG;IACtB,SAAS,EAAE;QACT,KAAK,EAAE,mBAAmB;QAC1B,GAAG,EAAE,WAAW;QAChB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,kEAAkE;KACrE;IACD,UAAU,EAAE;QACV,KAAK,EAAE,YAAY;QACnB,GAAG,EAAE,YAAY;QACjB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iCAAiC;KAC/C;IACD,SAAS,EAAE;QACT,KAAK,EAAE,WAAW;QAClB,GAAG,EAAE,WAAW;QAChB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,wBAAwB;KACtC;CACgC,CAAA;AAEtB,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;QAC7B,OAAO,EAAE,wDAAwD;KAClE,CAAC;IACF,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;QAC3B,OAAO,EAAE,iDAAiD;KAC3D,CAAC;IACF,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC;QAC7B,OAAO,EAAE,gDAAgD;KAC1D,CAAC;CACH,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ export declare const dataPoints: {
2
+ ticketId: {
3
+ key: string;
4
+ valueType: "string";
5
+ };
6
+ ticketUrl: {
7
+ key: string;
8
+ valueType: "string";
9
+ };
10
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dataPoints = void 0;
4
+ exports.dataPoints = {
5
+ ticketId: {
6
+ key: 'ticketId',
7
+ valueType: 'string',
8
+ },
9
+ ticketUrl: {
10
+ key: 'ticketUrl',
11
+ valueType: 'string',
12
+ },
13
+ };
14
+ //# sourceMappingURL=dataPoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../../extensions/zendesk/v1/actions/createTicket/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,QAAQ,EAAE;QACR,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,QAAQ;KACpB;IACD,SAAS,EAAE;QACT,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA"}
@@ -0,0 +1,76 @@
1
+ import { z } from 'zod';
2
+ import { FieldType, StringType } from '@awell-health/extensions-core';
3
+ export declare const fields: {
4
+ subject: {
5
+ label: string;
6
+ id: string;
7
+ type: FieldType.STRING;
8
+ stringType: StringType.TEXT;
9
+ required: true;
10
+ description: string;
11
+ };
12
+ comment: {
13
+ label: string;
14
+ id: string;
15
+ type: FieldType.STRING;
16
+ stringType: StringType.TEXT;
17
+ required: true;
18
+ description: string;
19
+ };
20
+ group_id: {
21
+ label: string;
22
+ id: string;
23
+ type: FieldType.NUMERIC;
24
+ required: false;
25
+ description: string;
26
+ };
27
+ priority: {
28
+ label: string;
29
+ id: string;
30
+ type: FieldType.STRING;
31
+ required: false;
32
+ description: string;
33
+ options: {
34
+ dropdownOptions: {
35
+ label: "urgent" | "high" | "normal" | "low";
36
+ value: "urgent" | "high" | "normal" | "low";
37
+ }[];
38
+ };
39
+ };
40
+ external_id: {
41
+ label: string;
42
+ id: string;
43
+ type: FieldType.STRING;
44
+ required: false;
45
+ description: string;
46
+ };
47
+ tag: {
48
+ label: string;
49
+ id: string;
50
+ type: FieldType.STRING;
51
+ required: false;
52
+ description: string;
53
+ };
54
+ };
55
+ export declare const FieldsValidationSchema: z.ZodObject<{
56
+ subject: z.ZodString;
57
+ comment: z.ZodString;
58
+ group_id: z.ZodUnion<[z.ZodOptional<z.ZodNumber>, z.ZodEffects<z.ZodLiteral<"">, undefined, "">]>;
59
+ priority: z.ZodUnion<[z.ZodOptional<z.ZodEnum<["urgent", "high", "normal", "low"]>>, z.ZodEffects<z.ZodLiteral<"">, undefined, "">]>;
60
+ external_id: z.ZodOptional<z.ZodString>;
61
+ tag: z.ZodOptional<z.ZodString>;
62
+ }, "strip", z.ZodTypeAny, {
63
+ subject: string;
64
+ comment: string;
65
+ priority?: "urgent" | "high" | "normal" | "low" | undefined;
66
+ group_id?: number | undefined;
67
+ external_id?: string | undefined;
68
+ tag?: string | undefined;
69
+ }, {
70
+ subject: string;
71
+ comment: string;
72
+ priority?: "" | "urgent" | "high" | "normal" | "low" | undefined;
73
+ group_id?: number | "" | undefined;
74
+ external_id?: string | undefined;
75
+ tag?: string | undefined;
76
+ }>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldsValidationSchema = exports.fields = void 0;
4
+ const zod_1 = require("zod");
5
+ const extensions_core_1 = require("@awell-health/extensions-core");
6
+ const priorityEnum = zod_1.z.enum(['urgent', 'high', 'normal', 'low']);
7
+ exports.fields = {
8
+ subject: {
9
+ label: 'Subject',
10
+ id: 'subject',
11
+ type: extensions_core_1.FieldType.STRING,
12
+ stringType: extensions_core_1.StringType.TEXT,
13
+ required: true,
14
+ description: 'The subject line of the ticket.',
15
+ },
16
+ comment: {
17
+ label: 'Comment',
18
+ id: 'comment',
19
+ type: extensions_core_1.FieldType.STRING,
20
+ stringType: extensions_core_1.StringType.TEXT,
21
+ required: true,
22
+ description: 'The initial comment/description for the ticket.',
23
+ },
24
+ group_id: {
25
+ label: 'Group ID',
26
+ id: 'group_id',
27
+ type: extensions_core_1.FieldType.NUMERIC,
28
+ required: false,
29
+ description: 'The ID of the group to assign the ticket to.',
30
+ },
31
+ priority: {
32
+ label: 'Priority',
33
+ id: 'priority',
34
+ type: extensions_core_1.FieldType.STRING,
35
+ required: false,
36
+ description: 'The priority level: urgent, high, normal, or low.',
37
+ options: {
38
+ dropdownOptions: Object.values(priorityEnum.enum).map((status) => ({
39
+ label: status,
40
+ value: status,
41
+ })),
42
+ },
43
+ },
44
+ external_id: {
45
+ label: 'External ID',
46
+ id: 'external_id',
47
+ type: extensions_core_1.FieldType.STRING,
48
+ required: false,
49
+ description: 'An external identifier to link this ticket to your system.',
50
+ },
51
+ tag: {
52
+ label: 'Tag',
53
+ id: 'tag',
54
+ type: extensions_core_1.FieldType.STRING,
55
+ required: false,
56
+ description: 'A tag to add to the ticket.',
57
+ },
58
+ };
59
+ exports.FieldsValidationSchema = zod_1.z.object({
60
+ subject: zod_1.z.string().nonempty(),
61
+ comment: zod_1.z.string().nonempty(),
62
+ group_id: (0, extensions_core_1.makeStringOptional)(extensions_core_1.NumericIdSchema),
63
+ priority: (0, extensions_core_1.makeStringOptional)(priorityEnum),
64
+ external_id: zod_1.z.string().optional(),
65
+ tag: zod_1.z.string().optional(),
66
+ });
67
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../../extensions/zendesk/v1/actions/createTicket/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAMsC;AAEtC,MAAM,YAAY,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;AAEnD,QAAA,MAAM,GAAG;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,IAAI;QAC3B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iCAAiC;KAC/C;IACD,OAAO,EAAE;QACP,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,IAAI;QAC3B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iDAAiD;KAC/D;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU;QACjB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,8CAA8C;KAC5D;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU;QACjB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,mDAAmD;QAChE,OAAO,EAAE;YACP,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;SACJ;KACF;IACD,WAAW,EAAE;QACX,KAAK,EAAE,aAAa;QACpB,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,4DAA4D;KAC1E;IACD,GAAG,EAAE;QACH,KAAK,EAAE,KAAK;QACZ,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,6BAA6B;KAC3C;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,IAAA,oCAAkB,EAAC,iCAAe,CAAC;IAC7C,QAAQ,EAAE,IAAA,oCAAkB,EAAC,YAAY,CAAC;IAC1C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACuB,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/zendesk/v1/actions/createTicket/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 } from './config';
4
+ export declare const createTicket: Action<typeof fields, typeof settings>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTicket = void 0;
4
+ const zod_1 = require("zod");
5
+ const extensions_core_1 = require("@awell-health/extensions-core");
6
+ const settings_1 = require("../../../settings");
7
+ const config_1 = require("./config");
8
+ const client_1 = require("../../client");
9
+ const error_1 = require("../../client/error");
10
+ exports.createTicket = {
11
+ key: 'createTicket',
12
+ title: 'Create ticket',
13
+ description: 'Creates a new support ticket in Zendesk',
14
+ category: extensions_core_1.Category.CUSTOMER_SUPPORT,
15
+ fields: config_1.fields,
16
+ dataPoints: config_1.dataPoints,
17
+ previewable: false,
18
+ onActivityCreated: async (payload, onComplete, onError) => {
19
+ try {
20
+ const { settings, fields: { subject, comment, group_id, priority, external_id, tag }, } = (0, extensions_core_1.validate)({
21
+ schema: zod_1.z.object({
22
+ settings: settings_1.SettingsValidationSchema,
23
+ fields: config_1.FieldsValidationSchema,
24
+ }),
25
+ payload,
26
+ });
27
+ const client = (0, client_1.makeAPIClient)(settings);
28
+ const ticketData = {
29
+ subject,
30
+ comment: { body: comment },
31
+ ...(group_id && { group_id: Number(group_id) }),
32
+ ...(priority && { priority }),
33
+ ...(external_id && { external_id }),
34
+ ...(tag && { tags: [tag] }),
35
+ };
36
+ const response = await client.createTicket(ticketData);
37
+ await onComplete({
38
+ data_points: {
39
+ ticketId: String(response.ticket.id),
40
+ ticketUrl: `https://${settings.subdomain}.zendesk.com/agent/tickets/${response.ticket.id}`,
41
+ },
42
+ });
43
+ }
44
+ catch (err) {
45
+ if ((0, error_1.isZendeskApiError)(err)) {
46
+ const events = (0, error_1.zendeskApiErrorToActivityEvent)(err);
47
+ await onError({ events });
48
+ }
49
+ else {
50
+ const errorMessage = err instanceof Error ? err.message : 'Unknown error occurred';
51
+ await onError({
52
+ events: [
53
+ {
54
+ date: new Date().toISOString(),
55
+ text: { en: `Failed to create ticket: ${errorMessage}` },
56
+ error: {
57
+ category: 'SERVER_ERROR',
58
+ message: errorMessage,
59
+ },
60
+ },
61
+ ],
62
+ });
63
+ }
64
+ }
65
+ },
66
+ };
67
+ //# sourceMappingURL=createTicket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTicket.js","sourceRoot":"","sources":["../../../../../../extensions/zendesk/v1/actions/createTicket/createTicket.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAGvB,mEAAkE;AAClE,gDAA4D;AAC5D,qCAAqE;AACrE,yCAA4C;AAC5C,8CAAsF;AAEzE,QAAA,YAAY,GAA2C;IAClE,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,yCAAyC;IACtD,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,mBAAU;IACV,WAAW,EAAE,KAAK;IAClB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,EACJ,QAAQ,EACR,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,GACnE,GAAG,IAAA,0BAAQ,EAAC;gBACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;oBACf,QAAQ,EAAE,mCAAwB;oBAClC,MAAM,EAAE,+BAAsB;iBAC/B,CAAC;gBACF,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAA;YAEtC,MAAM,UAAU,GAAG;gBACjB,OAAO;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC1B,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC7B,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;gBACnC,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;aAC5B,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;YAEtD,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpC,SAAS,EAAE,WAAW,QAAQ,CAAC,SAAS,8BAA8B,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE;iBAC3F;aACF,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAA,yBAAiB,EAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,IAAA,sCAA8B,EAAC,GAAG,CAAC,CAAA;gBAClD,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAA;gBAClF,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,4BAA4B,YAAY,EAAE,EAAE;4BACxD,KAAK,EAAE;gCACL,QAAQ,EAAE,cAAc;gCACxB,OAAO,EAAE,YAAY;6BACtB;yBACF;qBACF;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1 @@
1
+ export { createTicket } from './createTicket';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTicket = void 0;
4
+ var createTicket_1 = require("./createTicket");
5
+ Object.defineProperty(exports, "createTicket", { enumerable: true, get: function () { return createTicket_1.createTicket; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../extensions/zendesk/v1/actions/createTicket/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,4GAAA,YAAY,OAAA"}
@@ -0,0 +1 @@
1
+ export { createTicket } from './createTicket';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTicket = void 0;
4
+ var createTicket_1 = require("./createTicket");
5
+ Object.defineProperty(exports, "createTicket", { enumerable: true, get: function () { return createTicket_1.createTicket; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/zendesk/v1/actions/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,4GAAA,YAAY,OAAA"}
@@ -0,0 +1,7 @@
1
+ import { type CreateTicketInput, type CreateTicketResponse } from './types';
2
+ export declare class ZendeskAPIClient {
3
+ private readonly client;
4
+ constructor(subdomain: string, userEmail: string, apiToken: string);
5
+ createTicket(data: CreateTicketInput): Promise<CreateTicketResponse>;
6
+ }
7
+ export declare const makeAPIClient: (payloadSettings: Record<string, string | undefined>) => ZendeskAPIClient;
@@ -0,0 +1,32 @@
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.makeAPIClient = exports.ZendeskAPIClient = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const settings_1 = require("../../settings");
9
+ class ZendeskAPIClient {
10
+ constructor(subdomain, userEmail, apiToken) {
11
+ const credentials = `${userEmail}/token:${apiToken}`;
12
+ const encodedCredentials = Buffer.from(credentials).toString('base64');
13
+ this.client = axios_1.default.create({
14
+ baseURL: `https://${subdomain}.zendesk.com`,
15
+ headers: {
16
+ Authorization: `Basic ${encodedCredentials}`,
17
+ 'Content-Type': 'application/json',
18
+ },
19
+ });
20
+ }
21
+ async createTicket(data) {
22
+ const response = await this.client.post('/api/v2/tickets', { ticket: data });
23
+ return response.data;
24
+ }
25
+ }
26
+ exports.ZendeskAPIClient = ZendeskAPIClient;
27
+ const makeAPIClient = (payloadSettings) => {
28
+ const { subdomain, user_email, api_token } = settings_1.SettingsValidationSchema.parse(payloadSettings);
29
+ return new ZendeskAPIClient(subdomain, user_email, api_token);
30
+ };
31
+ exports.makeAPIClient = makeAPIClient;
32
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../extensions/zendesk/v1/client/client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAqE;AACrE,6CAAyD;AAGzD,MAAa,gBAAgB;IAG3B,YAAY,SAAiB,EAAE,SAAiB,EAAE,QAAgB;QAChE,MAAM,WAAW,GAAG,GAAG,SAAS,UAAU,QAAQ,EAAE,CAAA;QACpD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEtE,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,WAAW,SAAS,cAAc;YAC3C,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,kBAAkB,EAAE;gBAC5C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAAuB;QAC/C,MAAM,QAAQ,GAAwC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC1E,iBAAiB,EACjB,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;QAED,OAAO,QAAQ,CAAC,IAAI,CAAA;IACtB,CAAC;CACF;AAxBD,4CAwBC;AAEM,MAAM,aAAa,GAAG,CAC3B,eAAmD,EACjC,EAAE;IACpB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,mCAAwB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAE5F,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;AAC/D,CAAC,CAAA;AANY,QAAA,aAAa,iBAMzB"}
@@ -0,0 +1,5 @@
1
+ import { type ActivityEvent } from '@awell-health/extensions-core';
2
+ import { type AxiosError } from 'axios';
3
+ import { type ZendeskApiErrorResponse } from './types';
4
+ export declare const isZendeskApiError: (error: any) => error is AxiosError<ZendeskApiErrorResponse>;
5
+ export declare const zendeskApiErrorToActivityEvent: (error: AxiosError<ZendeskApiErrorResponse>) => ActivityEvent[];
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zendeskApiErrorToActivityEvent = exports.isZendeskApiError = void 0;
4
+ const axios_1 = require("axios");
5
+ const lodash_1 = require("lodash");
6
+ const zod_1 = require("zod");
7
+ const zendeskApiErrorSchema = zod_1.z.object({
8
+ errors: zod_1.z.array(zod_1.z.object({
9
+ error: zod_1.z.object({
10
+ resource: zod_1.z.string().optional(),
11
+ field: zod_1.z.string().optional(),
12
+ code: zod_1.z.string(),
13
+ message: zod_1.z.string(),
14
+ details: zod_1.z.string().optional(),
15
+ }),
16
+ meta: zod_1.z.object({}),
17
+ })),
18
+ meta: zod_1.z.object({}),
19
+ });
20
+ const isZendeskApiError = (error) => {
21
+ var _a;
22
+ if ((0, axios_1.isAxiosError)(error)) {
23
+ const parseResult = zendeskApiErrorSchema.safeParse((_a = error.response) === null || _a === void 0 ? void 0 : _a.data);
24
+ return parseResult.success;
25
+ }
26
+ return false;
27
+ };
28
+ exports.isZendeskApiError = isZendeskApiError;
29
+ const zendeskApiErrorToActivityEvent = (error) => {
30
+ var _a, _b;
31
+ const errorData = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data;
32
+ if ((0, lodash_1.isNil)(errorData) || ((_b = errorData.errors) === null || _b === void 0 ? void 0 : _b.length) === 0) {
33
+ return [];
34
+ }
35
+ return errorData.errors.map((error) => {
36
+ var _a;
37
+ return {
38
+ date: new Date().toISOString(),
39
+ text: {
40
+ en: (0, lodash_1.isNil)(error.error.details) ? error.error.code : error.error.message,
41
+ },
42
+ error: {
43
+ category: 'SERVER_ERROR',
44
+ message: (_a = error.error.details) !== null && _a !== void 0 ? _a : error.error.message,
45
+ },
46
+ };
47
+ });
48
+ };
49
+ exports.zendeskApiErrorToActivityEvent = zendeskApiErrorToActivityEvent;
50
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../extensions/zendesk/v1/client/error.ts"],"names":[],"mappings":";;;AACA,iCAAqD;AACrD,mCAA8B;AAC9B,6BAAuB;AAGvB,MAAM,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,MAAM,EAAE,OAAC,CAAC,KAAK,CACb,OAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC;YACd,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;YAChB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;YACnB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC;QACF,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KACnB,CAAC,CACH;IACD,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;CACnB,CAAC,CAAA;AAEK,MAAM,iBAAiB,GAAG,CAC/B,KAAU,EACoC,EAAE;;IAChD,IAAI,IAAA,oBAAY,EAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAA;QACzE,OAAO,WAAW,CAAC,OAAO,CAAA;IAC5B,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B;AAEM,MAAM,8BAA8B,GAAG,CAC5C,KAA0C,EACzB,EAAE;;IACnB,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,CAAA;IAEtC,IAAI,IAAA,cAAK,EAAC,SAAS,CAAC,IAAI,CAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,MAAM,MAAK,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;QACpC,OAAO;YACL,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC9B,IAAI,EAAE;gBACJ,EAAE,EAAE,IAAA,cAAK,EAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;aACxE;YACD,KAAK,EAAE;gBACL,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,OAAO,mCAAI,KAAK,CAAC,KAAK,CAAC,OAAO;aACpD;SACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AArBY,QAAA,8BAA8B,kCAqB1C"}
@@ -0,0 +1,2 @@
1
+ export { ZendeskAPIClient, makeAPIClient } from './client';
2
+ export type { CreateTicketInput, CreateTicketResponse } from './types';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeAPIClient = exports.ZendeskAPIClient = void 0;
4
+ var client_1 = require("./client");
5
+ Object.defineProperty(exports, "ZendeskAPIClient", { enumerable: true, get: function () { return client_1.ZendeskAPIClient; } });
6
+ Object.defineProperty(exports, "makeAPIClient", { enumerable: true, get: function () { return client_1.makeAPIClient; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/zendesk/v1/client/index.ts"],"names":[],"mappings":";;;AAAA,mCAA0D;AAAjD,0GAAA,gBAAgB,OAAA;AAAE,uGAAA,aAAa,OAAA"}
@@ -0,0 +1,44 @@
1
+ export interface CreateTicketInput {
2
+ subject: string;
3
+ comment: {
4
+ body: string;
5
+ };
6
+ group_id?: number;
7
+ priority?: 'urgent' | 'high' | 'normal' | 'low';
8
+ external_id?: string;
9
+ tags?: string[];
10
+ }
11
+ export interface CreateTicketResponse {
12
+ ticket: {
13
+ id: number;
14
+ subject: string;
15
+ status: string;
16
+ created_at: string;
17
+ updated_at: string;
18
+ };
19
+ }
20
+ export interface ZendeskApiErrorResponse {
21
+ errors: Array<{
22
+ error: {
23
+ resource: string;
24
+ field: string;
25
+ code: string;
26
+ message: string;
27
+ details: string;
28
+ };
29
+ meta: {
30
+ type: string;
31
+ links: {
32
+ more_info: string;
33
+ };
34
+ };
35
+ }>;
36
+ meta: {
37
+ type: string;
38
+ http_status: string;
39
+ logref: string;
40
+ links: {
41
+ more_info: string;
42
+ };
43
+ };
44
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../extensions/zendesk/v1/client/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ export interface CreateTicketInput {
2
+ subject: string;
3
+ comment: {
4
+ body: string;
5
+ };
6
+ group_id?: number;
7
+ priority?: 'urgent' | 'high' | 'normal' | 'low';
8
+ external_id?: string;
9
+ tags?: string[];
10
+ }
11
+ export interface CreateTicketResponse {
12
+ ticket: {
13
+ id: number;
14
+ subject: string;
15
+ status: string;
16
+ created_at: string;
17
+ updated_at: string;
18
+ };
19
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../extensions/zendesk/v1/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awell-health/awell-extensions",
3
- "version": "2.1.13",
3
+ "version": "2.1.14",
4
4
  "packageManager": "yarn@4.5.3",
5
5
  "main": "dist/src/index.js",
6
6
  "repository": {