@pvh-afl/core 1.2.35 → 1.2.37

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 (51) hide show
  1. package/dist/cache/cache.service.d.ts +2 -2
  2. package/dist/cache/cache.service.js +25 -25
  3. package/dist/cache/cache.service.js.map +1 -1
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/integrations/engagement/index.d.ts +3 -0
  9. package/dist/integrations/engagement/index.d.ts.map +1 -0
  10. package/dist/integrations/engagement/index.js +6 -0
  11. package/dist/integrations/engagement/index.js.map +1 -0
  12. package/dist/integrations/engagement/netcore-email.service.d.ts +32 -0
  13. package/dist/integrations/engagement/netcore-email.service.d.ts.map +1 -0
  14. package/dist/integrations/engagement/netcore-email.service.js +184 -0
  15. package/dist/integrations/engagement/netcore-email.service.js.map +1 -0
  16. package/dist/integrations/engagement/netcore-email.types.d.ts +74 -0
  17. package/dist/integrations/engagement/netcore-email.types.d.ts.map +1 -0
  18. package/dist/integrations/engagement/netcore-email.types.js +3 -0
  19. package/dist/integrations/engagement/netcore-email.types.js.map +1 -0
  20. package/dist/integrations/index.d.ts +1 -0
  21. package/dist/integrations/index.d.ts.map +1 -1
  22. package/dist/integrations/index.js +2 -0
  23. package/dist/integrations/index.js.map +1 -1
  24. package/dist/integrations/integrations.module.d.ts.map +1 -1
  25. package/dist/integrations/integrations.module.js +5 -0
  26. package/dist/integrations/integrations.module.js.map +1 -1
  27. package/dist/notifications/index.d.ts +6 -0
  28. package/dist/notifications/index.d.ts.map +1 -0
  29. package/dist/notifications/index.js +9 -0
  30. package/dist/notifications/index.js.map +1 -0
  31. package/dist/notifications/notifications.module.d.ts +9 -0
  32. package/dist/notifications/notifications.module.d.ts.map +1 -0
  33. package/dist/notifications/notifications.module.js +25 -0
  34. package/dist/notifications/notifications.module.js.map +1 -0
  35. package/dist/notifications/order-email.mapper.d.ts +15 -0
  36. package/dist/notifications/order-email.mapper.d.ts.map +1 -0
  37. package/dist/notifications/order-email.mapper.js +131 -0
  38. package/dist/notifications/order-email.mapper.js.map +1 -0
  39. package/dist/notifications/order-email.service.d.ts +30 -0
  40. package/dist/notifications/order-email.service.d.ts.map +1 -0
  41. package/dist/notifications/order-email.service.js +151 -0
  42. package/dist/notifications/order-email.service.js.map +1 -0
  43. package/dist/notifications/order-notification.types.d.ts +41 -0
  44. package/dist/notifications/order-notification.types.d.ts.map +1 -0
  45. package/dist/notifications/order-notification.types.js +20 -0
  46. package/dist/notifications/order-notification.types.js.map +1 -0
  47. package/dist/notifications/order.source.d.ts +46 -0
  48. package/dist/notifications/order.source.d.ts.map +1 -0
  49. package/dist/notifications/order.source.js +139 -0
  50. package/dist/notifications/order.source.js.map +1 -0
  51. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
