@awell-health/awell-extensions 1.0.100 → 1.0.102

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 (79) hide show
  1. package/dist/extensions/markdown.json +2 -2
  2. package/dist/extensions/wellinks/actions/checkFlourishCustomer/checkFlourishCustomer.d.ts +1 -1
  3. package/dist/extensions/wellinks/actions/checkFlourishCustomer/checkFlourishCustomer.js +1 -2
  4. package/dist/extensions/wellinks/actions/checkFlourishCustomer/checkFlourishCustomer.js.map +1 -1
  5. package/dist/extensions/wellinks/actions/checkFlourishCustomer/checkFlourishCustomer.test.js +5 -3
  6. package/dist/extensions/wellinks/actions/checkFlourishCustomer/checkFlourishCustomer.test.js.map +1 -1
  7. package/dist/extensions/wellinks/actions/checkForChat/checkForChat.d.ts +1 -1
  8. package/dist/extensions/wellinks/actions/checkForChat/checkForChat.js +9 -7
  9. package/dist/extensions/wellinks/actions/checkForChat/checkForChat.js.map +1 -1
  10. package/dist/extensions/wellinks/actions/checkForChat/checkForChat.test.js +2 -2
  11. package/dist/extensions/wellinks/actions/checkForChat/checkForChat.test.js.map +1 -1
  12. package/dist/extensions/wellinks/actions/checkForCheckInOverride/checkForCheckInOverride.d.ts +1 -1
  13. package/dist/extensions/wellinks/actions/checkForCheckInOverride/checkForCheckInOverride.js +12 -6
  14. package/dist/extensions/wellinks/actions/checkForCheckInOverride/checkForCheckInOverride.js.map +1 -1
  15. package/dist/extensions/wellinks/actions/checkForCheckInOverride/checkForCheckInOverride.test.js +2 -2
  16. package/dist/extensions/wellinks/actions/checkForCheckInOverride/checkForCheckInOverride.test.js.map +1 -1
  17. package/dist/extensions/wellinks/actions/checkForOverride/checkForOverride.d.ts +1 -1
  18. package/dist/extensions/wellinks/actions/checkForOverride/checkForOverride.js +16 -7
  19. package/dist/extensions/wellinks/actions/checkForOverride/checkForOverride.js.map +1 -1
  20. package/dist/extensions/wellinks/actions/checkForOverride/checkForOverride.test.js +2 -2
  21. package/dist/extensions/wellinks/actions/checkForOverride/checkForOverride.test.js.map +1 -1
  22. package/dist/extensions/wellinks/actions/checkForScheduledAppointment/checkForScheduledAppointment.d.ts +1 -1
  23. package/dist/extensions/wellinks/actions/checkForScheduledAppointment/checkForScheduledAppointment.js +1 -1
  24. package/dist/extensions/wellinks/actions/checkForScheduledAppointment/checkForScheduledAppointment.js.map +1 -1
  25. package/dist/extensions/wellinks/actions/checkForScheduledAppointment/checkForScheduledAppointment.test.js +2 -2
  26. package/dist/extensions/wellinks/actions/checkForScheduledAppointment/checkForScheduledAppointment.test.js.map +1 -1
  27. package/dist/extensions/wellinks/actions/index.d.ts +199 -0
  28. package/dist/extensions/wellinks/actions/index.js +2 -0
  29. package/dist/extensions/wellinks/actions/index.js.map +1 -1
  30. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.d.ts +1 -1
  31. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.js +1 -1
  32. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.js.map +1 -1
  33. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.test.js +3 -3
  34. package/dist/extensions/wellinks/actions/insertMemberListEvent/insertMemberListEvent.test.js.map +1 -1
  35. package/dist/extensions/wellinks/actions/submitPamSurvey/config/fields.d.ts +188 -0
  36. package/dist/extensions/wellinks/actions/submitPamSurvey/config/fields.js +160 -0
  37. package/dist/extensions/wellinks/actions/submitPamSurvey/config/fields.js.map +1 -0
  38. package/dist/extensions/wellinks/actions/submitPamSurvey/config/index.d.ts +2 -0
  39. package/dist/extensions/wellinks/actions/submitPamSurvey/config/index.js +9 -0
  40. package/dist/extensions/wellinks/actions/submitPamSurvey/config/index.js.map +1 -0
  41. package/dist/extensions/wellinks/actions/submitPamSurvey/config/settings.d.ts +35 -0
  42. package/dist/extensions/wellinks/actions/submitPamSurvey/config/settings.js +17 -0
  43. package/dist/extensions/wellinks/actions/submitPamSurvey/config/settings.js.map +1 -0
  44. package/dist/extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.d.ts +19 -0
  45. package/dist/extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.js +66 -0
  46. package/dist/extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.js.map +1 -0
  47. package/dist/extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.test.d.ts +1 -0
  48. package/dist/extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.test.js +125 -0
  49. package/dist/extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.test.js.map +1 -0
  50. package/dist/extensions/wellinks/api/clients/wellinksClient.js.map +1 -0
  51. package/dist/extensions/wellinks/api/clients/wellinksFlourishClient.d.ts +13 -0
  52. package/dist/extensions/wellinks/api/clients/wellinksFlourishClient.js +154 -0
  53. package/dist/extensions/wellinks/api/clients/wellinksFlourishClient.js.map +1 -0
  54. package/dist/extensions/wellinks/{wellinksGraphqlClient.d.ts → api/clients/wellinksGraphqlClient.d.ts} +1 -1
  55. package/dist/extensions/wellinks/api/clients/wellinksGraphqlClient.js.map +1 -0
  56. package/dist/extensions/wellinks/api/test/wellinksFlourishClient.test.d.ts +1 -0
  57. package/dist/extensions/wellinks/api/test/wellinksFlourishClient.test.js +136 -0
  58. package/dist/extensions/wellinks/api/test/wellinksFlourishClient.test.js.map +1 -0
  59. package/dist/extensions/wellinks/config/settings.js.map +1 -0
  60. package/dist/extensions/wellinks/config/types.d.ts +5 -0
  61. package/dist/extensions/wellinks/config/types.js +3 -0
  62. package/dist/extensions/wellinks/config/types.js.map +1 -0
  63. package/dist/extensions/wellinks/index.js +1 -1
  64. package/dist/extensions/wellinks/index.js.map +1 -1
  65. package/package.json +3 -3
  66. package/dist/extensions/wellinks/settings.js.map +0 -1
  67. package/dist/extensions/wellinks/wellinksClient.js.map +0 -1
  68. package/dist/extensions/wellinks/wellinksFlourishClient.d.ts +0 -9
  69. package/dist/extensions/wellinks/wellinksFlourishClient.js +0 -79
  70. package/dist/extensions/wellinks/wellinksFlourishClient.js.map +0 -1
  71. package/dist/extensions/wellinks/wellinksGraphqlClient.js.map +0 -1
  72. package/dist/extensions/wellinks/wellinksSendgridClient.d.ts +0 -7
  73. package/dist/extensions/wellinks/wellinksSendgridClient.js +0 -28
  74. package/dist/extensions/wellinks/wellinksSendgridClient.js.map +0 -1
  75. /package/dist/extensions/wellinks/{wellinksClient.d.ts → api/clients/wellinksClient.d.ts} +0 -0
  76. /package/dist/extensions/wellinks/{wellinksClient.js → api/clients/wellinksClient.js} +0 -0
  77. /package/dist/extensions/wellinks/{wellinksGraphqlClient.js → api/clients/wellinksGraphqlClient.js} +0 -0
  78. /package/dist/extensions/wellinks/{settings.d.ts → config/settings.d.ts} +0 -0
  79. /package/dist/extensions/wellinks/{settings.js → config/settings.js} +0 -0
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ export declare const SettingsValidationSchema: z.ZodObject<{
3
+ platformApiKey: z.ZodOptional<z.ZodString>;
4
+ platformApiUrl: z.ZodOptional<z.ZodString>;
5
+ apiUrl: z.ZodOptional<z.ZodString>;
6
+ apiKey: z.ZodOptional<z.ZodString>;
7
+ selectEventTypeQuestion: z.ZodOptional<z.ZodString>;
8
+ startSendingRemindersQuestions: z.ZodOptional<z.ZodString>;
9
+ memberEventFormId: z.ZodOptional<z.ZodString>;
10
+ flourishApiKey: z.ZodString;
11
+ flourishApiUrl: z.ZodString;
12
+ flourishClientExtId: z.ZodString;
13
+ }, "strip", z.ZodTypeAny, {
14
+ flourishApiUrl: string;
15
+ flourishApiKey: string;
16
+ flourishClientExtId: string;
17
+ platformApiKey?: string | undefined;
18
+ platformApiUrl?: string | undefined;
19
+ apiUrl?: string | undefined;
20
+ apiKey?: string | undefined;
21
+ selectEventTypeQuestion?: string | undefined;
22
+ startSendingRemindersQuestions?: string | undefined;
23
+ memberEventFormId?: string | undefined;
24
+ }, {
25
+ flourishApiUrl: string;
26
+ flourishApiKey: string;
27
+ flourishClientExtId: string;
28
+ platformApiKey?: string | undefined;
29
+ platformApiUrl?: string | undefined;
30
+ apiUrl?: string | undefined;
31
+ apiKey?: string | undefined;
32
+ selectEventTypeQuestion?: string | undefined;
33
+ startSendingRemindersQuestions?: string | undefined;
34
+ memberEventFormId?: string | undefined;
35
+ }>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SettingsValidationSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.SettingsValidationSchema = zod_1.z.object({
6
+ platformApiKey: zod_1.z.string().optional(),
7
+ platformApiUrl: zod_1.z.string().optional(),
8
+ apiUrl: zod_1.z.string().optional(),
9
+ apiKey: zod_1.z.string().optional(),
10
+ selectEventTypeQuestion: zod_1.z.string().optional(),
11
+ startSendingRemindersQuestions: zod_1.z.string().optional(),
12
+ memberEventFormId: zod_1.z.string().optional(),
13
+ flourishApiKey: zod_1.z.string(),
14
+ flourishApiUrl: zod_1.z.string(),
15
+ flourishClientExtId: zod_1.z.string(),
16
+ });
17
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../../../extensions/wellinks/actions/submitPamSurvey/config/settings.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AAE3B,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,uBAAuB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C,8BAA8B,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrD,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE;IAC1B,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE;IAC1B,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE;CACoB,CAAC,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { type Action } from '@awell-health/extensions-core';
2
+ import { type settings } from '../../config/settings';
3
+ import { fields } from './config';
4
+ declare const dataPoints: {
5
+ pamLevel: {
6
+ key: string;
7
+ valueType: "number";
8
+ };
9
+ pamScore: {
10
+ key: string;
11
+ valueType: "number";
12
+ };
13
+ success: {
14
+ key: string;
15
+ valueType: "boolean";
16
+ };
17
+ };
18
+ export declare const submitPamSurvey: Action<typeof fields, typeof settings, keyof typeof dataPoints>;
19
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.submitPamSurvey = void 0;
4
+ const extensions_core_1 = require("@awell-health/extensions-core");
5
+ const wellinksFlourishClient_1 = require("../../api/clients/wellinksFlourishClient");
6
+ const zod_1 = require("zod");
7
+ const config_1 = require("./config");
8
+ const dataPoints = {
9
+ pamLevel: {
10
+ key: 'pamLevel',
11
+ valueType: 'number',
12
+ },
13
+ pamScore: {
14
+ key: 'pamScore',
15
+ valueType: 'number',
16
+ },
17
+ success: {
18
+ key: 'success',
19
+ valueType: 'boolean',
20
+ },
21
+ };
22
+ exports.submitPamSurvey = {
23
+ key: 'submitPamSurvey',
24
+ category: extensions_core_1.Category.WORKFLOW,
25
+ title: 'Submit PAM Survey',
26
+ description: 'Submits a PAM survey to Flourish.',
27
+ fields: config_1.fields,
28
+ dataPoints,
29
+ previewable: true,
30
+ onActivityCreated: async (payload, onComplete, onError) => {
31
+ const { fields: { language, adminDate, thirdPartyIdentifier, gender, age, pa1, pa2, pa3, pa4, pa5, pa6, pa7, pa8, pa9, pa10, pa11, pa12, pa13, }, settings: { flourishApiKey, flourishApiUrl, flourishClientExtId }, } = (0, extensions_core_1.validate)({
32
+ schema: zod_1.z.object({
33
+ fields: config_1.FieldsValidationSchema,
34
+ settings: config_1.SettingsValidationSchema,
35
+ }),
36
+ payload,
37
+ });
38
+ const client = new wellinksFlourishClient_1.WellinksFlourishClient(flourishApiUrl, flourishApiKey, flourishClientExtId);
39
+ try {
40
+ const result = await client.survey.submit(language, adminDate, thirdPartyIdentifier, gender, age, pa1, pa2, pa3, pa4, pa5, pa6, pa7, pa8, pa9, pa10, pa11, pa12, pa13);
41
+ await onComplete({
42
+ data_points: {
43
+ pamLevel: result.pamLevel.toString(),
44
+ pamScore: result.pamScore.toString(),
45
+ success: result.success.toString(),
46
+ },
47
+ });
48
+ }
49
+ catch (err) {
50
+ const error = err;
51
+ await onError({
52
+ events: [
53
+ {
54
+ date: new Date().toISOString(),
55
+ text: { en: 'Something went wrong while orchestration the action' },
56
+ error: {
57
+ category: 'SERVER_ERROR',
58
+ message: error.message,
59
+ },
60
+ },
61
+ ],
62
+ });
63
+ }
64
+ },
65
+ };
66
+ //# sourceMappingURL=submitPamSurvey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitPamSurvey.js","sourceRoot":"","sources":["../../../../../extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.ts"],"names":[],"mappings":";;;AAAA,mEAKsC;AAEtC,qFAAiF;AACjF,6BAAuB;AACvB,qCAIiB;AAEjB,MAAM,UAAU,GAAG;IACjB,QAAQ,EAAE;QACR,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,QAAQ;KACpB;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,QAAQ;KACpB;IACD,OAAO,EAAE;QACP,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,SAAS;KACrB;CAC4C,CAAA;AAElC,QAAA,eAAe,GAIxB;IACF,GAAG,EAAE,iBAAiB;IACtB,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,mCAAmC;IAChD,MAAM,EAAN,eAAM;IACN,UAAU;IACV,WAAW,EAAE,IAAI;IACjB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAiB,EAAE;QACvE,MAAM,EACJ,MAAM,EAAE,EACN,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,MAAM,EACN,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,GACL,EACD,QAAQ,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAClE,GAAG,IAAA,0BAAQ,EAAC;YACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;gBACf,MAAM,EAAE,+BAAsB;gBAC9B,QAAQ,EAAE,iCAAwB;aACnC,CAAC;YACF,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,IAAI,+CAAsB,CACvC,cAAc,EACd,cAAc,EACd,mBAAmB,CACpB,CAAA;QACD,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CACvC,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,MAAM,EACN,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACL,CAAA;YACD,MAAM,UAAU,CAAC;gBACf,WAAW,EAAE;oBACX,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACpC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACpC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;iBACnC;aACF,CAAC,CAAA;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,KAAK,GAAG,GAAY,CAAA;YAC1B,MAAM,OAAO,CAAC;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,qDAAqD,EAAE;wBACnE,KAAK,EAAE;4BACL,QAAQ,EAAE,cAAc;4BACxB,OAAO,EAAE,KAAK,CAAC,OAAO;yBACvB;qBACF;iBACF;aACF,CAAC,CAAA;SACH;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tests_1 = require("../../../../src/tests");
4
+ const wellinksFlourishClient_1 = require("../../api/clients/__mocks__/wellinksFlourishClient");
5
+ const settings_1 = require("../../__mocks__/config/settings");
6
+ const submitPamSurvey_1 = require("./submitPamSurvey");
7
+ const zod_1 = require("zod");
8
+ jest.mock('../../api/clients/wellinksFlourishClient', () => ({
9
+ WellinksFlourishClient: wellinksFlourishClient_1.WellinksFlourishClient,
10
+ }));
11
+ describe('Submit PAM Survey', () => {
12
+ const onComplete = jest.fn();
13
+ const onError = jest.fn();
14
+ beforeEach(() => {
15
+ jest.clearAllMocks();
16
+ });
17
+ test('should call onError with a ZodError when the payload is invalid', async () => {
18
+ const invalidPayload = (0, tests_1.generateTestPayload)({
19
+ fields: {
20
+ language: undefined,
21
+ adminDate: undefined,
22
+ thirdPartyIdentifier: undefined,
23
+ gender: undefined,
24
+ age: undefined,
25
+ pa1: undefined,
26
+ pa2: undefined,
27
+ pa3: undefined,
28
+ pa4: undefined,
29
+ pa5: undefined,
30
+ pa6: undefined,
31
+ pa7: undefined,
32
+ pa8: undefined,
33
+ pa9: undefined,
34
+ pa10: undefined,
35
+ pa11: undefined,
36
+ pa12: undefined,
37
+ pa13: undefined,
38
+ },
39
+ settings: settings_1.mockSettings,
40
+ });
41
+ await expect(submitPamSurvey_1.submitPamSurvey.onActivityCreated(invalidPayload, onComplete, onError)).rejects.toThrowError(zod_1.ZodError);
42
+ });
43
+ test('should call onComplete with a complete DataPoint set when the survey is succesfully submitted', async () => {
44
+ const validPayload = (0, tests_1.generateTestPayload)({
45
+ fields: {
46
+ language: 'en',
47
+ adminDate: '2023-09-18',
48
+ thirdPartyIdentifier: 'identifier',
49
+ gender: 'male',
50
+ age: 25,
51
+ pa1: 1,
52
+ pa2: 2,
53
+ pa3: 3,
54
+ pa4: 4,
55
+ pa5: 5,
56
+ pa6: 6,
57
+ pa7: 7,
58
+ pa8: 8,
59
+ pa9: 9,
60
+ pa10: 10,
61
+ pa11: 11,
62
+ pa12: 12,
63
+ pa13: 13,
64
+ },
65
+ settings: settings_1.mockSettings,
66
+ });
67
+ wellinksFlourishClient_1.WellinksFlourishClientMockImplementation.survey.submit.mockImplementationOnce(() => {
68
+ return {
69
+ success: true,
70
+ pamLevel: 1,
71
+ pamScore: 1,
72
+ };
73
+ });
74
+ await submitPamSurvey_1.submitPamSurvey.onActivityCreated(validPayload, onComplete, onError);
75
+ expect(onError).not.toBeCalled();
76
+ expect(onComplete).toHaveBeenNthCalledWith(1, {
77
+ data_points: {
78
+ pamLevel: '1',
79
+ pamScore: '1',
80
+ success: 'true',
81
+ },
82
+ });
83
+ });
84
+ test('should call onError when wellinksFlourishClient.survey.submit throws an error', async () => {
85
+ const validPayload = (0, tests_1.generateTestPayload)({
86
+ fields: {
87
+ language: 'en',
88
+ adminDate: '2023-09-18',
89
+ thirdPartyIdentifier: 'identifier',
90
+ gender: 'male',
91
+ age: 25,
92
+ pa1: 1,
93
+ pa2: 2,
94
+ pa3: 3,
95
+ pa4: 4,
96
+ pa5: 5,
97
+ pa6: 6,
98
+ pa7: 7,
99
+ pa8: 8,
100
+ pa9: 9,
101
+ pa10: 10,
102
+ pa11: 11,
103
+ pa12: 12,
104
+ pa13: 13,
105
+ },
106
+ settings: settings_1.mockSettings,
107
+ });
108
+ wellinksFlourishClient_1.WellinksFlourishClientMockImplementation.survey.submit.mockImplementationOnce(() => {
109
+ throw new Error('Test Error');
110
+ });
111
+ await submitPamSurvey_1.submitPamSurvey.onActivityCreated(validPayload, onComplete, onError);
112
+ expect(onError).toHaveBeenNthCalledWith(1, {
113
+ events: expect.arrayContaining([
114
+ expect.objectContaining({
115
+ error: {
116
+ category: 'SERVER_ERROR',
117
+ message: 'Test Error',
118
+ },
119
+ }),
120
+ ]),
121
+ });
122
+ expect(onComplete).not.toBeCalled();
123
+ });
124
+ });
125
+ //# sourceMappingURL=submitPamSurvey.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitPamSurvey.test.js","sourceRoot":"","sources":["../../../../../extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wellinksClient.js","sourceRoot":"","sources":["../../../../../extensions/wellinks/api/clients/wellinksClient.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA8B;AAE9B,MAAa,cAAc;IAGzB,YAAY,MAAc,EAAE,MAAc;QAKjC,oBAAe,GAAG;YACzB,MAAM,EAAE,KAAK,EAAE,EACb,SAAS,EACT,QAAQ,EACR,UAAU,EACV,cAAc,EACd,cAAc,EACd,SAAS,EACT,UAAU,GASX,EAAmB,EAAE;gBACpB,IAAI;oBACF,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,IAAI,CAAC,OAAO,yBAAyB,EAAE;wBACrE,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,gBAAgB,EAAE,cAAc;4BAChC,eAAe,EAAE,SAAS;4BAC1B,sBAAsB,EAAE,UAAU;4BAClC,0BAA0B,EAAE,cAAc;4BAC1C,kBAAkB,EAAE,QAAQ;4BAC5B,UAAU,EAAE,SAAS;4BACrB,YAAY,EAAE,UAAU;yBACzB,CAAC;wBACF,OAAO,EAAE;4BACP,WAAW,EAAE,IAAI,CAAC,OAAO;yBAC1B;qBACF,CAAC,CAAA;oBACF,OAAO,QAAQ,CAAC,MAAM,CAAA;iBACvB;gBAAC,WAAM;oBACN,OAAO,CAAC,CAAA;iBACT;YACH,CAAC;SACF,CAAA;QA3CC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,CAAC;CA0CF;AAhDD,wCAgDC"}
@@ -0,0 +1,13 @@
1
+ import { type FlourishSubmitPamSurveyResponse } from '../../config/types';
2
+ export declare class WellinksFlourishClient {
3
+ private readonly _apiUrl;
4
+ private readonly _apiKey;
5
+ private readonly _clientextid;
6
+ constructor(apiUrl: string, apiKey: string, clientextid: string);
7
+ readonly user: {
8
+ exists: (identifier: string) => Promise<boolean>;
9
+ };
10
+ readonly survey: {
11
+ submit: (language: string, adminDate: string, thirdPartyIdentifier: string, gender: string, age: number, pa1: number, pa2: number, pa3: number, pa4: number, pa5: number, pa6: number, pa7: number, pa8: number, pa9: number, pa10: number, pa11: number, pa12: number, pa13: number) => Promise<FlourishSubmitPamSurveyResponse>;
12
+ };
13
+ }
@@ -0,0 +1,154 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.WellinksFlourishClient = void 0;
30
+ const node_fetch_1 = __importDefault(require("node-fetch"));
31
+ const xml2js = __importStar(require("xml2js"));
32
+ const lodash_1 = require("lodash");
33
+ class WellinksFlourishClient {
34
+ constructor(apiUrl, apiKey, clientextid) {
35
+ this.user = {
36
+ exists: async (identifier) => {
37
+ try {
38
+ const response = await (0, node_fetch_1.default)(`${this._apiUrl}/checkifuserexists`, {
39
+ method: 'POST',
40
+ body: buildCheckIfUserExistsRequest(identifier, this._clientextid, this._apiKey),
41
+ headers: {
42
+ contentType: 'text/xml',
43
+ accept: 'application/xml',
44
+ },
45
+ });
46
+ const xml = await response.text();
47
+ return await new Promise((resolve, reject) => {
48
+ xml2js.parseString(xml, (err, result) => {
49
+ if (!(0, lodash_1.isNil)(err)) {
50
+ reject(err);
51
+ }
52
+ else {
53
+ resolve(result.UserExistsResponseData.StatusMessage[0] ===
54
+ 'User with external identifier exists.');
55
+ }
56
+ });
57
+ });
58
+ }
59
+ catch (err) {
60
+ const error = err;
61
+ throw Error(`Node Fetch failed: ${error.message}`);
62
+ }
63
+ },
64
+ };
65
+ this.survey = {
66
+ submit: async (language, adminDate, thirdPartyIdentifier, gender, age, pa1, pa2, pa3, pa4, pa5, pa6, pa7, pa8, pa9, pa10, pa11, pa12, pa13) => {
67
+ try {
68
+ const response = await (0, node_fetch_1.default)(`${this._apiUrl}/submitpamsurvey`, {
69
+ method: 'POST',
70
+ body: buildSubmitPamSurveyRequest(this._clientextid, this._apiKey, language, adminDate, thirdPartyIdentifier, gender, age, pa1, pa2, pa3, pa4, pa5, pa6, pa7, pa8, pa9, pa10, pa11, pa12, pa13),
71
+ headers: {
72
+ contentType: 'text/xml',
73
+ accept: 'application/xml',
74
+ },
75
+ });
76
+ const xml = await response.text();
77
+ return await new Promise((resolve, reject) => {
78
+ xml2js.parseString(xml, (err, result) => {
79
+ if (!(0, lodash_1.isNil)(err)) {
80
+ reject(err);
81
+ }
82
+ else {
83
+ if (result.UserSurveyResponseData.StatusCode[0] !==
84
+ 'Success_SurveySubmit') {
85
+ reject(new Error('Survey was not correctly submitted'));
86
+ }
87
+ resolve({
88
+ success: result.UserSurveyResponseData.StatusMessage[0] ===
89
+ 'Submit User Survey success.',
90
+ pamLevel: +result.UserSurveyResponseData.SurveyResult[0].ResponseData[0].Type.find((type) => type.$.id === 'PAMLevel').$.value,
91
+ pamScore: +result.UserSurveyResponseData.SurveyResult[0].ResponseData[0].Type.find((type) => type.$.id === 'PAMScore').$.value,
92
+ });
93
+ }
94
+ });
95
+ });
96
+ }
97
+ catch (err) {
98
+ const error = err;
99
+ throw new Error(`Node Fetch failed: ${error.message}`);
100
+ }
101
+ },
102
+ };
103
+ this._apiKey = apiKey;
104
+ this._apiUrl = apiUrl;
105
+ this._clientextid = clientextid;
106
+ }
107
+ }
108
+ exports.WellinksFlourishClient = WellinksFlourishClient;
109
+ function buildCheckIfUserExistsRequest(identifier, clientextid, apiKey) {
110
+ return `
111
+ <?xml version="1.0" encoding="utf-8" ?>
112
+ <request>
113
+ <user>
114
+ <clientextid>${clientextid}</clientextid>
115
+ <clientpasskey>${apiKey}</clientpasskey>
116
+ <thirdpartyidentifier>${identifier}</thirdpartyidentifier>
117
+ </user>
118
+ </request>
119
+ `;
120
+ }
121
+ function buildSubmitPamSurveyRequest(clientextid, apiKey, language, adminDate, thirdPartyIdentifier, gender, age, pa1, pa2, pa3, pa4, pa5, pa6, pa7, pa8, pa9, pa10, pa11, pa12, pa13) {
122
+ const adminDateValue = new Date(adminDate);
123
+ return `
124
+ <?xml version="1.0" encoding="utf-8" ?>
125
+ <Request>
126
+ <user>
127
+ <clientextid>${clientextid}</clientextid>
128
+ <clientpasskey>${apiKey}</clientpasskey>
129
+ <thirdpartyidentifier>${thirdPartyIdentifier}</thirdpartyidentifier>
130
+ </user>
131
+ <Survey>
132
+ <Language>${language}</Language>
133
+ <SurveyName>PAM13_S</SurveyName>
134
+ <Administration day=${adminDateValue.getDate()} month=${adminDateValue.getMonth()} year=${adminDateValue.getFullYear()} />
135
+ <SurveyResponse Age=${age} Gender=${gender} SurveyDeliveryMode="Online">
136
+ <Answer ID="PA1">${pa1}</Answer>
137
+ <Answer ID="PA2">${pa2}</Answer>
138
+ <Answer ID="PA3">${pa3}</Answer>
139
+ <Answer ID="PA4">${pa4}</Answer>
140
+ <Answer ID="PA5">${pa5}</Answer>
141
+ <Answer ID="PA6">${pa6}</Answer>
142
+ <Answer ID="PA7">${pa7}</Answer>
143
+ <Answer ID="PA8">${pa8}</Answer>
144
+ <Answer ID="PA9">${pa9}</Answer>
145
+ <Answer ID="PA10">${pa10}</Answer>
146
+ <Answer ID="PA11">${pa11}</Answer>
147
+ <Answer ID="PA12">${pa12}</Answer>
148
+ <Answer ID="PA13">${pa13}</Answer>
149
+ </SurveyResponse>
150
+ </Survey>
151
+ </Request>
152
+ `;
153
+ }
154
+ //# sourceMappingURL=wellinksFlourishClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wellinksFlourishClient.js","sourceRoot":"","sources":["../../../../../extensions/wellinks/api/clients/wellinksFlourishClient.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { GraphQLClient } from 'graphql-request';
2
- import { type settings } from './settings';
2
+ import { type settings } from '../../config/settings';
3
3
  export declare const initialiseClient: (s: Record<keyof typeof settings, string | undefined>) => GraphQLClient | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wellinksGraphqlClient.js","sourceRoot":"","sources":["../../../../../extensions/wellinks/api/clients/wellinksGraphqlClient.ts"],"names":[],"mappings":";;;AAAA,qDAA+C;AAGxC,MAAM,gBAAgB,GAAG,CAC9B,CAAoD,EACzB,EAAE;IAC7B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;QAChD,OAAO,IAAI,+BAAa,CAAC,MAAM,EAAE;YAC/B,OAAO,EAAE;gBACP,mBAAmB,EAAE,KAAK;gBAC1B,aAAa,EAAE,SAAS,MAAM,EAAE;aACjC;SACF,CAAC,CAAA;KACH;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAbY,QAAA,gBAAgB,oBAa5B"}
