@carlonicora/nestjs-neo4jsonapi 8.0.0 → 8.2.0

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 (34) hide show
  1. package/dist/bootstrap/bootstrap.options.d.ts +3 -0
  2. package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
  3. package/dist/foundations/analytics/controllers/analytics.controller.d.ts +1 -0
  4. package/dist/foundations/analytics/controllers/analytics.controller.d.ts.map +1 -1
  5. package/dist/foundations/analytics/controllers/analytics.controller.js +2 -1
  6. package/dist/foundations/analytics/controllers/analytics.controller.js.map +1 -1
  7. package/dist/foundations/analytics/dtos/analytics-event.post.dto.d.ts +1 -0
  8. package/dist/foundations/analytics/dtos/analytics-event.post.dto.d.ts.map +1 -1
  9. package/dist/foundations/analytics/dtos/analytics-event.post.dto.js +5 -0
  10. package/dist/foundations/analytics/dtos/analytics-event.post.dto.js.map +1 -1
  11. package/dist/foundations/analytics/interfaces/analytics.config.interface.d.ts +21 -0
  12. package/dist/foundations/analytics/interfaces/analytics.config.interface.d.ts.map +1 -1
  13. package/dist/foundations/analytics/interfaces/analytics.config.interface.js +2 -0
  14. package/dist/foundations/analytics/interfaces/analytics.config.interface.js.map +1 -1
  15. package/dist/foundations/analytics/interfaces/analytics.page-view.input.d.ts +2 -0
  16. package/dist/foundations/analytics/interfaces/analytics.page-view.input.d.ts.map +1 -1
  17. package/dist/foundations/analytics/interfaces/analytics.resolved-page-view.d.ts +6 -0
  18. package/dist/foundations/analytics/interfaces/analytics.resolved-page-view.d.ts.map +1 -1
  19. package/dist/foundations/analytics/processors/analytics.processor.d.ts.map +1 -1
  20. package/dist/foundations/analytics/processors/analytics.processor.js +10 -0
  21. package/dist/foundations/analytics/processors/analytics.processor.js.map +1 -1
  22. package/dist/foundations/analytics/repositories/analytics-session.repository.d.ts +6 -0
  23. package/dist/foundations/analytics/repositories/analytics-session.repository.d.ts.map +1 -1
  24. package/dist/foundations/analytics/repositories/analytics-session.repository.js +35 -10
  25. package/dist/foundations/analytics/repositories/analytics-session.repository.js.map +1 -1
  26. package/dist/foundations/analytics/services/analytics.service.d.ts +11 -1
  27. package/dist/foundations/analytics/services/analytics.service.d.ts.map +1 -1
  28. package/dist/foundations/analytics/services/analytics.service.js +22 -2
  29. package/dist/foundations/analytics/services/analytics.service.js.map +1 -1
  30. package/dist/foundations/analytics/services/analytics.visitor-id.service.d.ts +10 -0
  31. package/dist/foundations/analytics/services/analytics.visitor-id.service.d.ts.map +1 -1
  32. package/dist/foundations/analytics/services/analytics.visitor-id.service.js +9 -1
  33. package/dist/foundations/analytics/services/analytics.visitor-id.service.js.map +1 -1
  34. package/package.json +1 -1
