@futdevpro/nts-dynamo 1.15.359 → 1.15.363

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 (85) hide show
  1. package/build/_modules/git-sync/_models/git-sync.interface.d.ts +94 -0
  2. package/build/_modules/git-sync/_models/git-sync.interface.d.ts.map +1 -0
  3. package/build/_modules/git-sync/_models/git-sync.interface.js +3 -0
  4. package/build/_modules/git-sync/_models/git-sync.interface.js.map +1 -0
  5. package/build/_modules/git-sync/git-sync-input.util.d.ts +28 -0
  6. package/build/_modules/git-sync/git-sync-input.util.d.ts.map +1 -0
  7. package/build/_modules/git-sync/git-sync-input.util.js +146 -0
  8. package/build/_modules/git-sync/git-sync-input.util.js.map +1 -0
  9. package/build/_modules/git-sync/git-sync.service.d.ts +54 -0
  10. package/build/_modules/git-sync/git-sync.service.d.ts.map +1 -0
  11. package/build/_modules/git-sync/git-sync.service.js +274 -0
  12. package/build/_modules/git-sync/git-sync.service.js.map +1 -0
  13. package/build/_modules/git-sync/index.d.ts +8 -0
  14. package/build/_modules/git-sync/index.d.ts.map +1 -0
  15. package/build/_modules/git-sync/index.js +11 -0
  16. package/build/_modules/git-sync/index.js.map +1 -0
  17. package/build/_modules/imap/_models/imap-mailbox-status.interface.d.ts +10 -0
  18. package/build/_modules/imap/_models/imap-mailbox-status.interface.d.ts.map +1 -0
  19. package/build/_modules/imap/_models/imap-mailbox-status.interface.js +3 -0
  20. package/build/_modules/imap/_models/imap-mailbox-status.interface.js.map +1 -0
  21. package/build/_modules/imap/_models/imap-message-meta.interface.d.ts +18 -0
  22. package/build/_modules/imap/_models/imap-message-meta.interface.d.ts.map +1 -0
  23. package/build/_modules/imap/_models/imap-message-meta.interface.js +3 -0
  24. package/build/_modules/imap/_models/imap-message-meta.interface.js.map +1 -0
  25. package/build/_modules/imap/_models/imap-sync.interface.d.ts +22 -0
  26. package/build/_modules/imap/_models/imap-sync.interface.d.ts.map +1 -0
  27. package/build/_modules/imap/_models/imap-sync.interface.js +3 -0
  28. package/build/_modules/imap/_models/imap-sync.interface.js.map +1 -0
  29. package/build/_modules/imap/_models/imap-transport.interface.d.ts +16 -0
  30. package/build/_modules/imap/_models/imap-transport.interface.d.ts.map +1 -0
  31. package/build/_modules/imap/_models/imap-transport.interface.js +3 -0
  32. package/build/_modules/imap/_models/imap-transport.interface.js.map +1 -0
  33. package/build/_modules/imap/imap-flow.transport.d.ts +58 -0
  34. package/build/_modules/imap/imap-flow.transport.d.ts.map +1 -0
  35. package/build/_modules/imap/imap-flow.transport.js +156 -0
  36. package/build/_modules/imap/imap-flow.transport.js.map +1 -0
  37. package/build/_modules/imap/imap-inbox.service.d.ts +36 -0
  38. package/build/_modules/imap/imap-inbox.service.d.ts.map +1 -0
  39. package/build/_modules/imap/imap-inbox.service.js +81 -0
  40. package/build/_modules/imap/imap-inbox.service.js.map +1 -0
  41. package/build/_modules/imap/index.d.ts +11 -0
  42. package/build/_modules/imap/index.d.ts.map +1 -0
  43. package/build/_modules/imap/index.js +14 -0
  44. package/build/_modules/imap/index.js.map +1 -0
  45. package/build/_modules/notifications/_models/notification-mongo-collection.interface.d.ts +21 -0
  46. package/build/_modules/notifications/_models/notification-mongo-collection.interface.d.ts.map +1 -0
  47. package/build/_modules/notifications/_models/notification-mongo-collection.interface.js +3 -0
  48. package/build/_modules/notifications/_models/notification-mongo-collection.interface.js.map +1 -0
  49. package/build/_modules/notifications/_models/notification-publisher.interface.d.ts +32 -0
  50. package/build/_modules/notifications/_models/notification-publisher.interface.d.ts.map +1 -0
  51. package/build/_modules/notifications/_models/notification-publisher.interface.js +3 -0
  52. package/build/_modules/notifications/_models/notification-publisher.interface.js.map +1 -0
  53. package/build/_modules/notifications/_models/notification-store.interface.d.ts +35 -0
  54. package/build/_modules/notifications/_models/notification-store.interface.d.ts.map +1 -0
  55. package/build/_modules/notifications/_models/notification-store.interface.js +3 -0
  56. package/build/_modules/notifications/_models/notification-store.interface.js.map +1 -0
  57. package/build/_modules/notifications/_models/notification.interface.d.ts +59 -0
  58. package/build/_modules/notifications/_models/notification.interface.d.ts.map +1 -0
  59. package/build/_modules/notifications/_models/notification.interface.js +3 -0
  60. package/build/_modules/notifications/_models/notification.interface.js.map +1 -0
  61. package/build/_modules/notifications/get-notifications-routing-module.util.d.ts +18 -0
  62. package/build/_modules/notifications/get-notifications-routing-module.util.d.ts.map +1 -0
  63. package/build/_modules/notifications/get-notifications-routing-module.util.js +26 -0
  64. package/build/_modules/notifications/get-notifications-routing-module.util.js.map +1 -0
  65. package/build/_modules/notifications/index.d.ts +15 -0
  66. package/build/_modules/notifications/index.d.ts.map +1 -0
  67. package/build/_modules/notifications/index.js +18 -0
  68. package/build/_modules/notifications/index.js.map +1 -0
  69. package/build/_modules/notifications/notification-in-memory.store.d.ts +30 -0
  70. package/build/_modules/notifications/notification-in-memory.store.d.ts.map +1 -0
  71. package/build/_modules/notifications/notification-in-memory.store.js +68 -0
  72. package/build/_modules/notifications/notification-in-memory.store.js.map +1 -0
  73. package/build/_modules/notifications/notification-mongo.store.d.ts +51 -0
  74. package/build/_modules/notifications/notification-mongo.store.d.ts.map +1 -0
  75. package/build/_modules/notifications/notification-mongo.store.js +136 -0
  76. package/build/_modules/notifications/notification-mongo.store.js.map +1 -0
  77. package/build/_modules/notifications/notification.service.d.ts +67 -0
  78. package/build/_modules/notifications/notification.service.d.ts.map +1 -0
  79. package/build/_modules/notifications/notification.service.js +271 -0
  80. package/build/_modules/notifications/notification.service.js.map +1 -0
  81. package/build/_modules/notifications/notifications.controller.d.ts +31 -0
  82. package/build/_modules/notifications/notifications.controller.d.ts.map +1 -0
  83. package/build/_modules/notifications/notifications.controller.js +118 -0
  84. package/build/_modules/notifications/notifications.controller.js.map +1 -0
  85. package/package.json +33 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-sync.service.js","sourceRoot":"","sources":["../../../src/_modules/git-sync/git-sync.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * BFR-OLDLIGHTSITE-003 — `@futdevpro/nts-dynamo/git-sync`: a caller-built file set synchronised into a git repository
