@adtrackify/at-service-common 3.4.5 → 3.4.6

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.
@@ -1,8 +1,9 @@
1
- import { PurchasableContact } from '@adtrackify/at-tracking-event-types';
1
+ import { CONTACT_ACQUISITION_SOURCE, CONTACT_ACQUISITION_SOURCE_ID, EmailableVerifyEmailResponse, IPDataResponse, PurchasableContact, ThirdPartyContact } from '@adtrackify/at-tracking-event-types';
2
2
  export declare class PurchasableContactsDbService {
3
3
  TABLE_NAME: string;
4
4
  TABLE_KEY: string;
5
5
  constructor(tableName: string, purchasableContactsKey: string);
6
+ buildPurchasableContact: (contact: ThirdPartyContact, source: CONTACT_ACQUISITION_SOURCE, sourceId: CONTACT_ACQUISITION_SOURCE_ID, emailVerification: EmailableVerifyEmailResponse, ipLookupResponse?: IPDataResponse) => PurchasableContact;
6
7
  getPurchasableContact: (id: string) => Promise<PurchasableContact>;
7
8
  putPurchasableContact: (purchasableContact: PurchasableContact) => Promise<PurchasableContact>;
8
9
  }
@@ -10,6 +10,24 @@ class PurchasableContactsDbService {
10
10
  this.TABLE_NAME = tableName;
11
11
  this.TABLE_KEY = purchasableContactsKey;
12
12
  }