@@ -197,6 +197,9 @@ export interface BootstrapOptions {
197
197
  * ```typescript
198
198
  * // Force analytics off whatever ANALYTICS_ENABLED says
199
199
  * analytics: { enabled: false }
200
+ *
201
+ * // Keep ANALYTICS_ENABLED in charge; never record these roles or users
202
+ * analytics: { excludedRoleIds: ["<role-id>"], excludedUserIds: ["<user-id>"] }
200
203
  * ```
201
204
  */
202
205
  analytics?: AnalyticsModuleConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.options.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.options.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.options.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export declare class AnalyticsController {
17
17
  track(request: FastifyRequest & {
18
18
  user?: {
19
19
  userId?: string;
20
+ roles?: string[];
20
21
  };
21
22
  }, body: AnalyticsEventPostDTO): Promise<void>;
22
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/controllers/analytics.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE;;;;;;;;;GASG;AACH,qBAEa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAMzD,KAAK,CACF,OAAO,EAAE,cAAc,GAAG;QAAE,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EACvD,IAAI,EAAE,qBAAqB,GAClC,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,OAAO;CAGhB"}
1
+ {"version":3,"file":"analytics.controller.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/controllers/analytics.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE;;;;;;;;;GASG;AACH,qBAEa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAMzD,KAAK,CACF,OAAO,EAAE,cAAc,GAAG;QAAE,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,EACzE,IAAI,EAAE,qBAAqB,GAClC,OAAO,CAAC,IAAI,CAAC;IAwBhB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,OAAO;CAGhB"}
@@ -48,12 +48,13 @@ let AnalyticsController = class AnalyticsController {
48
48
  utmContent: attributes.utmContent,
49
49
  visitorId: attributes.visitorId,
50
50
  screenWidth: attributes.screenWidth,
51
+ consentGranted: attributes.consentGranted,
51
52
  clientIp: this._clientIp(request),
52
53
  userAgent: this._header(request.headers["user-agent"]) ?? "",
53
54
  userId: request.user?.userId,
54
55
  receivedAt: new Date().toISOString(),
55
56
  };
56
- await this.analyticsService.track(input);
57
+ await this.analyticsService.track(input, { roles: request.user?.roles });
57
58
  }
58
59
  /**
59
60
  * First comma-separated hop of X-Forwarded-For, trimmed; request.ip otherwise.
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.controller.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/controllers/analytics.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8F;AAC9F,iDAA6C;AAE7C,4FAAsF;AACtF,+EAAyE;AACzE,2EAAsE;AAEtE,qEAAiE;AACjE,kFAAwE;AACxE,+EAAyE;AAEzE;;;;;;;;;GASG;AAGI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAM7D,AAAN,KAAK,CAAC,KAAK,CACF,OAAwD,EACvD,IAA2B;QAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAExC,MAAM,KAAK,GAA2B;YACpC,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACjC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;YAC5D,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM;YAC5B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACK,SAAS,CAAC,OAAuB;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAClD,OAAO,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;IAChC,CAAC;IAEO,OAAO,CAAC,KAAoC;QAClD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,CAAC;CACF,CAAA;AA9CY,kDAAmB;AAOxB;IAJL,IAAA,aAAI,EAAC,yCAAkB,CAAC,QAAQ,CAAC;IACjC,IAAA,kBAAS,EAAC,8CAAoB,CAAC;IAC/B,IAAA,oBAAQ,EAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;IAC/E,IAAA,iBAAQ,EAAC,mBAAU,CAAC,QAAQ,CAAC;IAE3B,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAO,gDAAqB;;gDAsBpC;8BA/BU,mBAAmB;IAF/B,IAAA,4BAAS,EAAC,EAAE,MAAM,EAAE,8BAAY,CAAC,SAAS,EAAE,CAAC;IAC7C,IAAA,mBAAU,GAAE;qCAEoC,oCAAgB;GADpD,mBAAmB,CA8C/B"}
1
+ {"version":3,"file":"analytics.controller.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/controllers/analytics.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8F;AAC9F,iDAA6C;AAE7C,4FAAsF;AACtF,+EAAyE;AACzE,2EAAsE;AAEtE,qEAAiE;AACjE,kFAAwE;AACxE,+EAAyE;AAEzE;;;;;;;;;GASG;AAGI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAM7D,AAAN,KAAK,CAAC,KAAK,CACF,OAA0E,EACzE,IAA2B;QAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAExC,MAAM,KAAK,GAA2B;YACpC,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACjC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE;YAC5D,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM;YAC5B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QAEF,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;;OAGG;IACK,SAAS,CAAC,OAAuB;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAClD,OAAO,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;IAChC,CAAC;IAEO,OAAO,CAAC,KAAoC;QAClD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjD,CAAC;CACF,CAAA;AA/CY,kDAAmB;AAOxB;IAJL,IAAA,aAAI,EAAC,yCAAkB,CAAC,QAAQ,CAAC;IACjC,IAAA,kBAAS,EAAC,8CAAoB,CAAC;IAC/B,IAAA,oBAAQ,EAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;IAC/E,IAAA,iBAAQ,EAAC,mBAAU,CAAC,QAAQ,CAAC;IAE3B,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAO,gDAAqB;;gDAuBpC;8BAhCU,mBAAmB;IAF/B,IAAA,4BAAS,EAAC,EAAE,MAAM,EAAE,8BAAY,CAAC,SAAS,EAAE,CAAC;IAC7C,IAAA,mBAAU,GAAE;qCAEoC,oCAAgB;GADpD,mBAAmB,CA+C/B"}
@@ -9,6 +9,7 @@ export declare class AnalyticsEventPostAttributesDTO {
9
9
  utmContent?: string;
10
10
  visitorId?: string;
11
11
  screenWidth?: number;
12
+ consentGranted?: boolean;
12
13
  }
13
14
  export declare class AnalyticsEventPostDataDTO {
14
15
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-event.post.dto.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/dtos/analytics-event.post.dto.ts"],"names":[],"mappings":"AAgBA,qBAAa,+BAA+B;IAK1C,IAAI,EAAE,MAAM,CAAC;IAIb,OAAO,EAAE,QAAQ,GAAG,KAAK,CAAC;IAK1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAKjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,yBAAyB;IAEpC,IAAI,EAAE,MAAM,CAAC;IAIb,EAAE,CAAC,EAAE,MAAM,CAAC;IAKZ,UAAU,EAAE,+BAA+B,CAAC;CAC7C;AAED,qBAAa,qBAAqB;IAIhC,IAAI,EAAE,yBAAyB,CAAC;CACjC"}
1
+ {"version":3,"file":"analytics-event.post.dto.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/dtos/analytics-event.post.dto.ts"],"names":[],"mappings":"AAiBA,qBAAa,+BAA+B;IAK1C,IAAI,EAAE,MAAM,CAAC;IAIb,OAAO,EAAE,QAAQ,GAAG,KAAK,CAAC;IAK1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAKjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,yBAAyB;IAEpC,IAAI,EAAE,MAAM,CAAC;IAIb,EAAE,CAAC,EAAE,MAAM,CAAC;IAKZ,UAAU,EAAE,+BAA+B,CAAC;CAC7C;AAED,qBAAa,qBAAqB;IAIhC,IAAI,EAAE,yBAAyB,CAAC;CACjC"}
@@ -75,6 +75,11 @@ __decorate([
75
75
  (0, class_validator_1.Min)(0),
76
76
  __metadata("design:type", Number)
77
77
  ], AnalyticsEventPostAttributesDTO.prototype, "screenWidth", void 0);
78
+ __decorate([
79
+ (0, class_validator_1.IsOptional)(),
80
+ (0, class_validator_1.IsBoolean)(),
81
+ __metadata("design:type", Boolean)
82
+ ], AnalyticsEventPostAttributesDTO.prototype, "consentGranted", void 0);
78
83
  class AnalyticsEventPostDataDTO {
79
84
  }
80
85
  exports.AnalyticsEventPostDataDTO = AnalyticsEventPostDataDTO;
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-event.post.dto.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/dtos/analytics-event.post.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyC;AACzC,qDAYyB;AACzB,2EAAsE;AAEtE,MAAa,+BAA+B;CAiD3C;AAjDD,0EAiDC;AA5CC;IAJC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,IAAI,CAAC;;6DACH;AAIb;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,sBAAI,EAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;;gEACE;AAK1B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,IAAI,CAAC;;iEACE;AAKlB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;kEACI;AAKnB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;kEACI;AAKnB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;oEACM;AAKrB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;gEACE;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;mEACK;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;kEACU;AAKnB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;oEACc;AAGvB,MAAa,yBAAyB;CAYrC;AAZD,8DAYC;AAVC;IADC,IAAA,wBAAM,EAAC,yCAAkB,CAAC,IAAI,CAAC;;uDACnB;AAIb;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;qDACG;AAKZ;IAHC,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC;8BAChC,+BAA+B;6DAAC;AAG9C,MAAa,qBAAqB;CAKjC;AALD,sDAKC;AADC;IAHC,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC;8BAChC,yBAAyB;mDAAC"}
1
+ {"version":3,"file":"analytics-event.post.dto.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/dtos/analytics-event.post.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyC;AACzC,qDAayB;AACzB,2EAAsE;AAEtE,MAAa,+BAA+B;CAqD3C;AArDD,0EAqDC;AAhDC;IAJC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,IAAI,CAAC;;6DACH;AAIb;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,sBAAI,EAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;;gEACE;AAK1B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,IAAI,CAAC;;iEACE;AAKlB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;kEACI;AAKnB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;kEACI;AAKnB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;oEACM;AAKrB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;gEACE;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,GAAG,CAAC;;mEACK;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;kEACU;AAKnB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;oEACc;AAIrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;uEACa;AAG3B,MAAa,yBAAyB;CAYrC;AAZD,8DAYC;AAVC;IADC,IAAA,wBAAM,EAAC,yCAAkB,CAAC,IAAI,CAAC;;uDACnB;AAIb;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,GAAE;;qDACG;AAKZ;IAHC,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC;8BAChC,+BAA+B;6DAAC;AAG9C,MAAa,qBAAqB;CAKjC;AALD,sDAKC;AADC;IAHC,IAAA,gCAAc,GAAE;IAChB,IAAA,2BAAS,GAAE;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC;8BAChC,yBAAyB;mDAAC"}
@@ -59,6 +59,27 @@ export interface AnalyticsModuleConfig {
59
59
  * @default "analytics:pageView"
60
60
  */
61
61
  jobName?: string;
62
+ /**
63
+ * Role ids whose page views are never recorded. A logged-in caller holding
64
+ * any one of these roles is dropped before the queue; the endpoint still
65
+ * answers 202. Anonymous page views are unaffected.
66
+ *
67
+ * Not read from env: set it through `bootstrap({ analytics })`.
68
+ *
69
+ * @default []
70
+ */
71
+ excludedRoleIds?: string[];
72
+ /**
73
+ * User ids whose app page views are never recorded (dropped before the
74
+ * queue). Their public page views are counted as anonymous, with no user
75
+ * link: a login shared by many visitors, such as an embedded demo, must not
76
+ * hide the visitors behind it.
77
+ *
78
+ * Not read from env: set it through `bootstrap({ analytics })`.
79
+ *
80
+ * @default []
81
+ */
82
+ excludedUserIds?: string[];
62
83
  }
