@clipboard-health/notifications 0.5.0 → 0.6.0

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 (31) hide show
  1. package/package.json +5 -5
  2. package/src/lib/chunkRecipients.d.ts +2 -2
  3. package/src/lib/chunkRecipients.js +5 -5
  4. package/src/lib/chunkRecipients.js.map +1 -1
  5. package/src/lib/createIdempotencyKey.d.ts +6 -4
  6. package/src/lib/createIdempotencyKey.js +11 -9
  7. package/src/lib/createIdempotencyKey.js.map +1 -1
  8. package/src/lib/internal/createTriggerTraceOptions.js +4 -1
  9. package/src/lib/internal/createTriggerTraceOptions.js.map +1 -1
  10. package/src/lib/internal/toInlineIdentifyUserRequest.d.ts +3 -0
  11. package/src/lib/internal/toInlineIdentifyUserRequest.js +12 -0
  12. package/src/lib/internal/toInlineIdentifyUserRequest.js.map +1 -0
  13. package/src/lib/internal/toInlineIdentifyUserRequestWithoutUserId.d.ts +3 -0
  14. package/src/lib/internal/toInlineIdentifyUserRequestWithoutUserId.js +18 -0
  15. package/src/lib/internal/toInlineIdentifyUserRequestWithoutUserId.js.map +1 -0
  16. package/src/lib/internal/toTenantSetRequest.d.ts +3 -0
  17. package/src/lib/internal/toTenantSetRequest.js +9 -0
  18. package/src/lib/internal/toTenantSetRequest.js.map +1 -0
  19. package/src/lib/internal/toTriggerBody.d.ts +3 -0
  20. package/src/lib/internal/toTriggerBody.js +21 -0
  21. package/src/lib/internal/toTriggerBody.js.map +1 -0
  22. package/src/lib/notificationClient.d.ts +2 -2
  23. package/src/lib/notificationClient.js +25 -38
  24. package/src/lib/notificationClient.js.map +1 -1
  25. package/src/lib/types.d.ts +7 -4
  26. package/src/lib/internal/createChunkedIdempotencyKey.d.ts +0 -18
  27. package/src/lib/internal/createChunkedIdempotencyKey.js +0 -30
  28. package/src/lib/internal/createChunkedIdempotencyKey.js.map +0 -1
  29. package/src/lib/internal/toKnockBody.d.ts +0 -3
  30. package/src/lib/internal/toKnockBody.js +0 -35
  31. package/src/lib/internal/toKnockBody.js.map +0 -1
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@clipboard-health/notifications",
3
3
  "description": "Send notifications through third-party providers.",
4
- "version": "0.5.0",
4
+ "version": "0.6.0",
5
5
  "bugs": "https://github.com/ClipboardHealth/core-utils/issues",
6
6
  "dependencies": {
7
- "@clipboard-health/phone-number": "0.4.0",
8
- "@clipboard-health/util-ts": "3.13.0",
7
+ "@clipboard-health/phone-number": "0.5.0",
8
+ "@clipboard-health/util-ts": "3.14.0",
9
9
  "@knocklabs/node": "1.16.0",
10
- "p-limit": "3.1.0",
10
+ "fast-json-stable-stringify": "2.1.0",
11
11
  "tslib": "2.8.1"
12
12
  },
13
13
  "devDependencies": {
14
- "@clipboard-health/testing-core": "0.22.0"
14
+ "@clipboard-health/testing-core": "0.23.0"
15
15
  },
16
16
  "keywords": [],
17
17
  "license": "MIT",
@@ -1,7 +1,7 @@
1
1
  export declare function chunkRecipients(params: {
2
2
  idempotencyKey: string;
3
- recipientIds: string[];
3
+ recipients: string[];
4
4
  }): Array<{
5
5
  idempotencyKey: string;
6
- recipientIds: string[];
6
+ recipients: string[];
7
7
  }>;
@@ -4,15 +4,15 @@ exports.chunkRecipients = chunkRecipients;
4
4
  const util_ts_1 = require("@clipboard-health/util-ts");
5
5
  const notificationClient_1 = require("./notificationClient");
