@adtrackify/at-service-common 3.0.53 → 3.0.55

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 (27) hide show
  1. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +529 -0
  2. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -0
  3. package/dist/cjs/__tests__/libs/compress-decompress.spec.js.map +1 -0
  4. package/dist/cjs/clients/generic/redis-client.d.ts +16 -0
  5. package/dist/cjs/clients/generic/redis-client.js +103 -0
  6. package/dist/cjs/clients/generic/redis-client.js.map +1 -0
  7. package/dist/cjs/services/db/identity-cache-db-service.d.ts +10 -7
  8. package/dist/cjs/services/db/identity-cache-db-service.js +105 -26
  9. package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
  10. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -0
  11. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +527 -0
  12. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -0
  13. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -0
  14. package/dist/esm/__tests__/libs/compress-decompress.spec.js.map +1 -0
  15. package/dist/esm/clients/generic/redis-client.d.ts +16 -0
  16. package/dist/esm/clients/generic/redis-client.js +98 -0
  17. package/dist/esm/clients/generic/redis-client.js.map +1 -0
  18. package/dist/esm/services/db/identity-cache-db-service.d.ts +10 -7
  19. package/dist/esm/services/db/identity-cache-db-service.js +102 -26
  20. package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
  21. package/package.json +6 -5
  22. package/dist/cjs/__tests__/s3-client/compress-decompress.spec.js.map +0 -1
  23. package/dist/esm/__tests__/s3-client/compress-decompress.spec.js.map +0 -1
  24. /package/dist/cjs/__tests__/{s3-client/compress-decompress.spec.d.ts → identity-cache/identity-cache-db-service.spec.d.ts} +0 -0
  25. /package/dist/{esm/__tests__/s3-client → cjs/__tests__/libs}/compress-decompress.spec.d.ts +0 -0
  26. /package/dist/cjs/__tests__/{s3-client → libs}/compress-decompress.spec.js +0 -0
  27. /package/dist/esm/__tests__/{s3-client → libs}/compress-decompress.spec.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-client.js","sourceRoot":"","sources":["../../../../src/clients/generic/redis-client.ts"],"names":[],"mappings":";;;;;AACA,sDAA4B;AAC5B,2CAAuC;AAEvC,MAAM,WAAW;IAMgC;IAJvC,IAAI,CAAmB;IAC/B,IAAI,CAAS;IACb,IAAI,CAAS;IAEb,YAAY,IAAY,EAAE,IAAI,GAAG,IAAI,EAAU,WAAmB,CAAC;QAApB,aAAQ,GAAR,QAAQ,CAAY;QACjE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpF,CAAC;IACO,YAAY,CAAC,IAAY,EAAE,IAAY;QAC7C,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,iBAAK,CAAC;gBACvB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,IAAI;gBACV,oBAAoB,EAAE,CAAC;gBACvB,cAAc,EAAE,IAAI;gBACpB,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,GAAG,EAAE;YACZ,gBAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IACO,SAAS;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,OAAO,MAAe,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAa;QAChC,IAAI;YACF,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,gBAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACpC;QAAC,OAAO,GAAG,EAAE;YACZ,gBAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACpD,OAAO;SACR;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,YAAqB;QAChE,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,YAAY,EAAE;gBAChB,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;aAClD;iBAAM;gBACL,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,gBAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACnE,OAAO;SACR;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAW;QAC1B,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,gBAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YACrC,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,gBAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAW;QAC1B,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC9B;QAAC,OAAO,GAAG,EAAE;YACZ,gBAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,CAAC;SACV;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,gBAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;SACzC;QAAC,OAAO,GAAG,EAAE;YACZ,gBAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACzD,OAAO;SACR;IACH,CAAC;CACF;AAED,kBAAe,WAAW,CAAC"}
@@ -1,23 +1,26 @@
1
1
  import { EventIdentity } from '@adtrackify/at-tracking-event-types';
2
2
  import { IdentityClient } from '../../clients';
