@carlonicora/nestjs-neo4jsonapi 1.110.1 → 1.110.2

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.
@@ -9,6 +9,9 @@ export declare class PushRepository {
9
9
  findByEndpoint(params: {
10
10
  endpoint: string;
11
11
  }): Promise<Push[]>;
12
+ deleteByEndpoint(params: {
13
+ endpoint: string;
14
+ }): Promise<void>;
12
15
  create(params: {
13
16
  endpoint: string;
14
17
  p256dh: string;
@@ -1 +1 @@
1
- {"version":3,"file":"push.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/push/repositories/push.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAGvD,qBACa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAE1C,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAiBzD,cAAc,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAiB7D,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBxF"}
1
+ {"version":3,"file":"push.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/push/repositories/push.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAGvD,qBACa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,YAAY;IAE1C,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAiBzD,cAAc,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAiB7D,gBAAgB,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7D,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA4BxF"}
@@ -44,6 +44,21 @@ let PushRepository = class PushRepository {
44
44
  `;
45
45
  return this.neo4j.readMany(query);
46
46
  }
47
+ async deleteByEndpoint(params) {
48
+ const query = this.neo4j.initQuery();
49
+ query.queryParams = {
50
+ ...query.queryParams,
51
+ endpoint: params.endpoint,
52
+ };
53
+ // Endpoints are globally-unique push URLs, so this is intentionally NOT
54
+ // user/company-scoped: a 410/404 can arrive from a worker with no CLS user
55
+ // context, where a scoped MATCH would silently no-op and leave the dead row.
56
+ query.query = `
57
+ MATCH (push:PushSubscription {endpoint: $endpoint})
58
+ DETACH DELETE push
59
+ `;
60
+ await this.neo4j.writeOne(query);
61
+ }
47
62
  async create(params) {
48
63
  const query = this.neo4j.initQuery();
49
64
  query.queryParams = {
@@ -53,16 +68,19 @@ let PushRepository = class PushRepository {
53
68
  p256dh: params.p256dh,
54
69
  auth: params.auth,
55
70
  };
71
+ // A push subscription belongs to the BROWSER, not the user: the same FCM
72
+ // endpoint is shared across every account logged in on that browser, and a
73
+ // browser re-subscribes with the same endpoint across sessions. So this is an
74
+ // UPSERT keyed on the endpoint (one node per endpoint), and the HAS_PUSH edge
75
+ // is MERGEd per user. A plain CREATE here duplicated a node on every
76
+ // re-registration/login and left dead duplicates the sender kept retrying.
77
+ // Not company-scoped: a subscription is not a function of company membership.
56
78
  query.query = `
57
- MATCH (user:User {id: $currentUserId})-[:BELONGS_TO]->(company)
58
- CREATE (push:PushSubscription {
59
- id: $id,
60
- endpoint: $endpoint,
61
- p256dh: $p256dh,
62
- auth: $auth,
63
- createdAt: datetime(),
64
- updatedAt: datetime()})
65
- CREATE (user)-[:HAS_PUSH]->(push)
79
+ MATCH (user:User {id: $currentUserId})
80
+ MERGE (push:PushSubscription {endpoint: $endpoint})
81
+ ON CREATE SET push.id = $id, push.createdAt = datetime()
82
+ SET push.p256dh = $p256dh, push.auth = $auth, push.updatedAt = datetime()
83
+ MERGE (user)-[:HAS_PUSH]->(push)
66
84
  `;
67
85
  await this.neo4j.writeOne(query);
68
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"push.repository.js","sourceRoot":"","sources":["../../../../src/foundations/push/repositories/push.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mCAAoC;AACpC,8EAA0E;AAE1E,+DAA2D;AAGpD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,sBAAS,EAAE,CAAC,CAAC;QAE9D,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,KAAK,CAAC,KAAK,IAAI;;;;KAId,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAA4B;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,sBAAS,EAAE,CAAC,CAAC;QAE9D,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,KAAK,CAAC,KAAK,IAAI;;;;KAId,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAA0D;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAErC,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,EAAE,EAAE,IAAA,mBAAU,GAAE;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;QAEF,KAAK,CAAC,KAAK,GAAG;;;;;;;;;;KAUb,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AA9DY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEyB,4BAAY;GADrC,cAAc,CA8D1B"}
1
+ {"version":3,"file":"push.repository.js","sourceRoot":"","sources":["../../../../src/foundations/push/repositories/push.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mCAAoC;AACpC,8EAA0E;AAE1E,+DAA2D;AAGpD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,KAAmB;QAAnB,UAAK,GAAL,KAAK,CAAc;IAAG,CAAC;IAEpD,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,sBAAS,EAAE,CAAC,CAAC;QAE9D,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,KAAK,CAAC,KAAK,IAAI;;;;KAId,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAA4B;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,sBAAS,EAAE,CAAC,CAAC;QAE9D,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,KAAK,CAAC,KAAK,IAAI;;;;KAId,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAA4B;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAErC,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,wEAAwE;QACxE,2EAA2E;QAC3E,6EAA6E;QAC7E,KAAK,CAAC,KAAK,GAAG;;;KAGb,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAA0D;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAErC,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,EAAE,EAAE,IAAA,mBAAU,GAAE;YAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC;QAEF,yEAAyE;QACzE,2EAA2E;QAC3E,8EAA8E;QAC9E,8EAA8E;QAC9E,qEAAqE;QACrE,2EAA2E;QAC3E,8EAA8E;QAC9E,KAAK,CAAC,KAAK,GAAG;;;;;;KAMb,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AApFY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEyB,4BAAY;GADrC,cAAc,CAoF1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/push/services/push.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAwB,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGzE,qBACa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJhC,OAAO,CAAC,SAAS,CAAQ;gBAGN,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAY9D,oBAAoB,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAalF,gBAAgB,CAAC,MAAM,EAAE;QAC7B,iBAAiB,EAAE,IAAI,EAAE,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBlB"}
1
+ {"version":3,"file":"push.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/push/services/push.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAwB,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGzE,qBACa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJhC,OAAO,CAAC,SAAS,CAAQ;gBAGN,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC;IAY9D,oBAAoB,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAalF,gBAAgB,CAAC,MAAM,EAAE;QAC7B,iBAAiB,EAAE,IAAI,EAAE,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BlB"}
@@ -83,7 +83,15 @@ let PushService = class PushService {
83
83
  await webPush.sendNotification(pushSubscription.subscription, JSON.stringify(payload));
84
84
  }
85
85
  catch (error) {
86
- console.error("Error sending push notification", error);
86
+ // 404/410 mean the subscription is permanently gone (unsubscribed or
87
+ // expired). Prune it so we stop retrying a dead endpoint on every send.
88
+ const statusCode = error?.statusCode;
89
+ if (statusCode === 404 || statusCode === 410) {
90
+ await this.pushRepository.deleteByEndpoint({ endpoint: pushSubscription.subscription.endpoint });
91
+ }
92
+ else {
93
+ console.error("Error sending push notification", error);
94
+ }
87
95
  }
88
96
  }));
89
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"push.service.js","sourceRoot":"","sources":["../../../../src/foundations/push/services/push.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAI/C,6EAAyE;AACzE,kDAAoC;AAG7B,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGtB,YACmB,cAA8B,EAC9B,aAAiD;QADjD,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAoC;QAJ5D,cAAS,GAAG,IAAI,CAAC;QAMvB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAuB,OAAO,CAAC,CAAC;QAE1E,IAAI,CAAC,WAAW,EAAE,SAAS,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;YACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,eAAe,CAAC,UAAU,WAAW,CAAC,KAAK,EAAE,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAA6C;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1G,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;YACvC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC/B,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ;gBACtC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM;gBACvC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI;aACpC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAKtB;QACC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;SAChB,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;YACtD,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACzF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAtDY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAKwB,gCAAc;QACf,sBAAa;GALpC,WAAW,CAsDvB"}
1
+ {"version":3,"file":"push.service.js","sourceRoot":"","sources":["../../../../src/foundations/push/services/push.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,2CAA+C;AAI/C,6EAAyE;AACzE,kDAAoC;AAG7B,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGtB,YACmB,cAA8B,EAC9B,aAAiD;QADjD,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAoC;QAJ5D,cAAS,GAAG,IAAI,CAAC;QAMvB,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAuB,OAAO,CAAC,CAAC;QAE1E,IAAI,CAAC,WAAW,EAAE,SAAS,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;YACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,eAAe,CAAC,UAAU,WAAW,CAAC,KAAK,EAAE,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAA6C;QACtE,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1G,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;YACvC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC/B,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ;gBACtC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM;gBACvC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI;aACpC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAKtB;QACC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,GAAG,EAAE,MAAM,CAAC,GAAG;SAChB,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE;YACtD,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACzF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qEAAqE;gBACrE,wEAAwE;gBACxE,MAAM,UAAU,GAAI,KAA8B,EAAE,UAAU,CAAC;gBAC/D,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC7C,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnG,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AA7DY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAKwB,gCAAc;QACf,sBAAa;GALpC,WAAW,CA6DvB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carlonicora/nestjs-neo4jsonapi",
3
- "version": "1.110.1",
3
+ "version": "1.110.2",
4
4
  "description": "NestJS foundation package with JSON:API, Neo4j, Redis, LangChain agents, and common utilities",
5
5
  "author": "Carlo Nicora",
6
6
  "license": "GPL-3.0-or-later",