63
84
  /**
64
85
  * Injection token for the resolved analytics configuration.
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.config.interface.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/interfaces/analytics.config.interface.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,qBAAqB,CAMpE,CAAC"}
1
+ {"version":3,"file":"analytics.config.interface.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/interfaces/analytics.config.interface.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAE3D;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,qBAAqB,CAQpE,CAAC"}
@@ -24,5 +24,7 @@ exports.DEFAULT_ANALYTICS_CONFIG = {
24
24
  sessionTimeoutMinutes: 30,
25
25
  queueId: queue_id_1.QueueId.ANALYTICS,
26
26
  jobName: "analytics:pageView",
27
+ excludedRoleIds: [],
28
+ excludedUserIds: [],
27
29
  };
28
30
  //# sourceMappingURL=analytics.config.interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.config.interface.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/interfaces/analytics.config.interface.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAqEzD;;;GAGG;AACU,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE3D;;;;;;GAMG;AACU,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEzD;;GAEG;AACU,QAAA,wBAAwB,GAAoC;IACvE,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,EAAE;IACnB,qBAAqB,EAAE,EAAE;IACzB,OAAO,EAAE,kBAAO,CAAC,SAAS;IAC1B,OAAO,EAAE,oBAAoB;CAC9B,CAAC"}
1
+ {"version":3,"file":"analytics.config.interface.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/interfaces/analytics.config.interface.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AA4FzD;;;GAGG;AACU,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE3D;;;;;;GAMG;AACU,QAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEzD;;GAEG;AACU,QAAA,wBAAwB,GAAoC;IACvE,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,EAAE;IACnB,qBAAqB,EAAE,EAAE;IACzB,OAAO,EAAE,kBAAO,CAAC,SAAS;IAC1B,OAAO,EAAE,oBAAoB;IAC7B,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;CACpB,CAAC"}
@@ -18,6 +18,8 @@ export interface AnalyticsPageViewInput {
18
18
  /** UUID from the consent cookie; absent when the visitor has not consented. */
19
19
  visitorId?: string;
