@awell-health/awell-extensions 2.0.227 → 2.0.228

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.
@@ -17,7 +17,8 @@ const dataPoints = {
17
17
  exports.appointmentCreatedOrUpdated = {
18
18
  key: 'appointmentCreatedOrUpdated',
19
19
  dataPoints,
20
- onEvent: async ({ payload: { payload, settings }, onSuccess, onError, helpers: { rateLimiter }, }) => {
20
+ onEvent: async ({ payload: { payload, settings, endpoint }, onSuccess, onError, helpers: { rateLimiter }, }) => {
21
+ var _a, _b;
21
22
  const { action, resource, data } = payload;
22
23
  const { id: appointmentId, patient: patientId } = data;
23
24
  // skip non 'saved' actions for that webhook
@@ -26,23 +27,23 @@ exports.appointmentCreatedOrUpdated = {
26
27
  }
27
28
  // rate limiting
28
29
  const { success, data: durationString } = settings_1.rateLimitDurationSchema.safeParse(settings.rateLimitDuration);
29
- if (success === true && !(0, lodash_1.isNil)(durationString)) {
30
+ if (success && !(0, lodash_1.isNil)(durationString)) {
30
31
  const duration = (0, settings_1.transformRateLimitDuration)(durationString);
31
32
  const limiter = rateLimiter('elation-appointment', {
32
33
  requests: 1,
33
34
  duration,
34
35
  });
35
- const { success } = await limiter.limit(appointmentId.toString());
36
+ const key = `${(_a = endpoint === null || endpoint === void 0 ? void 0 : endpoint.id) !== null && _a !== void 0 ? _a : 'global'}-${appointmentId}`;
37
+ const { success } = await limiter.limit(key);
36
38
  if (!success) {
37
39
  await onError({
38
40
  response: {
39
41
  statusCode: 200,
40
- message: 'Rate limit exceeded. 200 OK response sent to Elation to prevent further requests.',
42
+ message: `Rate limit exceeded. 200 OK response sent to Elation to prevent further requests for appointment ${appointmentId} on endpoint ${(_b = endpoint === null || endpoint === void 0 ? void 0 : endpoint.url) !== null && _b !== void 0 ? _b : 'global'}.`,
41
43
  },
42
44
  });
43
45
  return;
44
46
  }
45
- console.log(`Rate limit success for appointment_id=${appointmentId}`);
46
47
  }
47
48
  if (resource !== 'appointments') {
48
49
  await onError({
@@ -1 +1 @@
1
- {"version":3,"file":"appointmentCreatedOrUpdated.js","sourceRoot":"","sources":["../../../../extensions/elation/webhooks/appointmentCreatedOrUpdated.ts"],"names":[],"mappings":";;;AAIA,4CAA6C;AAE7C,0CAGoB;AACpB,mCAA8B;AAE9B,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE;QACb,GAAG,EAAE,eAAe;QACpB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA;AAElC,QAAA,2BAA2B,GAGpC;IACF,GAAG,EAAE,6BAA6B;IAClC,UAAU;IACV,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC9B,SAAS,EACT,OAAO,EACP,OAAO,EAAE,EAAE,WAAW,EAAE,GACzB,EAAE,EAAE;QACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QAC1C,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAEtD,6CAA6C;QAC7C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,gBAAgB;QAChB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,kCAAuB,CAAC,SAAS,CACzE,QAAQ,CAAC,iBAAiB,CAC3B,CAAA;QACD,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,IAAA,cAAK,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAA,qCAA0B,EAAC,cAAc,CAAC,CAAA;YAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,qBAAqB,EAAE;gBACjD,QAAQ,EAAE,CAAC;gBACX,QAAQ;aACT,CAAC,CAAA;YACF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAA;YACjE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC;oBACZ,QAAQ,EAAE;wBACR,UAAU,EAAE,GAAG;wBACf,OAAO,EACL,mFAAmF;qBACtF;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,yCAAyC,aAAa,EAAE,CAAC,CAAA;QACvE,CAAC;QAED,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,MAAM,OAAO,CAAC;gBACZ,QAAQ,EAAE;oBACR,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,gCAAgC;iBAC1C;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC;gBACd,WAAW,EAAE;oBACX,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;oBACpC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAClC;gBACD,kBAAkB,EAAE;oBAClB,MAAM,EAAE,0BAAc;oBACtB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;iBACzB;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"appointmentCreatedOrUpdated.js","sourceRoot":"","sources":["../../../../extensions/elation/webhooks/appointmentCreatedOrUpdated.ts"],"names":[],"mappings":";;;AAIA,4CAA6C;AAE7C,0CAGoB;AACpB,mCAA8B;AAE9B,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE;QACb,GAAG,EAAE,eAAe;QACpB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA;AAElC,QAAA,2BAA2B,GAGpC;IACF,GAAG,EAAE,6BAA6B;IAClC,UAAU;IACV,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACxC,SAAS,EACT,OAAO,EACP,OAAO,EAAE,EAAE,WAAW,EAAE,GACzB,EAAE,EAAE;;QACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QAC1C,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAGjD,CAAA;QAED,6CAA6C;QAC7C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,gBAAgB;QAChB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,kCAAuB,CAAC,SAAS,CACzE,QAAQ,CAAC,iBAAiB,CAC3B,CAAA;QACD,IAAI,OAAO,IAAI,CAAC,IAAA,cAAK,EAAC,cAAc,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAA,qCAA0B,EAAC,cAAc,CAAC,CAAA;YAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,qBAAqB,EAAE;gBACjD,QAAQ,EAAE,CAAC;gBACX,QAAQ;aACT,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,mCAAI,QAAQ,IAAI,aAAa,EAAE,CAAA;YAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC;oBACZ,QAAQ,EAAE;wBACR,UAAU,EAAE,GAAG;wBACf,OAAO,EAAE,oGAAoG,aAAa,gBAAgB,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,mCAAI,QAAQ,GAAG;qBACvK;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,MAAM,OAAO,CAAC;gBACZ,QAAQ,EAAE;oBACR,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,gCAAgC;iBAC1C;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC;gBACd,WAAW,EAAE;oBACX,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;oBACpC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAClC;gBACD,kBAAkB,EAAE;oBAClB,MAAM,EAAE,0BAAc;oBACtB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;iBACzB;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -16,7 +16,8 @@ const dataPoints = {
16
16
  exports.patientCreatedOrUpdated = {
17
17
  key: 'patientCreatedOrUpdated',
18
18
  dataPoints,
19
- onEvent: async ({ payload: { payload, settings }, onSuccess, onError, helpers: { rateLimiter }, }) => {
19
+ onEvent: async ({ payload: { payload, settings, endpoint }, onSuccess, onError, helpers: { rateLimiter }, }) => {
20
+ var _a, _b;
20
21
  const { data, resource, action } = payload;
21
22
  const { id: patientId } = data;
22
23
  // skip non 'saved' actions for that webhook
@@ -25,23 +26,23 @@ exports.patientCreatedOrUpdated = {
25
26
  }
26
27
  // rate limiting
27
28
  const { success, data: durationString } = settings_1.rateLimitDurationSchema.safeParse(settings.rateLimitDuration);
28
- if (success === true && !(0, lodash_1.isNil)(durationString)) {
29
+ if (success && !(0, lodash_1.isNil)(durationString)) {
29
30
  const duration = (0, settings_1.transformRateLimitDuration)(durationString);
30
31
  const limiter = rateLimiter('elation-patient', {
31
32
  requests: 1,
32
33
  duration,
33
34
  });
34
- const { success } = await limiter.limit(patientId.toString());
35
+ const key = `${(_a = endpoint === null || endpoint === void 0 ? void 0 : endpoint.id) !== null && _a !== void 0 ? _a : 'global'}-${patientId}`;
36
+ const { success } = await limiter.limit(key);
35
37
  if (!success) {
36
38
  await onError({
37
39
  response: {
38
40
  statusCode: 200,
39
- message: `Rate limit exceeded for patient_id=${patientId}. 200 OK response sent to Elation to prevent further requests.`,
41
+ message: `Rate limit exceeded for patient_id=${patientId} on endpoint ${(_b = endpoint === null || endpoint === void 0 ? void 0 : endpoint.url) !== null && _b !== void 0 ? _b : 'global'}. 200 OK response sent to Elation to prevent further requests.`,
40
42
  },
41
43
  });
42
44
  return;
43
45
  }
44
- console.log(`Rate limit success for patient_id=${patientId}`);
45
46
  }
46
47
  if (resource !== 'patients') {
47
48
  await onError({
@@ -1 +1 @@
1
- {"version":3,"file":"patientCreatedOrUpdated.js","sourceRoot":"","sources":["../../../../extensions/elation/webhooks/patientCreatedOrUpdated.ts"],"names":[],"mappings":";;;AAKA,0CAGoB;AACpB,mCAA8B;AAE9B,MAAM,UAAU,GAAG;IACjB,SAAS,EAAE;QACT,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,QAAQ;KACpB;IACD,OAAO,EAAE;QACP,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA;AAElC,QAAA,uBAAuB,GAGhC;IACF,GAAG,EAAE,yBAAyB;IAC9B,UAAU;IACV,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC9B,SAAS,EACT,OAAO,EACP,OAAO,EAAE,EAAE,WAAW,EAAE,GACzB,EAAE,EAAE;QACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAC1C,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAC9B,4CAA4C;QAC5C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,gBAAgB;QAChB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,kCAAuB,CAAC,SAAS,CACzE,QAAQ,CAAC,iBAAiB,CAC3B,CAAA;QACD,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,IAAA,cAAK,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAA,qCAA0B,EAAC,cAAc,CAAC,CAAA;YAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,iBAAiB,EAAE;gBAC7C,QAAQ,EAAE,CAAC;gBACX,QAAQ;aACT,CAAC,CAAA;YACF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC;oBACZ,QAAQ,EAAE;wBACR,UAAU,EAAE,GAAG;wBACf,OAAO,EAAE,sCAAsC,SAAS,gEAAgE;qBACzH;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,qCAAqC,SAAS,EAAE,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,OAAO,CAAC;gBACZ,QAAQ,EAAE;oBACR,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,2BAA2B;iBACrC;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC;gBACd,WAAW,EAAE;oBACX,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC9B;gBACD,iDAAiD;gBACjD,kBAAkB,EAAE;oBAClB,MAAM,EAAE,gCAAgC;oBACxC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;iBACvB;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"patientCreatedOrUpdated.js","sourceRoot":"","sources":["../../../../extensions/elation/webhooks/patientCreatedOrUpdated.ts"],"names":[],"mappings":";;;AAKA,0CAGoB;AACpB,mCAA8B;AAE9B,MAAM,UAAU,GAAG;IACjB,SAAS,EAAE;QACT,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,QAAQ;KACpB;IACD,OAAO,EAAE;QACP,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA;AAElC,QAAA,uBAAuB,GAGhC;IACF,GAAG,EAAE,yBAAyB;IAC9B,UAAU;IACV,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACxC,SAAS,EACT,OAAO,EACP,OAAO,EAAE,EAAE,WAAW,EAAE,GACzB,EAAE,EAAE;;QACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAC1C,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAEzB,CAAA;QACD,4CAA4C;QAC5C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,gBAAgB;QAChB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,kCAAuB,CAAC,SAAS,CACzE,QAAQ,CAAC,iBAAiB,CAC3B,CAAA;QACD,IAAI,OAAO,IAAI,CAAC,IAAA,cAAK,EAAC,cAAc,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAA,qCAA0B,EAAC,cAAc,CAAC,CAAA;YAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,iBAAiB,EAAE;gBAC7C,QAAQ,EAAE,CAAC;gBACX,QAAQ;aACT,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,mCAAI,QAAQ,IAAI,SAAS,EAAE,CAAA;YACtD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC;oBACZ,QAAQ,EAAE;wBACR,UAAU,EAAE,GAAG;wBACf,OAAO,EAAE,sCAAsC,SAAS,gBAAgB,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,mCAAI,QAAQ,gEAAgE;qBAClK;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,OAAO,CAAC;gBACZ,QAAQ,EAAE;oBACR,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,2BAA2B;iBACrC;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC;gBACd,WAAW,EAAE;oBACX,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC9B;gBACD,iDAAiD;gBACjD,kBAAkB,EAAE;oBAClB,MAAM,EAAE,gCAAgC;oBACxC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;iBACvB;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awell-health/awell-extensions",
3
- "version": "2.0.227",
3
+ "version": "2.0.228",
4
4
  "packageManager": "yarn@4.5.3",
5
5
  "main": "dist/src/index.js",
6
6
  "repository": {
@@ -82,7 +82,7 @@
82
82
  },
83
83
  "dependencies": {
84
84
  "@awell-health/awell-sdk": "0.1.24",
85
- "@awell-health/extensions-core": "1.0.23",
85
+ "@awell-health/extensions-core": "1.0.25",
86
86
  "@awell-health/healthie-sdk": "^0.1.1",
87
87
  "@dropbox/sign": "^1.8.0",
88
88
  "@hubspot/api-client": "^11.2.0",