3
+ import RedisClient from '../../clients/generic/redis-client';
3
4
  export interface IdentityCache {
4
5
  identityId: string;
5
- request: EventIdentity;
6
+ request?: EventIdentity;
6
7
  response: EventIdentity;
7
- createdAt: string;
8
+ createdAt?: string;
8
9
  updatedAt: string;
9
- expiresAt: number;
10
+ expiresAt?: number;
10
11
  }
11
12
  export declare class IdentityCacheDbService {
12
13
  TABLE_NAME: string;
13
14
  TABLE_KEY: string;
14
15
  TTL_IN_MONTHS: number;
15
16
  identityClient: IdentityClient;
16
- constructor(tableName: string, tableKey: string, baseApiUrl: string, cacheTtlInMonths?: number);
17
- getIdentityWithCaching: (pixelId: string, incomingIdentity?: EventIdentity, cacheExpiryInSeconds?: number) => Promise<EventIdentity | undefined>;
18
- updateIdentityCache: (request: EventIdentity, response: EventIdentity) => Promise<void>;
17
+ redisClient: RedisClient;
18
+ constructor(redisHost: string, redisPort: number, tableName: string, tableKey: string, baseApiUrl: string, cacheTtlInMonths?: number);
19
+ getIdentityWithCaching: (pixelId: string, incomingIdentity?: EventIdentity) => Promise<EventIdentity | undefined>;
20
+ updateIdentityCacheRedis: (pixelId: string, request: EventIdentity, response: EventIdentity) => Promise<void>;
21
+ updateIdentityCacheDynamoDb: (request: EventIdentity, response: EventIdentity) => Promise<void>;
19
22
  putIdentityCache: (identityCache: IdentityCache) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null>;
20
- getIdentityCache: (identityId: string) => Promise<IdentityCache>;
23
+ getIdentityCacheFromDynamoDb: (identityId: string) => Promise<IdentityCache>;
21
24
  deleteIdentityCache: (identityId: string) => Promise<import("@aws-sdk/lib-dynamodb").DeleteCommandOutput | null>;
22
25
  isIdentityCacheStale(identityCache: IdentityCache, incomingIdentity: EventIdentity): boolean;
23
26
  }
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.IdentityCacheDbService = void 0;
4
7
  const luxon_1 = require("luxon");
@@ -6,15 +9,19 @@ const clients_1 = require("../../clients");
6
9
  const libs_1 = require("../../libs");
7
10
  const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
8
11
  const helpers_1 = require("../../helpers");
12
+ const redis_client_1 = __importDefault(require("../../clients/generic/redis-client"));
9
13
  const DEFAULT_CACHE_TTL_IN_MONTHS = 6;