20
20
  screenWidth?: number;
21
+ /** True only on the event sent when the visitor clicks Accept. */
22
+ consentGranted?: boolean;
21
23
  /** First `X-Forwarded-For` hop or `request.ip`. Hashed in the worker, never stored. */
22
24
  clientIp: string;
23
25
  /** Hashed and classified in the worker, never stored. */
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.page-view.input.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/interfaces/analytics.page-view.input.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"analytics.page-view.input.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/interfaces/analytics.page-view.input.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -26,5 +26,11 @@ export interface AnalyticsResolvedPageView {
26
26
  /** ISO instant; becomes the page view's `createdAt` and the session's `lastSeenAt`. */
27
27
  receivedAt: string;
28
28
  sessionTimeoutMinutes: number;
29
+ /**
30
+ * The visitor's `d:` id, only on the Accept event; its open session is moved
31
+ * to `visitorId`. Optional so existing callers of this exported interface
32
+ * keep compiling; the repository binds `null` when absent.
33
+ */
34
+ adoptVisitorId?: string | null;
29
35
  }
30
36
  //# sourceMappingURL=analytics.resolved-page-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.resolved-page-view.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/interfaces/analytics.resolved-page-view.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC1B,mFAAmF;IACnF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uFAAuF;IACvF,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;CAC/B"}
1
+ {"version":3,"file":"analytics.resolved-page-view.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/interfaces/analytics.resolved-page-view.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC1B,mFAAmF;IACnF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uFAAuF;IACvF,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC"}
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.processor.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/processors/analytics.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAoB,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAQrF;;;;;;;;;;GAUG;AACH,qBACa,kBAAmB,SAAQ,UAAU;IAK9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAPtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;gBAG5B,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,0BAA0B,EACtC,UAAU,EAAE,yBAAyB,EACrC,GAAG,EAAE,UAAU,EACN,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAQnE,OAAO,CAAC,GAAG,EAAE,GAAG;IAIV,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD9D,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,YAAY;CAQrB"}
1
+ {"version":3,"file":"analytics.processor.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/processors/analytics.processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAoB,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAQrF;;;;;;;;;;GAUG;AACH,qBACa,kBAAmB,SAAQ,UAAU;IAK9C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAPtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;gBAG5B,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,0BAA0B,EACtC,UAAU,EAAE,yBAAyB,EACrC,GAAG,EAAE,UAAU,EACN,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAQnE,OAAO,CAAC,GAAG,EAAE,GAAG;IAIV,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D9D,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,YAAY;CAQrB"}
@@ -70,6 +70,15 @@ let AnalyticsProcessor = class AnalyticsProcessor extends bullmq_1.WorkerHost {
70
70
  userAgent: input.userAgent,
71
71
  receivedAt: input.receivedAt,
72
72
  });
73
+ // On the Accept event the visitor may already have an open session under
74
+ // their cookieless id: hand that id over so the repository can adopt it.
75
+ const adoptVisitorId = input.consentGranted === true && input.visitorId
76
+ ? await this.visitorIds.dailyVisitorId({
77
+ clientIp: input.clientIp,
78
+ userAgent: input.userAgent,
79
+ receivedAt: input.receivedAt,
80
+ })
81
+ : null;
73
82
  const resolved = {
74
83
  visitorId,
75
84
  consented,
@@ -86,6 +95,7 @@ let AnalyticsProcessor = class AnalyticsProcessor extends bullmq_1.WorkerHost {
86
95
  userId: input.userId ?? null,
87
96
  receivedAt: input.receivedAt,
88
97
  sessionTimeoutMinutes: this.sessionTimeoutMinutes,
98
+ adoptVisitorId,
89
99
  };
90
100
  const { sessionId, created } = await this.repository.recordPageView(resolved);
91
101
  this.logger.debug(`analytics pageView visitor=${visitorId} session=${sessionId} created=${created}`);
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.processor.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/processors/analytics.processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.processor.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/processors/analytics.processor.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,12 @@ export declare class AnalyticsSessionRepository extends AbstractRepository<Analy
41
41
  * pageViews; then create the page view and, when the event carries a user
42
42
  * and the session has none yet, the BY_USER edge.
43
43
  *
44
+ * On the Accept event (adoptVisitorId set) with no open session for the
45
+ * cookie id, the visitor's open cookieless session is adopted instead of
46
+ * creating one: it is re-keyed to the cookie id and marked consented. The
47
+ * re-sent page is skipped when it equals the adopted session's latest page
48
+ * view, so the page the visitor accepted on is not counted twice.
49
+ *
44
50
  * The new session id is generated here, so `created` is simply whether the
45
51
  * returned session carries it. The session is returned through the
46
52
  * descriptor serialiser (writeOne + serialiser), never as a raw record.
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-session.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/repositories/analytics-session.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAEnF,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAavF;;;;;;;;;;GAUG;AACH,qBACa,0BAA2B,SAAQ,kBAAkB,CAChE,gBAAgB,EAChB,OAAO,0BAA0B,CAAC,aAAa,CAChD;IACC,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;OAA8B;gBAE/C,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU;IAIzF;;;;OAIG;IACY,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5C;;;;;;;;;;OAUG;IACG,cAAc,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IA+ExG;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,MAAM,EAAE,sBAAsB,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;QAClC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA8B/B;;;;;;OAMG;IACG,SAAS,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IA+B3F,8FAA8F;IACxF,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAe3C,6FAA6F;IACvF,eAAe,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAkBrE,gBAAgB;CAc/B"}
1
+ {"version":3,"file":"analytics-session.repository.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/repositories/analytics-session.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2DAA2D,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAEnF,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAavF;;;;;;;;;;GAUG;AACH,qBACa,0BAA2B,SAAQ,kBAAkB,CAChE,gBAAgB,EAChB,OAAO,0BAA0B,CAAC,aAAa,CAChD;IACC,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;OAA8B;gBAE/C,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU;IAIzF;;;;OAIG;IACY,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5C;;;;;;;;;;;;;;;;OAgBG;IACG,cAAc,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAkGxG;;;;OAIG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,MAAM,EAAE,sBAAsB,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;QAClC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA8B/B;;;;;;OAMG;IACG,SAAS,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IA+B3F,8FAA8F;IACxF,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAe3C,6FAA6F;IACvF,eAAe,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAkBrE,gBAAgB;CAc/B"}
@@ -69,6 +69,12 @@ let AnalyticsSessionRepository = class AnalyticsSessionRepository extends abstra
69
69
  * pageViews; then create the page view and, when the event carries a user
70
70
  * and the session has none yet, the BY_USER edge.
71
71
  *
72
+ * On the Accept event (adoptVisitorId set) with no open session for the
73
+ * cookie id, the visitor's open cookieless session is adopted instead of
74
+ * creating one: it is re-keyed to the cookie id and marked consented. The
75
+ * re-sent page is skipped when it equals the adopted session's latest page
76
+ * view, so the page the visitor accepted on is not counted twice.
77
+ *
72
78
  * The new session id is generated here, so `created` is simply whether the
73
79
  * returned session carries it. The session is returned through the
74
80
  * descriptor serialiser (writeOne + serialiser), never as a raw record.
@@ -96,6 +102,7 @@ let AnalyticsSessionRepository = class AnalyticsSessionRepository extends abstra
96
102
  userId: input.userId ?? null,
97
103
  receivedAt: input.receivedAt,
98
104
  sessionTimeoutMinutes: input.sessionTimeoutMinutes,
105
+ adoptVisitorId: input.adoptVisitorId ?? null,
99
106
  ...this.getPolyLabelParams(),
100
107
  };
