@novu/js 3.16.0 → 3.17.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.
@@ -186,6 +186,97 @@ var areDataEqual = (data1, data2) => {
186
186
  var isSameFilter = (filter1, filter2) => {
187
187
  return areDataEqual(filter1.data, filter2.data) && areTagsEqual(filter1.tags, filter2.tags) && filter1.read === filter2.read && filter1.archived === filter2.archived && filter1.snoozed === filter2.snoozed && filter1.seen === filter2.seen && areSeveritiesEqual(filter1.severity, filter2.severity) && filter1.createdGte === filter2.createdGte && filter1.createdLte === filter2.createdLte;
188
188
  };
189
+ function isPlainObject(value) {
190
+ return typeof value === "object" && value !== null && !Array.isArray(value);
191
+ }
192
+ function isOperatorObject(value) {
193
+ return Object.prototype.hasOwnProperty.call(value, "or") || Object.prototype.hasOwnProperty.call(value, "and");
194
+ }
195
+ function isScalarValue(value) {
196
+ if (value === null) return true;
197
+ if (typeof value === "boolean") return true;
198
+ if (typeof value === "string") return true;
199
+ if (typeof value === "number") return Number.isFinite(value);
200
+ return false;
201
+ }
202
+ function normalizeDataFieldValue(value) {
203
+ if (value === void 0) {
204
+ return [];
205
+ }
206
+ if (Array.isArray(value)) {
207
+ if (value.length === 0) return [];
208
+ if (!value.every(isScalarValue)) return null;
209
+ return [value];
210
+ }
211
+ if (isPlainObject(value)) {
212
+ const hasOr = Object.prototype.hasOwnProperty.call(value, "or");
213
+ const hasAnd = Object.prototype.hasOwnProperty.call(value, "and");
214
+ if (hasOr && hasAnd) return null;
215
+ const keys = Object.keys(value);
216
+ if (hasOr) {
217
+ if (keys.length !== 1) return null;
218
+ const orVal = value.or;
219
+ if (!Array.isArray(orVal)) return null;
220
+ if (orVal.length === 0) return [];
221
+ if (!orVal.every(isScalarValue)) return null;
222
+ return [orVal];
223
+ }
224
+ if (hasAnd) {
225
+ if (keys.length !== 1) return null;
226
+ const andVal = value.and;
227
+ if (!Array.isArray(andVal)) return null;
228
+ const groups = [];
229
+ for (const item of andVal) {
230
+ if (!isPlainObject(item)) return null;
231
+ const itemKeys = Object.keys(item);
232
+ if (itemKeys.length !== 1 || !("or" in item)) return null;
233
+ const innerOr = item.or;
234
+ if (!Array.isArray(innerOr) || innerOr.length === 0) return null;
235
+ if (!innerOr.every(isScalarValue)) return null;
236
+ groups.push(innerOr);
237
+ }
238
+ return groups;
239
+ }
240
+ return null;
241
+ }
242
+ if (!isScalarValue(value)) return null;
243
+ return [[value]];
244
+ }
245
+ function dataValueAtPath(obj, path) {
246
+ let current = obj;
247
+ for (const segment of path) {
248
+ if (current === null || current === void 0) return void 0;
249
+ if (typeof current !== "object" || Array.isArray(current)) return void 0;
250
+ current = current[segment];
251
+ }
252
+ return current;
253
+ }
254
+ function orGroupMatchesNotifValue(group, notifValue) {
255
+ if (Array.isArray(notifValue)) {
256
+ return notifValue.some((v) => group.some((g) => g === v));
257
+ }
258
+ return group.some((g) => g === notifValue);
259
+ }
260
+ function checkDataEntries(notificationData, filterData, pathPrefix, depth) {
261
+ if (depth > 2) return false;
262
+ for (const [rawKey, rawValue] of Object.entries(filterData)) {
263
+ if (rawKey.startsWith("$") || rawKey.startsWith(".") || rawKey === "__proto__" || rawKey === "constructor" || rawKey === "prototype") {
264
+ return false;
265
+ }
266
+ const path = [...pathPrefix, rawKey];
267
+ if (isPlainObject(rawValue) && !isOperatorObject(rawValue)) {
268
+ if (!checkDataEntries(notificationData, rawValue, path, depth + 1)) return false;
269
+ continue;
270
+ }
271
+ const groups = normalizeDataFieldValue(rawValue);
272
+ if (groups === null) return false;
273
+ if (groups.length === 0) continue;
274
+ const notifValue = notificationData ? dataValueAtPath(notificationData, path) : void 0;
275
+ if (notifValue === void 0) return false;
276
+ if (!groups.every((g) => orGroupMatchesNotifValue(g, notifValue))) return false;
277
+ }
278
+ return true;
279
+ }
189
280
  function checkNotificationDataFilter(notificationData, filterData) {
190
281
  if (!filterData || Object.keys(filterData).length === 0) {
191
282
  return true;
@@ -193,24 +284,7 @@ function checkNotificationDataFilter(notificationData, filterData) {
193
284
  if (!notificationData) {
194
285
  return false;
195
286
  }
196
- return Object.entries(filterData).every(([key, filterValue]) => {
197
- const notifValue = notificationData[key];
198
- if (notifValue === void 0 && filterValue !== void 0) {
199
- return false;
200
- }
201
- if (Array.isArray(filterValue)) {
202
- if (Array.isArray(notifValue)) {
203
- if (filterValue.length !== notifValue.length) return false;
204
- const sortedFilterValue = [...filterValue].sort();
205
- const sortedNotifValue = [...notifValue].sort();
206
- return sortedFilterValue.every((val, index) => val === sortedNotifValue[index]);
207
- } else {
208
- return filterValue.includes(notifValue);
209
- }
210
- } else {
211
- return notifValue === filterValue;
212
- }
213
- });
287
+ return checkDataEntries(notificationData, filterData, [], 1);
214
288
  }
215
289
  function checkNotificationTagFilter(notificationTags, filterTags) {
216
290
  let groups;
@@ -1043,7 +1117,7 @@ _contextKey = new WeakMap();
1043
1117
 
1044
1118
  // src/api/http-client.ts
1045
1119
  var DEFAULT_API_VERSION = "v1";
1046
- var DEFAULT_CLIENT_VERSION = `${"@novu/js"}@${"3.16.0"}`;
1120
+ var DEFAULT_CLIENT_VERSION = `${"@novu/js"}@${"3.17.0"}`;
1047
1121
  var HttpClient = class {
1048
1122
  constructor(options = {}) {
1049
1123
  // Environment variable for local development that overrides the default API endpoint without affecting the Inbox DX
@@ -1159,7 +1233,9 @@ var INBOX_ROUTE = "/inbox";
1159
1233
  var INBOX_NOTIFICATIONS_ROUTE = `${INBOX_ROUTE}/notifications`;
1160
1234
  var CHAT_OAUTH_ROUTE = `${INBOX_ROUTE}/chat/oauth`;
1161
1235
  var CHANNEL_CONNECTIONS_ROUTE = `${INBOX_ROUTE}/channel-connections`;
1236
+ var CHANNEL_CONNECTIONS_OAUTH_ROUTE = `${CHANNEL_CONNECTIONS_ROUTE}/oauth`;
1162
1237
  var CHANNEL_ENDPOINTS_ROUTE = `${INBOX_ROUTE}/channel-endpoints`;
1238
+ var CHANNEL_ENDPOINTS_OAUTH_ROUTE = `${CHANNEL_ENDPOINTS_ROUTE}/oauth`;
1163
1239
  function buildChannelListSearchParams(args) {
1164
1240
  const searchParams = new URLSearchParams();
1165
1241
  if (args.subscriberId) searchParams.append("subscriberId", args.subscriberId);
@@ -1498,6 +1574,9 @@ var InboxService = class {
1498
1574
  deleteSubscription({ topicKey, identifier }) {
1499
1575
  return chunk7B52C2XE_js.__privateGet(this, _httpClient).delete(`${INBOX_ROUTE}/topics/${topicKey}/subscriptions/${identifier}`);
1500
1576
  }
1577
+ /**
1578
+ * @deprecated Use generateConnectOAuthUrl() or generateLinkUserOAuthUrl() instead.
1579
+ */
1501
1580
  generateChatOAuthUrl({
1502
1581
  integrationIdentifier,
1503
1582
  connectionIdentifier,
@@ -1506,7 +1585,8 @@ var InboxService = class {
1506
1585
  scope,
1507
1586
  userScope,
1508
1587
  mode,
1509
- connectionMode
1588
+ connectionMode,
1589
+ autoLinkUser
1510
1590
  }) {
1511
1591
  return chunk7B52C2XE_js.__privateGet(this, _httpClient).post(CHAT_OAUTH_ROUTE, {
1512
1592
  integrationIdentifier,
@@ -1516,7 +1596,42 @@ var InboxService = class {
1516
1596
  scope,
1517
1597
  userScope,
1518
1598
  mode,
1519
- connectionMode
1599
+ connectionMode,
1600
+ autoLinkUser
1601
+ });
1602
+ }
1603
+ generateConnectOAuthUrl({
1604
+ integrationIdentifier,
1605
+ connectionIdentifier,
1606
+ subscriberId,
1607
+ context,
1608
+ scope,
1609
+ connectionMode,
1610
+ autoLinkUser
1611
+ }) {
1612
+ return chunk7B52C2XE_js.__privateGet(this, _httpClient).post(CHANNEL_CONNECTIONS_OAUTH_ROUTE, {
1613
+ integrationIdentifier,
1614
+ connectionIdentifier,
1615
+ subscriberId,
1616
+ context,
1617
+ scope,
1618
+ connectionMode,
1619
+ autoLinkUser
1620
+ });
1621
+ }
1622
+ generateLinkUserOAuthUrl({
1623
+ integrationIdentifier,
1624
+ connectionIdentifier,
1625
+ subscriberId,
1626
+ context,
1627
+ userScope
1628
+ }) {
1629
+ return chunk7B52C2XE_js.__privateGet(this, _httpClient).post(CHANNEL_ENDPOINTS_OAUTH_ROUTE, {
1630
+ integrationIdentifier,
1631
+ connectionIdentifier,
1632
+ subscriberId,
1633
+ context,
1634
+ userScope
1520
1635
  });
1521
1636
  }
1522
1637
  listChannelConnections(args = {}) {
@@ -1594,6 +1709,21 @@ var generateChatOAuthUrl = (_0) => chunk7B52C2XE_js.__async(null, [_0], function
1594
1709
  return { error: new chunkWDGG3OER_js.NovuError("Failed to generate chat OAuth URL", error) };
1595
1710
  }
1596
1711
  });
1712
+ var generateConnectOAuthUrl = (_0) => chunk7B52C2XE_js.__async(null, [_0], function* ({
1713
+ emitter,
1714
+ apiService,
1715
+ args
1716
+ }) {
1717
+ try {
1718
+ emitter.emit("channel-connection.oauth-url.pending", { args });
1719
+ const data = yield apiService.generateConnectOAuthUrl(args);
1720
+ emitter.emit("channel-connection.oauth-url.resolved", { args, data });
1721
+ return { data };
1722
+ } catch (error) {
1723
+ emitter.emit("channel-connection.oauth-url.resolved", { args, error });
1724
+ return { error: new chunkWDGG3OER_js.NovuError("Failed to generate connect OAuth URL", error) };
1725
+ }
1726
+ });
1597
1727
  var listChannelConnections = (_0) => chunk7B52C2XE_js.__async(null, [_0], function* ({
1598
1728
  emitter,
1599
1729
  apiService,
@@ -1649,6 +1779,9 @@ var ChannelConnections = class extends BaseModule {
1649
1779
  }) {
1650
1780
  super({ inboxServiceInstance, eventEmitterInstance });
1651
1781
  }
1782
+ /**
1783
+ * @deprecated Use generateConnectOAuthUrl() instead. For user-level linking use channelEndpoints.generateLinkUserOAuthUrl().
1784
+ */
1652
1785
  generateOAuthUrl(args) {
1653
1786
  return chunk7B52C2XE_js.__async(this, null, function* () {
1654
1787
  return this.callWithSession(
@@ -1660,6 +1793,17 @@ var ChannelConnections = class extends BaseModule {
1660
1793
  );
1661
1794
  });
1662
1795
  }
1796
+ generateConnectOAuthUrl(args) {
1797
+ return chunk7B52C2XE_js.__async(this, null, function* () {
1798
+ return this.callWithSession(
1799
+ () => generateConnectOAuthUrl({
1800
+ emitter: this._emitter,
1801
+ apiService: this._inboxService,
1802
+ args
1803
+ })
1804
+ );
1805
+ });
1806
+ }
1663
1807
  list() {
1664
1808
  return chunk7B52C2XE_js.__async(this, arguments, function* (args = {}) {
1665
1809
  return this.callWithSession(
@@ -1696,6 +1840,21 @@ var ChannelConnections = class extends BaseModule {
1696
1840
  };
1697
1841
 
1698
1842
  // src/channel-endpoints/helpers.ts
1843
+ var generateLinkUserOAuthUrl = (_0) => chunk7B52C2XE_js.__async(null, [_0], function* ({
1844
+ emitter,
1845
+ apiService,
1846
+ args
1847
+ }) {
1848
+ try {
1849
+ emitter.emit("channel-endpoint.oauth-url.pending", { args });
1850
+ const data = yield apiService.generateLinkUserOAuthUrl(args);
1851
+ emitter.emit("channel-endpoint.oauth-url.resolved", { args, data });
1852
+ return { data };
1853
+ } catch (error) {
1854
+ emitter.emit("channel-endpoint.oauth-url.resolved", { args, error });
1855
+ return { error: new chunkWDGG3OER_js.NovuError("Failed to generate link user OAuth URL", error) };
1856
+ }
1857
+ });
1699
1858
  var listChannelEndpoints = (_0) => chunk7B52C2XE_js.__async(null, [_0], function* ({
1700
1859
  emitter,
1701
1860
  apiService,
@@ -1766,6 +1925,17 @@ var ChannelEndpoints = class extends BaseModule {
1766
1925
  }) {
1767
1926
  super({ inboxServiceInstance, eventEmitterInstance });
1768
1927
  }
1928
+ generateLinkUserOAuthUrl(args) {
1929
+ return chunk7B52C2XE_js.__async(this, null, function* () {
1930
+ return this.callWithSession(
1931
+ () => generateLinkUserOAuthUrl({
1932
+ emitter: this._emitter,
1933
+ apiService: this._inboxService,
1934
+ args
1935
+ })
1936
+ );
1937
+ });
1938
+ }
1769
1939
  list() {
1770
1940
  return chunk7B52C2XE_js.__async(this, arguments, function* (args = {}) {
1771
1941
  return this.callWithSession(
@@ -3218,6 +3388,8 @@ _emitter9 = new WeakMap();
3218
3388
  _inboxService5 = new WeakMap();
3219
3389
  _options = new WeakMap();
3220
3390
  var PRODUCTION_SOCKET_URL = "wss://socket.novu.co";
3391
+ var HIBERNATION_HEARTBEAT_MS = 25e3;
3392
+ var HIBERNATION_PING_PAYLOAD = "ping";
3221
3393
  var NOTIFICATION_RECEIVED = "notifications.notification_received";
3222
3394
  var UNSEEN_COUNT_CHANGED = "notifications.unseen_count_changed";
3223
3395
  var UNREAD_COUNT_CHANGED = "notifications.unread_count_changed";
@@ -3308,7 +3480,7 @@ var mapToNotification = ({
3308
3480
  severity
3309
3481
  });
3310
3482
  };
3311
- var _token, _emitter10, _partySocket, _socketUrl, _socketOptions, _notificationReceived, _unseenCountChanged, _unreadCountChanged, _handleMessage, _PartySocketClient_instances, initializeSocket_fn, handleConnectSocket_fn, handleDisconnectSocket_fn;
3483
+ var _token, _emitter10, _partySocket, _socketUrl, _socketOptions, _hibernationHeartbeatIntervalId, _notificationReceived, _unseenCountChanged, _unreadCountChanged, _handleMessage, _PartySocketClient_instances, clearHibernationHeartbeat_fn, startHibernationHeartbeat_fn, initializeSocket_fn, handleConnectSocket_fn, handleDisconnectSocket_fn;
3312
3484
  var PartySocketClient = class extends BaseModule {
3313
3485
  constructor({
3314
3486
  socketUrl,
@@ -3326,6 +3498,7 @@ var PartySocketClient = class extends BaseModule {
3326
3498
  chunk7B52C2XE_js.__privateAdd(this, _partySocket);
3327
3499
  chunk7B52C2XE_js.__privateAdd(this, _socketUrl);
3328
3500
  chunk7B52C2XE_js.__privateAdd(this, _socketOptions);
3501
+ chunk7B52C2XE_js.__privateAdd(this, _hibernationHeartbeatIntervalId);
3329
3502
  chunk7B52C2XE_js.__privateAdd(this, _notificationReceived, (event) => {
3330
3503
  try {
3331
3504
  const data = JSON.parse(event.data);
@@ -3361,6 +3534,9 @@ var PartySocketClient = class extends BaseModule {
3361
3534
  }
3362
3535
  });
3363
3536
  chunk7B52C2XE_js.__privateAdd(this, _handleMessage, (event) => {
3537
+ if (event.data === HIBERNATION_PING_PAYLOAD || event.data === "pong") {
3538
+ return;
3539
+ }
3364
3540
  try {
3365
3541
  const data = JSON.parse(event.data);
3366
3542
  switch (data.event) {
@@ -3410,11 +3586,31 @@ _emitter10 = new WeakMap();
3410
3586
  _partySocket = new WeakMap();
3411
3587
  _socketUrl = new WeakMap();
3412
3588
  _socketOptions = new WeakMap();
3589
+ _hibernationHeartbeatIntervalId = new WeakMap();
3413
3590
  _notificationReceived = new WeakMap();
3414
3591
  _unseenCountChanged = new WeakMap();
3415
3592
  _unreadCountChanged = new WeakMap();
3416
3593
  _handleMessage = new WeakMap();
3417
3594
  _PartySocketClient_instances = new WeakSet();
3595
+ clearHibernationHeartbeat_fn = function() {
3596
+ if (chunk7B52C2XE_js.__privateGet(this, _hibernationHeartbeatIntervalId) !== void 0) {
3597
+ clearInterval(chunk7B52C2XE_js.__privateGet(this, _hibernationHeartbeatIntervalId));
3598
+ chunk7B52C2XE_js.__privateSet(this, _hibernationHeartbeatIntervalId, void 0);
3599
+ }
3600
+ };
3601
+ startHibernationHeartbeat_fn = function() {
3602
+ chunk7B52C2XE_js.__privateMethod(this, _PartySocketClient_instances, clearHibernationHeartbeat_fn).call(this);
3603
+ chunk7B52C2XE_js.__privateSet(this, _hibernationHeartbeatIntervalId, setInterval(() => {
3604
+ const socket = chunk7B52C2XE_js.__privateGet(this, _partySocket);
3605
+ if (!socket || socket.readyState !== partysocket.WebSocket.OPEN) {
3606
+ return;
3607
+ }
3608
+ try {
3609
+ socket.send(HIBERNATION_PING_PAYLOAD);
3610
+ } catch (e) {
3611
+ }
3612
+ }, HIBERNATION_HEARTBEAT_MS));
3613
+ };
3418
3614
  initializeSocket_fn = function() {
3419
3615
  return chunk7B52C2XE_js.__async(this, null, function* () {
3420
3616
  if (chunk7B52C2XE_js.__privateGet(this, _partySocket)) {
@@ -3425,13 +3621,22 @@ initializeSocket_fn = function() {
3425
3621
  const url = new URL(chunk7B52C2XE_js.__privateGet(this, _socketUrl));
3426
3622
  url.searchParams.set("token", chunk7B52C2XE_js.__privateGet(this, _token));
3427
3623
  chunk7B52C2XE_js.__privateSet(this, _partySocket, new partysocket.WebSocket(url.toString(), void 0, chunk7B52C2XE_js.__privateGet(this, _socketOptions)));
3428
- chunk7B52C2XE_js.__privateGet(this, _partySocket).addEventListener("open", () => {
3624
+ const socket = chunk7B52C2XE_js.__privateGet(this, _partySocket);
3625
+ socket.addEventListener("open", () => {
3626
+ chunk7B52C2XE_js.__privateMethod(this, _PartySocketClient_instances, startHibernationHeartbeat_fn).call(this);
3429
3627
  chunk7B52C2XE_js.__privateGet(this, _emitter10).emit("socket.connect.resolved", { args });
3430
3628
  });
3431
- chunk7B52C2XE_js.__privateGet(this, _partySocket).addEventListener("error", (error) => {
3629
+ socket.addEventListener("error", (error) => {
3432
3630
  chunk7B52C2XE_js.__privateGet(this, _emitter10).emit("socket.connect.resolved", { args, error });
3433
3631
  });
3434
- chunk7B52C2XE_js.__privateGet(this, _partySocket).addEventListener("message", chunk7B52C2XE_js.__privateGet(this, _handleMessage));
3632
+ socket.addEventListener("close", () => {
3633
+ if (socket !== chunk7B52C2XE_js.__privateGet(this, _partySocket)) {
3634
+ return;
3635
+ }
3636
+ chunk7B52C2XE_js.__privateMethod(this, _PartySocketClient_instances, clearHibernationHeartbeat_fn).call(this);
3637
+ chunk7B52C2XE_js.__privateSet(this, _partySocket, void 0);
3638
+ });
3639
+ socket.addEventListener("message", chunk7B52C2XE_js.__privateGet(this, _handleMessage));
3435
3640
  });
3436
3641
  };
3437
3642
  handleConnectSocket_fn = function() {
@@ -3448,6 +3653,7 @@ handleDisconnectSocket_fn = function() {
3448
3653
  return chunk7B52C2XE_js.__async(this, null, function* () {
3449
3654
  var _a;
3450
3655
  try {
3656
+ chunk7B52C2XE_js.__privateMethod(this, _PartySocketClient_instances, clearHibernationHeartbeat_fn).call(this);
3451
3657
  (_a = chunk7B52C2XE_js.__privateGet(this, _partySocket)) == null ? void 0 : _a.close();
3452
3658
  chunk7B52C2XE_js.__privateSet(this, _partySocket, void 0);
3453
3659
  return {};
@@ -294,6 +294,9 @@ type ChannelConnectionOAuthUrlEvents = BaseEvents<'channel-connection.oauth-url'
294
294
  type ChannelConnectionsFetchEvents = BaseEvents<'channel-connections.list', ListChannelConnectionsArgs, ChannelConnectionResponse[]>;
295
295
  type ChannelConnectionGetEvents = BaseEvents<'channel-connection.get', GetChannelConnectionArgs, ChannelConnectionResponse | null>;
296
296
  type ChannelConnectionDeleteEvents = BaseEvents<'channel-connection.delete', DeleteChannelConnectionArgs, void>;
297
+ type ChannelEndpointOAuthUrlEvents = BaseEvents<'channel-endpoint.oauth-url', GenerateLinkUserOAuthUrlArgs, {
298
+ url: string;
299
+ }>;
297
300
  type ChannelEndpointsFetchEvents = BaseEvents<'channel-endpoints.list', ListChannelEndpointsArgs, ChannelEndpointResponse[]>;
298
301
  type ChannelEndpointGetEvents = BaseEvents<'channel-endpoint.get', GetChannelEndpointArgs, ChannelEndpointResponse | null>;
299
302
  type ChannelEndpointCreateEvents = BaseEvents<'channel-endpoint.create', CreateChannelEndpointArgs, ChannelEndpointResponse>;
@@ -351,7 +354,7 @@ type Events = SessionInitializeEvents & NotificationsFetchEvents & {
351
354
  subscriptions: TopicSubscription[];
352
355
  };
353
356
  };
354
- } & ChannelConnectionOAuthUrlEvents & ChannelConnectionsFetchEvents & ChannelConnectionGetEvents & ChannelConnectionDeleteEvents & ChannelEndpointsFetchEvents & ChannelEndpointGetEvents & ChannelEndpointCreateEvents & ChannelEndpointDeleteEvents & SocketConnectEvents & SocketEvents & NotificationReadEvents & NotificationUnreadEvents & NotificationSeenEvents & NotificationArchiveEvents & NotificationUnarchiveEvents & NotificationDeleteEvents & NotificationSnoozeEvents & NotificationUnsnoozeEvents & NotificationCompleteActionEvents & NotificationRevertActionEvents & NotificationsReadAllEvents & NotificationsSeenAllEvents & NotificationsArchivedAllEvents & NotificationsReadArchivedAllEvents & NotificationsDeletedAllEvents;
357
+ } & ChannelConnectionOAuthUrlEvents & ChannelConnectionsFetchEvents & ChannelConnectionGetEvents & ChannelConnectionDeleteEvents & ChannelEndpointOAuthUrlEvents & ChannelEndpointsFetchEvents & ChannelEndpointGetEvents & ChannelEndpointCreateEvents & ChannelEndpointDeleteEvents & SocketConnectEvents & SocketEvents & NotificationReadEvents & NotificationUnreadEvents & NotificationSeenEvents & NotificationArchiveEvents & NotificationUnarchiveEvents & NotificationDeleteEvents & NotificationSnoozeEvents & NotificationUnsnoozeEvents & NotificationCompleteActionEvents & NotificationRevertActionEvents & NotificationsReadAllEvents & NotificationsSeenAllEvents & NotificationsArchivedAllEvents & NotificationsReadArchivedAllEvents & NotificationsDeletedAllEvents;
355
358
  type EventNames = keyof Events;
356
359
  type SocketEventNames = keyof SocketEvents;
357
360
  type EventHandler<T = unknown> = (event: T) => void;
@@ -638,6 +641,18 @@ type NotificationFilter = {
638
641
  archived?: boolean;
639
642
  snoozed?: boolean;
640
643
  seen?: boolean;
644
+ /**
645
+ * Filter notifications by keys in their `data` object.
646
+ *
647
+ * Each top-level key value can be:
648
+ * - a scalar (exact equality)
649
+ * - `Scalar[]` (OR — match any of the listed values)
650
+ * - `{ or: Scalar[] }` (explicit OR)
651
+ * - `{ and: [{ or: Scalar[] }, ...] }` (AND of OR-groups)
652
+ * - a 1-level nested object whose sub-keys follow the same rules
653
+ *
654
+ * Across keys clauses are AND-ed together.
655
+ */
641
656
  data?: Record<string, unknown>;
642
657
  severity?: SeverityLevelEnum | SeverityLevelEnum[];
643
658
  createdGte?: number;
@@ -759,6 +774,9 @@ type ChannelEndpointResponse = {
759
774
  };
760
775
  type OAuthMode = 'connect' | 'link_user';
761
776
  type ConnectionMode = 'subscriber' | 'shared';
777
+ /**
778
+ * @deprecated Use GenerateConnectOAuthUrlArgs or GenerateLinkUserOAuthUrlArgs instead.
779
+ */
762
780
  type GenerateChatOAuthUrlArgs = {
763
781
  integrationIdentifier: string;
764
782
  connectionIdentifier?: string;
@@ -768,6 +786,28 @@ type GenerateChatOAuthUrlArgs = {
768
786
  userScope?: string[];
769
787
  mode?: OAuthMode;
770
788
  connectionMode?: ConnectionMode;
789
+ autoLinkUser?: boolean;
790
+ };
791
+ /** Args for creating a workspace/tenant channel connection (Slack install or MS Teams admin consent). */
792
+ type GenerateConnectOAuthUrlArgs = {
793
+ integrationIdentifier: string;
794
+ connectionIdentifier?: string;
795
+ subscriberId?: string;
796
+ context?: Context;
797
+ /** Slack only: OAuth bot scopes to request. */
798
+ scope?: string[];
799
+ connectionMode?: ConnectionMode;
800
+ autoLinkUser?: boolean;
801
+ };
802
+ /** Args for linking a subscriber to their personal chat identity (Slack user or MS Teams user OID). */
803
+ type GenerateLinkUserOAuthUrlArgs = {
804
+ integrationIdentifier: string;
805
+ connectionIdentifier?: string;
806
+ /** Required — this operation always binds a specific subscriber to a user identity. */
807
+ subscriberId: string;
808
+ context?: Context;
809
+ /** Slack only: user-level OAuth scopes (e.g. identity.basic). */
810
+ userScope?: string[];
771
811
  };
772
812
  type ListChannelConnectionsArgs = {
773
813
  subscriberId?: string;
@@ -970,7 +1010,16 @@ declare class InboxService {
970
1010
  topicKey: string;
971
1011
  identifier: string;
972
1012
  }): Promise<void>;
973
- generateChatOAuthUrl({ integrationIdentifier, connectionIdentifier, subscriberId, context, scope, userScope, mode, connectionMode, }: GenerateChatOAuthUrlArgs): Promise<{
1013
+ /**
1014
+ * @deprecated Use generateConnectOAuthUrl() or generateLinkUserOAuthUrl() instead.
1015
+ */
1016
+ generateChatOAuthUrl({ integrationIdentifier, connectionIdentifier, subscriberId, context, scope, userScope, mode, connectionMode, autoLinkUser, }: GenerateChatOAuthUrlArgs): Promise<{
1017
+ url: string;
1018
+ }>;
1019
+ generateConnectOAuthUrl({ integrationIdentifier, connectionIdentifier, subscriberId, context, scope, connectionMode, autoLinkUser, }: GenerateConnectOAuthUrlArgs): Promise<{
1020
+ url: string;
1021
+ }>;
1022
+ generateLinkUserOAuthUrl({ integrationIdentifier, connectionIdentifier, subscriberId, context, userScope, }: GenerateLinkUserOAuthUrlArgs): Promise<{
974
1023
  url: string;
975
1024
  }>;
976
1025
  listChannelConnections(args?: ListChannelConnectionsArgs): Promise<{
@@ -991,4 +1040,4 @@ declare class InboxService {
991
1040
  deleteChannelEndpoint(identifier: string): Promise<void>;
992
1041
  }
993
1042
 
994
- export { type UpdateSubscriptionPreferenceArgs as $, type PreferenceFilter as A, type BaseDeleteSubscriptionArgs as B, type ChannelConnectionResponse as C, type DaySchedule as D, type EventHandler as E, type FiltersCountResponse as F, type GenerateChatOAuthUrlArgs as G, PreferenceLevel as H, type InboxNotification as I, type PreferencesResponse as J, Schedule as K, type ListChannelConnectionsArgs as L, type SocketEventNames as M, Notification as N, type SocketTypeOption as O, Preference as P, type StandardNovuOptions as Q, type Subscriber as R, SeverityLevelEnum as S, type TagsFilter as T, SubscriptionPreference as U, type TagsFilterAndForm as V, type TagsFilterOrGroup as W, type TimeRange as X, TopicSubscription as Y, type UnreadCount as Z, type UpdateSubscriptionArgs as _, type NotificationFilter as a, WebSocketEvent as a0, type WeeklySchedule as a1, WorkflowCriticalityEnum as a2, type WorkflowFilter as a3, type WorkflowGroupFilter as a4, type WorkflowIdentifierOrId as a5, type ConnectionMode as a6, InboxService as a7, NovuEventEmitter as a8, type Session as a9, type Result as aa, ScheduleCache as ab, type UpdateScheduleArgs as ac, PreferencesCache as ad, type ListPreferencesArgs as ae, type BasePreferenceArgs as af, type InstancePreferenceArgs as ag, type ListNotificationsArgs as ah, type FilterCountArgs as ai, type FilterCountResponse as aj, type FiltersCountArgs as ak, type BaseArgs as al, type InstanceArgs as am, type SnoozeArgs as an, SubscriptionsCache as ao, type Options as ap, type EventNames as aq, type ContextValue as ar, type BaseUpdateSubscriptionArgs as b, type ChannelEndpointResponse as c, type ChannelPreference as d, ChannelType as e, type Context as f, type CreateChannelConnectionArgs as g, type CreateChannelEndpointArgs as h, type CreateSubscriptionArgs as i, type DefaultSchedule as j, type DeleteChannelConnectionArgs as k, type DeleteChannelEndpointArgs as l, type DeleteSubscriptionArgs as m, type Events as n, type GetChannelConnectionArgs as o, type GetChannelEndpointArgs as p, type GetSubscriptionArgs as q, type InstanceDeleteSubscriptionArgs as r, type InstanceUpdateSubscriptionArgs as s, type ListChannelEndpointsArgs as t, type ListNotificationsResponse as u, type ListSubscriptionsArgs as v, NotificationStatus as w, NovuError as x, type NovuOptions as y, type NovuSocketOptions as z };
1043
+ export { type UpdateSubscriptionPreferenceArgs as $, type PreferenceFilter as A, type BaseDeleteSubscriptionArgs as B, type ChannelConnectionResponse as C, type DaySchedule as D, type EventHandler as E, type FiltersCountResponse as F, type GenerateChatOAuthUrlArgs as G, PreferenceLevel as H, type InboxNotification as I, type PreferencesResponse as J, Schedule as K, type ListChannelConnectionsArgs as L, type SocketEventNames as M, Notification as N, type SocketTypeOption as O, Preference as P, type StandardNovuOptions as Q, type Subscriber as R, SeverityLevelEnum as S, type TagsFilter as T, SubscriptionPreference as U, type TagsFilterAndForm as V, type TagsFilterOrGroup as W, type TimeRange as X, TopicSubscription as Y, type UnreadCount as Z, type UpdateSubscriptionArgs as _, type NotificationFilter as a, WebSocketEvent as a0, type WeeklySchedule as a1, WorkflowCriticalityEnum as a2, type WorkflowFilter as a3, type WorkflowGroupFilter as a4, type WorkflowIdentifierOrId as a5, type ConnectionMode as a6, InboxService as a7, NovuEventEmitter as a8, type Session as a9, type Result as aa, ScheduleCache as ab, type UpdateScheduleArgs as ac, PreferencesCache as ad, type ListPreferencesArgs as ae, type BasePreferenceArgs as af, type InstancePreferenceArgs as ag, type ListNotificationsArgs as ah, type FilterCountArgs as ai, type FilterCountResponse as aj, type FiltersCountArgs as ak, type BaseArgs as al, type InstanceArgs as am, type SnoozeArgs as an, type GenerateConnectOAuthUrlArgs as ao, type GenerateLinkUserOAuthUrlArgs as ap, SubscriptionsCache as aq, type Options as ar, type EventNames as as, type ContextValue as at, type BaseUpdateSubscriptionArgs as b, type ChannelEndpointResponse as c, type ChannelPreference as d, ChannelType as e, type Context as f, type CreateChannelConnectionArgs as g, type CreateChannelEndpointArgs as h, type CreateSubscriptionArgs as i, type DefaultSchedule as j, type DeleteChannelConnectionArgs as k, type DeleteChannelEndpointArgs as l, type DeleteSubscriptionArgs as m, type Events as n, type GetChannelConnectionArgs as o, type GetChannelEndpointArgs as p, type GetSubscriptionArgs as q, type InstanceDeleteSubscriptionArgs as r, type InstanceUpdateSubscriptionArgs as s, type ListChannelEndpointsArgs as t, type ListNotificationsResponse as u, type ListSubscriptionsArgs as v, NotificationStatus as w, NovuError as x, type NovuOptions as y, type NovuSocketOptions as z };
@@ -1,7 +1,7 @@
1
1
  export * from 'json-logic-js';
2
- import { S as SeverityLevelEnum, T as TagsFilter, N as Notification, a as NotificationFilter } from './inbox-service-CEMMLHsX.js';
3
- export { B as BaseDeleteSubscriptionArgs, b as BaseUpdateSubscriptionArgs, C as ChannelConnectionResponse, c as ChannelEndpointResponse, d as ChannelPreference, e as ChannelType, f as Context, g as CreateChannelConnectionArgs, h as CreateChannelEndpointArgs, i as CreateSubscriptionArgs, D as DaySchedule, j as DefaultSchedule, k as DeleteChannelConnectionArgs, l as DeleteChannelEndpointArgs, m as DeleteSubscriptionArgs, E as EventHandler, n as Events, F as FiltersCountResponse, G as GenerateChatOAuthUrlArgs, o as GetChannelConnectionArgs, p as GetChannelEndpointArgs, q as GetSubscriptionArgs, I as InboxNotification, r as InstanceDeleteSubscriptionArgs, s as InstanceUpdateSubscriptionArgs, L as ListChannelConnectionsArgs, t as ListChannelEndpointsArgs, u as ListNotificationsResponse, v as ListSubscriptionsArgs, w as NotificationStatus, x as NovuError, y as NovuOptions, z as NovuSocketOptions, P as Preference, A as PreferenceFilter, H as PreferenceLevel, J as PreferencesResponse, K as Schedule, M as SocketEventNames, O as SocketTypeOption, Q as StandardNovuOptions, R as Subscriber, U as SubscriptionPreference, V as TagsFilterAndForm, W as TagsFilterOrGroup, X as TimeRange, Y as TopicSubscription, Z as UnreadCount, _ as UpdateSubscriptionArgs, $ as UpdateSubscriptionPreferenceArgs, a0 as WebSocketEvent, a1 as WeeklySchedule, a2 as WorkflowCriticalityEnum, a3 as WorkflowFilter, a4 as WorkflowGroupFilter, a5 as WorkflowIdentifierOrId } from './inbox-service-CEMMLHsX.js';
4
- export { N as Novu } from './novu-ChPiHuXt.js';
2
+ import { S as SeverityLevelEnum, T as TagsFilter, N as Notification, a as NotificationFilter } from './inbox-service-CGCuuYnv.js';
3
+ export { B as BaseDeleteSubscriptionArgs, b as BaseUpdateSubscriptionArgs, C as ChannelConnectionResponse, c as ChannelEndpointResponse, d as ChannelPreference, e as ChannelType, f as Context, g as CreateChannelConnectionArgs, h as CreateChannelEndpointArgs, i as CreateSubscriptionArgs, D as DaySchedule, j as DefaultSchedule, k as DeleteChannelConnectionArgs, l as DeleteChannelEndpointArgs, m as DeleteSubscriptionArgs, E as EventHandler, n as Events, F as FiltersCountResponse, G as GenerateChatOAuthUrlArgs, o as GetChannelConnectionArgs, p as GetChannelEndpointArgs, q as GetSubscriptionArgs, I as InboxNotification, r as InstanceDeleteSubscriptionArgs, s as InstanceUpdateSubscriptionArgs, L as ListChannelConnectionsArgs, t as ListChannelEndpointsArgs, u as ListNotificationsResponse, v as ListSubscriptionsArgs, w as NotificationStatus, x as NovuError, y as NovuOptions, z as NovuSocketOptions, P as Preference, A as PreferenceFilter, H as PreferenceLevel, J as PreferencesResponse, K as Schedule, M as SocketEventNames, O as SocketTypeOption, Q as StandardNovuOptions, R as Subscriber, U as SubscriptionPreference, V as TagsFilterAndForm, W as TagsFilterOrGroup, X as TimeRange, Y as TopicSubscription, Z as UnreadCount, _ as UpdateSubscriptionArgs, $ as UpdateSubscriptionPreferenceArgs, a0 as WebSocketEvent, a1 as WeeklySchedule, a2 as WorkflowCriticalityEnum, a3 as WorkflowFilter, a4 as WorkflowGroupFilter, a5 as WorkflowIdentifierOrId } from './inbox-service-CGCuuYnv.js';
4
+ export { N as Novu } from './novu-CmNBco-0.js';
5
5
 
6
6
  /**
7
7
  * Normalizes inbox tag filters to CNF: `string[][]` where each inner array is one OR-group.
@@ -11,6 +11,19 @@ declare function normalizeTagGroups(tags: TagsFilter | undefined): string[][];
11
11
  declare const areTagsEqual: (tags1?: TagsFilter, tags2?: TagsFilter) => boolean;
12
12
  declare const areSeveritiesEqual: (el1?: SeverityLevelEnum | SeverityLevelEnum[], el2?: SeverityLevelEnum | SeverityLevelEnum[]) => boolean;
13
13
  declare const isSameFilter: (filter1: NotificationFilter, filter2: NotificationFilter) => boolean;
14
+ /**
15
+ * Check whether a notification's `data` matches the supplied filter shape.
16
+ *
17
+ * Supports per-key:
18
+ * - scalar (exact equality)
19
+ * - `Scalar[]` (OR — match any)
20
+ * - `{ or: Scalar[] }` (explicit OR)
21
+ * - `{ and: [{ or: Scalar[] }, ...] }` (AND of OR-groups)
22
+ * - 1 level of nested objects whose sub-keys follow the same rules
23
+ *
24
+ * Mirrors the server-side semantics from `@novu/shared#checkDataFilterMatches`
25
+ * so realtime, cache, and counts stay consistent.
26
+ */
14
27
  declare function checkNotificationDataFilter(notificationData: Notification['data'], filterData: NotificationFilter['data']): boolean;
15
28
  /**
16
29
  * Complete notification filter check combining all criteria.
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk6I5A5OGE_js = require('./chunk-6I5A5OGE.js');
3
+ var chunkSP44ETLM_js = require('./chunk-SP44ETLM.js');
4
4
  var chunkWDGG3OER_js = require('./chunk-WDGG3OER.js');
5
5
  require('./chunk-7B52C2XE.js');
6
6
 
@@ -8,39 +8,39 @@ require('./chunk-7B52C2XE.js');
8
8
 
9
9
  Object.defineProperty(exports, "Novu", {
10
10
  enumerable: true,
11
- get: function () { return chunk6I5A5OGE_js.Novu; }
11
+ get: function () { return chunkSP44ETLM_js.Novu; }
12
12
  });
13
13
  Object.defineProperty(exports, "SubscriptionPreference", {
14
14
  enumerable: true,
15
- get: function () { return chunk6I5A5OGE_js.SubscriptionPreference; }
15
+ get: function () { return chunkSP44ETLM_js.SubscriptionPreference; }
16
16
  });
17
17
  Object.defineProperty(exports, "TopicSubscription", {
18
18
  enumerable: true,
19
- get: function () { return chunk6I5A5OGE_js.TopicSubscription; }
19
+ get: function () { return chunkSP44ETLM_js.TopicSubscription; }
20
20
  });
21
21
  Object.defineProperty(exports, "areSeveritiesEqual", {
22
22
  enumerable: true,
23
- get: function () { return chunk6I5A5OGE_js.areSeveritiesEqual; }
23
+ get: function () { return chunkSP44ETLM_js.areSeveritiesEqual; }
24
24
  });
25
25
  Object.defineProperty(exports, "areTagsEqual", {
26
26
  enumerable: true,
27
- get: function () { return chunk6I5A5OGE_js.areTagsEqual; }
27
+ get: function () { return chunkSP44ETLM_js.areTagsEqual; }
28
28
  });
29
29
  Object.defineProperty(exports, "checkNotificationDataFilter", {
30
30
  enumerable: true,
31
- get: function () { return chunk6I5A5OGE_js.checkNotificationDataFilter; }
31
+ get: function () { return chunkSP44ETLM_js.checkNotificationDataFilter; }
32
32
  });
33
33
  Object.defineProperty(exports, "checkNotificationMatchesFilter", {
34
34
  enumerable: true,
35
- get: function () { return chunk6I5A5OGE_js.checkNotificationMatchesFilter; }
35
+ get: function () { return chunkSP44ETLM_js.checkNotificationMatchesFilter; }
36
36
  });
37
37
  Object.defineProperty(exports, "isSameFilter", {
38
38
  enumerable: true,
39
- get: function () { return chunk6I5A5OGE_js.isSameFilter; }
39
+ get: function () { return chunkSP44ETLM_js.isSameFilter; }
40
40
  });
41
41
  Object.defineProperty(exports, "normalizeTagGroups", {
42
42
  enumerable: true,
43
- get: function () { return chunk6I5A5OGE_js.normalizeTagGroups; }
43
+ get: function () { return chunkSP44ETLM_js.normalizeTagGroups; }
44
44
  });
45
45
  Object.defineProperty(exports, "ChannelType", {
46
46
  enumerable: true,
@@ -1,4 +1,4 @@
1
- import { f as Context, R as Subscriber, a8 as NovuEventEmitter, a7 as InboxService, I as InboxNotification, N as Notification } from '../inbox-service-CEMMLHsX.js';
1
+ import { f as Context, R as Subscriber, a8 as NovuEventEmitter, a7 as InboxService, I as InboxNotification, N as Notification } from '../inbox-service-CGCuuYnv.js';
2
2
  import 'json-logic-js';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { a7 as InboxService, a8 as NovuEventEmitter, a9 as Session, aa as Result, ab as ScheduleCache, K as Schedule, ac as UpdateScheduleArgs, ad as PreferencesCache, ae as ListPreferencesArgs, P as Preference, af as BasePreferenceArgs, ag as InstancePreferenceArgs, ah as ListNotificationsArgs, u as ListNotificationsResponse, I as InboxNotification, N as Notification, a as NotificationFilter, ai as FilterCountArgs, aj as FilterCountResponse, ak as FiltersCountArgs, F as FiltersCountResponse, al as BaseArgs, am as InstanceArgs, an as SnoozeArgs, G as GenerateChatOAuthUrlArgs, L as ListChannelConnectionsArgs, C as ChannelConnectionResponse, o as GetChannelConnectionArgs, k as DeleteChannelConnectionArgs, t as ListChannelEndpointsArgs, c as ChannelEndpointResponse, p as GetChannelEndpointArgs, h as CreateChannelEndpointArgs, l as DeleteChannelEndpointArgs, ao as SubscriptionsCache, R as Subscriber, v as ListSubscriptionsArgs, ap as Options, Y as TopicSubscription, q as GetSubscriptionArgs, i as CreateSubscriptionArgs, b as BaseUpdateSubscriptionArgs, s as InstanceUpdateSubscriptionArgs, B as BaseDeleteSubscriptionArgs, r as InstanceDeleteSubscriptionArgs, M as SocketEventNames, aq as EventNames, E as EventHandler, n as Events, ar as ContextValue, y as NovuOptions, f as Context } from './inbox-service-CEMMLHsX.mjs';
1
+ import { a7 as InboxService, a8 as NovuEventEmitter, a9 as Session, aa as Result, ab as ScheduleCache, K as Schedule, ac as UpdateScheduleArgs, ad as PreferencesCache, ae as ListPreferencesArgs, P as Preference, af as BasePreferenceArgs, ag as InstancePreferenceArgs, ah as ListNotificationsArgs, u as ListNotificationsResponse, I as InboxNotification, N as Notification, a as NotificationFilter, ai as FilterCountArgs, aj as FilterCountResponse, ak as FiltersCountArgs, F as FiltersCountResponse, al as BaseArgs, am as InstanceArgs, an as SnoozeArgs, G as GenerateChatOAuthUrlArgs, ao as GenerateConnectOAuthUrlArgs, L as ListChannelConnectionsArgs, C as ChannelConnectionResponse, o as GetChannelConnectionArgs, k as DeleteChannelConnectionArgs, ap as GenerateLinkUserOAuthUrlArgs, t as ListChannelEndpointsArgs, c as ChannelEndpointResponse, p as GetChannelEndpointArgs, h as CreateChannelEndpointArgs, l as DeleteChannelEndpointArgs, aq as SubscriptionsCache, R as Subscriber, v as ListSubscriptionsArgs, ar as Options, Y as TopicSubscription, q as GetSubscriptionArgs, i as CreateSubscriptionArgs, b as BaseUpdateSubscriptionArgs, s as InstanceUpdateSubscriptionArgs, B as BaseDeleteSubscriptionArgs, r as InstanceDeleteSubscriptionArgs, M as SocketEventNames, as as EventNames, E as EventHandler, n as Events, at as ContextValue, y as NovuOptions, f as Context } from './inbox-service-CGCuuYnv.js';
2
2
 
3
3
  declare class BaseModule {
4
4
  #private;
@@ -135,9 +135,15 @@ declare class ChannelConnections extends BaseModule {
135
135
  inboxServiceInstance: InboxService;
136
136
  eventEmitterInstance: NovuEventEmitter;
137
137
  });
138
+ /**
139
+ * @deprecated Use generateConnectOAuthUrl() instead. For user-level linking use channelEndpoints.generateLinkUserOAuthUrl().
140
+ */
138
141
  generateOAuthUrl(args: GenerateChatOAuthUrlArgs): Result<{
139
142
  url: string;
140
143
  }>;
144
+ generateConnectOAuthUrl(args: GenerateConnectOAuthUrlArgs): Result<{
145
+ url: string;
146
+ }>;
141
147
  list(args?: ListChannelConnectionsArgs): Result<ChannelConnectionResponse[]>;
142
148
  get(args: GetChannelConnectionArgs): Result<ChannelConnectionResponse | null>;
143
149
  delete(args: DeleteChannelConnectionArgs): Result<void>;
@@ -148,6 +154,9 @@ declare class ChannelEndpoints extends BaseModule {
148
154
  inboxServiceInstance: InboxService;
149
155
  eventEmitterInstance: NovuEventEmitter;
150
156
  });
157
+ generateLinkUserOAuthUrl(args: GenerateLinkUserOAuthUrlArgs): Result<{
158
+ url: string;
159
+ }>;
151
160
  list(args?: ListChannelEndpointsArgs): Result<ChannelEndpointResponse[]>;
152
161
  get(args: GetChannelEndpointArgs): Result<ChannelEndpointResponse | null>;
153
162
  create(args: CreateChannelEndpointArgs): Result<ChannelEndpointResponse>;
@@ -1,7 +1,7 @@
1
- import { L as InboxTheme, a3 as SubscriptionTheme } from '../types-CPxEgcM4.js';
2
- import '../inbox-service-CEMMLHsX.js';
1
+ import { L as InboxTheme, a6 as SubscriptionTheme } from '../types-BF6zvyj6.js';
2
+ import '../inbox-service-CGCuuYnv.js';
3
3
  import 'json-logic-js';
4
- import '../novu-ChPiHuXt.js';
4
+ import '../novu-CmNBco-0.js';
5
5
 
6
6
  declare const inboxDarkTheme: InboxTheme;
7
7
  /**