14
+ const IDENTITY_CACHE_TTL_IN_SECONDS = 60 * 60 * 24 * 30 * 6;
10
15
  class IdentityCacheDbService {
11
16
  TABLE_NAME;
12
17
  TABLE_KEY;
13
18
  TTL_IN_MONTHS;
14
19
  identityClient;
15
- constructor(tableName, tableKey, baseApiUrl, cacheTtlInMonths) {
20
+ redisClient;
21
+ constructor(redisHost, redisPort, tableName, tableKey, baseApiUrl, cacheTtlInMonths) {
16
22
  this.TABLE_NAME = tableName;
17
23
  this.TABLE_KEY = tableKey;
24
+ this.redisClient = new redis_client_1.default(redisHost, redisPort);
18
25
  if (cacheTtlInMonths) {
19
26
  this.TTL_IN_MONTHS = cacheTtlInMonths;
20
27
  }
@@ -23,42 +30,114 @@ class IdentityCacheDbService {
23
30
  }
24
31
  this.identityClient = new clients_1.IdentityClient(baseApiUrl);
25
32
  }
26
- getIdentityWithCaching = async (pixelId, incomingIdentity = {}, cacheExpiryInSeconds) => {
27
- const identityCache = incomingIdentity?.identityId ? await this.getIdentityCache(incomingIdentity?.identityId) : undefined;
28
- let resolvedIdentity = identityCache?.response;
33
+ getIdentityWithCaching = async (pixelId, incomingIdentity = {}) => {
29
34
  let updateCache = false;
30
- if (!identityCache || !resolvedIdentity) {
31
- resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
32
- updateCache = true;
35
+ let resolvedIdentity;
36
+ if (incomingIdentity?.identityId) {
37
+ const cacheKey = `identId_${pixelId}_${incomingIdentity.identityId}`;
38
+ helpers_1.Logger.debug(' try lookup with identityId', { cacheKey });
39
+ const cachedIdentity = await this.redisClient.get(cacheKey);
40
+ if (cachedIdentity) {
41
+ helpers_1.Logger.debug(' found cached identity', { cacheKey, cachedIdentity });
42
+ const identityCache = JSON.parse(cachedIdentity);
43
+ if (!this.isIdentityCacheStale(identityCache, incomingIdentity)) {
44
+ helpers_1.Logger.debug('cache not stale', { cacheKey, identityCache });
45
+ resolvedIdentity = identityCache.response;
46
+ }
47
+ }
33
48
  }
34
- else if (identityCache) {
35
- let hasExpired = false;
36
- if (cacheExpiryInSeconds) {
37
- const updatedAt = luxon_1.DateTime.fromISO(identityCache.updatedAt);
38
- const currentTime = luxon_1.DateTime.now();
39
- const timeSinceLastUpdate = currentTime.diff(updatedAt, 'seconds').toObject().seconds;
40
- hasExpired = (timeSinceLastUpdate && (timeSinceLastUpdate > cacheExpiryInSeconds)) || false;
49
+ if (!resolvedIdentity && incomingIdentity?.traits?.emails && incomingIdentity?.traits?.emails?.length > 0) {
50
+ for (let i = 0; i < incomingIdentity.traits.emails.length; i++) {
51
+ const cacheKey = `identEmail_${pixelId}_${incomingIdentity.traits.emails[i]}`;
52
+ helpers_1.Logger.debug(' try lookup with email', { cacheKey });
53
+ const cachedIdentity = await this.redisClient.get(cacheKey);
54
+ if (cachedIdentity) {
55
+ helpers_1.Logger.debug(' found cached identity', { cacheKey, cachedIdentity });
56
+ const identityCache = JSON.parse(cachedIdentity);
57
+ if (!this.isIdentityCacheStale(identityCache, incomingIdentity)) {
58
+ helpers_1.Logger.debug('cache not stale', { cacheKey, identityCache });
59
+ resolvedIdentity = identityCache.response;
60
+ updateCache = true;
61
+ break;
62
+ }
63
+ }
41
64
  }
42
- if (hasExpired) {
43
- helpers_1.Logger.warn('Cache expired based on custom expiry time', { identityCache });
44
- resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
45
- updateCache = true;
65
+ }
66
+ if (!resolvedIdentity && incomingIdentity?.traits?.userIds && incomingIdentity?.traits?.userIds?.length > 0) {
67
+ for (let i = 0; i < incomingIdentity.traits.userIds.length; i++) {
68
+ const cacheKey = `identUserId_${pixelId}_${incomingIdentity.traits.userIds[i]}`;
69
+ helpers_1.Logger.debug(' try lookup with userId', { cacheKey });
70
+ const cachedIdentity = await this.redisClient.get(cacheKey);
71
+ if (cachedIdentity) {
72
+ helpers_1.Logger.debug(' found cached identity', { cacheKey, cachedIdentity });
73
+ const identityCache = JSON.parse(cachedIdentity);
74
+ if (!this.isIdentityCacheStale(identityCache, incomingIdentity)) {
75
+ helpers_1.Logger.debug('cache not stale', { cacheKey, identityCache });
76
+ resolvedIdentity = identityCache.response;
77
+ updateCache = true;
78
+ break;
79
+ }
80
+ }
46
81
  }
47
- else if (this.isIdentityCacheStale(identityCache, incomingIdentity)) {
48
- helpers_1.Logger.warn('identity cache miss - record exists but stale', { identityCache, incomingIdentity });
49
- resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
50
- updateCache = true;
82
+ }
83
+ if (!resolvedIdentity) {
84
+ const identityCache = incomingIdentity?.identityId ? await this.getIdentityCacheFromDynamoDb(incomingIdentity?.identityId) : undefined;
85
+ if (identityCache) {
86
+ if (!this.isIdentityCacheStale(identityCache, incomingIdentity)) {
87
+ resolvedIdentity = identityCache.response;
88
+ updateCache = true;
89
+ }
51
90
  }
52
91
  }
92
+ if (!resolvedIdentity) {
93
+ helpers_1.Logger.warn('identity cache miss - fetching from identity service', { incomingIdentity });
94
+ resolvedIdentity = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
95
+ updateCache = true;
96
+ }
97
+ else {
98
+ helpers_1.Logger.debug('identity cache hit', { incomingIdentity });
99
+ }
53
100
  if (updateCache && resolvedIdentity) {
54
- await this.updateIdentityCache(incomingIdentity, resolvedIdentity);
101
+ await this.updateIdentityCacheRedis(pixelId, incomingIdentity, resolvedIdentity);
55
102
  }
56
103
  if (!resolvedIdentity) {
57
104
  helpers_1.Logger.error('No identity found', { pixelId, incomingIdentity });
58
105
  }
59
106
  return resolvedIdentity;
60
107
  };
61
- updateIdentityCache = async (request, response) => {
108
+ updateIdentityCacheRedis = async (pixelId, request, response) => {
109
+ if (!response || !response.identityId || !pixelId) {
110
+ return;
111
+ }
112
+ const identityCache = {
113
+ identityId: response.identityId,
114
+ response,
115
+ updatedAt: (0, libs_1.getCurrentTimestamp)(),
116
+ };
117
+ const cacheKey = `identId_${pixelId}_${response.identityId}`;
118
+ await this.redisClient.set(cacheKey, JSON.stringify(identityCache), IDENTITY_CACHE_TTL_IN_SECONDS);
119
+ helpers_1.Logger.debug('updated identity cache', { cacheKey, identityCache });
120
+ if (request?.identityId) {
121
+ const cacheKey = `identId_${pixelId}_${request.identityId}`;
122
+ await this.redisClient.set(cacheKey, JSON.stringify(identityCache), IDENTITY_CACHE_TTL_IN_SECONDS);
123
+ helpers_1.Logger.debug('updated identity cache', { cacheKey, identityCache });
124
+ }
125
+ if (response?.traits?.emails && response?.traits?.emails?.length > 0) {
126
+ for (let i = 0; i < response.traits.emails.length; i++) {
127
+ const cacheKey = `identEmail_${pixelId}_${response.traits.emails[i]}`;
128
+ await this.redisClient.set(cacheKey, JSON.stringify(identityCache), IDENTITY_CACHE_TTL_IN_SECONDS);
129
+ helpers_1.Logger.debug('updated identity cache', { cacheKey, identityCache });
130
+ }
131
+ }
132
+ if (response?.traits?.userIds && response?.traits?.userIds?.length > 0) {
133
+ for (let i = 0; i < response.traits.userIds.length; i++) {
134
+ const cacheKey = `identUserId_${pixelId}_${response.traits.userIds[i]}`;
135
+ await this.redisClient.set(cacheKey, JSON.stringify(identityCache), IDENTITY_CACHE_TTL_IN_SECONDS);
136
+ helpers_1.Logger.debug('updated identity cache', { cacheKey, identityCache });
137
+ }
138
+ }
139
+ };
140
+ updateIdentityCacheDynamoDb = async (request, response) => {
62
141
  const identityCacheKeys = [];
63
142
  if (request?.identityId && identityCacheKeys.indexOf(request?.identityId) === -1) {
64
143
  identityCacheKeys.push(request?.identityId);
@@ -67,7 +146,7 @@ class IdentityCacheDbService {
67
146
  identityCacheKeys.push(response?.identityId);
68
147
  }
69
148
  for (let i = 0; i < identityCacheKeys.length; i++) {
70
- let cachedIdentity = await this.getIdentityCache(identityCacheKeys[i]);
149
+ let cachedIdentity = await this.getIdentityCacheFromDynamoDb(identityCacheKeys[i]);
71
150
  if (cachedIdentity) {
72
151
  cachedIdentity.request = request;
73
152
  cachedIdentity.response = response;
@@ -92,7 +171,7 @@ class IdentityCacheDbService {
92
171
  helpers_1.Logger.debug('put identity cache', { identityCache });
93
172
  return await clients_1.DynamoDbClient.safePut(this.TABLE_NAME, identityCache);
94
173
  };
95
- getIdentityCache = async (identityId) => {
174
+ getIdentityCacheFromDynamoDb = async (identityId) => {
96
175
  return await clients_1.DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, identityId);
97
176
  };
98
177
  deleteIdentityCache = async (identityId) => {
@@ -1 +1 @@
1
- {"version":3,"file":"identity-cache-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-db-service.ts"],"names":[],"mappings":";;;AACA,iCAAiC;AACjC,2CAA+D;AAC/D,qCAAiD;AACjD,iEAAkG;AAClG,2CAAuC;AAWvC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,MAAa,sBAAsB;IAC1B,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,aAAa,CAAS;IACtB,cAAc,CAAiB;IAEtC,YAAY,SAAiB,EAAE,QAAgB,EAAE,UAAkB,EAAE,gBAAyB;QAC5F,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,gBAAgB,EAAE;YACpB,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC;SACvC;aACI;YACH,IAAI,CAAC,aAAa,GAAG,2BAA2B,CAAC;SAClD;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAc,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC;IAEM,sBAAsB,GAAG,KAAK,EAAE,OAAe,EAAE,mBAAkC,EAAE,EAAE,oBAA6B,EAAE,EAAE;QAC7H,MAAM,aAAa,GAAG,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3H,IAAI,gBAAgB,GAA8B,aAAa,EAAE,QAAQ,CAAC;QAC1E,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,IAAI,CAAC,gBAAgB,EAAE;YACvC,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAClG,WAAW,GAAG,IAAI,CAAC;SACpB;aAAM,IAAI,aAAa,EAAE;YACxB,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,oBAAoB,EAAE;gBACxB,MAAM,SAAS,GAAG,gBAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC5D,MAAM,WAAW,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;gBACtF,UAAU,GAAG,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,GAAG,oBAAoB,CAAC,CAAC,IAAI,KAAK,CAAC;aAC7F;YAED,IAAI,UAAU,EAAE;gBACd,gBAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC5E,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAClG,WAAW,GAAG,IAAI,CAAC;aACpB;iBAAM,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,gBAAgB,CAAC,EAAE;gBACrE,gBAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAClG,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;gBAClG,WAAW,GAAG,IAAI,CAAC;aACpB;SACF;QAED,IAAI,WAAW,IAAI,gBAAgB,EAAE;YACnC,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;SACpE;QACD,IAAI,CAAC,gBAAgB,EAAE;YACrB,gBAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;SAClE;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAA;IAEM,mBAAmB,GAAG,KAAK,EAAE,OAAsB,EAAE,QAAuB,EAAE,EAAE;QACrF,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,IAAI,OAAO,EAAE,UAAU,IAAI,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;YAChF,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SAC7C;QACD,IAAI,QAAQ,EAAE,UAAU,IAAI,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;YAClF,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;SAC9C;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,cAAc,EAAE;gBAClB,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;gBACjC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACnC,cAAc,CAAC,SAAS,GAAG,IAAA,0BAAmB,GAAE,CAAC;gBACjD,cAAc,CAAC,SAAS,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC3F,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;aAC7C;iBACI;gBACH,cAAc,GAAG;oBACf,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;oBAChC,OAAO;oBACP,QAAQ;oBACR,SAAS,EAAE,IAAA,0BAAmB,GAAE;oBAChC,SAAS,EAAE,IAAA,0BAAmB,GAAE;oBAChC,SAAS,EAAE,gBAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,SAAS,EAAE;iBAC3E,CAAA;gBACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;aAC7C;SACF;IACH,CAAC,CAAA;IAEM,gBAAgB,GAAG,KAAK,EAAE,aAA4B,EAAE,EAAE;QAC/D,gBAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QACtD,OAAO,MAAM,wBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC,CAAA;IACM,gBAAgB,GAAG,KAAK,EAAE,UAAkB,EAA0B,EAAE;QAC7E,OAAO,MAAM,wBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAkB,CAAC;IACpG,CAAC,CAAA;IAEM,mBAAmB,GAAG,KAAK,EAAE,UAAkB,EAAE,EAAE;QACxD,OAAO,MAAM,wBAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtF,CAAC,CAAA;IAEM,oBAAoB,CAAC,aAA4B,EAAE,gBAA+B;QACvF,IAAI;YACF,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;YAC1D,MAAM,cAAc,GAAG,gBAAgB,EAAE,MAAM,IAAI,EAAE,CAAC;YAEtD,MAAM,YAAY,GAAG,IAAA,6BAAW,EAAC,YAAY,EAAE,OAAO,IAAI,EAAE,EAAE,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAC7F,IAAI,YAAY,EAAE;gBAChB,gBAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBACvF,OAAO,IAAI,CAAC;aACb;YACD,MAAM,QAAQ,GAAG,IAAA,6BAAW,EAAC,YAAY,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACjF,IAAI,QAAQ,EAAE;gBACZ,gBAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBACnF,OAAO,IAAI,CAAC;aACb;YACD,MAAM,WAAW,GAAG,IAAA,6BAAW,EAAC,YAAY,EAAE,MAAM,IAAI,EAAE,EAAE,cAAc,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YAC1F,IAAI,WAAW,EAAE;gBACf,gBAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBACtF,OAAO,IAAI,CAAC;aACb;YACD,MAAM,WAAW,GAAG,IAAA,6BAAW,EAAC,YAAY,EAAE,MAAM,IAAI,EAAE,EAAE,cAAc,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;YAC1F,IAAI,WAAW,EAAE;gBACf,gBAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBACtF,OAAO,IAAI,CAAC;aACb;YACD,MAAM,gBAAgB,GAAG,IAAA,6BAAW,EAAC,YAAY,EAAE,WAAW,IAAI,EAAE,EAAE,cAAc,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;YACzG,IAAI,gBAAgB,EAAE;gBACpB,gBAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC7F,OAAO,IAAI,CAAC;aACb;YACD,MAAM,YAAY,GAAG,IAAA,6BAAW,EAAC,YAAY,EAAE,OAAO,IAAI,EAAE,EAAE,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAC7F,IAAI,YAAY,EAAE;gBAChB,gBAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBACvF,OAAO,IAAI,CAAC;aACb;YACD,MAAM,SAAS,GAAG,IAAA,6BAAW,EAAC,YAAY,EAAE,IAAI,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACpF,IAAI,SAAS,EAAE;gBACb,gBAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBACpF,OAAO,IAAI,CAAC;aACb;YACD,MAAM,YAAY,GAAG,IAAA,+BAAa,EAAC,YAAY,EAAE,SAAS,IAAI,EAAE,EAAE,cAAc,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;YACnG,IAAI,YAAY,EAAE;gBAChB,gBAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBACvF,OAAO,IAAI,CAAC;aACb;YAED,MAAM,UAAU,GAAG,IAAA,yCAAuB,EAAC,YAAY,EAAE,KAAK,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACnG,IAAI,UAAU,EAAE;gBACd,gBAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC1F,OAAO,IAAI,CAAC;aACb;YACD,IAAI,CAAC,cAAc,EAAE,SAAS,IAAI,YAAY,EAAE,SAAS,KAAK,cAAc,EAAE,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,IAAI,YAAY,EAAE,SAAS,KAAK,cAAc,EAAE,SAAS,CAAC,EAAE;gBAChL,gBAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC5F,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;SACd;QAAC,OAAO,KAAK,EAAE;YACd,gBAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3E,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF;AAhKD,wDAgKC"}
1
+ {"version":3,"file":"identity-cache-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-db-service.ts"],"names":[],"mappings":"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"}