101
108
  query.query = `
@@ -104,7 +111,19 @@ let AnalyticsSessionRepository = class AnalyticsSessionRepository extends abstra
104
111
  WITH openSession
105
112
  ORDER BY openSession.lastSeenAt DESC
106
113
  LIMIT 1
107
- MERGE (${nodeName}:${labelName} {id: coalesce(openSession.id, $newSessionId)})
114
+ OPTIONAL MATCH (adopted:${labelName})
115
+ WHERE openSession IS NULL AND $adoptVisitorId IS NOT NULL
116
+ AND adopted.visitorId = $adoptVisitorId
117
+ AND adopted.lastSeenAt >= datetime($receivedAt) - duration({minutes: $sessionTimeoutMinutes})
118
+ WITH openSession, adopted
119
+ ORDER BY adopted.lastSeenAt DESC
120
+ LIMIT 1
121
+ OPTIONAL MATCH (lastView:${analytics_page_view_meta_1.analyticsPageViewMeta.labelName})-[:IN_SESSION]->(adopted)
122
+ WITH openSession, adopted, lastView
123
+ ORDER BY lastView.createdAt DESC
124
+ LIMIT 1
125
+ WITH openSession, adopted, lastView.path AS lastPath
126
+ MERGE (${nodeName}:${labelName} {id: coalesce(openSession.id, adopted.id, $newSessionId)})
108
127
  ON CREATE SET ${nodeName} += {
109
128
  visitorId: $visitorId,
110
129
  consented: $consented,
@@ -122,16 +141,22 @@ let AnalyticsSessionRepository = class AnalyticsSessionRepository extends abstra
122
141
  createdAt: datetime($receivedAt)
123
142
  }
124
143
  SET ${nodeName}.lastSeenAt = datetime($receivedAt),
125
- ${nodeName}.pageViews = ${nodeName}.pageViews + 1,
126
144
  ${nodeName}.updatedAt = datetime($receivedAt)
127
- CREATE (${analytics_page_view_meta_1.analyticsPageViewMeta.nodeName}:${analytics_page_view_meta_1.analyticsPageViewMeta.labelName} {
128
- id: $pageViewId,
129
- path: $path,
130
- route: $route,
131
- section: $section,
132
- createdAt: datetime($receivedAt),
133
- updatedAt: datetime($receivedAt)
134
- })-[:IN_SESSION]->(${nodeName})
145
+ FOREACH (_ IN CASE WHEN adopted IS NOT NULL THEN [1] ELSE [] END |
146
+ SET ${nodeName}.visitorId = $visitorId, ${nodeName}.consented = true
147
+ )
148
+ WITH ${nodeName}, adopted IS NOT NULL AND coalesce(lastPath = $path, false) AS repeatedView
149
+ FOREACH (_ IN CASE WHEN repeatedView THEN [] ELSE [1] END |
150
+ SET ${nodeName}.pageViews = ${nodeName}.pageViews + 1
151
+ CREATE (${analytics_page_view_meta_1.analyticsPageViewMeta.nodeName}:${analytics_page_view_meta_1.analyticsPageViewMeta.labelName} {
152
+ id: $pageViewId,
153
+ path: $path,
154
+ route: $route,
155
+ section: $section,
156
+ createdAt: datetime($receivedAt),
157
+ updatedAt: datetime($receivedAt)
158
+ })-[:IN_SESSION]->(${nodeName})
159
+ )
135
160
  WITH ${nodeName}
136
161
  OPTIONAL MATCH (${user_meta_1.userMeta.nodeName}:${user_meta_1.userMeta.labelName} {id: $userId})
137
162
  WITH ${nodeName}, ${user_meta_1.userMeta.nodeName}
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-session.repository.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/repositories/analytics-session.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics-session.repository.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/repositories/analytics-session.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mCAAoC;AACpC,2CAAwC;AACxC,yEAA0E;AAE1E,2FAAuF;AACvF,8EAA0E;AAC1E,uFAAmF;AACnF,6DAAyD;AACzD,qEAA6F;AAC7F,mFAA6E;AAG7E,0DAA0D;AAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAU,EAAE;IACtC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,OAAQ,CAAiC,CAAC,QAAQ,KAAK,UAAU;QACnE,OAAQ,CAAgC,CAAC,QAAQ,EAAE,CAAC;IACtD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AAEI,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,wCAG/C;IAGC,YAAY,KAAmB,EAAE,eAAgC,EAAE,UAAsB;QACvF,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAHzB,eAAU,GAAG,8CAA0B,CAAC;IAI3D,CAAC;IAED;;;;OAIG;IACM,KAAK,CAAC,YAAY;QACzB,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;QAE3B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAEtD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACxB,KAAK,EAAE,gBAAgB,QAAQ,4CAA4C,QAAQ,IAAI,SAAS,SAAS,QAAQ,eAAe,QAAQ,cAAc;SACvJ,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACxB,KAAK,EAAE,gBAAgB,QAAQ,iCAAiC,QAAQ,IAAI,SAAS,SAAS,QAAQ,aAAa;SACpH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,cAAc,CAAC,KAAgC;QACnD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACtD,MAAM,YAAY,GAAG,IAAA,mBAAU,GAAE,CAAC;QAElC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1E,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,YAAY;YACZ,UAAU,EAAE,IAAA,mBAAU,GAAE;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;YACxC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;YAClC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;YACtC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACpC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;YAC5C,GAAG,IAAI,CAAC,kBAAkB,EAAE;SAC7B,CAAC;QAEF,KAAK,CAAC,KAAK,GAAG;oCACkB,SAAS;;;;;gCAKb,SAAS;;;;;;;iCAOR,gDAAqB,CAAC,SAAS;;;;;eAKjD,QAAQ,IAAI,SAAS;sBACd,QAAQ;;;;;;;;;;;;;;;;YAgBlB,QAAQ;UACV,QAAQ;;cAEJ,QAAQ,4BAA4B,QAAQ;;aAE7C,QAAQ;;cAEP,QAAQ,gBAAgB,QAAQ;kBAC5B,gDAAqB,CAAC,QAAQ,IAAI,gDAAqB,CAAC,SAAS;;;;;;;6BAOtD,QAAQ;;aAExB,QAAQ;wBACG,oBAAQ,CAAC,QAAQ,IAAI,oBAAQ,CAAC,SAAS;aAClD,QAAQ,KAAK,oBAAQ,CAAC,QAAQ;;uCAEJ,oBAAQ,CAAC,QAAQ,kCAAkC,QAAQ,mBAAmB,oBAAQ,CAAC,SAAS;;iBAEtH,QAAQ,kBAAkB,oBAAQ,CAAC,QAAQ;;aAE/C,QAAQ;QACb,IAAI,CAAC,oBAAoB,EAAE;KAC9B,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,SAAS,sBAAsB,CAAC,CAAC;QAEhG,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,MAOlB;QACC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEjG,KAAK,CAAC,WAAW,GAAG;YAClB,GAAG,KAAK,CAAC,WAAW;YACpB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;YAC7B,GAAG,IAAI,CAAC,kBAAkB,EAAE;SAC7B,CAAC;QAEF,KAAK,CAAC,KAAK,IAAI;QACX,IAAI,CAAC,iBAAiB,EAAE;cAClB,QAAQ;cACR,QAAQ;mCACa,QAAQ;qCACN,QAAQ;4CACD,QAAQ,mBAAmB,oBAAQ,CAAC,SAAS;aAC5E,QAAQ;iBACJ,QAAQ;;QAEjB,IAAI,CAAC,oBAAoB,EAAE;KAC9B,CAAC;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,MAAwB;QACtC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACtD,MAAM,EAAE,GAAG,gDAAqB,CAAC;QAEjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;YAC5C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE;iBACI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,SAAS,qBAAqB,QAAQ,IAAI,SAAS;qBACjE,QAAQ;eACd,EAAE,CAAC,QAAQ;;wBAEF,EAAE,CAAC,QAAQ;;OAE5B;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;YAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE;iBACI,QAAQ,IAAI,SAAS;qBACjB,QAAQ;eACd,QAAQ;;wBAEC,QAAQ;;OAEzB;SACF,CAAC,CAAC;QAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,8FAA8F;IAC9F,KAAK,CAAC,kBAAkB;QACtB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACrD;gBACE,KAAK,EAAE;oBACK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,mBAAmB,oBAAQ,CAAC,QAAQ,IAAI,oBAAQ,CAAC,SAAS;;;SAGpG;gBACD,MAAM,EAAE,EAAE;aACX;SACF,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,eAAe,CAAC,MAAyC;QAC7D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAClC;iBACW,QAAQ,IAAI,SAAS;qBACjB,QAAQ;6BACA,QAAQ;;;;OAI9B,EACD,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAC/C,CAAC;QAEF,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAA,iCAAiB,EAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAW,CAAC,CAAC;IAC3F,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAuC;QACpE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAe,CAAC;QAEpB,GAAG,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;gBACrD,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE;aACrF,CAAC,CAAC;YACH,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YACzD,KAAK,IAAI,OAAO,CAAC;QACnB,CAAC,QAAQ,OAAO,IAAI,iBAAiB,EAAE;QAEvC,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAjRY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;qCAOQ,4BAAY,EAAmB,kCAAe,EAAc,uBAAU;GAN9E,0BAA0B,CAiRtC"}
@@ -21,11 +21,21 @@ export declare class AnalyticsService extends AbstractService<AnalyticsSession,
21
21
  };
22
22
  }>;
23
23
  private readonly jobName;
24
+ private readonly excludedRoleIds;
25
+ private readonly excludedUserIds;
24
26
  constructor(jsonApiService: JsonApiService, analyticsSessionRepository: AnalyticsSessionRepository, clsService: ClsService, queue: Queue, logger: AppLoggingService, config: Required<AnalyticsModuleConfig>);
25
27
  /**
26
28
  * Enqueue a page view for async write. Never throws — analytics must not
27
29
  * break the caller's request path.
30
+ *
31
+ * A page view from a caller holding any excluded role is dropped before the
32
+ * queue. A page view from an excluded user id is dropped on app pages; on
33
+ * public pages it is counted as anonymous (no user link), because a shared
34
+ * login such as an embedded demo must not hide the visitor behind it. The
35
+ * roles only decide the drop; they are not added to the job.
28
36
  */
29
- track(input: AnalyticsPageViewInput): Promise<void>;
37
+ track(input: AnalyticsPageViewInput, options?: {
38
+ roles?: string[];
39
+ }): Promise<void>;
30
40
  }
31
41
  //# sourceMappingURL=analytics.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/services/analytics.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAqC,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACpH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAE1F,qBACa,gBAAiB,SAAQ,eAAe,CACnD,gBAAgB,EAChB,OAAO,0BAA0B,CAAC,aAAa,CAChD;IAQ4B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;OAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAG/B,cAAc,EAAE,cAAc,EAC9B,0BAA0B,EAAE,0BAA0B,EACtD,UAAU,EAAE,UAAU,EACoB,KAAK,EAAE,KAAK,EACrC,MAAM,EAAE,iBAAiB,EAChB,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAMnE;;;OAGG;IACG,KAAK,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;CAO1D"}
1
+ {"version":3,"file":"analytics.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/services/analytics.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAqC,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACpH,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAE1F,qBACa,gBAAiB,SAAQ,eAAe,CACnD,gBAAgB,EAChB,OAAO,0BAA0B,CAAC,aAAa,CAChD;IAU4B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,SAAS,CAAC,QAAQ,CAAC,UAAU;;;;;;;;;OAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;gBAG5C,cAAc,EAAE,cAAc,EAC9B,0BAA0B,EAAE,0BAA0B,EACtD,UAAU,EAAE,UAAU,EACoB,KAAK,EAAE,KAAK,EACrC,MAAM,EAAE,iBAAiB,EAChB,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC;IAQnE;;;;;;;;;OASG;IACG,KAAK,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB1F"}
@@ -29,14 +29,34 @@ let AnalyticsService = class AnalyticsService extends abstract_service_1.Abstrac
29
29
  this.logger = logger;
30
30
  this.descriptor = analytics_session_1.AnalyticsSessionDescriptor;
31
31
  this.jobName = config.jobName;
32
+ this.excludedRoleIds = new Set(config.excludedRoleIds);
33
+ this.excludedUserIds = new Set(config.excludedUserIds);
32
34
  }
33
35
  /**
34
36
  * Enqueue a page view for async write. Never throws — analytics must not
35
37
  * break the caller's request path.
38
+ *
39
+ * A page view from a caller holding any excluded role is dropped before the
40
+ * queue. A page view from an excluded user id is dropped on app pages; on
41
+ * public pages it is counted as anonymous (no user link), because a shared
42
+ * login such as an embedded demo must not hide the visitor behind it. The
43
+ * roles only decide the drop; they are not added to the job.
36
44
  */
37
- async track(input) {
45
+ async track(input, options) {
46
+ const hasExcludedRole = (options?.roles ?? []).some((roleId) => this.excludedRoleIds.has(roleId));
47
+ const isExcludedUser = !!input.userId && this.excludedUserIds.has(input.userId);
48
+ if (hasExcludedRole || (isExcludedUser && input.section === "app")) {
49
+ // Path only: raw IP and user agent must not reach the logs.
50
+ this.logger.debug(`analytics pageView dropped reason=excluded path=${input.path}`);
51
+ return;
52
+ }
53
+ let job = input;
54
+ if (isExcludedUser) {
55
+ const { userId: _userId, ...anonymous } = input;
56
+ job = anonymous;
57
+ }
38
58
  try {
39
- await this.queue.add(this.jobName, input);
59
+ await this.queue.add(this.jobName, job);
40
60
  }
41
61
  catch (err) {
42
62
  this.logger.error(`AnalyticsService.track enqueue failed: ${err instanceof Error ? err.message : String(err)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.service.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/services/analytics.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,mCAA+B;AAC/B,2CAAwC;AACxC,oFAAgF;AAChF,oFAAmF;AACnF,qFAAiF;AACjF,qEAA6F;AAC7F,yFAAoH;AAEpH,+FAA0F;AAGnF,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,kCAGrC;IAIC,YACE,cAA8B,EAC9B,0BAAsD,EACtD,UAAsB,EACG,KAA6B,EACrC,MAAyB,EAChB,MAAuC;QAEjE,KAAK,CAAC,cAAc,EAAE,0BAA0B,EAAE,UAAU,EAAE,8CAA0B,CAAC,KAAK,CAAC,CAAC;QAJtD,UAAK,GAAL,KAAK,CAAO;QACrC,WAAM,GAAN,MAAM,CAAmB;QARzB,eAAU,GAAG,8CAA0B,CAAC;QAYzD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,KAA6B;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;CACF,CAAA;AA9BY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAYR,WAAA,IAAA,eAAM,EAAC,4CAAe,CAAC,CAAA;IAEvB,WAAA,IAAA,eAAM,EAAC,6CAAgB,CAAC,CAAA;qCALT,gCAAc;QACF,yDAA0B;QAC1C,uBAAU;QAC2B,cAAK;QAC7B,mCAAiB;GAZjC,gBAAgB,CA8B5B"}
1
+ {"version":3,"file":"analytics.service.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/services/analytics.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,mCAA+B;AAC/B,2CAAwC;AACxC,oFAAgF;AAChF,oFAAmF;AACnF,qFAAiF;AACjF,qEAA6F;AAC7F,yFAAoH;AAEpH,+FAA0F;AAGnF,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,kCAGrC;IAMC,YACE,cAA8B,EAC9B,0BAAsD,EACtD,UAAsB,EACG,KAA6B,EACrC,MAAyB,EAChB,MAAuC;QAEjE,KAAK,CAAC,cAAc,EAAE,0BAA0B,EAAE,UAAU,EAAE,8CAA0B,CAAC,KAAK,CAAC,CAAC;QAJtD,UAAK,GAAL,KAAK,CAAO;QACrC,WAAM,GAAN,MAAM,CAAmB;QAVzB,eAAU,GAAG,8CAA0B,CAAC;QAczD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,CAAC,KAA6B,EAAE,OAA8B;QACvE,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAClG,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhF,IAAI,eAAe,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC;YACnE,4DAA4D;YAC5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mDAAmD,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QAED,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;YAChD,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;CACF,CAAA;AAvDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAcR,WAAA,IAAA,eAAM,EAAC,4CAAe,CAAC,CAAA;IAEvB,WAAA,IAAA,eAAM,EAAC,6CAAgB,CAAC,CAAA;qCALT,gCAAc;QACF,yDAA0B;QAC1C,uBAAU;QAC2B,cAAK;QAC7B,mCAAiB;GAdjC,gBAAgB,CAuD5B"}
@@ -29,6 +29,16 @@ export declare class AnalyticsVisitorIdService {
29
29
  visitorId: string;
30
30
  consented: boolean;
31
31
  }>;
32
+ /**
33
+ * The cookieless `d:` id for this IP and user agent on the day of
34
+ * `receivedAt`. Also used on the Accept event, so the worker can find the
35
+ * session the visitor opened before consenting.
36
+ */
37
+ dailyVisitorId(input: {
38
+ clientIp: string;
39
+ userAgent: string;
40
+ receivedAt: string;
41
+ }): Promise<string>;
32
42
  dailySalt(day: string): Promise<string>;
33
43
  }