2
- import { ConfigService } from '../config/config.service';
1
+ import { OnModuleInit, OnModuleDestroy } from "@nestjs/common";
2
+ import { ConfigService } from "../config/config.service";
3
3
  export interface CacheResult<T> {
4
4
  data: T;
5
5
  isStale: boolean;
@@ -21,17 +21,17 @@ let CacheService = class CacheService {
21
21
  onModuleInit() {
22
22
  const redisUrl = this.configService.getRedisUrl();
23
23
  try {
24
- this.redis = new ioredis_1.Redis(redisUrl);
25
- this.redis.on('connect', () => {
26
- logger_1.logger.info('Redis connected');
24
+ this.redis = new ioredis_1.Redis(redisUrl, { enableAutoPipelining: true });
25
+ this.redis.on("connect", () => {
26
+ logger_1.logger.info("Redis connected");
27
27
  });
28
- this.redis.on('error', (err) => {
29
- logger_1.logger.error('Redis error', { error: err.message });
28
+ this.redis.on("error", (err) => {
29
+ logger_1.logger.error("Redis error", { error: err.message });
30
30
  });
31
31
  }
32
32
  catch (error) {
33
- logger_1.logger.warn('Redis not available, caching disabled', {
34
- error: error instanceof Error ? error.message : 'Unknown',
33
+ logger_1.logger.warn("Redis not available, caching disabled", {
34
+ error: error instanceof Error ? error.message : "Unknown",
35
35
  });
36
36
  }
37
37
  }
@@ -45,7 +45,7 @@ let CacheService = class CacheService {
45
45
  */
46
46
  async get(key) {
47
47
  if (!this.redis) {
48
- logger_1.logger.warn('Redis not connected, returning null', { key });
48
+ logger_1.logger.warn("Redis not connected, returning null", { key });
49
49
  return null;
50
50
  }
51
51
  try {
@@ -67,9 +67,9 @@ let CacheService = class CacheService {
67
67
  };
68
68
  }
69
69
  catch (error) {
70
- logger_1.logger.warn('Cache get error', {
70
+ logger_1.logger.warn("Cache get error", {
71
71
  key,
72
- error: error instanceof Error ? error.message : 'Unknown',
72
+ error: error instanceof Error ? error.message : "Unknown",
73
73
  });
74
74
  return null;
75
75
  }
@@ -91,12 +91,12 @@ let CacheService = class CacheService {
91
91
  staleAt: now + staleTTLSeconds * 1000,
92
92
  expiresAt: now + ttlSeconds * 1000,
93
93
  };
94
- await this.redis.set(key, JSON.stringify(cached), 'EX', ttlSeconds);
94
+ await this.redis.set(key, JSON.stringify(cached), "EX", ttlSeconds);
95
95
  }
96
96
  catch (error) {
97
- logger_1.logger.warn('Cache set error', {
97
+ logger_1.logger.warn("Cache set error", {
98
98
  key,
99
- error: error instanceof Error ? error.message : 'Unknown',
99
+ error: error instanceof Error ? error.message : "Unknown",
100
100
  });
101
101
  }
102
102
  }
@@ -144,7 +144,7 @@ let CacheService = class CacheService {
144
144
  return existing;
145
145
  // Fires once per coalesced load (later concurrent callers hit the branch
146
146
  // above), so it doubles as the origin-load counter for observability.
147
- logger_1.logger.info('Cache miss, loading from origin', { key });
147
+ logger_1.logger.info("Cache miss, loading from origin", { key });
148
148
  const load = loader();
149
149
  this.inFlight.set(key, load);
150
150
  // Clear the slot on settle (resolve OR reject) so a failed load can retry;
@@ -167,13 +167,13 @@ let CacheService = class CacheService {
167
167
  .then(async (data) => {
168
168
  if (data !== null && data !== undefined) {
169
169
  await this.set(key, data, ttlSeconds, staleTTLSeconds);
170
- logger_1.logger.info('Cache background refresh completed', { key });
170
+ logger_1.logger.info("Cache background refresh completed", { key });
171
171
  }
172
172
  })
173
173
  .catch((error) => {
174
- logger_1.logger.warn('Background refresh failed', {
174
+ logger_1.logger.warn("Background refresh failed", {
175
175
  key,
176
- error: error instanceof Error ? error.message : 'Unknown',
176
+ error: error instanceof Error ? error.message : "Unknown",
177
177
  });
178
178
  })
179
179
  .finally(() => this.refreshInProgress.delete(key));
@@ -195,7 +195,7 @@ let CacheService = class CacheService {
195
195
  // Keep the original TTL
196
196
  const ttl = await this.redis.ttl(key);
197
197
  if (ttl > 0) {
198
- await this.redis.set(key, JSON.stringify(cached), 'EX', ttl);
198
+ await this.redis.set(key, JSON.stringify(cached), "EX", ttl);
199
199
  count++;
200
200
  }
201
201
  }
@@ -203,9 +203,9 @@ let CacheService = class CacheService {
203
203
  return count;
204
204
  }
205
205
  catch (error) {
206
- logger_1.logger.warn('Cache markStale error', {
206
+ logger_1.logger.warn("Cache markStale error", {
207
207
  pattern,
208
- error: error instanceof Error ? error.message : 'Unknown',
208
+ error: error instanceof Error ? error.message : "Unknown",
209
209
  });
210
210
  return 0;
211
211
  }
@@ -220,9 +220,9 @@ let CacheService = class CacheService {
220
220
  await this.redis.del(key);
221
221
  }
222
222
  catch (error) {
223
- logger_1.logger.warn('Cache delete error', {
223
+ logger_1.logger.warn("Cache delete error", {
224
224
  key,
225
- error: error instanceof Error ? error.message : 'Unknown',
225
+ error: error instanceof Error ? error.message : "Unknown",
226
226
  });
227
227
  }
228
228
  }
@@ -237,13 +237,13 @@ let CacheService = class CacheService {
237
237
  if (keys.length > 0) {
238
238
  await this.redis.del(...keys);
239
239
  }
240
- logger_1.logger.info('Deleted keys', { pattern, count: keys.length });
240
+ logger_1.logger.info("Deleted keys", { pattern, count: keys.length });
241
241
  return keys.length;
242
242
  }
243
243
  catch (error) {
244
- logger_1.logger.warn('Cache deletePattern error', {
244
+ logger_1.logger.warn("Cache deletePattern error", {
245
245
  pattern,
246
- error: error instanceof Error ? error.message : 'Unknown',
246
+ error: error instanceof Error ? error.message : "Unknown",
247
247
  });
248
248
  return 0;
249
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../src/cache/cache.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA2E;AAC3E,qCAAgC;AAChC,6DAAyD;AACzD,6CAA0C;AAcnC,IAAM,YAAY,GAAlB,MAAM,YAAY;IAWM;IAVrB,KAAK,GAAiB,IAAI,CAAC;IAEnC,8EAA8E;IAC9E,mEAAmE;IAClD,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEhE,yEAAyE;IACzE,oDAAoD;IACnC,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvD,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,YAAY;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAElD,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,eAAK,CAAC,QAAQ,CAAC,CAAC;YAEjC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC5B,eAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACpC,eAAM,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;gBACnD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,eAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,8BAA8B;YAC9B,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,8BAA8B;YAC9B,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC7B,GAAG;gBACH,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CACP,GAAW,EACX,IAAO,EACP,UAAU,GAAG,GAAG,EAChB,eAAe,GAAG,EAAE;QAEpB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,MAAM,GAAkB;gBAC5B,IAAI;gBACJ,OAAO,EAAE,GAAG,GAAG,eAAe,GAAG,IAAI;gBACrC,SAAS,EAAE,GAAG,GAAG,UAAU,GAAG,IAAI;aACnC,CAAC;YAEF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC7B,GAAG;gBACH,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,SAAS,CACb,GAAW,EACX,MAA+B,EAC/B,UAAU,GAAG,GAAG,EAChB,eAAe,GAAG,EAAE;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,4EAA4E;QAC5E,0CAA0C;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAW,GAAG,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC;YAC5B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAI,GAAW,EAAE,MAAwB;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAA2B,CAAC;QAClE,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,yEAAyE;QACzE,sEAAsE;QACtE,eAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,2EAA2E;QAC3E,4EAA4E;QAC5E,iDAAiD;QACjD,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;aACvB,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACxC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,mBAAmB,CACzB,GAAW,EACX,MAA+B,EAC/B,UAAkB,EAClB,eAAuB;QAEvB,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,EAAE;aACL,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACnB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;gBACvD,eAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,eAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACvC,GAAG;gBACH,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;QACL,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,oBAAoB;oBAEjD,wBAAwB;oBACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;wBACZ,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;wBAC7D,KAAK,EAAE,CAAC;oBACV,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACnC,OAAO;gBACP,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAChC,GAAG;gBACH,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,eAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACvC,OAAO;gBACP,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;CACF,CAAA;AAjRY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;6CAYiC,8BAAa;GAX9C,YAAY,CAiRxB"}
1
+ {"version":3,"file":"cache.service.js","sourceRoot":"","sources":["../../src/cache/cache.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA2E;AAC3E,qCAAgC;AAChC,6DAAyD;AACzD,6CAA0C;AAcnC,IAAM,YAAY,GAAlB,MAAM,YAAY;IAWM;IAVrB,KAAK,GAAiB,IAAI,CAAC;IAEnC,8EAA8E;IAC9E,mEAAmE;IAClD,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEhE,yEAAyE;IACzE,oDAAoD;IACnC,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvD,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,YAAY;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAElD,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,eAAK,CAAC,QAAQ,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC5B,eAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACpC,eAAM,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;gBACnD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,eAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAkB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,8BAA8B;YAC9B,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,8BAA8B;YAC9B,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC7B,GAAG;gBACH,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CACP,GAAW,EACX,IAAO,EACP,UAAU,GAAG,GAAG,EAChB,eAAe,GAAG,EAAE;QAEpB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,MAAM,GAAkB;gBAC5B,IAAI;gBACJ,OAAO,EAAE,GAAG,GAAG,eAAe,GAAG,IAAI;gBACrC,SAAS,EAAE,GAAG,GAAG,UAAU,GAAG,IAAI;aACnC,CAAC;YAEF,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC7B,GAAG;gBACH,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,SAAS,CACb,GAAW,EACX,MAA+B,EAC/B,UAAU,GAAG,GAAG,EAChB,eAAe,GAAG,EAAE;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,4EAA4E;QAC5E,0CAA0C;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAW,GAAG,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,IAAI,GAAG,MAAM,MAAM,EAAE,CAAC;YAC5B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAI,GAAW,EAAE,MAAwB;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAA2B,CAAC;QAClE,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,yEAAyE;QACzE,sEAAsE;QACtE,eAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,2EAA2E;QAC3E,4EAA4E;QAC5E,iDAAiD;QACjD,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;aACvB,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACxC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,mBAAmB,CACzB,GAAW,EACX,MAA+B,EAC/B,UAAkB,EAClB,eAAuB;QAEvB,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC5C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,EAAE;aACL,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACnB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;gBACvD,eAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,eAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACvC,GAAG;gBACH,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;QACL,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,oBAAoB;oBAEjD,wBAAwB;oBACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACtC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;wBACZ,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;wBAC7D,KAAK,EAAE,CAAC;oBACV,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACnC,OAAO;gBACP,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE;gBAChC,GAAG;gBACH,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,eAAM,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACvC,OAAO;gBACP,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;CACF,CAAA;AAjRY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;6CAYiC,8BAAa;GAX9C,YAAY,CAiRxB"}
package/dist/index.d.ts CHANGED
@@ -12,4 +12,5 @@ export * from './integrations';
12
12
  export * from './queue';
13
13
  export * from './messaging';
14
14
  export * from './theme';
15
+ export * from './notifications';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -24,4 +24,6 @@ tslib_1.__exportStar(require("./queue"), exports);
24
24
  tslib_1.__exportStar(require("./messaging"), exports);
25
25
  // Theme (placeholder)
26
26
  tslib_1.__exportStar(require("./theme"), exports);
27
+ // Order notifications (shared across brands)
28
+ tslib_1.__exportStar(require("./notifications"), exports);
27
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,OAAO;AACP,iDAAuB;AAEvB,QAAQ;AACR,kDAAwB;AAExB,SAAS;AACT,mDAAyB;AAEzB,mBAAmB;AACnB,mDAAyB;AAEzB,2EAA2E;AAC3E,oDAA0B;AAE1B,eAAe;AACf,yDAA+B;AAE/B,sBAAsB;AACtB,kDAAwB;AAExB,0CAA0C;AAC1C,sDAA4B;AAE5B,sBAAsB;AACtB,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,OAAO;AACP,iDAAuB;AAEvB,QAAQ;AACR,kDAAwB;AAExB,SAAS;AACT,mDAAyB;AAEzB,mBAAmB;AACnB,mDAAyB;AAEzB,2EAA2E;AAC3E,oDAA0B;AAE1B,eAAe;AACf,yDAA+B;AAE/B,sBAAsB;AACtB,kDAAwB;AAExB,0CAA0C;AAC1C,sDAA4B;AAE5B,sBAAsB;AACtB,kDAAwB;AAExB,6CAA6C;AAC7C,0DAAgC"}
@@ -0,0 +1,3 @@
1
+ export * from './netcore-email.types';
2
+ export * from './netcore-email.service';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/engagement/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./netcore-email.types"), exports);
5
+ tslib_1.__exportStar(require("./netcore-email.service"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/engagement/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,kEAAwC"}
@@ -0,0 +1,32 @@
1
+ import { IntegrationResponse } from '../integration.types';
2
+ import { IEmailService, NetcoreConfig, NetcoreSendRequest, NetcoreSendResult } from './netcore-email.types';
3
+ /**
4
+ * Netcore (ex-Pepipost) Email API service.
5
+ *
6
+ * Sends transactional email. Auth is an `api_key` header, so this does not
7
+ * extend BaseIntegrationService — that helper forces `Authorization: Bearer`.
8
+ *
9
+ * A send is accepted with 202 and a `message_id`; acceptance means Netcore
10
+ * queued the mail, NOT that it reached the inbox. Delivery outcome arrives on
11
+ * Netcore's own webhooks/reports.
12
+ *
13
+ * @see https://cpaasdocs.netcore.ai/docs/pepipost-api/c2d895762f832-send-an-email
14
+ */
15
+ export declare class NetcoreEmailService implements IEmailService {
16
+ private config;
17
+ private brand;
18
+ private readonly defaultTimeout;
19
+ configure(brand: string, config: NetcoreConfig): void;
20
+ isConfigured(): boolean;
21
+ /**
22
+ * Send one email.
23
+ *
24
+ * Requires `templateId` or `content` — Netcore has nothing to render
25
+ * otherwise, and rejects the request.
26
+ */
27
+ send(request: NetcoreSendRequest): Promise<IntegrationResponse<NetcoreSendResult>>;
28
+ private parseBody;
29
+ private notConfiguredError;
30
+ private normalizeError;
31
+ }
32
+ //# sourceMappingURL=netcore-email.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"netcore-email.service.d.ts","sourceRoot":"","sources":["../../../src/integrations/engagement/netcore-email.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAoB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAa/B;;;;;;;;;;;GAWG;AACH,qBACa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAgBrD,YAAY,IAAI,OAAO;IAIvB;;;;;OAKG;IACG,IAAI,CACR,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAiHlD,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,cAAc;CAiBvB"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NetcoreEmailService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const logger_1 = require("../../common/logger");
7
+ const DEFAULT_BASE_URL = 'https://emailapi.netcorecloud.net';
8
+ const SEND_PATH = '/v5.1/mail/send';
9
+ /**
10
+ * Netcore (ex-Pepipost) Email API service.
11
+ *
12
+ * Sends transactional email. Auth is an `api_key` header, so this does not
13
+ * extend BaseIntegrationService — that helper forces `Authorization: Bearer`.
14
+ *
15
+ * A send is accepted with 202 and a `message_id`; acceptance means Netcore
16
+ * queued the mail, NOT that it reached the inbox. Delivery outcome arrives on
17
+ * Netcore's own webhooks/reports.
18
+ *
19
+ * @see https://cpaasdocs.netcore.ai/docs/pepipost-api/c2d895762f832-send-an-email
20
+ */
21
+ let NetcoreEmailService = class NetcoreEmailService {
22
+ config = null;
23
+ brand = '';
24
+ defaultTimeout = 10000;
25
+ configure(brand, config) {
26
+ this.brand = brand;
27
+ // Spread first, then apply defaults with `??`. A caller that passes the key
28
+ // explicitly as undefined (a brand config omitting `baseUrl`) would
29
+ // otherwise overwrite the default and produce `undefined/v5.1/mail/send`.
30
+ this.config = {
31
+ ...config,
32
+ baseUrl: config.baseUrl ?? DEFAULT_BASE_URL,
33
+ timeout: config.timeout ?? this.defaultTimeout,
34
+ };
35
+ logger_1.logger.info('Netcore email service configured', {
36
+ brand,
37
+ fromEmail: config.fromEmail,
38
+ });
39
+ }
40
+ isConfigured() {
41
+ return this.config !== null;
42
+ }
43
+ /**
44
+ * Send one email.
45
+ *
46
+ * Requires `templateId` or `content` — Netcore has nothing to render
47
+ * otherwise, and rejects the request.
48
+ */
49
+ async send(request) {
50
+ if (!this.config) {
51
+ return this.notConfiguredError();
52
+ }
53
+ const recipients = request.personalizations?.some((p) => p.to?.length);
54
+ if (!recipients) {
55
+ return {
56
+ success: false,
57
+ error: {
58
+ code: 'MISSING_RECIPIENT',
59
+ message: 'Netcore send requires at least one recipient',
60
+ },
61
+ };
62
+ }
63
+ if (!request.templateId && !request.content?.length) {
64
+ return {
65
+ success: false,
66
+ error: {
67
+ code: 'MISSING_BODY',
68
+ message: 'Netcore send requires either templateId or content',
69
+ },
70
+ };
71
+ }
72
+ const body = {
73
+ from: request.from ?? {
74
+ email: this.config.fromEmail,
75
+ name: this.config.fromName,
76
+ },
77
+ ...(request.replyTo || this.config.replyTo
78
+ ? { reply_to: request.replyTo ?? this.config.replyTo }
79
+ : {}),
80
+ subject: request.subject,
81
+ ...(request.templateId ? { template_id: request.templateId } : {}),
82
+ ...(request.content?.length ? { content: request.content } : {}),
83
+ ...(request.tags?.length ? { tags: request.tags } : {}),
84
+ personalizations: request.personalizations.map((p) => ({
85
+ to: p.to,
86
+ ...(p.cc?.length ? { cc: p.cc } : {}),
87
+ ...(p.bcc?.length ? { bcc: p.bcc } : {}),
88
+ ...(p.attributes ? { attributes: p.attributes } : {}),
89
+ })),
90
+ ...(request.settings ? { settings: request.settings } : {}),
91
+ ...(request.schedule ? { schedule: request.schedule } : {}),
92
+ };
93
+ try {
94
+ const controller = new AbortController();
95
+ const timeoutId = setTimeout(() => controller.abort(), this.config.timeout ?? this.defaultTimeout);
96
+ const response = await fetch(`${this.config.baseUrl}${SEND_PATH}`, {
97
+ method: 'POST',
98
+ headers: {
99
+ 'Content-Type': 'application/json',
100
+ Accept: 'application/json',
101
+ api_key: this.config.apiKey,
102
+ },
103
+ body: JSON.stringify(body),
104
+ signal: controller.signal,
105
+ });
106
+ clearTimeout(timeoutId);
107
+ const raw = await response.text();
108
+ if (!response.ok) {
109
+ return { success: false, error: this.normalizeError(response.status, raw) };
110
+ }
111
+ const parsed = this.parseBody(raw);
112
+ // A 2xx can still carry status:"error" — treat only an explicit success as sent.
113
+ if (parsed?.status && parsed.status !== 'success') {
114
+ return {
115
+ success: false,
116
+ error: {
117
+ code: 'SEND_REJECTED',
118
+ message: parsed.message ?? 'Netcore rejected the send',
119
+ details: parsed,
120
+ },
121
+ };
122
+ }
123
+ const messageId = parsed?.data?.message_id;
124
+ if (!messageId) {
125
+ logger_1.logger.warn('Netcore accepted send without a message_id', {
126
+ brand: this.brand,
127
+ });
128
+ }
129
+ return { success: true, data: { messageId: messageId ?? '' } };
130
+ }
131
+ catch (error) {
132
+ logger_1.logger.error('Netcore send failed', {
133
+ brand: this.brand,
134
+ error: error instanceof Error ? error.message : 'Unknown error',
135
+ });
136
+ return {
137
+ success: false,
138
+ error: {
139
+ code: 'REQUEST_FAILED',
140
+ message: error instanceof Error ? error.message : 'Request failed',
141
+ details: error,
142
+ },
143
+ };
144
+ }
145
+ }
146
+ parseBody(raw) {
147
+ try {
148
+ return raw ? JSON.parse(raw) : null;
149
+ }
150
+ catch {
151
+ return null;
152
+ }
153
+ }
154
+ notConfiguredError() {
155
+ return {
156
+ success: false,
157
+ error: {
158
+ code: 'NOT_CONFIGURED',
159
+ message: 'Netcore email service is not configured',
160
+ },
161
+ };
162
+ }
163
+ normalizeError(status, body) {
164
+ const errorMap = {
165
+ 400: 'BAD_REQUEST',
166
+ 401: 'UNAUTHORIZED',
167
+ 403: 'FORBIDDEN',
168
+ 404: 'NOT_FOUND',
169
+ 429: 'RATE_LIMITED',
170
+ 500: 'INTERNAL_ERROR',
171
+ 502: 'BAD_GATEWAY',
172
+ 503: 'SERVICE_UNAVAILABLE',
173
+ };
174
+ return {
175
+ code: errorMap[status] ?? 'UNKNOWN_ERROR',
176
+ message: body || `HTTP ${status}`,
177
+ };
178
+ }
179
+ };
180
+ exports.NetcoreEmailService = NetcoreEmailService;
181
+ exports.NetcoreEmailService = NetcoreEmailService = tslib_1.__decorate([
182
+ (0, common_1.Injectable)()
183
+ ], NetcoreEmailService);
184
+ //# sourceMappingURL=netcore-email.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"netcore-email.service.js","sourceRoot":"","sources":["../../../src/integrations/engagement/netcore-email.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { IntegrationResponse } from '../integration.types';
2
+ /**
3
+ * Netcore (ex-Pepipost) Email API types.
4
+ *
5
+ * @see https://cpaasdocs.netcore.ai/docs/pepipost-api/c2d895762f832-send-an-email
6
+ */
7
+ export interface NetcoreConfig {
8
+ /** API host (default: https://emailapi.netcorecloud.net). EU accounts use https://apieu.netcorecloud.net */
9
+ baseUrl?: string;
10
+ /** Email API key, from Settings -> Integrations in the Netcore account */
11
+ apiKey: string;
12
+ /** Default sender. The domain must be active in the Netcore account or the send is rejected. */
13
+ fromEmail: string;
14
+ fromName?: string;
15
+ replyTo?: string;
16
+ /** Request timeout in milliseconds (default: 10000) */
17
+ timeout?: number;
18
+ }
19
+ export interface NetcoreRecipient {
20
+ email: string;
21
+ name?: string;
22
+ }
23
+ export interface NetcorePersonalization {
24
+ to: NetcoreRecipient[];
25
+ cc?: NetcoreRecipient[];
26
+ bcc?: NetcoreRecipient[];
27
+ /**
28
+ * Values substituted into `[%KEY%]` placeholders in the subject and template.
29
+ * Flat key/value only — Netcore cannot iterate, so a repeating block (order
30
+ * line items) must be pre-rendered into a single attribute by the caller.
31
+ */
32
+ attributes?: Record<string, string>;
33
+ }
34
+ export interface NetcoreContent {
35
+ type: 'html' | 'amp';
36
+ value: string;
37
+ }
38
+ export interface NetcoreSettings {
39
+ open_track?: boolean;
40
+ click_track?: boolean;
41
+ unsubscribe_track?: boolean;
42
+ ip_pool?: string;
43
+ }
44
+ /**
45
+ * One send request.
46
+ *
47
+ * Supply `templateId` to use a Netcore-hosted template, or `content` to send
48
+ * HTML inline. The API documents `content` as required, so a caller passing
49
+ * only `templateId` should verify its account accepts that before relying on it.
50
+ */
51
+ export interface NetcoreSendRequest {
52
+ subject: string;
53
+ personalizations: NetcorePersonalization[];
54
+ templateId?: number;
55
+ content?: NetcoreContent[];
56
+ /** Groups sends for per-segment delivery reporting in the Netcore dashboard. */
57
+ tags?: string[];
58
+ /** Overrides the configured default sender. */
59
+ from?: NetcoreRecipient;
60
+ replyTo?: string;
61
+ settings?: NetcoreSettings;
62
+ /** Unix epoch seconds; Netcore rejects times beyond 72 hours out. */
63
+ schedule?: number;
64
+ }
65
+ export interface NetcoreSendResult {
66
+ messageId: string;
67
+ }
68
+ /** Contract for the email channel. WhatsApp and SMS have their own shapes. */
69
+ export interface IEmailService {
70
+ configure(brand: string, config: NetcoreConfig): void;
71
+ isConfigured(): boolean;
72
+ send(request: NetcoreSendRequest): Promise<IntegrationResponse<NetcoreSendResult>>;
73
+ }
74
+ //# sourceMappingURL=netcore-email.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"netcore-email.types.d.ts","sourceRoot":"","sources":["../../../src/integrations/engagement/netcore-email.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;GAIG;AAEH,MAAM,WAAW,aAAa;IAC5B,4GAA4G;IAC5G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,gGAAgG;IAChG,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,gBAAgB,EAAE,CAAC;IACvB,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IACtD,YAAY,IAAI,OAAO,CAAC;IACxB,IAAI,CACF,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC;CACpD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=netcore-email.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"netcore-email.types.js","sourceRoot":"","sources":["../../../src/integrations/engagement/netcore-email.types.ts"],"names":[],"mappings":""}
@@ -8,6 +8,7 @@ export * from './search';
8
8
  export * from './reviews';
9
9
  export * from './swish';
10
10
  export * from './storage';
11
+ export * from './engagement';
11
12
  export * from './integration.factory';
12
13
  export * from './integrations.module';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,YAAY,CAAC;AAG3B,cAAc,OAAO,CAAC;AAGtB,cAAc,WAAW,CAAC;AAG1B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,YAAY,CAAC;AAG3B,cAAc,OAAO,CAAC;AAGtB,cAAc,WAAW,CAAC;AAG1B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,cAAc,CAAC;AAG7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -20,6 +20,8 @@ tslib_1.__exportStar(require("./reviews"), exports);
20
20
  tslib_1.__exportStar(require("./swish"), exports);
21
21
  // Storage integrations (Azure Blob)
22
22
  tslib_1.__exportStar(require("./storage"), exports);
23
+ // Engagement integrations (Netcore email)
24
+ tslib_1.__exportStar(require("./engagement"), exports);
23
25
  // Integration factory and module
24
26
  tslib_1.__exportStar(require("./integration.factory"), exports);
25
27
  tslib_1.__exportStar(require("./integrations.module"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,8DAAoC;AACpC,qEAA2C;AAE3C,kCAAkC;AAClC,qDAA2B;AAE3B,2BAA2B;AAC3B,gDAAsB;AAEtB,mCAAmC;AACnC,oDAA0B;AAE1B,oBAAoB;AACpB,0DAAgC;AAEhC,8BAA8B;AAC9B,mDAAyB;AAEzB,kCAAkC;AAClC,oDAA0B;AAE1B,gCAAgC;AAChC,kDAAwB;AAExB,oCAAoC;AACpC,oDAA0B;AAE1B,iCAAiC;AACjC,gEAAsC;AACtC,gEAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,8DAAoC;AACpC,qEAA2C;AAE3C,kCAAkC;AAClC,qDAA2B;AAE3B,2BAA2B;AAC3B,gDAAsB;AAEtB,mCAAmC;AACnC,oDAA0B;AAE1B,oBAAoB;AACpB,0DAAgC;AAEhC,8BAA8B;AAC9B,mDAAyB;AAEzB,kCAAkC;AAClC,oDAA0B;AAE1B,gCAAgC;AAChC,kDAAwB;AAExB,oCAAoC;AACpC,oDAA0B;AAE1B,0CAA0C;AAC1C,uDAA6B;AAE7B,iCAAiC;AACjC,gEAAsC;AACtC,gEAAsC"}
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.module.d.ts","sourceRoot":"","sources":["../../src/integrations/integrations.module.ts"],"names":[],"mappings":"AA0BA,qBA0Ca,kBAAkB;CAAG"}
1
+ {"version":3,"file":"integrations.module.d.ts","sourceRoot":"","sources":["../../src/integrations/integrations.module.ts"],"names":[],"mappings":"AA4BA,qBA6Ca,kBAAkB;CAAG"}
@@ -24,6 +24,8 @@ const swish_service_1 = require("./swish/swish.service");
24
24
  // Storage
25
25
  const azure_blob_service_1 = require("./storage/azure-blob.service");
26
26
  const shopify_files_service_1 = require("./storage/shopify-files.service");
27
+ // Engagement
28
+ const netcore_email_service_1 = require("./engagement/netcore-email.service");
27
29
  // CacheModule and ConfigModule are @Global() so no import needed
28
30
  let IntegrationsModule = class IntegrationsModule {
29
31
  };
@@ -53,6 +55,8 @@ exports.IntegrationsModule = IntegrationsModule = tslib_1.__decorate([
53
55
  // Storage
54
56
  azure_blob_service_1.AzureBlobService,
55
57
  shopify_files_service_1.ShopifyFilesService,
58
+ // Engagement
59
+ netcore_email_service_1.NetcoreEmailService,
56
60
  ],
57
61
  exports: [
58
62
  integration_factory_1.IntegrationFactory,
@@ -69,6 +73,7 @@ exports.IntegrationsModule = IntegrationsModule = tslib_1.__decorate([
69
73
  swish_service_1.SwishService,
70
74
  azure_blob_service_1.AzureBlobService,
71
75
  shopify_files_service_1.ShopifyFilesService,
76
+ netcore_email_service_1.NetcoreEmailService,
72
77
  ],
73
78
  })
74
79
  ], IntegrationsModule);
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.module.js","sourceRoot":"","sources":["../../src/integrations/integrations.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,+DAA2D;AAC3D,yEAAoE;AAEpE,8BAA8B;AAC9B,gEAAoE;AACpE,4EAAuE;AACvE,kFAA6E;AAC7E,iEAA4D;AAC5D,uDAAmD;AACnD,oBAAoB;AACpB,6EAAwE;AACxE,iFAA4E;AAC5E,SAAS;AACT,0DAAsD;AACtD,8EAAyE;AACzE,UAAU;AACV,+DAA2D;AAC3D,WAAW;AACX,yDAAqD;AACrD,UAAU;AACV,qEAAgE;AAChE,2EAAsE;AAEtE,iEAAiE;AA4C1D,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,gDAAkB;6BAAlB,kBAAkB;IA1C9B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,wCAAkB;YAClB,iDAAsB;YACtB,WAAW;YACX,wCAAsB;YACtB,2CAAmB;YACnB,iDAAsB;YACtB,MAAM;YACN,qCAAgB;YAChB,4BAAY;YACZ,UAAU;YACV,6CAAoB;YACpB,iDAAsB;YACtB,SAAS;YACT,4BAAY;YACZ,+CAAqB;YACrB,UAAU;YACV,gCAAc;YACd,WAAW;YACX,4BAAY;YACZ,UAAU;YACV,qCAAgB;YAChB,2CAAmB;SACpB;QACD,OAAO,EAAE;YACP,wCAAkB;YAClB,gEAAgE;YAChE,wCAAsB;YACtB,2CAAmB;YACnB,iDAAsB;YACtB,4BAAY;YACZ,6CAAoB;YACpB,iDAAsB;YACtB,4BAAY;YACZ,+CAAqB;YACrB,gCAAc;YACd,4BAAY;YACZ,qCAAgB;YAChB,2CAAmB;SACpB;KACF,CAAC;GACW,kBAAkB,CAAG"}
1
+ {"version":3,"file":"integrations.module.js","sourceRoot":"","sources":["../../src/integrations/integrations.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,+DAA2D;AAC3D,yEAAoE;AAEpE,8BAA8B;AAC9B,gEAAoE;AACpE,4EAAuE;AACvE,kFAA6E;AAC7E,iEAA4D;AAC5D,uDAAmD;AACnD,oBAAoB;AACpB,6EAAwE;AACxE,iFAA4E;AAC5E,SAAS;AACT,0DAAsD;AACtD,8EAAyE;AACzE,UAAU;AACV,+DAA2D;AAC3D,WAAW;AACX,yDAAqD;AACrD,UAAU;AACV,qEAAgE;AAChE,2EAAsE;AACtE,aAAa;AACb,8EAAyE;AAEzE,iEAAiE;AA+C1D,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,gDAAkB;6BAAlB,kBAAkB;IA7C9B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,wCAAkB;YAClB,iDAAsB;YACtB,WAAW;YACX,wCAAsB;YACtB,2CAAmB;YACnB,iDAAsB;YACtB,MAAM;YACN,qCAAgB;YAChB,4BAAY;YACZ,UAAU;YACV,6CAAoB;YACpB,iDAAsB;YACtB,SAAS;YACT,4BAAY;YACZ,+CAAqB;YACrB,UAAU;YACV,gCAAc;YACd,WAAW;YACX,4BAAY;YACZ,UAAU;YACV,qCAAgB;YAChB,2CAAmB;YACnB,aAAa;YACb,2CAAmB;SACpB;QACD,OAAO,EAAE;YACP,wCAAkB;YAClB,gEAAgE;YAChE,wCAAsB;YACtB,2CAAmB;YACnB,iDAAsB;YACtB,4BAAY;YACZ,6CAAoB;YACpB,iDAAsB;YACtB,4BAAY;YACZ,+CAAqB;YACrB,gCAAc;YACd,4BAAY;YACZ,qCAAgB;YAChB,2CAAmB;YACnB,2CAAmB;SACpB;KACF,CAAC;GACW,kBAAkB,CAAG"}
@@ -0,0 +1,6 @@
1
+ export * from './order-notification.types';
2
+ export * from './order.source';
3
+ export * from './order-email.mapper';
4
+ export * from './order-email.service';
5
+ export * from './notifications.module';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}