6
6
  function chunkRecipients(params) {
7
- const { recipientIds, idempotencyKey } = params;
8
- if (recipientIds.length === 0) {
9
- return [{ idempotencyKey, recipientIds: [] }];
7
+ const { recipients, idempotencyKey } = params;
8
+ if (recipients.length === 0) {
9
+ return [{ idempotencyKey, recipients: [] }];
10
10
  }
11
- const idChunks = (0, util_ts_1.chunk)(recipientIds, notificationClient_1.MAXIMUM_RECIPIENTS_COUNT);
11
+ const idChunks = (0, util_ts_1.chunk)(recipients, notificationClient_1.MAXIMUM_RECIPIENTS_COUNT);
12
12
  const singleChunk = idChunks.length === 1;
13
13
  return idChunks.map((ids, index) => ({
14
14
  idempotencyKey: singleChunk ? idempotencyKey : `${idempotencyKey}-chunk-${index + 1}`,
15
- recipientIds: ids,
15
+ recipients: ids,
16
16
  }));
17
17
  }
18
18
  //# sourceMappingURL=chunkRecipients.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunkRecipients.js","sourceRoot":"","sources":["../../../../../packages/notifications/src/lib/chunkRecipients.ts"],"names":[],"mappings":";;AAIA,0CAgBC;AApBD,uDAAkD;AAElD,6DAAgE;AAEhE,SAAgB,eAAe,CAAC,MAG/B;IACC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAEhD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,eAAK,EAAC,YAAY,EAAE,6CAAwB,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IAC1C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,UAAU,KAAK,GAAG,CAAC,EAAE;QACrF,YAAY,EAAE,GAAG;KAClB,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"chunkRecipients.js","sourceRoot":"","sources":["../../../../../packages/notifications/src/lib/chunkRecipients.ts"],"names":[],"mappings":";;AAIA,0CAgBC;AApBD,uDAAkD;AAElD,6DAAgE;AAEhE,SAAgB,eAAe,CAAC,MAG/B;IACC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAE9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,eAAK,EAAC,UAAU,EAAE,6CAAwB,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IAC1C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,UAAU,KAAK,GAAG,CAAC,EAAE;QACrF,UAAU,EAAE,GAAG;KAChB,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,15 +1,17 @@
1
+ export declare const MAX_IDEMPOTENCY_KEY_LENGTH = 255;
1
2
  /**
2
3
  * Creates a deterministic hash for use as an idempotency key.
3
4
  *
4
- * The function sorts `valuesToHash`, generates a SHA-256 hash, prepends the workflow key, and
5
- * truncates the result to MAX_IDEMPOTENCY_KEY_LENGTH characters maximum.
5
+ * The function normalizes `value` (using a stable JSON.stringify for non-string values), generates
6
+ * a SHA-256 hash, prepends the workflow key, and truncates the result to MAX_IDEMPOTENCY_KEY_LENGTH
7
+ * maximum.
6
8
  *
7
9
  * @param params.key - Workflow key to prepend to the hash.
8
- * @param params.valuesToHash - Array of strings to hash.
10
+ * @param params.value - Value to hash (string, string[], object, etc.).
9
11
  *
10
12
  * @returns A hash string prefixed with the workflow key.
11
13
  */
12
14
  export declare function createIdempotencyKey(params: {
13
15
  key: string;
14
- valuesToHash: string[];
16
+ value: unknown;
15
17
  }): string;
@@ -1,26 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_IDEMPOTENCY_KEY_LENGTH = void 0;
3
4
  exports.createIdempotencyKey = createIdempotencyKey;
5
+ const tslib_1 = require("tslib");
4
6
  const node_crypto_1 = require("node:crypto");
5
- const createChunkedIdempotencyKey_1 = require("./internal/createChunkedIdempotencyKey");
7
+ const fast_json_stable_stringify_1 = tslib_1.__importDefault(require("fast-json-stable-stringify"));
8
+ exports.MAX_IDEMPOTENCY_KEY_LENGTH = 255;
6
9
  /**
7
10
  * Creates a deterministic hash for use as an idempotency key.
8
11
  *
9
- * The function sorts `valuesToHash`, generates a SHA-256 hash, prepends the workflow key, and
10
- * truncates the result to MAX_IDEMPOTENCY_KEY_LENGTH characters maximum.
12
+ * The function normalizes `value` (using a stable JSON.stringify for non-string values), generates
13
+ * a SHA-256 hash, prepends the workflow key, and truncates the result to MAX_IDEMPOTENCY_KEY_LENGTH
14
+ * maximum.
11
15
  *
12
16
  * @param params.key - Workflow key to prepend to the hash.
13
- * @param params.valuesToHash - Array of strings to hash.
17
+ * @param params.value - Value to hash (string, string[], object, etc.).
14
18
  *
15
19
  * @returns A hash string prefixed with the workflow key.
16
20
  */
17
21
  function createIdempotencyKey(params) {
18
- const { key, valuesToHash } = params;
22
+ const { key, value } = params;
19
23
  const hash = (0, node_crypto_1.createHash)("sha256")
20
- // Unicode code-points for deterministic, locale-independent sorting; don't mutate input array.
21
- .update(JSON.stringify([...valuesToHash].sort()))
24
+ .update(typeof value === "string" ? value : (0, fast_json_stable_stringify_1.default)(value))
22
25
  .digest("hex");
23
- const result = `${key}${hash}`;
24
- return result.slice(0, createChunkedIdempotencyKey_1.MAX_IDEMPOTENCY_KEY_LENGTH);
26
+ return `${key}:${hash}`.slice(0, exports.MAX_IDEMPOTENCY_KEY_LENGTH);
25
27
  }
26
28
  //# sourceMappingURL=createIdempotencyKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createIdempotencyKey.js","sourceRoot":"","sources":["../../../../../packages/notifications/src/lib/createIdempotencyKey.ts"],"names":[],"mappings":";;AAeA,oDAUC;AAzBD,6CAAyC;AAEzC,wFAAoF;AAEpF;;;;;;;;;;GAUG;AACH,SAAgB,oBAAoB,CAAC,MAA+C;IAClF,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAErC,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC;QAC/B,+FAA+F;SAC9F,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SAChD,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;IAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,wDAA0B,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"createIdempotencyKey.js","sourceRoot":"","sources":["../../../../../packages/notifications/src/lib/createIdempotencyKey.ts"],"names":[],"mappings":";;;AAkBA,oDAQC;;AA1BD,6CAAyC;AAEzC,oGAAmD;AAEtC,QAAA,0BAA0B,GAAG,GAAG,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAAC,MAAuC;IAC1E,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAE9B,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,oCAAS,EAAC,KAAK,CAAC,CAAC;SAC5D,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,OAAO,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,kCAA0B,CAAC,CAAC;AAC/D,CAAC"}
@@ -5,7 +5,10 @@ function createTriggerTraceOptions(params) {
5
5
  const { key, attempt, destination } = params;
6
6
  return {
7
7
  resource: `notification.${key}`,
8
- // Don't include high cardinality tags like expiresAt and idempotencyKey.
8
+ /**
9
+ * Don't include high cardinality tags like expiresAt and idempotencyKey to reduce Datadog
10
+ * costs.
11
+ */
9
12
  tags: {
10
13
  "span.kind": "producer",
11
14
  component: "customer-notifications",
@@ -1 +1 @@
1
- {"version":3,"file":"createTriggerTraceOptions.js","sourceRoot":"","sources":["../../../../../../packages/notifications/src/lib/internal/createTriggerTraceOptions.ts"],"names":[],"mappings":";;AAGA,8DAeC;AAfD,SAAgB,yBAAyB,CAAC,MAAyB;IACjE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAE7C,OAAO;QACL,QAAQ,EAAE,gBAAgB,GAAG,EAAE;QAC/B,yEAAyE;QACzE,IAAI,EAAE;YACJ,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,wBAAwB;YACnC,kBAAkB,EAAE,WAAW;YAC/B,qBAAqB,EAAE,SAAS;YAChC,uBAAuB,EAAE,WAAW;YACpC,sBAAsB,EAAE,OAAO,CAAC,QAAQ,EAAE;SAC3C;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"createTriggerTraceOptions.js","sourceRoot":"","sources":["../../../../../../packages/notifications/src/lib/internal/createTriggerTraceOptions.ts"],"names":[],"mappings":";;AAGA,8DAkBC;AAlBD,SAAgB,yBAAyB,CAAC,MAAyB;IACjE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAE7C,OAAO;QACL,QAAQ,EAAE,gBAAgB,GAAG,EAAE;QAC/B;;;WAGG;QACH,IAAI,EAAE;YACJ,WAAW,EAAE,UAAU;YACvB,SAAS,EAAE,wBAAwB;YACnC,kBAAkB,EAAE,WAAW;YAC/B,qBAAqB,EAAE,SAAS;YAChC,uBAAuB,EAAE,WAAW;YACpC,sBAAsB,EAAE,OAAO,CAAC,QAAQ,EAAE;SAC3C;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Knock } from "@knocklabs/node";
2
+ import { type InlineIdentifyUserRequest } from "../types";
3
+ export declare function toInlineIdentifyUserRequest(recipient: InlineIdentifyUserRequest): Knock.Users.InlineIdentifyUserRequest;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toInlineIdentifyUserRequest = toInlineIdentifyUserRequest;
4
+ const toInlineIdentifyUserRequestWithoutUserId_1 = require("./toInlineIdentifyUserRequestWithoutUserId");
5
+ function toInlineIdentifyUserRequest(recipient) {
6
+ const { userId, ...rest } = recipient;
7
+ return {
8
+ ...(0, toInlineIdentifyUserRequestWithoutUserId_1.toInlineIdentifyUserRequestWithoutUserId)(rest),
9
+ id: userId,
10
+ };
11
+ }
12
+ //# sourceMappingURL=toInlineIdentifyUserRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toInlineIdentifyUserRequest.js","sourceRoot":"","sources":["../../../../../../packages/notifications/src/lib/internal/toInlineIdentifyUserRequest.ts"],"names":[],"mappings":";;AAKA,kEASC;AAXD,yGAAsG;AAEtG,SAAgB,2BAA2B,CACzC,SAAoC;IAEpC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC;IAEtC,OAAO;QACL,GAAG,IAAA,mFAAwC,EAAC,IAAI,CAAC;QACjD,EAAE,EAAE,MAAM;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Knock } from "@knocklabs/node";
2
+ import type { InlineIdentifyUserRequest } from "../types";
3
+ export declare function toInlineIdentifyUserRequestWithoutUserId(recipient: Omit<InlineIdentifyUserRequest, "userId">): Omit<Knock.Users.InlineIdentifyUserRequest, "id">;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toInlineIdentifyUserRequestWithoutUserId = toInlineIdentifyUserRequestWithoutUserId;
4
+ const formatPhoneNumber_1 = require("./formatPhoneNumber");
5
+ function toInlineIdentifyUserRequestWithoutUserId(recipient) {
6
+ const { channelData, createdAt, email, name, phoneNumber, timeZone, customProperties, ...rest } = recipient;
7
+ return {
8
+ ...rest,
9
+ ...customProperties,
10
+ ...(channelData ? { channel_data: channelData } : {}),
11
+ ...(createdAt ? { created_at: createdAt.toISOString() } : {}),
12
+ ...(email ? { email } : {}),
13
+ ...(name ? { name } : {}),
14
+ ...(phoneNumber ? { phone_number: (0, formatPhoneNumber_1.formatPhoneNumber)({ phoneNumber }) } : {}),
15
+ ...(timeZone ? { timezone: timeZone } : {}),
16
+ };
17
+ }
18
+ //# sourceMappingURL=toInlineIdentifyUserRequestWithoutUserId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toInlineIdentifyUserRequestWithoutUserId.js","sourceRoot":"","sources":["../../../../../../packages/notifications/src/lib/internal/toInlineIdentifyUserRequestWithoutUserId.ts"],"names":[],"mappings":";;AAKA,4FAgBC;AAlBD,2DAAwD;AAExD,SAAgB,wCAAwC,CACtD,SAAoD;IAEpD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAC7F,SAAS,CAAC;IAEZ,OAAO;QACL,GAAG,IAAI;QACP,GAAG,gBAAgB;QACnB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAA,qCAAiB,EAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Knock } from "@knocklabs/node";
2
+ import type { UpsertWorkplaceRequest } from "../types";
3
+ export declare function toTenantSetRequest(request: Omit<UpsertWorkplaceRequest, "workplaceId">): Knock.Tenants.TenantSetParams;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toTenantSetRequest = toTenantSetRequest;
4
+ const toInlineIdentifyUserRequestWithoutUserId_1 = require("./toInlineIdentifyUserRequestWithoutUserId");
5
+ function toTenantSetRequest(request) {
6
+ // Use the same type as user inline identify so provider field names are consistent.
7
+ return (0, toInlineIdentifyUserRequestWithoutUserId_1.toInlineIdentifyUserRequestWithoutUserId)(request);
8
+ }
9
+ //# sourceMappingURL=toTenantSetRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toTenantSetRequest.js","sourceRoot":"","sources":["../../../../../../packages/notifications/src/lib/internal/toTenantSetRequest.ts"],"names":[],"mappings":";;AAKA,gDAKC;AAPD,yGAAsG;AAEtG,SAAgB,kBAAkB,CAChC,OAAoD;IAEpD,oFAAoF;IACpF,OAAO,IAAA,mFAAwC,EAAC,OAAO,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Knock } from "@knocklabs/node";
2
+ import type { TriggerBody } from "../types";
3
+ export declare function toTriggerBody(body: TriggerBody): Knock.Workflows.WorkflowTriggerParams;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toTriggerBody = toTriggerBody;
4
+ const toInlineIdentifyUserRequest_1 = require("./toInlineIdentifyUserRequest");
5
+ function toTriggerBody(body) {
6
+ const { actor, cancellationKey, recipients, workplaceId, ...rest } = body;
7
+ return {
8
+ ...(actor ? { actor: toRecipient(actor) } : {}),
9
+ ...(cancellationKey ? { cancellation_key: cancellationKey } : {}),
10
+ ...(workplaceId ? { tenant: workplaceId } : {}),
11
+ recipients: recipients.map(toRecipient),
12
+ ...rest,
13
+ };
14
+ }
15
+ function toRecipient(recipient) {
16
+ if (typeof recipient === "string") {
17
+ return recipient;
18
+ }
19
+ return (0, toInlineIdentifyUserRequest_1.toInlineIdentifyUserRequest)(recipient);
20
+ }
21
+ //# sourceMappingURL=toTriggerBody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toTriggerBody.js","sourceRoot":"","sources":["../../../../../../packages/notifications/src/lib/internal/toTriggerBody.ts"],"names":[],"mappings":";;AAKA,sCAUC;AAZD,+EAA4E;AAE5E,SAAgB,aAAa,CAAC,IAAiB;IAC7C,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAE1E,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;QACvC,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,SAA2B;IAC9C,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAA,yDAA2B,EAAC,SAAS,CAAC,CAAC;AAChD,CAAC"}
@@ -5,6 +5,7 @@ export declare const MAXIMUM_RECIPIENTS_COUNT = 1000;
5
5
  export declare const ERROR_CODES: {
6
6
  readonly expired: "expired";
7
7
  readonly recipientCountBelowMinimum: "recipientCountBelowMinimum";
8
+ readonly recipientCountAboveMaximum: "recipientCountAboveMaximum";
8
9
  readonly missingSigningKey: "missingSigningKey";
9
10
  readonly unknown: "unknown";
10
11
  };
@@ -32,7 +33,6 @@ export declare class NotificationClient {
32
33
  * - Stale notifications prevention through expiresAt.
33
34
  * - Logging with sensitive data redaction.
34
35
  * - Distributed tracing with notification metadata.
35
- * - Chunking to prevent exceeding maximum recipient count.
36
36
  * - Idempotency to prevent duplicate notifications.
37
37
  * - Comprehensive error handling and logging.
38
38
  *
@@ -97,7 +97,7 @@ export declare class NotificationClient {
97
97
  */
98
98
  signUserToken(params: SignUserTokenRequest): Promise<ServiceResult<SignUserTokenResponse>>;
99
99
  /**
100
- * Updates or creates a workplace (tenant) in Knock.
100
+ * Updates or creates a workplace (tenant) in our provider.
101
101
  *
102
102
  * @returns Promise resolving to either an error or successful response.
103
103
  */
@@ -1,17 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NotificationClient = exports.ERROR_CODES = exports.MAXIMUM_RECIPIENTS_COUNT = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const util_ts_1 = require("@clipboard-health/util-ts");
6
5
  const node_1 = require("@knocklabs/node");
7
- const p_limit_1 = tslib_1.__importDefault(require("p-limit"));
8
- const createChunkedIdempotencyKey_1 = require("./internal/createChunkedIdempotencyKey");
9
6
  const createTriggerLogParams_1 = require("./internal/createTriggerLogParams");
10
7
  const createTriggerTraceOptions_1 = require("./internal/createTriggerTraceOptions");
11
- const formatPhoneNumber_1 = require("./internal/formatPhoneNumber");
12
8
  const idempotentKnock_1 = require("./internal/idempotentKnock");
13
9
  const redact_1 = require("./internal/redact");
14
- const toKnockBody_1 = require("./internal/toKnockBody");
10
+ const toTenantSetRequest_1 = require("./internal/toTenantSetRequest");
11
+ const toTriggerBody_1 = require("./internal/toTriggerBody");
15
12
  const LOG_PARAMS = {
16
13
  trigger: {
17
14
  traceName: "notifications.trigger",
@@ -34,6 +31,7 @@ exports.MAXIMUM_RECIPIENTS_COUNT = 1000;
34
31
  exports.ERROR_CODES = {
35
32
  expired: "expired",
36
33
  recipientCountBelowMinimum: "recipientCountBelowMinimum",
34
+ recipientCountAboveMaximum: "recipientCountAboveMaximum",
37
35
  missingSigningKey: "missingSigningKey",
38
36
  unknown: "unknown",
39
37
  };
@@ -67,7 +65,6 @@ class NotificationClient {
67
65
  * - Stale notifications prevention through expiresAt.
68
66
  * - Logging with sensitive data redaction.
69
67
  * - Distributed tracing with notification metadata.
70
- * - Chunking to prevent exceeding maximum recipient count.
71
68
  * - Idempotency to prevent duplicate notifications.
72
69
  * - Comprehensive error handling and logging.
73
70
  *
@@ -124,26 +121,14 @@ class NotificationClient {
124
121
  return validated;
125
122
  }
126
123
  try {
127
- const { key, body, idempotencyKey: baseKey, keysToRedact = [] } = validated.value;
128
- const chunks = (0, util_ts_1.chunk)(body.recipients, exports.MAXIMUM_RECIPIENTS_COUNT);
129
- const limit = (0, p_limit_1.default)(10);
130
- const workflowRunIds = await Promise.all(chunks.map(async (recipients, chunkIndex) => {
131
- const chunkedBody = { ...body, recipients };
132
- const chunkedKey = (0, createChunkedIdempotencyKey_1.createChunkedIdempotencyKey)({
133
- baseKey,
134
- chunkIndex,
135
- totalChunks: chunks.length,
136
- });
137
- return await limit(async () => {
138
- this.logTriggerRequest({ logParams, body: chunkedBody, keysToRedact });
139
- const response = await this.provider.workflows.trigger(key, (0, toKnockBody_1.toKnockBody)(chunkedBody), { idempotencyKey: chunkedKey });
140
- const id = response.workflow_run_id;
141
- this.logTriggerResponse({ span, response, id, logParams });
142
- return id;
143
- });
144
- }));
145
- // workflowRunIds[0] is safe because recipients are validated to be > 0
146
- return (0, util_ts_1.success)({ id: workflowRunIds[0], ids: workflowRunIds });
124
+ const { key, body, idempotencyKey, keysToRedact = [] } = validated.value;
125
+ this.logTriggerRequest({ logParams, body, keysToRedact });
126
+ const response = await this.provider.workflows.trigger(key, (0, toTriggerBody_1.toTriggerBody)(body), {
127
+ idempotencyKey,
128
+ });
129
+ const id = response.workflow_run_id;
130
+ this.logTriggerResponse({ span, response, id, logParams });
131
+ return (0, util_ts_1.success)({ id });
147
132
  }
148
133
  catch (maybeError) {
149
134
  const error = (0, util_ts_1.toError)(maybeError);
@@ -242,7 +227,7 @@ class NotificationClient {
242
227
  }
243
228
  }
244
229
  /**
245
- * Updates or creates a workplace (tenant) in Knock.
230
+ * Updates or creates a workplace (tenant) in our provider.
246
231
  *
247
232
  * @returns Promise resolving to either an error or successful response.
248
233
  */
@@ -251,17 +236,7 @@ class NotificationClient {
251
236
  const logParams = { ...LOG_PARAMS.upsertWorkplace, workplaceId, ...body };
252
237
  try {
253
238
  this.logger.info(`${logParams.traceName} request`, logParams);
254
- // Use the same type as user inline identify so provider field names are consistent.
255
- const knockBody = {
256
- ...(body.createdAt ? { created_at: body.createdAt.toISOString() } : {}),
257
- ...(body.email ? { email: body.email } : {}),
258
- ...(body.name ? { name: body.name } : {}),
259
- ...(body.phoneNumber
260
- ? { phone_number: (0, formatPhoneNumber_1.formatPhoneNumber)({ phoneNumber: body.phoneNumber }) }
261
- : {}),
262
- ...(body.timeZone ? { timezone: body.timeZone } : {}),
263
- };
264
- const response = await this.provider.tenants.set(workplaceId, knockBody);
239
+ const response = await this.provider.tenants.set(workplaceId, (0, toTenantSetRequest_1.toTenantSetRequest)(body));
265
240
  this.logger.info(`${logParams.traceName} response`, {
266
241
  ...logParams,
267
242
  response: { workplaceId: response.id, name: response.name },
@@ -309,6 +284,18 @@ class NotificationClient {
309
284
  logParams,
310
285
  });
311
286
  }
287
+ if (body.recipients.length > exports.MAXIMUM_RECIPIENTS_COUNT) {
288
+ const recipientsCount = body.recipients.length;
289
+ return this.createAndLogError({
290
+ notificationError: {
291
+ code: exports.ERROR_CODES.recipientCountAboveMaximum,
292
+ message: `Got ${recipientsCount} recipients; must be <= ${exports.MAXIMUM_RECIPIENTS_COUNT}.`,
293
+ },
294
+ span,
295
+ logParams,
296
+ metadata: { recipientsCount },
297
+ });
298
+ }
312
299
  const now = new Date();
313
300
  if (now > expiresAt) {
314
301
  return this.createAndLogError({
@@ -1 +1 @@
1
- {"version":3,"file":"notificationClient.js","sourceRoot":"","sources":["../../../../../packages/notifications/src/lib/notificationClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notificationClient.js","sourceRoot":"","sources":["../../../../../packages/notifications/src/lib/notificationClient.ts"],"names":[],"mappings":";;;AAAA,uDASmC;AACnC,0CAAgD;AAEhD,8EAA2E;AAC3E,oFAAiF;AACjF,gEAA6D;AAC7D,8CAA2C;AAC3C,sEAAmE;AACnE,4DAAyD;AAiBzD,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE;QACP,SAAS,EAAE,uBAAuB;QAClC,WAAW,EAAE,yBAAyB;KACvC;IACD,eAAe,EAAE;QACf,SAAS,EAAE,+BAA+B;QAC1C,WAAW,EAAE,4BAA4B;KAC1C;IACD,eAAe,EAAE;QACf,SAAS,EAAE,+BAA+B;QAC1C,WAAW,EAAE,mBAAmB;KACjC;IACD,aAAa,EAAE;QACb,SAAS,EAAE,6BAA6B;QACxC,WAAW,EAAE,qBAAqB;KACnC;CACF,CAAC;AAEW,QAAA,wBAAwB,GAAG,IAAI,CAAC;AAEhC,QAAA,WAAW,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,0BAA0B,EAAE,4BAA4B;IACxD,0BAA0B,EAAE,4BAA4B;IACxD,iBAAiB,EAAE,mBAAmB;IACtC,OAAO,EAAE,SAAS;CACV,CAAC;AASX;;GAEG;AACH,MAAa,kBAAkB;IACV,MAAM,CAAS;IACf,QAAQ,CAAkB;IAC1B,MAAM,CAAS;IACjB,UAAU,CAAqB;IAEhD;;OAEG;IACH,YAAY,MAAgC;QAC1C,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAE9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ;YACX,UAAU,IAAI,MAAM;gBAClB,CAAC,CAAC,4DAA4D;oBAC5D,MAAM,CAAC,QAAQ;gBACjB,CAAC,CAAC,4DAA4D;oBAC5D,IAAI,iCAAe,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACI,KAAK,CAAC,OAAO,CAAC,MAAsB;QACzC,MAAM,SAAS,GAAG,IAAA,+CAAsB,EAAC,EAAE,GAAG,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAC5B,SAAS,CAAC,SAAS,EACnB,IAAA,qDAAyB,EAAC,SAAS,CAAC,EACpC,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9E,IAAI,IAAA,mBAAS,EAAC,SAAS,CAAC,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC;gBACzE,IAAI,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBAE1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,IAAA,6BAAa,EAAC,IAAI,CAAC,EAAE;oBAC/E,cAAc;iBACf,CAAC,CAAC;gBAEH,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBACpC,IAAI,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBAE3D,OAAO,IAAA,iBAAO,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC;gBAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC;oBAC5B,iBAAiB,EAAE;wBACjB,IAAI,EAAE,mBAAW,CAAC,OAAO;wBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB;oBACD,IAAI;oBACJ,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;oBAC9B,SAAS;oBACT,QAAQ,EAAE,EAAE,KAAK,EAAE;iBACpB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAC1B,MAA8B;QAE9B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAC5C,MAAM,SAAS,GAAG,EAAE,GAAG,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAEvE,IAAI,CAAC;YACH,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,UAAU,EAAE,SAAS,CAAC,CAAC;YAC9D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,kBAAkB,EAAE;gBACzD,GAAG,SAAS;gBACZ,kBAAkB,EAAE,cAAc,CAAC,MAAM;aAC1C,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;gBAC3E,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;aAC3D,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,WAAW,EAAE;gBAClD,GAAG,SAAS;gBACZ,4DAA4D;gBAC5D,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;aACtF,CAAC,CAAC;YAEH,OAAO,IAAA,iBAAO,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,iBAAiB,EAAE;oBACjB,IAAI,EAAE,mBAAW,CAAC,OAAO;oBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB;gBACD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBAC9B,SAAS;gBACT,QAAQ,EAAE,EAAE,KAAK,EAAE;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CACxB,MAA4B;QAE5B,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAEnD,MAAM,SAAS,GAAG,EAAE,GAAG,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAE5E,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,iBAAiB,EAAE;oBACjB,IAAI,EAAE,mBAAW,CAAC,iBAAiB;oBACnC,OAAO,EAAE,sBAAsB;iBAChC;gBACD,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,UAAU,EAAE,SAAS,CAAC,CAAC;YAE9D,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAa,EAAC,MAAM,EAAE;gBAC3C,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,gBAAgB;aACjB,CAAC,CAAC;YAEH,4DAA4D;YAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,WAAW,EAAE,SAAS,CAAC,CAAC;YAE/D,OAAO,IAAA,iBAAO,EAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,iBAAiB,EAAE;oBACjB,IAAI,EAAE,mBAAW,CAAC,OAAO;oBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB;gBACD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBAC9B,SAAS;gBACT,QAAQ,EAAE,EAAE,KAAK,EAAE;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAC1B,MAA8B;QAE9B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACxC,MAAM,SAAS,GAAG,EAAE,GAAG,UAAU,CAAC,eAAe,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;QAE1E,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,UAAU,EAAE,SAAS,CAAC,CAAC;YAE9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAA,uCAAkB,EAAC,IAAI,CAAC,CAAC,CAAC;YAExF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,WAAW,EAAE;gBAClD,GAAG,SAAS;gBACZ,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE;aAC5D,CAAC,CAAC;YAEH,OAAO,IAAA,iBAAO,EAAC;gBACb,WAAW,EAAE,QAAQ,CAAC,EAAE;aACzB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,iBAAiB,EAAE;oBACjB,IAAI,EAAE,mBAAW,CAAC,OAAO;oBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB;gBACD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBAC9B,SAAS;gBACT,QAAQ,EAAE,EAAE,KAAK,EAAE;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAES,iBAAiB,CAAC,MAM3B;QACC,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC;QAChG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC;QAE5C,IAAI,EAAE,OAAO,CAAC;YACZ,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,OAAO;SACzB,CAAC,CAAC;QAEH,WAAW,CAAC,GAAG,SAAS,CAAC,SAAS,KAAK,IAAI,KAAK,OAAO,EAAE,EAAE;YACzD,GAAG,SAAS;YACZ,GAAG,QAAQ;SACZ,CAAC,CAAC;QAEH,OAAO,IAAA,iBAAO,EAAC,IAAI,sBAAY,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,sBAAsB,CAC5B,MAAyE;QAEzE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAEpD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,iBAAiB,EAAE;oBACjB,IAAI,EAAE,mBAAW,CAAC,0BAA0B;oBAC5C,OAAO,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,2BAA2B;iBAClE;gBACD,IAAI;gBACJ,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,gCAAwB,EAAE,CAAC;YACtD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC/C,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,iBAAiB,EAAE;oBACjB,IAAI,EAAE,mBAAW,CAAC,0BAA0B;oBAC5C,OAAO,EAAE,OAAO,eAAe,2BAA2B,gCAAwB,GAAG;iBACtF;gBACD,IAAI;gBACJ,SAAS;gBACT,QAAQ,EAAE,EAAE,eAAe,EAAE;aAC9B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,iBAAiB,EAAE;oBACjB,IAAI,EAAE,mBAAW,CAAC,OAAO;oBACzB,OAAO,EAAE,OAAO,GAAG,CAAC,WAAW,EAAE,6BAA6B,SAAS,CAAC,WAAW,EAAE,GAAG;iBACzF;gBACD,IAAI;gBACJ,SAAS;gBACT,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE;aACjF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAI/B;QACC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAEhD,kEAAkE;QAClE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC7E,OAAO,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC;YAClC,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,2BAA2B,EAAE,SAAS,CAAC,CAAC;gBAC/E,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,MAIzB;QACC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;QAEjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,UAAU,EAAE;YACjD,GAAG,SAAS;YACZ,YAAY,EAAE;gBACZ,GAAG,IAAI;gBACP,kDAAkD;gBAClD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBAClC,IAAI,EAAE,IAAA,eAAM,EAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,YAAY,EAAE,CAAC;aAC7D;SACF,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,MAK1B;QACC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAEjD,IAAI,EAAE,OAAO,CAAC;YACZ,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,WAAW,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEpF,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAzXD,gDAyXC"}
@@ -129,7 +129,12 @@ export interface TriggerRequest {
129
129
  body: TriggerBody;
130
130
  /**
131
131
  * Key to prevent duplicate requests if provider supports it. It's important it is deterministic
132
- * ({@link createIdempotencyKey}) and remains the same across any retry logic.
132
+ * ({@link createIdempotencyKey}) and remains the same across retry logic.
133
+ *
134
+ * If you retry a request with the same idempotency key within 24 hours from the original request,
135
+ * we will return the same response as the original request. Idempotent requests are expected to
136
+ * be identical. To prevent accidental misuse, the client throws an error when incoming parameters
137
+ * don't match those from the original request.
133
138
  *
134
139
  * Ensure your idempotency key doesn't prevent recipients from receiving notifications. For
135
140
  * example, if you use the workflow key and the recipient's ID as the idempotency key, but it's
@@ -156,10 +161,8 @@ export interface TriggerRequest {
156
161
  * Response from triggering a notification.
157
162
  */
158
163
  export interface TriggerResponse {
159
- /** Third-party provider's unique identifier (first chunk for backwards compatibility). */
164
+ /** Third-party provider's unique identifier. */
160
165
  id: string;
161
- /** Array of all workflow run IDs (one per chunk). */
162
- ids: string[];
163
166
  }
164
167
  /**
165
168
  * Request parameters for appending a push token.
@@ -1,18 +0,0 @@
1
- export declare const MAX_IDEMPOTENCY_KEY_LENGTH = 255;
2
- /**
3
- * Creates a chunked idempotency key by appending a chunk suffix.
4
- *
5
- * If the idempotency key with the chunk suffix exceeds MAX_IDEMPOTENCY_KEY_LENGTH characters, it
6
- * truncates the base key to fit within the limit.
7
- *
8
- * @param params.baseKey - The base idempotency key
9
- * @param params.chunkIndex - Zero-based chunk index
10
- * @param params.totalChunks - Total number of chunks
11
- *
12
- * @returns An idempotency key with chunk information, max MAX_IDEMPOTENCY_KEY_LENGTH characters
13
- */
14
- export declare function createChunkedIdempotencyKey(params: {
15
- baseKey: string;
16
- chunkIndex: number;
17
- totalChunks: number;
18
- }): string;
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAX_IDEMPOTENCY_KEY_LENGTH = void 0;
4
- exports.createChunkedIdempotencyKey = createChunkedIdempotencyKey;
5
- exports.MAX_IDEMPOTENCY_KEY_LENGTH = 255;
6
- /**
7
- * Creates a chunked idempotency key by appending a chunk suffix.
8
- *
9
- * If the idempotency key with the chunk suffix exceeds MAX_IDEMPOTENCY_KEY_LENGTH characters, it
10
- * truncates the base key to fit within the limit.
11
- *
12
- * @param params.baseKey - The base idempotency key
13
- * @param params.chunkIndex - Zero-based chunk index
14
- * @param params.totalChunks - Total number of chunks
15
- *
16
- * @returns An idempotency key with chunk information, max MAX_IDEMPOTENCY_KEY_LENGTH characters
17
- */
18
- function createChunkedIdempotencyKey(params) {
19
- const { baseKey, chunkIndex, totalChunks } = params;
20
- if (totalChunks === 1) {
21
- return baseKey.slice(0, exports.MAX_IDEMPOTENCY_KEY_LENGTH);
22
- }
23
- const chunkSuffix = `-chunk-${chunkIndex + 1}`;
24
- const maxBaseKeyLength = exports.MAX_IDEMPOTENCY_KEY_LENGTH - chunkSuffix.length;
25
- const fullKey = `${baseKey}${chunkSuffix}`;
26
- return fullKey.length <= exports.MAX_IDEMPOTENCY_KEY_LENGTH
27
- ? fullKey
28
- : `${baseKey.slice(0, maxBaseKeyLength)}${chunkSuffix}`;
29
- }
30
- //# sourceMappingURL=createChunkedIdempotencyKey.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createChunkedIdempotencyKey.js","sourceRoot":"","sources":["../../../../../../packages/notifications/src/lib/internal/createChunkedIdempotencyKey.ts"],"names":[],"mappings":";;;AAcA,kEAkBC;AAhCY,QAAA,0BAA0B,GAAG,GAAG,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,SAAgB,2BAA2B,CAAC,MAI3C;IACC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAEpD,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,kCAA0B,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,UAAU,GAAG,CAAC,EAAE,CAAC;IAC/C,MAAM,gBAAgB,GAAG,kCAA0B,GAAG,WAAW,CAAC,MAAM,CAAC;IACzE,MAAM,OAAO,GAAG,GAAG,OAAO,GAAG,WAAW,EAAE,CAAC;IAE3C,OAAO,OAAO,CAAC,MAAM,IAAI,kCAA0B;QACjD,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,WAAW,EAAE,CAAC;AAC5D,CAAC"}
@@ -1,3 +0,0 @@
1
- import { type Knock } from "@knocklabs/node";
2
- import type { TriggerBody } from "../types";
3
- export declare function toKnockBody(body: TriggerBody): Knock.Workflows.WorkflowTriggerParams;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toKnockBody = toKnockBody;
4
- const formatPhoneNumber_1 = require("./formatPhoneNumber");
5
- function toKnockBody(body) {
6
- const { actor, cancellationKey, recipients, workplaceId, ...rest } = body;
7
- return {
8
- ...(actor ? { actor: toKnockRecipient(actor) } : {}),
9
- ...(cancellationKey ? { cancellation_key: cancellationKey } : {}),
10
- ...(workplaceId ? { tenant: workplaceId } : {}),
11
- recipients: recipients.map(toKnockRecipient),
12
- ...rest,
13
- };
14
- }
15
- function toKnockRecipient(recipient) {
16
- if (typeof recipient === "string") {
17
- return recipient;
18
- }
19
- return toKnockInlineIdentifyUserRequest(recipient);
20
- }
21
- function toKnockInlineIdentifyUserRequest(recipient) {
22
- const { channelData, createdAt, email, name, phoneNumber, timeZone, userId, customProperties, ...rest } = recipient;
23
- return {
24
- ...customProperties,
25
- id: userId,
26
- ...(channelData ? { channel_data: channelData } : {}),
27
- ...(createdAt ? { created_at: createdAt.toISOString() } : {}),
28
- ...(email ? { email } : {}),
29
- ...(name ? { name } : {}),
30
- ...(phoneNumber ? { phone_number: (0, formatPhoneNumber_1.formatPhoneNumber)({ phoneNumber }) } : {}),
31
- ...(timeZone ? { timezone: timeZone } : {}),
32
- ...rest,
33
- };
34
- }
35
- //# sourceMappingURL=toKnockBody.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toKnockBody.js","sourceRoot":"","sources":["../../../../../../packages/notifications/src/lib/internal/toKnockBody.ts"],"names":[],"mappings":";;AAKA,kCAUC;AAZD,2DAAwD;AAExD,SAAgB,WAAW,CAAC,IAAiB;IAC3C,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAE1E,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC5C,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA2B;IACnD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,gCAAgC,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,gCAAgC,CACvC,SAAoC;IAEpC,MAAM,EACJ,WAAW,EACX,SAAS,EACT,KAAK,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,MAAM,EACN,gBAAgB,EAChB,GAAG,IAAI,EACR,GAAG,SAAS,CAAC;IAEd,OAAO;QACL,GAAG,gBAAgB;QACnB,EAAE,EAAE,MAAM;QACV,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAA,qCAAiB,EAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,IAAI;KACR,CAAC;AACJ,CAAC"}