13
+ buildPurchasableContact = (contact, source, sourceId, emailVerification, ipLookupResponse) => {
14
+ const currentTimestamp = (0, libs_1.getCurrentTimestamp)();
15
+ const purchasableContact = {
16
+ ...contact,
17
+ email: contact?.emailAddress,
18
+ ipAddress: contact?.ipAddress,
19
+ ipAddressEnrichment: ipLookupResponse,
20
+ url: contact?.url,
21
+ source,
22
+ sourceId,
23
+ contact,
24
+ emailVerification,
25
+ emailStatus: emailVerification?.state,
26
+ createdAt: currentTimestamp,
27
+ updatedAt: currentTimestamp,
28
+ };
29
+ return purchasableContact;
30
+ };
13
31
  getPurchasableContact = async (id) => {
14
32
  const purchasableContact = await clients_1.DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
15
33
  if (!purchasableContact) {
@@ -1 +1 @@
1
- {"version":3,"file":"purchasable-contacts-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/purchasable-contacts-db-service.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAC/C,qCAAuC;AAEvC,MAAa,4BAA4B;IAChC,UAAU,CAAS;IACnB,SAAS,CAAS;IAEzB,YAAY,SAAiB,EAAE,sBAA8B;QAC3D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;IAC1C,CAAC;IAEM,qBAAqB,GAAG,KAAK,EAAE,EAAU,EAA+B,EAAE;QAC/E,MAAM,kBAAkB,GAAG,MAAM,wBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,gBAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,kBAAwC,CAAC;IAClD,CAAC,CAAA;IAEM,qBAAqB,GAAG,KAAK,EAAE,kBAAsC,EAA+B,EAAE;QAC3G,MAAM,wBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAClE,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAA;CACF;AArBD,oEAqBC"}
1
+ {"version":3,"file":"purchasable-contacts-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/purchasable-contacts-db-service.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAC/C,qCAA4D;AAE5D,MAAa,4BAA4B;IAChC,UAAU,CAAS;IACnB,SAAS,CAAS;IAEzB,YAAY,SAAiB,EAAE,sBAA8B;QAC3D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;IAC1C,CAAC;IAEM,uBAAuB,GAAG,CAAC,OAA0B,EAAE,MAAkC,EAAE,QAAuC,EAAE,iBAA+C,EAAE,gBAAiC,EAAsB,EAAE;QACnP,MAAM,gBAAgB,GAAG,IAAA,0BAAmB,GAAE,CAAC;QAC/C,MAAM,kBAAkB,GAAuB;YAC7C,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,EAAE,YAAsB;YACtC,SAAS,EAAE,OAAO,EAAE,SAAS;YAC7B,mBAAmB,EAAE,gBAAgB;YACrC,GAAG,EAAE,OAAO,EAAE,GAAG;YACjB,MAAM;YACN,QAAQ;YACR,OAAO;YACP,iBAAiB;YACjB,WAAW,EAAE,iBAAiB,EAAE,KAAK;YACrC,SAAS,EAAE,gBAAgB;YAC3B,SAAS,EAAE,gBAAgB;SAC5B,CAAC;QACF,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAA;IAEM,qBAAqB,GAAG,KAAK,EAAE,EAAU,EAA+B,EAAE;QAC/E,MAAM,kBAAkB,GAAG,MAAM,wBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,gBAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,kBAAwC,CAAC;IAClD,CAAC,CAAA;IAEM,qBAAqB,GAAG,KAAK,EAAE,kBAAsC,EAA+B,EAAE;QAC3G,MAAM,wBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAClE,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAA;CACF;AAxCD,oEAwCC"}
@@ -1,8 +1,9 @@
1
- import { PurchasedContact } from '@adtrackify/at-tracking-event-types';
1
+ import { PurchasedContact, ThirdPartyContact } from '@adtrackify/at-tracking-event-types';
2
2
  export declare class PurchasedContactsDbService {
3
3
  TABLE_NAME: string;
4
4
  TABLE_KEY: string;
5
5
  constructor(tableName: string, purchasedContactsKey: string);
6
+ buildPurchasedContact: (accountId: string, primaryContact: ThirdPartyContact, contacts: ThirdPartyContact[]) => PurchasedContact;
6
7
  getPurchasedContact: (id: string) => Promise<PurchasedContact>;
7
8
  batchGetPurchasedContacts: (ids: string[]) => Promise<PurchasedContact[]>;
8
9
  putPurchasedContact: (purchasedContact: PurchasedContact) => Promise<PurchasedContact>;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PurchasedContactsDbService = void 0;
4
+ const at_tracking_event_types_1 = require("@adtrackify/at-tracking-event-types");
4
5
  const clients_1 = require("../../clients");
5
6
  const libs_1 = require("../../libs");
6
7
  const helpers_1 = require("../../helpers");
8
+ const ulid_1 = require("ulid");
7
9
  class PurchasedContactsDbService {
8
10
  TABLE_NAME;
9
11
  TABLE_KEY;
@@ -11,6 +13,25 @@ class PurchasedContactsDbService {
11
13
  this.TABLE_NAME = tableName;
12
14
  this.TABLE_KEY = purchasedContactsKey;
13
15
  }
16
+ buildPurchasedContact = (accountId, primaryContact, contacts) => {
17
+ const currentTimestamp = (0, libs_1.getCurrentTimestamp)();
18
+ const purchasedContact = {
19
+ ...primaryContact,
20
+ primaryIdentityId: primaryContact.identityId,
21
+ matchedIdentityId: primaryContact.matchedIdentityId,
22
+ isIdentityMerged: primaryContact.isIdentityMerged,
23
+ id: (0, ulid_1.ulid)(),
24
+ contacts,
25
+ contactId: primaryContact.id,
26
+ accountId,
27
+ emailStatus: primaryContact?.emailVerification?.state,
28
+ purchasedStatus: at_tracking_event_types_1.PURCHASED_CONTACT_STATUS.ACTIVE,
29
+ purchasedAt: currentTimestamp,
30
+ createdAt: currentTimestamp,
31
+ updatedAt: currentTimestamp
32
+ };
33
+ return purchasedContact;
34
+ };
14
35
  getPurchasedContact = async (id) => {
15
36
  const purchasedContact = await clients_1.DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
16
37
  if (!purchasedContact) {
@@ -1 +1 @@
1
- {"version":3,"file":"purchased-contacts-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/purchased-contacts-db-service.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAC/C,qCAA4D;AAC5D,2CAAuC;AAEvC,MAAa,0BAA0B;IAC9B,UAAU,CAAS;IACnB,SAAS,CAAS;IAEzB,YAAY,SAAiB,EAAE,oBAA4B;QACzD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC;IACxC,CAAC;IAEM,mBAAmB,GAAG,KAAK,EAAE,EAAU,EAA6B,EAAE;QAC3E,MAAM,gBAAgB,GAAG,MAAM,wBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,gBAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,gBAAoC,CAAC;IAC9C,CAAC,CAAA;IAEM,yBAAyB,GAAG,KAAK,EAAE,GAAa,EAA+B,EAAE;QACtF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,EAAE,CAAC;SACX;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,iBAAiB,GAAG,MAAM,wBAAc,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACnF,OAAO,iBAAuC,CAAC;IACjD,CAAC,CAAA;IAEM,mBAAmB,GAAG,KAAK,EAAE,gBAAkC,EAA6B,EAAE;QACnG,MAAM,wBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAChE,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAA;IAEM,sBAAsB,GAAG,KAAK,EAAE,EAAU,EAAE,IAAS,EAA6B,EAAE;QACzF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,gBAAgB,GAAG,IAAA,0BAAmB,GAAE,CAAC;QAC/C,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAE9C,MAAM,GAAG,GAAG,MAAM,wBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,EAAE;YACR,gBAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtE,MAAM,gBAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAA;CACF;AA7CD,gEA6CC"}
1
+ {"version":3,"file":"purchased-contacts-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/purchased-contacts-db-service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import { PurchasableContact } from '@adtrackify/at-tracking-event-types';
1
+ import { CONTACT_ACQUISITION_SOURCE, CONTACT_ACQUISITION_SOURCE_ID, EmailableVerifyEmailResponse, IPDataResponse, PurchasableContact, ThirdPartyContact } from '@adtrackify/at-tracking-event-types';
2
2
  export declare class PurchasableContactsDbService {
3
3
  TABLE_NAME: string;
4
4
  TABLE_KEY: string;
5
5
  constructor(tableName: string, purchasableContactsKey: string);
6
+ buildPurchasableContact: (contact: ThirdPartyContact, source: CONTACT_ACQUISITION_SOURCE, sourceId: CONTACT_ACQUISITION_SOURCE_ID, emailVerification: EmailableVerifyEmailResponse, ipLookupResponse?: IPDataResponse) => PurchasableContact;
6
7
  getPurchasableContact: (id: string) => Promise<PurchasableContact>;
7
8
  putPurchasableContact: (purchasableContact: PurchasableContact) => Promise<PurchasableContact>;
8
9
  }
@@ -1,5 +1,5 @@
1
1
  import { DynamoDbClient } from '../../clients';
2
- import { HttpError } from '../../libs';
2
+ import { getCurrentTimestamp, HttpError } from '../../libs';
3
3
  export class PurchasableContactsDbService {
4
4
  TABLE_NAME;
5
5
  TABLE_KEY;
@@ -7,6 +7,24 @@ export class PurchasableContactsDbService {
7
7
  this.TABLE_NAME = tableName;
8
8
  this.TABLE_KEY = purchasableContactsKey;
9
9
  }
10
+ buildPurchasableContact = (contact, source, sourceId, emailVerification, ipLookupResponse) => {
11
+ const currentTimestamp = getCurrentTimestamp();
12
+ const purchasableContact = {
13
+ ...contact,
14
+ email: contact?.emailAddress,
15
+ ipAddress: contact?.ipAddress,
16
+ ipAddressEnrichment: ipLookupResponse,
17
+ url: contact?.url,
18
+ source,
19
+ sourceId,
20
+ contact,
21
+ emailVerification,
22
+ emailStatus: emailVerification?.state,
23
+ createdAt: currentTimestamp,
24
+ updatedAt: currentTimestamp,
25
+ };
26
+ return purchasableContact;
27
+ };
10
28
  getPurchasableContact = async (id) => {
11
29
  const purchasableContact = await DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
12
30
  if (!purchasableContact) {
@@ -1 +1 @@
1
- {"version":3,"file":"purchasable-contacts-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/purchasable-contacts-db-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,OAAO,4BAA4B;IAChC,UAAU,CAAS;IACnB,SAAS,CAAS;IAEzB,YAAY,SAAiB,EAAE,sBAA8B;QAC3D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;IAC1C,CAAC;IAEM,qBAAqB,GAAG,KAAK,EAAE,EAAU,EAA+B,EAAE;QAC/E,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,kBAAwC,CAAC;IAClD,CAAC,CAAA;IAEM,qBAAqB,GAAG,KAAK,EAAE,kBAAsC,EAA+B,EAAE;QAC3G,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAClE,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAA;CACF"}
1
+ {"version":3,"file":"purchasable-contacts-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/purchasable-contacts-db-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,OAAO,4BAA4B;IAChC,UAAU,CAAS;IACnB,SAAS,CAAS;IAEzB,YAAY,SAAiB,EAAE,sBAA8B;QAC3D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;IAC1C,CAAC;IAEM,uBAAuB,GAAG,CAAC,OAA0B,EAAE,MAAkC,EAAE,QAAuC,EAAE,iBAA+C,EAAE,gBAAiC,EAAsB,EAAE;QACnP,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;QAC/C,MAAM,kBAAkB,GAAuB;YAC7C,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,EAAE,YAAsB;YACtC,SAAS,EAAE,OAAO,EAAE,SAAS;YAC7B,mBAAmB,EAAE,gBAAgB;YACrC,GAAG,EAAE,OAAO,EAAE,GAAG;YACjB,MAAM;YACN,QAAQ;YACR,OAAO;YACP,iBAAiB;YACjB,WAAW,EAAE,iBAAiB,EAAE,KAAK;YACrC,SAAS,EAAE,gBAAgB;YAC3B,SAAS,EAAE,gBAAgB;SAC5B,CAAC;QACF,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAA;IAEM,qBAAqB,GAAG,KAAK,EAAE,EAAU,EAA+B,EAAE;QAC/E,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,kBAAwC,CAAC;IAClD,CAAC,CAAA;IAEM,qBAAqB,GAAG,KAAK,EAAE,kBAAsC,EAA+B,EAAE;QAC3G,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAClE,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAA;CACF"}
@@ -1,8 +1,9 @@
1
- import { PurchasedContact } from '@adtrackify/at-tracking-event-types';
1
+ import { PurchasedContact, ThirdPartyContact } from '@adtrackify/at-tracking-event-types';
2
2
  export declare class PurchasedContactsDbService {
3
3
  TABLE_NAME: string;
4
4
  TABLE_KEY: string;
5
5
  constructor(tableName: string, purchasedContactsKey: string);
6
+ buildPurchasedContact: (accountId: string, primaryContact: ThirdPartyContact, contacts: ThirdPartyContact[]) => PurchasedContact;
6
7
  getPurchasedContact: (id: string) => Promise<PurchasedContact>;
7
8
  batchGetPurchasedContacts: (ids: string[]) => Promise<PurchasedContact[]>;
8
9
  putPurchasedContact: (purchasedContact: PurchasedContact) => Promise<PurchasedContact>;
@@ -1,6 +1,8 @@
1
+ import { PURCHASED_CONTACT_STATUS } from '@adtrackify/at-tracking-event-types';
1
2
  import { DynamoDbClient } from '../../clients';
2
3
  import { HttpError, getCurrentTimestamp } from '../../libs';
3
4
  import { Logger } from '../../helpers';
5
+ import { ulid } from 'ulid';
4
6
  export class PurchasedContactsDbService {
5
7
  TABLE_NAME;
6
8
  TABLE_KEY;
@@ -8,6 +10,25 @@ export class PurchasedContactsDbService {
8
10
  this.TABLE_NAME = tableName;
9
11
  this.TABLE_KEY = purchasedContactsKey;
10
12
  }
13
+ buildPurchasedContact = (accountId, primaryContact, contacts) => {
14
+ const currentTimestamp = getCurrentTimestamp();
15
+ const purchasedContact = {
16
+ ...primaryContact,
17
+ primaryIdentityId: primaryContact.identityId,
18
+ matchedIdentityId: primaryContact.matchedIdentityId,
19
+ isIdentityMerged: primaryContact.isIdentityMerged,
20
+ id: ulid(),
21
+ contacts,
22
+ contactId: primaryContact.id,
23
+ accountId,
24
+ emailStatus: primaryContact?.emailVerification?.state,
25
+ purchasedStatus: PURCHASED_CONTACT_STATUS.ACTIVE,
26
+ purchasedAt: currentTimestamp,
27
+ createdAt: currentTimestamp,
28
+ updatedAt: currentTimestamp
29
+ };
30
+ return purchasedContact;
31
+ };
11
32
  getPurchasedContact = async (id) => {
12
33
  const purchasedContact = await DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
13
34
  if (!purchasedContact) {
@@ -1 +1 @@
1
- {"version":3,"file":"purchased-contacts-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/purchased-contacts-db-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,OAAO,0BAA0B;IAC9B,UAAU,CAAS;IACnB,SAAS,CAAS;IAEzB,YAAY,SAAiB,EAAE,oBAA4B;QACzD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC;IACxC,CAAC;IAEM,mBAAmB,GAAG,KAAK,EAAE,EAAU,EAA6B,EAAE;QAC3E,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,gBAAoC,CAAC;IAC9C,CAAC,CAAA;IAEM,yBAAyB,GAAG,KAAK,EAAE,GAAa,EAA+B,EAAE;QACtF,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,EAAE,CAAC;SACX;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACnF,OAAO,iBAAuC,CAAC;IACjD,CAAC,CAAA;IAEM,mBAAmB,GAAG,KAAK,EAAE,gBAAkC,EAA6B,EAAE;QACnG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAChE,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAA;IAEM,sBAAsB,GAAG,KAAK,EAAE,EAAU,EAAE,IAAS,EAA6B,EAAE;QACzF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;QAC/C,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC;QAE9C,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACtE,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAA;CACF"}
1
+ {"version":3,"file":"purchased-contacts-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/purchased-contacts-db-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adtrackify/at-service-common",
3
- "version": "3.4.5",
3
+ "version": "3.4.6",
4
4
  "description": "",
5
5
  "files": [
6
6
  "dist/*"
@@ -46,7 +46,8 @@
46
46
  "libphonenumber-js": "^1.12.10",
47
47
  "pako": "^2.1.0",
48
48
  "papaparse": "^5.5.3",
49
- "shopify-api-node": "^3.12.7"
49
+ "shopify-api-node": "^3.12.7",
50
+ "ulid": "^3.0.1"
50
51
  },
51
52
  "peerDependencies": {
52
53
  "assert": "^2.0.0",
@@ -61,7 +62,7 @@
61
62
  "uuid": "^9.0.0"
62
63
  },
63
64
  "devDependencies": {
64
- "@adtrackify/at-tracking-event-types": "^3.3.13",
65
+ "@adtrackify/at-tracking-event-types": "^3.3.18",
65
66
  "@aws-sdk/client-cognito-identity-provider": "^3.345.0",
66
67
  "@aws-sdk/client-dynamodb": "^3.345.0",
67
68
  "@aws-sdk/client-eventbridge": "^3.345.0",
@@ -126,4 +127,4 @@
126
127
  "author": "",
127
128
  "license": "ISC",
128
129
  "homepage": "https://bitbucket.org/eacap/at-service-common#readme"
129
- }
130
+ }