34
44
  //# sourceMappingURL=analytics.visitor-id.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.visitor-id.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/services/analytics.visitor-id.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2DAA2D,CAAC;AAEtG,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAWrC;;;;;;;;;GASG;AACH,qBACa,yBAAyB;IAKlC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAG7B,KAAK,EAAE,yBAAyB,EAChC,MAAM,EAAE,iBAAiB;IAG5C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIjC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ;IAOxD,OAAO,CAAC,KAAK,EAAE;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAWhD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA0B9C"}
1
+ {"version":3,"file":"analytics.visitor-id.service.d.ts","sourceRoot":"","sources":["../../../../src/foundations/analytics/services/analytics.visitor-id.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2DAA2D,CAAC;AAEtG,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAWrC;;;;;;;;;GASG;AACH,qBACa,yBAAyB;IAKlC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAG7B,KAAK,EAAE,yBAAyB,EAChC,MAAM,EAAE,iBAAiB;IAG5C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIjC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ;IAOxD,OAAO,CAAC,KAAK,EAAE;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAMtD;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IASnG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA0B9C"}
@@ -54,11 +54,19 @@ let AnalyticsVisitorIdService = AnalyticsVisitorIdService_1 = class AnalyticsVis
54
54
  async resolve(input) {
55
55
  if (input.visitorId)
56
56
  return { visitorId: `${exports.COOKIE_ID_PREFIX}${input.visitorId}`, consented: true };
57
+ return { visitorId: await this.dailyVisitorId(input), consented: false };
58
+ }
59
+ /**
60
+ * The cookieless `d:` id for this IP and user agent on the day of
61
+ * `receivedAt`. Also used on the Accept event, so the worker can find the
62
+ * session the visitor opened before consenting.
63
+ */
64
+ async dailyVisitorId(input) {
57
65
  const salt = await this.dailySalt(input.receivedAt.slice(0, 10));
58
66
  const hash = (0, crypto_1.createHash)("sha256")
59
67
  .update(salt + input.clientIp + input.userAgent)
60
68
  .digest("hex");
61
- return { visitorId: `${exports.DAILY_HASH_PREFIX}${hash}`, consented: false };
69
+ return `${exports.DAILY_HASH_PREFIX}${hash}`;
62
70
  }
63
71
  async dailySalt(day) {
64
72
  const key = `${SALT_KEY_PREFIX}${day}`;
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.visitor-id.service.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/services/analytics.visitor-id.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.visitor-id.service.js","sourceRoot":"","sources":["../../../../src/foundations/analytics/services/analytics.visitor-id.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carlonicora/nestjs-neo4jsonapi",
3
- "version": "8.0.0",
3
+ "version": "8.2.0",
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",