@autologix-engineering/shared 1.2.332 → 1.2.334

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 (79) hide show
  1. package/package.json +1 -1
  2. package/src/lib/data-transfer-objects/src/add.client.persona.billing.methods.dto.d.ts +2 -1
  3. package/src/lib/data-transfer-objects/src/add.client.persona.billing.methods.dto.js +6 -1
  4. package/src/lib/data-transfer-objects/src/add.client.persona.billing.methods.dto.js.map +1 -1
  5. package/src/lib/data-transfer-objects/src/get.clients.by.email.domain.dto.d.ts +1 -1
  6. package/src/lib/data-transfer-objects/src/get.clients.by.email.domain.dto.js +1 -0
  7. package/src/lib/data-transfer-objects/src/get.clients.by.email.domain.dto.js.map +1 -1
  8. package/src/lib/data-transfer-objects/src/query/get.concurrent.users.dto.d.ts +32 -0
  9. package/src/lib/data-transfer-objects/src/query/get.concurrent.users.dto.js +47 -0
  10. package/src/lib/data-transfer-objects/src/query/get.concurrent.users.dto.js.map +1 -0
  11. package/src/lib/data-transfer-objects/src/query/get.tax.invoice.booking.breakdown.dto.d.ts +55 -0
  12. package/src/lib/data-transfer-objects/src/query/get.tax.invoice.booking.breakdown.dto.js +30 -0
  13. package/src/lib/data-transfer-objects/src/query/get.tax.invoice.booking.breakdown.dto.js.map +1 -0
  14. package/src/lib/data-transfer-objects/src/query/index.d.ts +2 -0
  15. package/src/lib/data-transfer-objects/src/query/index.js +2 -0
  16. package/src/lib/data-transfer-objects/src/query/index.js.map +1 -1
  17. package/src/lib/definitions/src/index.d.ts +1 -0
  18. package/src/lib/definitions/src/index.js +1 -0
  19. package/src/lib/definitions/src/index.js.map +1 -1
  20. package/src/lib/definitions/src/registered.user.token.d.ts +9 -0
  21. package/src/lib/definitions/src/session.keys.d.ts +67 -0
  22. package/src/lib/definitions/src/session.keys.js +84 -0
  23. package/src/lib/definitions/src/session.keys.js.map +1 -0
  24. package/src/lib/enums/src/model.enum.d.ts +2 -1
  25. package/src/lib/enums/src/model.enum.js +1 -0
  26. package/src/lib/enums/src/model.enum.js.map +1 -1
  27. package/src/lib/enums/src/query.type.enum.d.ts +4 -1
  28. package/src/lib/enums/src/query.type.enum.js +4 -0
  29. package/src/lib/enums/src/query.type.enum.js.map +1 -1
  30. package/src/lib/enums/src/report.command.types.js +1 -0
  31. package/src/lib/enums/src/report.command.types.js.map +1 -1
  32. package/src/lib/enums/src/trip.billing.distance.new.enum.d.ts +4 -0
  33. package/src/lib/enums/src/trip.billing.distance.new.enum.js +5 -0
  34. package/src/lib/enums/src/trip.billing.distance.new.enum.js.map +1 -1
  35. package/src/lib/models/src/ba.payout.row.model.d.ts +35 -0
  36. package/src/lib/models/src/ba.payout.row.model.js +2 -0
  37. package/src/lib/models/src/ba.payout.row.model.js.map +1 -1
  38. package/src/lib/models/src/business.context.owner.model.d.ts +20 -0
  39. package/src/lib/models/src/business.context.owner.model.js +18 -0
  40. package/src/lib/models/src/business.context.owner.model.js.map +1 -1
  41. package/src/lib/models/src/client.persona.model.d.ts +3 -1
  42. package/src/lib/models/src/client.persona.model.js +1 -0
  43. package/src/lib/models/src/client.persona.model.js.map +1 -1
  44. package/src/lib/models/src/index.d.ts +1 -0
  45. package/src/lib/models/src/index.js +1 -0
  46. package/src/lib/models/src/index.js.map +1 -1
  47. package/src/lib/models/src/instant.invoice.body.model.d.ts +12 -0
  48. package/src/lib/models/src/instant.invoice.body.model.js +10 -0
  49. package/src/lib/models/src/instant.invoice.body.model.js.map +1 -1
  50. package/src/lib/models/src/numbered.invoice.model.d.ts +2 -0
  51. package/src/lib/models/src/numbered.invoice.model.js +4 -0
  52. package/src/lib/models/src/numbered.invoice.model.js.map +1 -1
  53. package/src/lib/models/src/user.session.model.d.ts +101 -0
  54. package/src/lib/models/src/user.session.model.js +82 -0
  55. package/src/lib/models/src/user.session.model.js.map +1 -0
  56. package/src/lib/models/src/vehicle.model.d.ts +2 -0
  57. package/src/lib/models/src/vehicle.model.js +1 -0
  58. package/src/lib/models/src/vehicle.model.js.map +1 -1
  59. package/src/lib/models/src/white.label.config.model.d.ts +7 -0
  60. package/src/lib/models/src/white.label.config.model.js +6 -0
  61. package/src/lib/models/src/white.label.config.model.js.map +1 -1
  62. package/src/lib/routes/src/gatekeeper.routes.d.ts +2 -1
  63. package/src/lib/routes/src/gatekeeper.routes.js +1 -0
  64. package/src/lib/routes/src/gatekeeper.routes.js.map +1 -1
  65. package/src/lib/routes/src/query.service.routes.d.ts +3 -0
  66. package/src/lib/routes/src/query.service.routes.js +4 -0
  67. package/src/lib/routes/src/query.service.routes.js.map +1 -1
  68. package/src/lib/utilities/src/concurrency.peak.d.ts +41 -0
  69. package/src/lib/utilities/src/concurrency.peak.js +100 -0
  70. package/src/lib/utilities/src/concurrency.peak.js.map +1 -0
  71. package/src/lib/utilities/src/index.d.ts +1 -0
  72. package/src/lib/utilities/src/index.js +1 -0
  73. package/src/lib/utilities/src/index.js.map +1 -1
  74. package/src/lib/view-models/src/concurrent.users.d.ts +44 -0
  75. package/src/lib/view-models/src/concurrent.users.js +2 -0
  76. package/src/lib/view-models/src/concurrent.users.js.map +1 -0
  77. package/src/lib/view-models/src/index.d.ts +1 -0
  78. package/src/lib/view-models/src/index.js +1 -0
  79. package/src/lib/view-models/src/index.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autologix-engineering/shared",