@@ -0,0 +1,136 @@
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
+ const wellinksFlourishClient_1 = require("../clients/wellinksFlourishClient");
7
+ const node_fetch_1 = __importDefault(require("node-fetch"));
8
+ jest.mock('node-fetch');
9
+ const { Response } = jest.requireActual('node-fetch');
10
+ describe('WellinksFlourishClient', () => {
11
+ const apiKey = 'apiKey';
12
+ const apiUrl = 'apiUrl';
13
+ const clientextid = 'clientextid';
14
+ const wellinksFlourishClient = new wellinksFlourishClient_1.WellinksFlourishClient(apiUrl, apiKey, clientextid);
15
+ beforeEach(() => {
16
+ jest.clearAllMocks();
17
+ });
18
+ describe('user exists', () => {
19
+ test('should return true when the StatusMessage is affirmative.', async () => {
20
+ const properResponse = `
21
+ <UserExistsResponseData xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
22
+ <StatusCode>Success_ExternalIdentifier</StatusCode>
23
+ <StatusMessage>User with external identifier exists.</StatusMessage>
24
+ <ExternalUserID>230905-OV92CZDC</ExternalUserID>
25
+ <NationalPatientIdentifier i:nil="true"/>
26
+ <ThirdPartyIdentifier>18071982001</ThirdPartyIdentifier>
27
+ <UserName i:nil="true"/>
28
+ </UserExistsResponseData>`;
29
+ node_fetch_1.default.mockResolvedValue(new Response(properResponse, {
30
+ url: 'url',
31
+ status: 200,
32
+ statusText: 'OK',
33
+ headers: {
34
+ 'Content-Type': 'application/xml', // Specify the content type as XML
35
+ },
36
+ }));
37
+ const result = await wellinksFlourishClient.user.exists('identifier');
38
+ expect(result).toBe(true);
39
+ });
40
+ test('should return false when the StatusMessage is negative.', async () => {
41
+ const properResponse = `
42
+ <UserExistsResponseData xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
43
+ <StatusCode>Success_ExternalIdentifier</StatusCode>
44
+ <StatusMessage>User with external identifier doesn't exist or invalid.</StatusMessage>
45
+ <ExternalUserID>230905-OV92CZDC</ExternalUserID>
46
+ <NationalPatientIdentifier i:nil="true"/>
47
+ <ThirdPartyIdentifier>18071982001</ThirdPartyIdentifier>
48
+ <UserName i:nil="true"/>
49
+ </UserExistsResponseData>`;
50
+ node_fetch_1.default.mockResolvedValue(new Response(properResponse, {
51
+ url: 'url',
52
+ status: 200,
53
+ statusText: 'OK',
54
+ headers: {
55
+ 'Content-Type': 'application/xml', // Specify the content type as XML
56
+ },
57
+ }));
58
+ const result = await wellinksFlourishClient.user.exists('identifier');
59
+ expect(result).toBe(false);
60
+ });
61
+ test('should throw an error when node-fetch fails', async () => {
62
+ ;
63
+ node_fetch_1.default.mockImplementation(() => {
64
+ throw new Error('something went wrong');
65
+ });
66
+ await expect(wellinksFlourishClient.user.exists('identifier')).rejects.toThrowError(Error('Node Fetch failed: something went wrong'));
67
+ });
68
+ });
69
+ describe('survey submit', () => {
70
+ test('should return a FlourishSubmitPamSurveyResponse object on success', async () => {
71
+ const properResponse = `
72
+ <UserSurveyResponseData xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
73
+ <StatusCode>Success_SurveySubmit</StatusCode>
74
+ <StatusMessage>Submit User Survey success.</StatusMessage>
75
+ <ExternalUserID>230905-OV92CZDC</ExternalUserID>
76
+ <NationalPatientIdentifier i:nil="true"/>
77
+ <SurveyEnteredDateTime>2023-09-05T00:00:00</SurveyEnteredDateTime>
78
+ <SurveyName>PAM13_S</SurveyName>
79
+ <SurveyResult>
80
+ <ResponseData>
81
+ <Type id="PAMLevel" value="1"/>
82
+ <Type id="PAMScore" value="38.10"/>
83
+ </ResponseData>
84
+ </SurveyResult>
85
+ <ThirdPartyIdentifier i:nil="true"/>
86
+ <UserName i:nil="true"/>
87
+ </UserSurveyResponseData>
88
+ `;
89
+ node_fetch_1.default.mockResolvedValue(new Response(properResponse, {
90
+ url: 'url',
91
+ status: 200,
92
+ statusText: 'OK',
93
+ headers: {
94
+ 'Content-Type': 'application/xml', // Specify the content type as XML
95
+ },
96
+ }));
97
+ const result = await wellinksFlourishClient.survey.submit('en', '2023-09-18', 'thirdpartyIdentifier', 'male', 22, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);
98
+ expect(result).toEqual({
99
+ success: true,
100
+ pamLevel: 1,
101
+ pamScore: 38.1,
102
+ });
103
+ });
104
+ test('should throw an error if node-fetch fails', async () => {
105
+ ;
106
+ node_fetch_1.default.mockImplementation(() => {
107
+ throw new Error('something went wrong');
108
+ });
109
+ await expect(wellinksFlourishClient.survey.submit('en', '2023-09-18', 'thirdpartyIdentifier', 'male', 22, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)).rejects.toThrowError(Error('Node Fetch failed: something went wrong'));
110
+ });
111
+ test('should throw an error if the StatusCode is not affirmative', async () => {
112
+ const wrongResponse = `
113
+ <UserSurveyResponseData xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
114
+ <StatusCode>Error_InvalidUserCredential</StatusCode>
115
+ <StatusMessage>Sorry. We could not find user with the specified credentials.</StatusMessage>
116
+ <ExternalUserID i:nil="true"/>
117
+ <NationalPatientIdentifier i:nil="true"/>
118
+ <SurveyEnteredDateTime>2023-09-05T00:00:00</SurveyEnteredDateTime>
119
+ <SurveyName>PAM13_S</SurveyName>
120
+ <SurveyResult i:nil="true"/>
121
+ <ThirdPartyIdentifier i:nil="true"/>
122
+ <UserName i:nil="true"/>
123
+ </UserSurveyResponseData>`;
124
+ node_fetch_1.default.mockResolvedValue(new Response(wrongResponse, {
125
+ url: 'url',
126
+ status: 200,
127
+ statusText: 'OK',
128
+ headers: {
129
+ 'Content-Type': 'application/xml', // Specify the content type as XML
130
+ },
131
+ }));
132
+ await expect(wellinksFlourishClient.survey.submit('en', '2023-09-18', 'thirdpartyIdentifier', 'male', 22, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)).rejects.toThrowError(Error('Node Fetch failed: Survey was not correctly submitted'));
133
+ });
134
+ });
135
+ });
136
+ //# sourceMappingURL=wellinksFlourishClient.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wellinksFlourishClient.test.js","sourceRoot":"","sources":["../../../../../extensions/wellinks/api/test/wellinksFlourishClient.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../extensions/wellinks/config/settings.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAG;IACtB,cAAc,EAAE;QACd,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,+CAA+C;KAC7D;IACD,cAAc,EAAE;QACd,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,+CAA+C;KAC7D;IACD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,mCAAmC;KACjD;IACD,MAAM,EAAE;QACN,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,wBAAwB;KACtC;IACD,uBAAuB,EAAE;QACvB,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,+BAA+B;QACtC,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,qEAAqE;KACxE;IACD,8BAA8B,EAAE;QAC9B,GAAG,EAAE,gCAAgC;QACrC,KAAK,EAAE,qCAAqC;QAC5C,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,4EAA4E;KAC/E;IACD,iBAAiB,EAAE;QACjB,GAAG,EAAE,mBAAmB;QACxB,KAAK,EAAE,sBAAsB;QAC7B,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,+CAA+C;KAC7D;IACD,cAAc,EAAE;QACd,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,4CAA4C;KAC1D;IACD,cAAc,EAAE;QACd,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,kBAAkB;QACzB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,wBAAwB;KACtC;IACD,mBAAmB,EAAE;QACnB,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,wBAAwB;QAC/B,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,8BAA8B;KAC5C;CACgC,CAAA"}
@@ -0,0 +1,5 @@
1
+ export interface FlourishSubmitPamSurveyResponse {
2
+ pamLevel: number;
3
+ pamScore: number;
4
+ success: boolean;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map