3
+ * as ONE pushed commit, with the token from the FDP Keystore (`<credentialRef>_TOKEN`). Needs the `git` binary.
4
+ */
5
+ export * from './_models/git-sync.interface';
6
+ export * from './git-sync-input.util';
7
+ export * from './git-sync.service';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/git-sync/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /**
5
+ * BFR-OLDLIGHTSITE-003 — `@futdevpro/nts-dynamo/git-sync`: a caller-built file set synchronised into a git repository
6
+ * as ONE pushed commit, with the token from the FDP Keystore (`<credentialRef>_TOKEN`). Needs the `git` binary.
7
+ */
8
+ tslib_1.__exportStar(require("./_models/git-sync.interface"), exports);
9
+ tslib_1.__exportStar(require("./git-sync-input.util"), exports);
10
+ tslib_1.__exportStar(require("./git-sync.service"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/git-sync/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uEAA6C;AAC7C,gEAAsC;AACtC,6DAAmC"}
@@ -0,0 +1,10 @@
1
+ /** BFR-OLDLIGHTSITE-002 — the mailbox state a sync decision needs. */
2
+ export interface DyNTS_ImapMailboxStatus_Interface {
3
+ /** UIDVALIDITY as a STRING (it is a bigint on the wire; a string is JSON-safe for storing a cursor). */
4
+ uidValidity: string;
5
+ /** The predicted next UID (every existing message has a smaller one). */
6
+ uidNext: number;
7
+ unseen: number;
8
+ messages: number;
9
+ }
10
+ //# sourceMappingURL=imap-mailbox-status.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-mailbox-status.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/imap/_models/imap-mailbox-status.interface.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,WAAW,iCAAiC;IAChD,wGAAwG;IACxG,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=imap-mailbox-status.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-mailbox-status.interface.js","sourceRoot":"","sources":["../../../../src/_modules/imap/_models/imap-mailbox-status.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ /** BFR-OLDLIGHTSITE-002 — one inbox message, METADATA only (no body, no attachment). */
2
+ export interface DyNTS_ImapMessageMeta_Interface {
3
+ /** The IMAP UID (stable inside one UIDVALIDITY). */
4
+ uid: number;
5
+ /** The `Message-ID` header ('' when missing). */
6
+ messageId: string;
7
+ subject: string;
8
+ /** Sender addresses (`name <address>` or the bare address). */
9
+ from: string[];
10
+ to: string[];
11
+ /** The envelope date, else the server's internal date; `null` when neither parses. */
12
+ date: Date | null;
13
+ /** The `\Seen` flag. */
14
+ seen: boolean;
15
+ /** Size in octets (0 when the server did not report it). */
16
+ size: number;
17
+ }
18
+ //# sourceMappingURL=imap-message-meta.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-message-meta.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/imap/_models/imap-message-meta.interface.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,WAAW,+BAA+B;IAC9C,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,sFAAsF;IACtF,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,wBAAwB;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=imap-message-meta.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-message-meta.interface.js","sourceRoot":"","sources":["../../../../src/_modules/imap/_models/imap-message-meta.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { DyNTS_ImapMessageMeta_Interface } from './imap-message-meta.interface';
2
+ /** BFR-OLDLIGHTSITE-002 — where a sync stopped; the caller stores it and passes it back next time. */
3
+ export interface DyNTS_ImapSyncCursor_Interface {
4
+ uidValidity: string;
5
+ /** The highest UID already delivered (0 = none). */
6
+ lastUid: number;
7
+ }
8
+ /** BFR-OLDLIGHTSITE-002 — one sync step. */
9
+ export interface DyNTS_ImapSyncResult_Interface {
10
+ /** Store this; pass it to the next `syncInbox` call. */
11
+ cursor: DyNTS_ImapSyncCursor_Interface;
12
+ /** New messages since the cursor, ascending by UID. */
13
+ messages: DyNTS_ImapMessageMeta_Interface[];
14
+ /**
15
+ * `true` when the old cursor could not be continued (first sync, or the mailbox's UIDVALIDITY changed — the server
16
+ * renumbered it): the caller must treat `messages` as a fresh start, not as an increment.
17
+ */
18
+ reset: boolean;
19
+ /** More new messages are waiting (the batch was full) — call again with the returned cursor. */
20
+ hasMore: boolean;
21
+ }
22
+ //# sourceMappingURL=imap-sync.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-sync.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/imap/_models/imap-sync.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAEhF,sGAAsG;AACtG,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,4CAA4C;AAC5C,MAAM,WAAW,8BAA8B;IAC7C,wDAAwD;IACxD,MAAM,EAAE,8BAA8B,CAAC;IACvC,uDAAuD;IACvD,QAAQ,EAAE,+BAA+B,EAAE,CAAC;IAC5C;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,gGAAgG;IAChG,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=imap-sync.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-sync.interface.js","sourceRoot":"","sources":["../../../../src/_modules/imap/_models/imap-sync.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { DyNTS_ImapMailboxStatus_Interface } from './imap-mailbox-status.interface';
2
+ import { DyNTS_ImapMessageMeta_Interface } from './imap-message-meta.interface';
3
+ /**
4
+ * BFR-OLDLIGHTSITE-002 — what the inbox service needs from an IMAP connection. The default implementation is
5
+ * `DyNTS_ImapFlow_Transport` (imapflow); a test replaces it with an in-memory fake.
6
+ */
7
+ export interface DyNTS_ImapTransport_Interface {
8
+ status(mailbox: string): Promise<DyNTS_ImapMailboxStatus_Interface>;
9
+ /**
10
+ * Messages with UID ≥ `fromUid`, ascending, at most `limit`. ⚠️ An implementation may ALSO return the newest message
11
+ * when `fromUid` is beyond the last UID (IMAP `N:*` semantics) — the service filters, the transport need not.
12
+ */
13
+ fetchMetaFromUid(mailbox: string, fromUid: number, limit: number): Promise<DyNTS_ImapMessageMeta_Interface[]>;
14
+ close(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=imap-transport.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-transport.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/imap/_models/imap-transport.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACpE;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAAC;IAC9G,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=imap-transport.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-transport.interface.js","sourceRoot":"","sources":["../../../../src/_modules/imap/_models/imap-transport.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import type { FetchMessageObject, ImapFlow, ImapFlowOptions } from 'imapflow';
2
+ import { DyNTS_EmailAccountResolution_Type } from '../../_collections/email-account.util';
3
+ import { DyNTS_ImapMailboxStatus_Interface } from './_models/imap-mailbox-status.interface';
4
+ import { DyNTS_ImapMessageMeta_Interface } from './_models/imap-message-meta.interface';
5
+ import { DyNTS_ImapTransport_Interface } from './_models/imap-transport.interface';
6
+ /** The part of `ImapFlow` this transport uses (a test passes a fake). */
7
+ export type DyNTS_ImapFlowClient_Type = Pick<ImapFlow, 'connect' | 'logout' | 'status' | 'getMailboxLock' | 'fetch'>;
8
+ /** Builds the client of one connection (the default loads imapflow lazily; a test passes a fake). */
9
+ export type DyNTS_ImapFlowClientFactory_Type = (options: ImapFlowOptions) => Promise<DyNTS_ImapFlowClient_Type>;
10
+ /** Connection settings of one IMAP account. */
11
+ export interface DyNTS_ImapFlowTransport_Settings_Interface {
12
+ host: string;
13
+ port: number;
14
+ user: string;
15
+ pass: string;
16
+ /** Implicit TLS; default: `true` on port 993, else STARTTLS when offered. */
17
+ secure?: boolean;
18
+ }
19
+ /**
20
+ * BFR-OLDLIGHTSITE-002 — the default IMAP transport, over `imapflow` (an OPTIONAL peer dependency: only a project that
21
+ * imports `@futdevpro/nts-dynamo/imap` needs it installed).
22
+ *
23
+ * @description One connection per call (connect → lock the mailbox → work → release → logout), so a long-running
24
+ * server never holds a stale IMAP session. imapflow's own logger is OFF: it would print protocol traffic, which can
25
+ * include the login.
26
+ */
27
+ export declare class DyNTS_ImapFlow_Transport implements DyNTS_ImapTransport_Interface {
28
+ private readonly settings;
29
+ private readonly clientFactory;
30
+ constructor(settings: DyNTS_ImapFlowTransport_Settings_Interface, clientFactory?: DyNTS_ImapFlowClientFactory_Type);
31
+ /** The lazy import of the optional peer (a literal specifier — the `verify:lazy-peers` gate checks it). */
32
+ static importImapFlow: () => Promise<{
33
+ ImapFlow: typeof ImapFlow;
34
+ }>;
35
+ /** A real imapflow client; a missing `imapflow` is a 501 `DyNTS-OPT-MIS` that says what to install. */
36
+ static defaultClientFactory(options: ImapFlowOptions): Promise<DyNTS_ImapFlowClient_Type>;
37
+ /**
38
+ * The transport of a Keystore-referenced account — the SAME key pattern as the SMTP accounts
39
+ * (`<REF>_HOST` / `_PORT` / `_USER` / `_PASS`, see `DyNTS_EmailAccount_Util`). Not configured → `transport: null` and
40
+ * the resolution (key NAMES only).
41
+ */
42
+ static fromCredentialRef(ref: {
43
+ credentialRef: string;
44
+ env?: NodeJS.ProcessEnv;
45
+ secure?: boolean;
46
+ }): {
47
+ transport: DyNTS_ImapFlow_Transport | null;
48
+ resolution: DyNTS_EmailAccountResolution_Type;
49
+ };
50
+ status(mailbox: string): Promise<DyNTS_ImapMailboxStatus_Interface>;
51
+ fetchMetaFromUid(mailbox: string, fromUid: number, limit: number): Promise<DyNTS_ImapMessageMeta_Interface[]>;
52
+ /** Connections are per call — nothing to close. */
53
+ close(): Promise<void>;
54
+ /** imapflow's message → our metadata (addresses as `name <address>`, the date parsed, `\Seen` → seen). */
55
+ static toMeta(message: FetchMessageObject): DyNTS_ImapMessageMeta_Interface;
56
+ private withClient;
57
+ }
58
+ //# sourceMappingURL=imap-flow.transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-flow.transport.d.ts","sourceRoot":"","sources":["../../../src/_modules/imap/imap-flow.transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAAE,QAAQ,EAAE,eAAe,EAC9C,MAAM,UAAU,CAAC;AAElB,OAAO,EAA2B,iCAAiC,EAAE,MAAM,uCAAuC,CAAC;AAEnH,OAAO,EAAE,iCAAiC,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,yEAAyE;AACzE,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,gBAAgB,GAAG,OAAO,CAAC,CAAC;AAErH,qGAAqG;AACrG,MAAM,MAAM,gCAAgC,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;AAEhH,+CAA+C;AAC/C,MAAM,WAAW,0CAA0C;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAyB,YAAW,6BAA6B;IAG1E,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,QAAQ,EAAE,0CAA0C,EACpD,aAAa,GAAE,gCAAgF;IAGlH,2GAA2G;IAC3G,MAAM,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,QAAQ,CAAA;KAAE,CAAC,CACA;IAEnE,uGAAuG;WAC1F,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAS/F;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QACnG,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAC;QAC3C,UAAU,EAAE,iCAAiC,CAAC;KAC/C;IAoBK,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAenE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,EAAE,CAAC;IAwBnH,mDAAmD;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,0GAA0G;IAC1G,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,+BAA+B;YAqB7D,UAAU;CAiBzB"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DyNTS_ImapFlow_Transport = void 0;
37
+ const email_account_util_1 = require("../../_collections/email-account.util");
38
+ const optional_peer_util_1 = require("../../_collections/optional-peer.util");
39
+ /**
40
+ * BFR-OLDLIGHTSITE-002 — the default IMAP transport, over `imapflow` (an OPTIONAL peer dependency: only a project that
41
+ * imports `@futdevpro/nts-dynamo/imap` needs it installed).
42
+ *
43
+ * @description One connection per call (connect → lock the mailbox → work → release → logout), so a long-running
44
+ * server never holds a stale IMAP session. imapflow's own logger is OFF: it would print protocol traffic, which can
45
+ * include the login.
46
+ */
47
+ class DyNTS_ImapFlow_Transport {
48
+ settings;
49
+ clientFactory;
50
+ constructor(settings, clientFactory = DyNTS_ImapFlow_Transport.defaultClientFactory) {
51
+ this.settings = settings;
52
+ this.clientFactory = clientFactory;
53
+ }
54
+ /** The lazy import of the optional peer (a literal specifier — the `verify:lazy-peers` gate checks it). */
55
+ static importImapFlow = () => Promise.resolve().then(() => __importStar(require('imapflow')));
56
+ /** A real imapflow client; a missing `imapflow` is a 501 `DyNTS-OPT-MIS` that says what to install. */
57
+ static async defaultClientFactory(options) {
58
+ const imapflow = await optional_peer_util_1.DyNTS_OptionalPeer_Util.load({
59
+ packageName: 'imapflow', range: '>=2.0.7 <3', feature: 'the IMAP transport',
60
+ importer: () => DyNTS_ImapFlow_Transport.importImapFlow(),
61
+ });
62
+ return new imapflow.ImapFlow(options);
63
+ }
64
+ /**
65
+ * The transport of a Keystore-referenced account — the SAME key pattern as the SMTP accounts
66
+ * (`<REF>_HOST` / `_PORT` / `_USER` / `_PASS`, see `DyNTS_EmailAccount_Util`). Not configured → `transport: null` and
67
+ * the resolution (key NAMES only).
68
+ */
69
+ static fromCredentialRef(ref) {
70
+ const resolution = email_account_util_1.DyNTS_EmailAccount_Util.resolve({ credentialRef: ref.credentialRef, rootPath: '', env: ref.env });
71
+ if (resolution.status !== 'configured') {
72
+ return { transport: null, resolution: resolution };
73
+ }
74
+ return {
75
+ transport: new DyNTS_ImapFlow_Transport({
76
+ host: resolution.settings.host,
77
+ port: resolution.settings.port,
78
+ user: resolution.settings.email,
79
+ pass: resolution.settings.pass,
80
+ secure: ref.secure,
81
+ }),
82
+ resolution: resolution,
83
+ };
84
+ }
85
+ async status(mailbox) {
86
+ return this.withClient(async (client) => {
87
+ const status = await client.status(mailbox, {
88
+ messages: true, uidNext: true, uidValidity: true, unseen: true,
89
+ });
90
+ return {
91
+ uidValidity: String(status.uidValidity ?? ''),
92
+ uidNext: status.uidNext ?? 1,
93
+ unseen: status.unseen ?? 0,
94
+ messages: status.messages ?? 0,
95
+ };
96
+ });
97
+ }
98
+ async fetchMetaFromUid(mailbox, fromUid, limit) {
99
+ return this.withClient(async (client) => {
100
+ const lock = await client.getMailboxLock(mailbox);
101
+ const result = [];
102
+ try {
103
+ for await (const message of client.fetch(`${Math.max(1, Math.floor(fromUid))}:*`, { uid: true, envelope: true, flags: true, size: true, internalDate: true }, { uid: true })) {
104
+ result.push(DyNTS_ImapFlow_Transport.toMeta(message));
105
+ if (result.length >= limit) {
106
+ break;
107
+ }
108
+ }
109
+ }
110
+ finally {
111
+ lock.release();
112
+ }
113
+ return result;
114
+ });
115
+ }
116
+ /** Connections are per call — nothing to close. */
117
+ async close() {
118
+ return undefined;
119
+ }
120
+ /** imapflow's message → our metadata (addresses as `name <address>`, the date parsed, `\Seen` → seen). */
121
+ static toMeta(message) {
122
+ const address = (list) => (list ?? [])
123
+ .map((entry) => (entry.name ? `${entry.name} <${entry.address ?? ''}>` : String(entry.address ?? '')))
124
+ .filter((text) => text.length > 0);
125
+ const rawDate = message.envelope?.date ?? message.internalDate;
126
+ const date = rawDate ? new Date(rawDate) : null;
127
+ return {
128
+ uid: message.uid,
129
+ messageId: message.envelope?.messageId ?? '',
130
+ subject: message.envelope?.subject ?? '',
131
+ from: address(message.envelope?.from),
132
+ to: address(message.envelope?.to),
133
+ date: date && !Number.isNaN(date.getTime()) ? date : null,
134
+ seen: message.flags?.has('\\Seen') ?? false,
135
+ size: message.size ?? 0,
136
+ };
137
+ }
138
+ async withClient(work) {
139
+ const client = await this.clientFactory({
140
+ host: this.settings.host,
141
+ port: this.settings.port,
142
+ secure: this.settings.secure ?? this.settings.port === 993,
143
+ auth: { user: this.settings.user, pass: this.settings.pass },
144
+ logger: false,
145
+ });
146
+ await client.connect();
147
+ try {
148
+ return await work(client);
149
+ }
150
+ finally {
151
+ await client.logout().catch(() => undefined);
152
+ }
153
+ }
154
+ }
155
+ exports.DyNTS_ImapFlow_Transport = DyNTS_ImapFlow_Transport;
156
+ //# sourceMappingURL=imap-flow.transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-flow.transport.js","sourceRoot":"","sources":["../../../src/_modules/imap/imap-flow.transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { DyNTS_ImapSyncCursor_Interface, DyNTS_ImapSyncResult_Interface } from './_models/imap-sync.interface';
2
+ import { DyNTS_ImapTransport_Interface } from './_models/imap-transport.interface';
3
+ /** Settings of one inbox. */
4
+ export interface DyNTS_ImapInbox_Settings_Interface {
5
+ transport: DyNTS_ImapTransport_Interface;
6
+ /** Default `INBOX`. */
7
+ mailbox?: string;
8
+ /** Messages per `syncInbox` call (default 50, 1–500). */
9
+ batchSize?: number;
10
+ }
11
+ /**
12
+ * BFR-OLDLIGHTSITE-002 — a provider-independent IMAP inbox: unread count + an idempotent, cursor-based metadata sync.
13
+ *
14
+ * @description The caller keeps a cursor (`{ uidValidity, lastUid }`) and passes it back; the same cursor always yields
15
+ * the same step, so a crashed or repeated sync never skips or duplicates a message. When the server's UIDVALIDITY
16
+ * changes (it renumbered the mailbox), the old cursor is meaningless: the sync restarts from UID 1 and says so
17
+ * (`reset: true`). Only metadata is read — never a body or an attachment.
18
+ */
19
+ export declare class DyNTS_ImapInbox_Service {
20
+ private readonly transport;
21
+ private readonly mailbox;
22
+ private readonly batchSize;
23
+ /** Mailbox defaults to `INBOX`; the batch size is clamped to 1–500. */
24
+ constructor(settings: DyNTS_ImapInbox_Settings_Interface);
25
+ /** The number of unseen messages in the mailbox. */
26
+ getUnreadCount(): Promise<number>;
27
+ /** One sync step from `cursor` (none = the first sync). */
28
+ syncInbox(cursor?: DyNTS_ImapSyncCursor_Interface | null): Promise<DyNTS_ImapSyncResult_Interface>;
29
+ /** Closes the transport. */
30
+ close(): Promise<void>;
31
+ /** The mailbox status, through the error-wrapping `call`. */
32
+ private readStatus;
33
+ /** Runs a transport call; a failure becomes a rich, secret-free `DyFM_Error`. */
34
+ private call;
35
+ }
36
+ //# sourceMappingURL=imap-inbox.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-inbox.service.d.ts","sourceRoot":"","sources":["../../../src/_modules/imap/imap-inbox.service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/G,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,6BAA6B;AAC7B,MAAM,WAAW,kCAAkC;IACjD,SAAS,EAAE,6BAA6B,CAAC;IACzC,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,uEAAuE;gBAC3D,QAAQ,EAAE,kCAAkC;IAMxD,oDAAoD;IAC9C,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAMvC,2DAA2D;IACrD,SAAS,CAAC,MAAM,CAAC,EAAE,8BAA8B,GAAG,IAAI,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAkCxG,4BAA4B;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,6DAA6D;YAC/C,UAAU;IAMxB,iFAAiF;YACnE,IAAI;CAcnB"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_ImapInbox_Service = void 0;
4
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
5
+ const global_settings_const_1 = require("../../_collections/global-settings.const");
6
+ const secret_redaction_util_1 = require("../../_collections/secret-redaction.util");
7
+ /**
8
+ * BFR-OLDLIGHTSITE-002 — a provider-independent IMAP inbox: unread count + an idempotent, cursor-based metadata sync.
9
+ *
10
+ * @description The caller keeps a cursor (`{ uidValidity, lastUid }`) and passes it back; the same cursor always yields
11
+ * the same step, so a crashed or repeated sync never skips or duplicates a message. When the server's UIDVALIDITY
12
+ * changes (it renumbered the mailbox), the old cursor is meaningless: the sync restarts from UID 1 and says so
13
+ * (`reset: true`). Only metadata is read — never a body or an attachment.
14
+ */
15
+ class DyNTS_ImapInbox_Service {
16
+ transport;
17
+ mailbox;
18
+ batchSize;
19
+ /** Mailbox defaults to `INBOX`; the batch size is clamped to 1–500. */
20
+ constructor(settings) {
21
+ this.transport = settings.transport;
22
+ this.mailbox = settings.mailbox || 'INBOX';
23
+ this.batchSize = Math.min(500, Math.max(1, Math.floor(settings.batchSize ?? 50)));
24
+ }
25
+ /** The number of unseen messages in the mailbox. */
26
+ async getUnreadCount() {
27
+ const status = await this.readStatus('DyNTS-IMAP-UNREAD');
28
+ return status.unseen;
29
+ }
30
+ /** One sync step from `cursor` (none = the first sync). */
31
+ async syncInbox(cursor) {
32
+ const status = await this.readStatus('DyNTS-IMAP-SYNC-STATUS');
33
+ const reset = !cursor || cursor.uidValidity !== status.uidValidity;
34
+ const lastUid = reset ? 0 : Math.max(0, Math.floor(cursor.lastUid));
35
+ const fromUid = lastUid + 1;
36
+ if (fromUid >= status.uidNext) {
37
+ return {
38
+ cursor: { uidValidity: status.uidValidity, lastUid: lastUid }, messages: [], reset: reset, hasMore: false,
39
+ };
40
+ }
41
+ const fetched = await this.call('fetch', 'DyNTS-IMAP-SYNC-FETCH', () => (this.transport.fetchMetaFromUid(this.mailbox, fromUid, this.batchSize)));
42
+ // IMAP `N:*` also returns the newest message when N is past it — never deliver an old one again
43
+ const messages = fetched
44
+ .filter((message) => message.uid >= fromUid)
45
+ .sort((a, b) => a.uid - b.uid)
46
+ .slice(0, this.batchSize);
47
+ const newLastUid = messages.length ? messages[messages.length - 1].uid : lastUid;
48
+ return {
49
+ cursor: { uidValidity: status.uidValidity, lastUid: newLastUid },
50
+ messages: messages,
51
+ reset: reset,
52
+ hasMore: messages.length === this.batchSize && newLastUid + 1 < status.uidNext,
53
+ };
54
+ }
55
+ /** Closes the transport. */
56
+ async close() {
57
+ await this.transport.close();
58
+ }
59
+ /** The mailbox status, through the error-wrapping `call`. */
60
+ async readStatus(code) {
61
+ return this.call('status', code, () => this.transport.status(this.mailbox));
62
+ }
63
+ /** Runs a transport call; a failure becomes a rich, secret-free `DyFM_Error`. */
64
+ async call(operation, code, run) {
65
+ try {
66
+ return await run();
67
+ }
68
+ catch (error) {
69
+ throw new fsm_dynamo_1.DyFM_Error({
70
+ status: 503,
71
+ errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|${code}`,
72
+ message: `IMAP ${operation} failed on "${this.mailbox}": `
73
+ + secret_redaction_util_1.DyNTS_SecretRedaction_Util.redactText(fsm_dynamo_1.DyFM_Error.getErrorMessage(error)),
74
+ userMessage: 'The mailbox cannot be read at the moment. Please try again later.',
75
+ error: secret_redaction_util_1.DyNTS_SecretRedaction_Util.redactErrorForLog(error),
76
+ });
77
+ }
78
+ }
79
+ }
80
+ exports.DyNTS_ImapInbox_Service = DyNTS_ImapInbox_Service;
81
+ //# sourceMappingURL=imap-inbox.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imap-inbox.service.js","sourceRoot":"","sources":["../../../src/_modules/imap/imap-inbox.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * BFR-OLDLIGHTSITE-002 — `@futdevpro/nts-dynamo/imap`: a provider-independent IMAP inbox (unread count + idempotent
3
+ * metadata sync). Needs the OPTIONAL peer dependency `imapflow` (only when this entry point is imported).
4
+ */
5
+ export * from './_models/imap-mailbox-status.interface';
6
+ export * from './_models/imap-message-meta.interface';
7
+ export * from './_models/imap-sync.interface';
8
+ export * from './_models/imap-transport.interface';
9
+ export * from './imap-inbox.service';
10
+ export * from './imap-flow.transport';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/imap/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /**
5
+ * BFR-OLDLIGHTSITE-002 — `@futdevpro/nts-dynamo/imap`: a provider-independent IMAP inbox (unread count + idempotent
6
+ * metadata sync). Needs the OPTIONAL peer dependency `imapflow` (only when this entry point is imported).
7
+ */
8
+ tslib_1.__exportStar(require("./_models/imap-mailbox-status.interface"), exports);
9
+ tslib_1.__exportStar(require("./_models/imap-message-meta.interface"), exports);
10
+ tslib_1.__exportStar(require("./_models/imap-sync.interface"), exports);
11
+ tslib_1.__exportStar(require("./_models/imap-transport.interface"), exports);
12
+ tslib_1.__exportStar(require("./imap-inbox.service"), exports);
13
+ tslib_1.__exportStar(require("./imap-flow.transport"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/imap/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,kFAAwD;AACxD,gFAAsD;AACtD,wEAA8C;AAC9C,6EAAmD;AACnD,+DAAqC;AACrC,gEAAsC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * BFR-OLDLIGHTSITE-001 — the minimal MongoDB collection surface `DyNTS_Notification_MongoStore` needs. A native
3
+ * driver `Collection` and `mongoose.connection.collection(name)` satisfy it structurally, so the store has no hard
4
+ * driver dependency.
5
+ */
6
+ export interface DyNTS_NotificationMongoCollection_Interface {
7
+ insertOne(document: object): Promise<unknown>;
8
+ findOne(filter: object): Promise<unknown>;
9
+ find(filter: object, options?: object): {
10
+ toArray(): Promise<unknown[]>;
11
+ };
12
+ countDocuments(filter: object): Promise<number>;
13
+ updateMany(filter: object, update: object): Promise<{
14
+ modifiedCount?: number;
15
+ }>;
16
+ /** Ascending / descending keys only — the shape a native `Collection` accepts without a cast. */
17
+ createIndex(spec: {
18
+ [key: string]: 1 | -1;
19
+ }, options: object): Promise<unknown>;
20
+ }
21
+ //# sourceMappingURL=notification-mongo-collection.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-mongo-collection.interface.d.ts","sourceRoot":"","sources":["../../../../src/_modules/notifications/_models/notification-mongo-collection.interface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,2CAA2C;IAC1D,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;KAAE,CAAC;IAC1E,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChF,iGAAiG;IACjG,WAAW,CAAC,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;KAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=notification-mongo-collection.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-mongo-collection.interface.js","sourceRoot":"","sources":["../../../../src/_modules/notifications/_models/notification-mongo-collection.interface.ts"],"names":[],"mappings":""}