3
- "version": "1.2.332",
3
+ "version": "1.2.334",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
@@ -1,4 +1,4 @@
1
- import { AbatementType, BillingFormat, BillingMethod, CalculationMode, LetterOfAgreementAddTo, LogicType, PurchaseOrderLevel, TripBillingBasedOn, TripBillingDistanceNewEnum } from '../../enums/src/index';
1
+ import { AbatementType, BillingFormat, BillingMethod, BillToNameOnInvoice, CalculationMode, LetterOfAgreementAddTo, LogicType, PurchaseOrderLevel, TripBillingBasedOn, TripBillingDistanceNewEnum } from '../../enums/src/index';
2
2
  export declare class AddClientPersonaBillingMethodDTO {
3
3
  clientPersonaId: string;
4
4
  contextOwnerId?: string;
@@ -27,6 +27,7 @@ export declare class AddClientPersonaBillingMethodDTO {
27
27
  sacCodeForDriverAssisted?: string;
28
28
  sacCodeForSelfDrive?: string;
29
29
  printSacCodeOnInvoice?: boolean;
30
+ billToName?: BillToNameOnInvoice;
30
31
  taxes?: string[];
31
32
  isSezEnabled?: boolean;
32
33
  printLogoImg?: string;
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { ArrayMinSize, IsArray, IsBoolean, IsEnum, IsNumber, IsOptional, IsString, IsUUID, ValidateNested, } from 'class-validator';
3
- import { AbatementType, BillingFormat, BillingMethod, CalculationMode, LetterOfAgreementAddTo, LogicType, PurchaseOrderLevel, TripBillingBasedOn, TripBillingDistanceNewEnum, } from '../../enums/src/index';
3
+ import { AbatementType, BillingFormat, BillingMethod, BillToNameOnInvoice, CalculationMode, LetterOfAgreementAddTo, LogicType, PurchaseOrderLevel, TripBillingBasedOn, TripBillingDistanceNewEnum, } from '../../enums/src/index';
4
4
  import { Type } from 'class-transformer';
5
5
  export class AddClientPersonaBillingMethodDTO {
6
6
  constructor(obj) {
@@ -145,6 +145,11 @@ __decorate([
145
145
  IsBoolean(),
146
146
  __metadata("design:type", Boolean)
147
147
  ], AddClientPersonaBillingMethodDTO.prototype, "printSacCodeOnInvoice", void 0);
148
+ __decorate([
149
+ IsOptional(),
150
+ IsEnum(BillToNameOnInvoice),
151
+ __metadata("design:type", String)
152
+ ], AddClientPersonaBillingMethodDTO.prototype, "billToName", void 0);
148
153
  __decorate([
149
154
  IsOptional(),
150
155
  IsArray(),
@@ -1 +1 @@
1
- {"version":3,"file":"add.client.persona.billing.methods.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/add.client.persona.billing.methods.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.client.persona.billing.methods.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/add.client.persona.billing.methods.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EAEZ,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,MAAM,EACN,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,aAAa,EACb,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,OAAO,gCAAgC;IAoL5C,YAAY,GAA+C;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AArLA;IADC,MAAM,EAAE;;yEACe;AAIxB;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;wEACe;AAIxB;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;0EACiB;AAI1B;IAFC,UAAU,EAAE;IACZ,MAAM,CAAC,0BAA0B,CAAC;;4EACa;AAIhD;IAFC,UAAU,EAAE;IACZ,MAAM,CAAC,kBAAkB,CAAC;;wEACS;AAIpC;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;qFAC0B;AAItC;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;mEACQ;AAKpB;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,MAAM,CAAC,aAAa,CAAC;;uEACQ;AAI9B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;0EACe;AAI1B;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;sEACW;AAIvB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;uEACY;AAIvB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;mEACQ;AAInB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;qEACU;AAIrB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;0EACe;AAI3B;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;qEACU;AAItB;IAFC,UAAU,EAAE;IACZ,MAAM,CAAC,sBAAsB,CAAC;;2EACY;AAI3C;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;uEACY;AAIxB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;sEACW;AAIvB;IAFC,UAAU,EAAE;IACZ,MAAM,CAAC,kBAAkB,CAAC;;iEACE;AAI7B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;6EACkB;AAI7B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;kEACO;AAIlB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;8BACc,IAAI;gFAAC;AAI9B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;8BACc,IAAI;gFAAC;AAO9B;IALC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,YAAY,CAAC,CAAC,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;kEACL;AAI1B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;kFACuB;AAIlC;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;6EACkB;AAI7B;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;+EACoB;AAIhC;IAFC,UAAU,EAAE;IACZ,MAAM,CAAC,mBAAmB,CAAC;;oEACK;AAKjC;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;+DACjB;AAIjB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;sEACW;AAIvB;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;sEACa;AAItB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;6EACkB;AAK7B;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,MAAM,CAAC,aAAa,CAAC;;uEACQ;AAK9B;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,MAAM,CAAC,eAAe,CAAC;;yEACU;AAKlC;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,MAAM,CAAC,SAAS,CAAC;;mEACI;AAItB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;yEACc;AAIzB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;iFACsB;AAIjC;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;+EACoB;AAK/B;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,MAAM,CAAC,aAAa,CAAC;;iFACkB;AAKxC;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,MAAM,CAAC,aAAa,CAAC;;4EACa;AAKnC;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,MAAM,CAAC,aAAa,CAAC;;oFACqB;AAK3C;IAHC,UAAU,EAAE;IACZ,QAAQ,EAAE;IACV,MAAM,CAAC,aAAa,CAAC;;+EACgB;AAOvC,MAAM,OAAO,YAAY;IAQxB,YAAY,IAA4B;QACvC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;CACD;AATA;IADC,QAAQ,EAAE;;6CACM;AAIjB;IAFC,YAAY,CAAC,CAAC,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;4CACR"}
@@ -1,7 +1,7 @@
1
1
  export declare class GetClientsByEmailDomainDTO {
2
2
  domain: string;
3
3
  email: string;
4
- roleName: string;
4
+ roleName?: string;
5
5
  url?: string;
6
6
  constructor(obj?: Partial<GetClientsByEmailDomainDTO>);
7
7
  }
@@ -14,6 +14,7 @@ __decorate([
14
14
  __metadata("design:type", String)
15
15
  ], GetClientsByEmailDomainDTO.prototype, "email", void 0);
16
16
  __decorate([
17
+ IsOptional(),
17
18
  IsString(),
18
19
  __metadata("design:type", String)
19
20
  ], GetClientsByEmailDomainDTO.prototype, "roleName", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"get.clients.by.email.domain.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/get.clients.by.email.domain.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,OAAO,0BAA0B;IAgBtC,YAAY,GAAyC;QACpD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AAjBA;IADC,QAAQ,EAAE;;0DACI;AAGf;IADC,QAAQ,EAAE;;yDACG;AAGd;IADC,QAAQ,EAAE;;4DACM;AAMjB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;uDACE"}
1
+ {"version":3,"file":"get.clients.by.email.domain.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/get.clients.by.email.domain.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,OAAO,0BAA0B;IAqBtC,YAAY,GAAyC;QACpD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AAtBA;IADC,QAAQ,EAAE;;0DACI;AAGf;IADC,QAAQ,EAAE;;yDACG;AAQd;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;4DACO;AAMlB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;uDACE"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The caller names the organization whose dashboard is open.
3
+ *
4
+ * Concurrency is a property of the organization, so it must not depend on who
5
+ * is looking — inferring the context from the viewer's memberships meant a
6
+ * user who is staff at two organizations saw a different one's figures than a
7
+ * colleague. The server still verifies the caller belongs to the context, so
8
+ * naming it grants no access on its own.
9
+ */
10
+ export declare class GetConcurrentUsersLiveDTO {
11
+ contextId: string;
12
+ constructor(obj?: Partial<GetConcurrentUsersLiveDTO>);
13
+ }
14
+ export declare class GetConcurrentUsersReportDTO {
15
+ contextId: string;
16
+ fromDate: string;
17
+ toDate: string;
18
+ /**
19
+ * Reporting timezone offset in minutes, for deciding which calendar day a
20
+ * session falls on. Defaults to IST (330) — these contracts are written
21
+ * against Indian business days, and bucketing by UTC would move evening
22
+ * activity onto the wrong day.
23
+ *
24
+ * Query params arrive as strings, so @Type coerces before validation.
25
+ * Without @IsInt a value like "abc" would sail through, turn offsetMs into
26
+ * NaN inside dailyPeaks, and make the endpoint return an empty dailyPeaks
27
+ * array with status Success — a silently wrong answer on a report whose
28
+ * entire purpose is to be proof. Bounds are real-world UTC offsets.
29
+ */
30
+ offsetMinutes?: number;
31
+ constructor(obj?: Partial<GetConcurrentUsersReportDTO>);
32
+ }
@@ -0,0 +1,47 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { IsDateString, IsInt, IsOptional, IsUUID, Max, Min, } from 'class-validator';
3
+ import { Type } from 'class-transformer';
4
+ /**
5
+ * The caller names the organization whose dashboard is open.
6
+ *
7
+ * Concurrency is a property of the organization, so it must not depend on who
8
+ * is looking — inferring the context from the viewer's memberships meant a
9
+ * user who is staff at two organizations saw a different one's figures than a
10
+ * colleague. The server still verifies the caller belongs to the context, so
11
+ * naming it grants no access on its own.
12
+ */
13
+ export class GetConcurrentUsersLiveDTO {
14
+ constructor(obj) {
15
+ Object.assign(this, obj);
16
+ }
17
+ }
18
+ __decorate([
19
+ IsUUID('4'),
20
+ __metadata("design:type", String)
21
+ ], GetConcurrentUsersLiveDTO.prototype, "contextId", void 0);
22
+ export class GetConcurrentUsersReportDTO {
23
+ constructor(obj) {
24
+ Object.assign(this, obj);
25
+ }
26
+ }
27
+ __decorate([
28
+ IsUUID('4'),
29
+ __metadata("design:type", String)
30
+ ], GetConcurrentUsersReportDTO.prototype, "contextId", void 0);
31
+ __decorate([
32
+ IsDateString(),
33
+ __metadata("design:type", String)
34
+ ], GetConcurrentUsersReportDTO.prototype, "fromDate", void 0);
35
+ __decorate([
36
+ IsDateString(),
37
+ __metadata("design:type", String)
38
+ ], GetConcurrentUsersReportDTO.prototype, "toDate", void 0);
39
+ __decorate([
40
+ IsOptional(),
41
+ Type(() => Number),
42
+ IsInt(),
43
+ Min(-720),
44
+ Max(840),
45
+ __metadata("design:type", Number)
46
+ ], GetConcurrentUsersReportDTO.prototype, "offsetMinutes", void 0);
47
+ //# sourceMappingURL=get.concurrent.users.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.concurrent.users.dto.js","sourceRoot":"","sources":["../../../../../../../../libs/shared/src/lib/data-transfer-objects/src/query/get.concurrent.users.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EACZ,KAAK,EACL,UAAU,EACV,MAAM,EACN,GAAG,EACH,GAAG,GACH,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAAyB;IAIrC,YAAY,GAAwC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AALA;IADC,MAAM,CAAC,GAAG,CAAC;;4DACM;AAOnB,MAAM,OAAO,2BAA2B;IA6BvC,YAAY,GAA0C;QACrD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AA9BA;IADC,MAAM,CAAC,GAAG,CAAC;;8DACM;AAGlB;IADC,YAAY,EAAE;;6DACE;AAGjB;IADC,YAAY,EAAE;;2DACA;AAmBf;IALC,UAAU,EAAE;IACZ,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,GAAG,CAAC;IACT,GAAG,CAAC,GAAG,CAAC;;kEACc"}
@@ -0,0 +1,55 @@
1
+ import { INumberedInvoiceLineItem, ITax } from '../../../models/src/index';
2
+ export declare class GetTaxInvoiceBookingBreakdownDTO {
3
+ invoiceId: string;
4
+ constructor(obj?: Partial<GetTaxInvoiceBookingBreakdownDTO>);
5
+ }
6
+ /**
7
+ * Why a breakdown could not be produced. Consumers use this to explain to the
8
+ * user why per-booking adjustment is unavailable rather than silently hiding
9
+ * the option.
10
+ */
11
+ export declare enum TaxInvoiceBreakdownBlocker {
12
+ /** Individual invoice — there is nothing to split. */
13
+ NotConsolidated = "NOT_CONSOLIDATED",
14
+ /** Consolidated invoice that ended up with a single booking. */
15
+ SingleBooking = "SINGLE_BOOKING",
16
+ /** One or more bookings have no NumberedInvoice (legacy / unlinked data). */
17
+ MissingNumberedInvoices = "MISSING_NUMBERED_INVOICES",
18
+ /** Two bookings resolve to the same NumberedInvoice (LTR period invoice). */
19
+ SharedNumberedInvoices = "SHARED_NUMBERED_INVOICES",
20
+ /** Per-booking totals do not reconcile with what the invoice actually bills. */
21
+ SubtotalMismatch = "SUBTOTAL_MISMATCH"
22
+ }
23
+ export interface ITaxInvoiceBookingBreakdownItem {
24
+ requestId: string;
25
+ requestNumber: string;
26
+ bookingNumber: string;
27
+ pickupTime: Date | null;
28
+ numberedInvoiceId: string | null;
29
+ /** True when this NumberedInvoice also backs another booking on the invoice. */
30
+ sharedNumberedInvoice: boolean;
31
+ /**
32
+ * Descriptions already carry the ` (Booking: N)` suffix, matching what
33
+ * `aggregateLineItems` writes onto a consolidated invoice — so they are
34
+ * submit-ready for the invoice-adjustment classifier.
35
+ */
36
+ lineItems: INumberedInvoiceLineItem[];
37
+ taxes: ({
38
+ amount: number;
39
+ } & Partial<ITax>)[];
40
+ subTotal: number;
41
+ taxAmount: number;
42
+ finalAmount: number;
43
+ }
44
+ export interface ITaxInvoiceBookingBreakdown {
45
+ invoiceId: string;
46
+ consolidated: boolean;
47
+ /** When false the caller must not offer per-booking selection. */
48
+ splittable: boolean;
49
+ blocker?: TaxInvoiceBreakdownBlocker;
50
+ /** Sum of `items[].subTotal`. */
51
+ breakdownSubTotal: number;
52
+ /** Sum of the invoice's own line items, before tax. */
53
+ invoiceSubTotal: number;
54
+ items: ITaxInvoiceBookingBreakdownItem[];
55
+ }
@@ -0,0 +1,30 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { IsUUID } from 'class-validator';
3
+ export class GetTaxInvoiceBookingBreakdownDTO {
4
+ constructor(obj) {
5
+ Object.assign(this, obj);
6
+ }
7
+ }
8
+ __decorate([
9
+ IsUUID(),
10
+ __metadata("design:type", String)
11
+ ], GetTaxInvoiceBookingBreakdownDTO.prototype, "invoiceId", void 0);
12
+ /**
13
+ * Why a breakdown could not be produced. Consumers use this to explain to the
14
+ * user why per-booking adjustment is unavailable rather than silently hiding
15
+ * the option.
16
+ */
17
+ export var TaxInvoiceBreakdownBlocker;
18
+ (function (TaxInvoiceBreakdownBlocker) {
19
+ /** Individual invoice — there is nothing to split. */
20
+ TaxInvoiceBreakdownBlocker["NotConsolidated"] = "NOT_CONSOLIDATED";
21
+ /** Consolidated invoice that ended up with a single booking. */
22
+ TaxInvoiceBreakdownBlocker["SingleBooking"] = "SINGLE_BOOKING";
23
+ /** One or more bookings have no NumberedInvoice (legacy / unlinked data). */
24
+ TaxInvoiceBreakdownBlocker["MissingNumberedInvoices"] = "MISSING_NUMBERED_INVOICES";
25
+ /** Two bookings resolve to the same NumberedInvoice (LTR period invoice). */
26
+ TaxInvoiceBreakdownBlocker["SharedNumberedInvoices"] = "SHARED_NUMBERED_INVOICES";
27
+ /** Per-booking totals do not reconcile with what the invoice actually bills. */
28
+ TaxInvoiceBreakdownBlocker["SubtotalMismatch"] = "SUBTOTAL_MISMATCH";
29
+ })(TaxInvoiceBreakdownBlocker || (TaxInvoiceBreakdownBlocker = {}));
30
+ //# sourceMappingURL=get.tax.invoice.booking.breakdown.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.tax.invoice.booking.breakdown.dto.js","sourceRoot":"","sources":["../../../../../../../../libs/shared/src/lib/data-transfer-objects/src/query/get.tax.invoice.booking.breakdown.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,MAAM,OAAO,gCAAgC;IAI5C,YAAY,GAA+C;QAC1D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AALA;IADC,MAAM,EAAE;;mEACS;AAOnB;;;;GAIG;AACH,MAAM,CAAN,IAAY,0BAWX;AAXD,WAAY,0BAA0B;IACrC,sDAAsD;IACtD,kEAAoC,CAAA;IACpC,gEAAgE;IAChE,8DAAgC,CAAA;IAChC,6EAA6E;IAC7E,mFAAqD,CAAA;IACrD,6EAA6E;IAC7E,iFAAmD,CAAA;IACnD,gFAAgF;IAChF,oEAAsC,CAAA;AACvC,CAAC,EAXW,0BAA0B,KAA1B,0BAA0B,QAWrC"}
@@ -10,6 +10,7 @@ export * from './get.packages.by.vendor.dto';
10
10
  export * from './get.passenger.clients.by.context.dto';
11
11
  export * from './get.place.details.dto';
12
12
  export * from './get.invoice.details.dto';
13
+ export * from './get.tax.invoice.booking.breakdown.dto';
13
14
  export * from './onboard.driver.dto';
14
15
  export * from './invoice.otp.dto';
15
16
  export * from './ext.booking.request.dto';
@@ -46,3 +47,4 @@ export * from './ba.incentive.dto';
46
47
  export * from './ba.reimbursement.addOn.dto';
47
48
  export * from './get.own.driver.reimbursement.details.dto';
48
49
  export * from './get.vendor.knock.off.report.dto';
50
+ export * from './get.concurrent.users.dto';
@@ -10,6 +10,7 @@ export * from './get.packages.by.vendor.dto';
10
10
  export * from './get.passenger.clients.by.context.dto';
11
11
  export * from './get.place.details.dto';
12
12
  export * from './get.invoice.details.dto';
13
+ export * from './get.tax.invoice.booking.breakdown.dto';
13
14
  export * from './onboard.driver.dto';
14
15
  export * from './invoice.otp.dto';
15
16
  export * from './ext.booking.request.dto';
@@ -46,4 +47,5 @@ export * from './ba.incentive.dto';
46
47
  export * from './ba.reimbursement.addOn.dto';
47
48
  export * from './get.own.driver.reimbursement.details.dto';
48
49
  export * from './get.vendor.knock.off.report.dto';
50
+ export * from './get.concurrent.users.dto';
49
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/shared/src/lib/data-transfer-objects/src/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/shared/src/lib/data-transfer-objects/src/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC"}
@@ -5,6 +5,7 @@ export * from './object.literal';
5
5
  export * from './find-options';
6
6
  export * from './onboarding.user.token';
7
7
  export * from './registered.user.token';
8
+ export * from './session.keys';
8
9
  export * from './query.definition';
9
10
  export * from './location';
10
11
  export * from './trip.generation.trigger';
@@ -5,6 +5,7 @@ export * from './object.literal';
5
5
  export * from './find-options';
6
6
  export * from './onboarding.user.token';
7
7
  export * from './registered.user.token';
8
+ export * from './session.keys';
8
9
  export * from './query.definition';
9
10
  export * from './location';
10
11
  export * from './trip.generation.trigger';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/definitions/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/definitions/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC"}
@@ -2,6 +2,15 @@ export interface IRegisteredUserToken {
2
2
  registeredUserId: string;
3
3
  url?: string;
4
4
  fcm?: string;
5
+ /**
6
+ * UserSession.sesId this token belongs to. Lets the auth guard reject a
7
+ * token whose session has been ended (logout, or displaced by a login
8
+ * elsewhere) without waiting for the token itself to expire.
9
+ *
10
+ * Optional: tokens issued before this shipped, and machine-to-machine
11
+ * tokens from GetToken, carry no session.
12
+ */
13
+ sid?: string;
5
14
  iat?: number;
6
15
  exp?: number;
7
16
  }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Redis key layout for session revocation and liveness.
3
+ *
4
+ * These live in shared/definitions rather than in the gatekeeper module
5
+ * because the auth guard reads the same keys and is bundled into every
6
+ * service — it cannot depend on the gatekeeper module without dragging the
7
+ * whole login stack into query-service, files-service and friends. Both sides
8
+ * building keys from these helpers keeps the format in one place.
9
+ */
10
+ /**
11
+ * Connection options for every session-related Redis client.
12
+ *
13
+ * A plain factory rather than an injectable provider on purpose: AuthGuard is
14
+ * bundled into every service (query, command-registry, files, location), and
15
+ * giving it a new DI dependency would mean touching every one of those modules
16
+ * — a much wider blast radius than this feature warrants. A shared factory
17
+ * still keeps the settings and retry policy in one place.
18
+ *
19
+ * enableOfflineQueue is off and command retries are capped because these
20
+ * clients sit on request-handling paths: a Redis outage must fail fast and let
21
+ * the caller degrade, never queue commands and hang the request.
22
+ *
23
+ * retryStrategy governs *reconnection*, which is a separate concern from
24
+ * maxRetriesPerRequest (that only bounds retries of a single command). Left at
25
+ * its default, ioredis reconnects every ~50ms–2s forever, so an absent Redis —
26
+ * local dev with no REDIS_HOST set, or a production outage — emits a connection
27
+ * error several times a second and buries every other log line. Backing off to
28
+ * a 30s ceiling keeps reconnection working without the flood.
29
+ */
30
+ export declare const sessionRedisOptions: () => {
31
+ host: string;
32
+ port: number;
33
+ password: string;
34
+ maxRetriesPerRequest: number;
35
+ enableOfflineQueue: boolean;
36
+ retryStrategy: (times: number) => number;
37
+ };
38
+ /**
39
+ * Wraps a logger so a persistent Redis failure reports periodically instead of
40
+ * on every reconnection attempt.
41
+ *
42
+ * Backing off reconnection alone is not enough: at a 30s ceiling a multi-hour
43
+ * outage still writes thousands of identical lines across every service. This
44
+ * reports the first error immediately — so the problem is visible at once —
45
+ * then at most once per interval, with a count of what was suppressed so the
46
+ * log still conveys that it is ongoing rather than resolved.
47
+ */
48
+ export declare const throttledRedisErrorLogger: (log: (message: string) => void, intervalMs?: number) => (error: {
49
+ message?: string;
50
+ }) => void;
51
+ /**
52
+ * Set when a session ends while its tokens are still cryptographically valid.
53
+ * Deny-list rather than allow-list on purpose: if Redis is unavailable the
54
+ * auth guard fails open (a revoked user keeps working until their token
55
+ * expires) instead of logging out every user on the platform.
56
+ */
57
+ export declare const revokedSessionKey: (sessionId: string) => string;
58
+ /**
59
+ * Last request timestamp (epoch ms, as a string) for an open session. Written
60
+ * on every authenticated request and flushed to Postgres periodically, so the
61
+ * hot path never does a DB write.
62
+ */
63
+ export declare const lastSeenSessionKey: (sessionId: string) => string;
64
+ /** Matches every last-seen key, for the periodic flush to Postgres. */
65
+ export declare const LAST_SEEN_SCAN_PATTERN = "sess:lastSeen:*";
66
+ /** Recovers the session id from a key returned by a SCAN of the pattern above. */
67
+ export declare const sessionIdFromLastSeenKey: (key: string) => string;
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Redis key layout for session revocation and liveness.
3
+ *
4
+ * These live in shared/definitions rather than in the gatekeeper module
5
+ * because the auth guard reads the same keys and is bundled into every
6
+ * service — it cannot depend on the gatekeeper module without dragging the
7
+ * whole login stack into query-service, files-service and friends. Both sides
8
+ * building keys from these helpers keeps the format in one place.
9
+ */
10
+ /**
11
+ * Connection options for every session-related Redis client.
12
+ *
13
+ * A plain factory rather than an injectable provider on purpose: AuthGuard is
14
+ * bundled into every service (query, command-registry, files, location), and
15
+ * giving it a new DI dependency would mean touching every one of those modules
16
+ * — a much wider blast radius than this feature warrants. A shared factory
17
+ * still keeps the settings and retry policy in one place.
18
+ *
19
+ * enableOfflineQueue is off and command retries are capped because these
20
+ * clients sit on request-handling paths: a Redis outage must fail fast and let
21
+ * the caller degrade, never queue commands and hang the request.
22
+ *
23
+ * retryStrategy governs *reconnection*, which is a separate concern from
24
+ * maxRetriesPerRequest (that only bounds retries of a single command). Left at
25
+ * its default, ioredis reconnects every ~50ms–2s forever, so an absent Redis —
26
+ * local dev with no REDIS_HOST set, or a production outage — emits a connection
27
+ * error several times a second and buries every other log line. Backing off to
28
+ * a 30s ceiling keeps reconnection working without the flood.
29
+ */
30
+ export const sessionRedisOptions = () => ({
31
+ host: process.env['REDIS_HOST'],
32
+ port: Number(process.env['REDIS_PORT'] || 6379),
33
+ password: process.env['REDIS_PASSWORD'] || undefined,
34
+ maxRetriesPerRequest: 1,
35
+ enableOfflineQueue: false,
36
+ retryStrategy: (times) => Math.min(times * 500, 30_000),
37
+ });
38
+ /**
39
+ * Wraps a logger so a persistent Redis failure reports periodically instead of
40
+ * on every reconnection attempt.
41
+ *
42
+ * Backing off reconnection alone is not enough: at a 30s ceiling a multi-hour
43
+ * outage still writes thousands of identical lines across every service. This
44
+ * reports the first error immediately — so the problem is visible at once —
45
+ * then at most once per interval, with a count of what was suppressed so the
46
+ * log still conveys that it is ongoing rather than resolved.
47
+ */
48
+ export const throttledRedisErrorLogger = (log, intervalMs = 60_000) => {
49
+ let lastLoggedAt = 0;
50
+ let suppressed = 0;
51
+ return (error) => {
52
+ const now = Date.now();
53
+ if (now - lastLoggedAt >= intervalMs) {
54
+ const also = suppressed
55
+ ? ` (${suppressed} further error${suppressed === 1 ? '' : 's'} suppressed)`
56
+ : '';
57
+ log(`Session Redis error: ${error?.message}${also}`);
58
+ lastLoggedAt = now;
59
+ suppressed = 0;
60
+ return;
61
+ }
62
+ suppressed++;
63
+ };
64
+ };
65
+ const REVOKED_PREFIX = 'sess:revoked:';
66
+ const LAST_SEEN_PREFIX = 'sess:lastSeen:';
67
+ /**
68
+ * Set when a session ends while its tokens are still cryptographically valid.
69
+ * Deny-list rather than allow-list on purpose: if Redis is unavailable the
70
+ * auth guard fails open (a revoked user keeps working until their token
71
+ * expires) instead of logging out every user on the platform.
72
+ */
73
+ export const revokedSessionKey = (sessionId) => `${REVOKED_PREFIX}${sessionId}`;
74
+ /**
75
+ * Last request timestamp (epoch ms, as a string) for an open session. Written
76
+ * on every authenticated request and flushed to Postgres periodically, so the
77
+ * hot path never does a DB write.
78
+ */
79
+ export const lastSeenSessionKey = (sessionId) => `${LAST_SEEN_PREFIX}${sessionId}`;
80
+ /** Matches every last-seen key, for the periodic flush to Postgres. */
81
+ export const LAST_SEEN_SCAN_PATTERN = `${LAST_SEEN_PREFIX}*`;
82
+ /** Recovers the session id from a key returned by a SCAN of the pattern above. */
83
+ export const sessionIdFromLastSeenKey = (key) => key.startsWith(LAST_SEEN_PREFIX) ? key.slice(LAST_SEEN_PREFIX.length) : null;
84
+ //# sourceMappingURL=session.keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.keys.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/definitions/src/session.keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAAC;IACzC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;IAC/C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,SAAS;IACpD,oBAAoB,EAAE,CAAC;IACvB,kBAAkB,EAAE,KAAK;IACzB,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,CAAC;CAC/D,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACxC,GAA8B,EAC9B,UAAU,GAAG,MAAM,EAClB,EAAE;IACH,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,KAA2B,EAAE,EAAE;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,UAAU;gBACtB,CAAC,CAAC,KAAK,UAAU,iBAAiB,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc;gBAC3E,CAAC,CAAC,EAAE,CAAC;YACN,GAAG,CAAC,wBAAwB,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC;YACrD,YAAY,GAAG,GAAG,CAAC;YACnB,UAAU,GAAG,CAAC,CAAC;YACf,OAAO;QACR,CAAC;QACD,UAAU,EAAE,CAAC;IACd,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,eAAe,CAAC;AACvC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACtD,GAAG,cAAc,GAAG,SAAS,EAAE,CAAC;AAEjC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE,CACvD,GAAG,gBAAgB,GAAG,SAAS,EAAE,CAAC;AAEnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,gBAAgB,GAAG,CAAC;AAE7D,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAE,EAAE,CACvD,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC"}
@@ -288,5 +288,6 @@ export declare enum ModelType {
288
288
  InvoiceExportJob = "InvoiceExportJob",
289
289
  InvoiceRegenerationJob = "InvoiceRegenerationJob",
290
290
  VendorKnockOffReportJob = "VendorKnockOffReportJob",
291
- VipContact = "VipContact"
291
+ VipContact = "VipContact",
292
+ UserSession = "UserSession"
292
293
  }
@@ -290,5 +290,6 @@ export var ModelType;
290
290
  ModelType["InvoiceRegenerationJob"] = "InvoiceRegenerationJob";
291
291
  ModelType["VendorKnockOffReportJob"] = "VendorKnockOffReportJob";
292
292
  ModelType["VipContact"] = "VipContact";
293
+ ModelType["UserSession"] = "UserSession";
293
294
  })(ModelType || (ModelType = {}));
294
295
  //# sourceMappingURL=model.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.enum.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/enums/src/model.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.enum.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/enums/src/model.enum.ts"],"names":[],"mappings":"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"}
@@ -59,6 +59,7 @@ export declare enum QueryType {
59
59
  PreviewConsolidatedInvoice = "PreviewConsolidatedInvoice",
60
60
  PreviewConsolidatedInvoiceUrl = "PreviewConsolidatedInvoiceUrl",
61
61
  GetAdjustmentInvoiceDetails = "GetAdjustmentInvoiceDetails",
62
+ GetTaxInvoiceBookingBreakdown = "GetTaxInvoiceBookingBreakdown",
62
63
  GetStatementData = "GetStatementData",
63
64
  AdditionalAddress = "AdditionalAddress",
64
65
  Avatar = "Avatar",
@@ -532,5 +533,7 @@ export declare enum QueryType {
532
533
  TriggerCustomAlert = "TriggerCustomAlert",
533
534
  GetReports = "GetReports",
534
535
  GetVipContacts = "GetVipContacts",
535
- GetServicePostponedVehicles = "GetServicePostponedVehicles"
536
+ GetServicePostponedVehicles = "GetServicePostponedVehicles",
537
+ GetConcurrentUsersLive = "GetConcurrentUsersLive",
538
+ GetConcurrentUsersReport = "GetConcurrentUsersReport"
536
539
  }
@@ -60,6 +60,7 @@ export var QueryType;
60
60
  QueryType["PreviewConsolidatedInvoice"] = "PreviewConsolidatedInvoice";
61
61
  QueryType["PreviewConsolidatedInvoiceUrl"] = "PreviewConsolidatedInvoiceUrl";
62
62
  QueryType["GetAdjustmentInvoiceDetails"] = "GetAdjustmentInvoiceDetails";
63
+ QueryType["GetTaxInvoiceBookingBreakdown"] = "GetTaxInvoiceBookingBreakdown";
63
64
  QueryType["GetStatementData"] = "GetStatementData";
64
65
  QueryType["AdditionalAddress"] = "AdditionalAddress";
65
66
  QueryType["Avatar"] = "Avatar";
@@ -550,5 +551,8 @@ export var QueryType;
550
551
  QueryType["GetVipContacts"] = "GetVipContacts";
551
552
  // Service Postpone
552
553
  QueryType["GetServicePostponedVehicles"] = "GetServicePostponedVehicles";
554
+ // Concurrent users (contracted seat tracking)
555
+ QueryType["GetConcurrentUsersLive"] = "GetConcurrentUsersLive";
556
+ QueryType["GetConcurrentUsersReport"] = "GetConcurrentUsersReport";
553
557
  })(QueryType || (QueryType = {}));
554
558
  //# sourceMappingURL=query.type.enum.js.map