@autologix-engineering/shared 1.2.373 → 1.2.374

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 (25) hide show
  1. package/package.json +1 -1
  2. package/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.d.ts +4 -0
  3. package/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.js +21 -1
  4. package/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.js.map +1 -1
  5. package/src/lib/data-transfer-objects/src/create.dispatch.dto.d.ts +4 -0
  6. package/src/lib/data-transfer-objects/src/create.dispatch.dto.js +21 -1
  7. package/src/lib/data-transfer-objects/src/create.dispatch.dto.js.map +1 -1
  8. package/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.d.ts +11 -0
  9. package/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.js +7 -0
  10. package/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.js.map +1 -1
  11. package/src/lib/date-utils/src/zoop.date.d.ts +8 -0
  12. package/src/lib/date-utils/src/zoop.date.js +38 -0
  13. package/src/lib/date-utils/src/zoop.date.js.map +1 -1
  14. package/src/lib/enums/src/vehicle.compliance.enum.d.ts +9 -0
  15. package/src/lib/enums/src/vehicle.compliance.enum.js +9 -0
  16. package/src/lib/enums/src/vehicle.compliance.enum.js.map +1 -1
  17. package/src/lib/models/src/configurations.model.d.ts +15 -0
  18. package/src/lib/models/src/configurations.model.js +14 -0
  19. package/src/lib/models/src/configurations.model.js.map +1 -1
  20. package/src/lib/utilities/src/map.compliance.from.rc.d.ts +10 -0
  21. package/src/lib/utilities/src/map.compliance.from.rc.js +7 -1
  22. package/src/lib/utilities/src/map.compliance.from.rc.js.map +1 -1
  23. package/src/lib/utilities/src/resolve.passenger.display.name.d.ts +18 -0
  24. package/src/lib/utilities/src/resolve.passenger.display.name.js +40 -13
  25. package/src/lib/utilities/src/resolve.passenger.display.name.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autologix-engineering/shared",
3
- "version": "1.2.373",
3
+ "version": "1.2.374",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
@@ -1,7 +1,11 @@
1
+ import { DutiesQueryDTO } from './duties.query.dto';
1
2
  export declare class CreateConsolidatedInvoiceDto {
2
3
  contextId: string;
3
4
  clientPersonaId: string;
4
5
  bookingIds: string[];
6
+ selectAll?: boolean;
7
+ excludedIds?: string[];
8
+ filters?: DutiesQueryDTO;
5
9
  clientGSTIN: string;
6
10
  companyAddress: string;
7
11
  companyAddressId?: string;
@@ -1,5 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { ArrayMinSize, IsArray, IsOptional, IsString, IsUUID, } from 'class-validator';
2
+ import { ArrayMinSize, IsArray, IsBoolean, IsOptional, IsString, IsUUID, ValidateIf, ValidateNested, } from 'class-validator';
3
+ import { Type } from 'class-transformer';
4
+ import { DutiesQueryDTO } from './duties.query.dto';
3
5
  export class CreateConsolidatedInvoiceDto {
4
6
  constructor(obj) {
5
7
  Object.assign(this, obj);
@@ -14,11 +16,29 @@ __decorate([
14
16
  __metadata("design:type", String)
15
17
  ], CreateConsolidatedInvoiceDto.prototype, "clientPersonaId", void 0);
16
18
  __decorate([
19
+ ValidateIf((o) => !o.selectAll),
17
20
  IsArray(),
18
21
  ArrayMinSize(1),
19
22
  IsString({ each: true }),
20
23
  __metadata("design:type", Array)
21
24
  ], CreateConsolidatedInvoiceDto.prototype, "bookingIds", void 0);
25
+ __decorate([
26
+ IsOptional(),
27
+ IsBoolean(),
28
+ __metadata("design:type", Boolean)
29
+ ], CreateConsolidatedInvoiceDto.prototype, "selectAll", void 0);
30
+ __decorate([
31
+ IsOptional(),
32
+ IsArray(),
33
+ IsString({ each: true }),
34
+ __metadata("design:type", Array)
35
+ ], CreateConsolidatedInvoiceDto.prototype, "excludedIds", void 0);
36
+ __decorate([
37
+ ValidateIf((o) => !!o.selectAll),
38
+ ValidateNested(),
39
+ Type(() => DutiesQueryDTO),
40
+ __metadata("design:type", DutiesQueryDTO)
41
+ ], CreateConsolidatedInvoiceDto.prototype, "filters", void 0);
22
42
  __decorate([
23
43
  IsOptional(),
24
44
  IsString(),
@@ -1 +1 @@
1
- {"version":3,"file":"create.consolidated.invoice.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EACZ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,MAAM,GACN,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,4BAA4B;IA4CxC,YAAY,GAA2C;QACtD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AA7CA;IADC,MAAM,EAAE;;+DACS;AAGlB;IADC,MAAM,EAAE;;qEACe;AAKxB;IAHC,OAAO,EAAE;IACT,YAAY,CAAC,CAAC,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;gEACJ;AAIrB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;iEACS;AAIpB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;oEACY;AAOvB;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;sEACiB;AAI1B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;0EACkB;AAI7B;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;6DACO;AAIhB;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;2DACM;AAKf;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;6DACP"}
1
+ {"version":3,"file":"create.consolidated.invoice.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/create.consolidated.invoice.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,4BAA4B;IA2DxC,YAAY,GAA2C;QACtD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AA5DA;IADC,MAAM,EAAE;;+DACS;AAGlB;IADC,MAAM,EAAE;;qEACe;AAMxB;IAJC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/B,OAAO,EAAE;IACT,YAAY,CAAC,CAAC,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;gEACJ;AAIrB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;+DACQ;AAKpB;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;iEACF;AAKvB;IAHC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChC,cAAc,EAAE;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;8BACjB,cAAc;6DAAC;AAIzB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;iEACS;AAIpB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;oEACY;AAOvB;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;sEACiB;AAI1B;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;0EACkB;AAI7B;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;6DACO;AAIhB;IAFC,UAAU,EAAE;IACZ,MAAM,EAAE;;2DACM;AAKf;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;6DACP"}
@@ -1,5 +1,9 @@
1
+ import { DutiesQueryDTO } from './duties.query.dto';
1
2
  export declare class CreateDispatchDto {
2
3
  requestIds: string[];
4
+ selectAll?: boolean;
5
+ excludedIds?: string[];
6
+ filters?: DutiesQueryDTO;
3
7
  garagePlaceId?: string;
4
8
  dispatchDate?: string;
5
9
  contextId: string;
@@ -1,16 +1,36 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { ArrayMinSize, IsArray, IsDateString, IsOptional, IsUUID, } from 'class-validator';
2
+ import { ArrayMinSize, IsArray, IsBoolean, IsDateString, IsOptional, IsString, IsUUID, ValidateIf, ValidateNested, } from 'class-validator';
3
+ import { Type } from 'class-transformer';
4
+ import { DutiesQueryDTO } from './duties.query.dto';
3
5
  export class CreateDispatchDto {
4
6
  constructor(obj) {
5
7
  Object.assign(this, obj);
6
8
  }
7
9
  }
8
10
  __decorate([
11
+ ValidateIf((o) => !o.selectAll),
9
12
  IsArray(),
10
13
  ArrayMinSize(1),
11
14
  IsUUID('4', { each: true }),
12
15
  __metadata("design:type", Array)
13
16
  ], CreateDispatchDto.prototype, "requestIds", void 0);
17
+ __decorate([
18
+ IsOptional(),
19
+ IsBoolean(),
20
+ __metadata("design:type", Boolean)
21
+ ], CreateDispatchDto.prototype, "selectAll", void 0);
22
+ __decorate([
23
+ IsOptional(),
24
+ IsArray(),
25
+ IsString({ each: true }),
26
+ __metadata("design:type", Array)
27
+ ], CreateDispatchDto.prototype, "excludedIds", void 0);
28
+ __decorate([
29
+ ValidateIf((o) => !!o.selectAll),
30
+ ValidateNested(),
31
+ Type(() => DutiesQueryDTO),
32
+ __metadata("design:type", DutiesQueryDTO)
33
+ ], CreateDispatchDto.prototype, "filters", void 0);
14
34
  __decorate([
15
35
  IsUUID(),
16
36
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"create.dispatch.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/create.dispatch.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,MAAM,GACN,MAAM,iBAAiB,CAAC;AAEzB,MAAM,OAAO,iBAAiB;IAmB7B,YAAY,GAAgC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AAlBA;IAHC,OAAO,EAAE;IACT,YAAY,CAAC,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;qDACP;AAMrB;IADC,MAAM,EAAE;;wDACc;AAIvB;IAFC,UAAU,EAAE;IACZ,YAAY,EAAE;;uDACO;AAGtB;IADC,MAAM,CAAC,GAAG,CAAC;;oDACM"}
1
+ {"version":3,"file":"create.dispatch.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/create.dispatch.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,cAAc,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,OAAO,iBAAiB;IAkC7B,YAAY,GAAgC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AAhCA;IAJC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/B,OAAO,EAAE;IACT,YAAY,CAAC,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;qDACP;AAIrB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;oDACQ;AAKpB;IAHC,UAAU,EAAE;IACZ,OAAO,EAAE;IACT,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;sDACF;AAKvB;IAHC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChC,cAAc,EAAE;IAChB,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC;8BACjB,cAAc;kDAAC;AAMzB;IADC,MAAM,EAAE;;wDACc;AAIvB;IAFC,UAAU,EAAE;IACZ,YAAY,EAAE;;uDACO;AAGtB;IADC,MAAM,CAAC,GAAG,CAAC;;oDACM"}
@@ -25,5 +25,16 @@ export declare class UpdateSafetyAndComplianceConfigDTO {
25
25
  * to disable overrides.
26
26
  */
27
27
  complianceMaxGraceDays?: number;
28
+ /**
29
+ * AD-3140 §3.4 — only vehicles allocated within this many days are swept
30
+ * against ZoopOne. A cost control: every hit is billable across a 5k+
31
+ * fleet.
32
+ *
33
+ * Bounded at 730. Beyond two years the filter stops filtering anything and
34
+ * the setting reads as enabled while doing nothing, which is worse than
35
+ * having no setting. 0 is meaningful and means "sweep nothing" — scheduled
36
+ * verification off, manual re-hits only.
37
+ */
38
+ complianceUtilisationWindowDays?: number;
28
39
  constructor(obj?: Partial<UpdateSafetyAndComplianceConfigDTO>);
29
40
  }
@@ -62,4 +62,11 @@ __decorate([
62
62
  Max(90),
63
63
  __metadata("design:type", Number)
64
64
  ], UpdateSafetyAndComplianceConfigDTO.prototype, "complianceMaxGraceDays", void 0);
65
+ __decorate([
66
+ IsOptional(),
67
+ IsInt(),
68
+ Min(0),
69
+ Max(730),
70
+ __metadata("design:type", Number)
71
+ ], UpdateSafetyAndComplianceConfigDTO.prototype, "complianceUtilisationWindowDays", void 0);
65
72
  //# sourceMappingURL=update.safety.and.compliance.config.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.safety.and.compliance.config.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,KAAK,EACL,GAAG,EACH,GAAG,GACH,MAAM,iBAAiB,CAAC;AAGzB,MAAM,OAAO,iBAAiB;CAwB7B;AAtBA;IADC,MAAM,CAAC,iBAAiB,CAAC;;kEACiB;AAG3C;IADC,MAAM,CAAC,iBAAiB,CAAC;;8CACH;AAGvB;IADC,MAAM,CAAC,iBAAiB,CAAC;;sDACK;AAG/B;IADC,MAAM,CAAC,iBAAiB,CAAC;;yDACQ;AAGlC;IADC,MAAM,CAAC,iBAAiB,CAAC;;kDACC;AAG3B;IADC,MAAM,CAAC,iBAAiB,CAAC;;kDACC;AAG3B;IADC,MAAM,CAAC,iBAAiB,CAAC;;+DACc;AAGxC;IADC,MAAM,CAAC,iBAAiB,CAAC;;iDACA;AAG3B,MAAM,OAAO,kCAAkC;IA6B9C,YAAY,GAAiD;QAC5D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AA9BA;IADC,MAAM,EAAE;;qEACS;AAGlB;IADC,QAAQ,EAAE;;4EACgD;AAW3D;IAJC,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,GAAG,CAAC;;uFAC4B;AAWrC;IAJC,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,EAAE,CAAC;;kFACwB"}
1
+ {"version":3,"file":"update.safety.and.compliance.config.dto.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/data-transfer-objects/src/update.safety.and.compliance.config.dto.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EACV,KAAK,EACL,GAAG,EACH,GAAG,GACH,MAAM,iBAAiB,CAAC;AAGzB,MAAM,OAAO,iBAAiB;CAwB7B;AAtBA;IADC,MAAM,CAAC,iBAAiB,CAAC;;kEACiB;AAG3C;IADC,MAAM,CAAC,iBAAiB,CAAC;;8CACH;AAGvB;IADC,MAAM,CAAC,iBAAiB,CAAC;;sDACK;AAG/B;IADC,MAAM,CAAC,iBAAiB,CAAC;;yDACQ;AAGlC;IADC,MAAM,CAAC,iBAAiB,CAAC;;kDACC;AAG3B;IADC,MAAM,CAAC,iBAAiB,CAAC;;kDACC;AAG3B;IADC,MAAM,CAAC,iBAAiB,CAAC;;+DACc;AAGxC;IADC,MAAM,CAAC,iBAAiB,CAAC;;iDACA;AAG3B,MAAM,OAAO,kCAAkC;IA6C9C,YAAY,GAAiD;QAC5D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD;AA9CA;IADC,MAAM,EAAE;;qEACS;AAGlB;IADC,QAAQ,EAAE;;4EACgD;AAW3D;IAJC,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,GAAG,CAAC;;uFAC4B;AAWrC;IAJC,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,EAAE,CAAC;;kFACwB;AAgBhC;IAJC,UAAU,EAAE;IACZ,KAAK,EAAE;IACP,GAAG,CAAC,CAAC,CAAC;IACN,GAAG,CAAC,GAAG,CAAC;;2FACgC"}
@@ -22,6 +22,14 @@
22
22
  * "no data" stays distinguishable from "expired" all the way to the block
23
23
  * decision.
24
24
  */
25
+ /**
26
+ * True when a Zoop value states the levy is paid for the life of the vehicle.
27
+ *
28
+ * Callers must treat this as VALID-forever, not as absent. `parseZoopDate`
29
+ * returns null for these — correctly, since there is no date — so this is the
30
+ * only thing that distinguishes them from a genuinely missing record.
31
+ */
32
+ export declare const isZoopLifetimeValue: (raw: unknown) => boolean;
25
33
  /**
26
34
  * Normalises a raw Zoop scalar to a string, or null when it carries no data.
27
35
  *
@@ -37,6 +37,44 @@ const NO_DATA_TOKENS = new Set([
37
37
  '--',
38
38
  '0000-00-00',
39
39
  ]);
40
+ /**
41
+ * Values Zoop uses to mean "this levy has no expiry — it was paid once, for
42
+ * the life of the vehicle".
43
+ *
44
+ * Seen live in `rc_tax_upto` as 'LTT' (Life Time Tax) on an ordinary private
45
+ * car. This is the OPPOSITE of no-data and must never be confused with it:
46
+ * 'NA' means the RTO has no record, 'LTT' means the RTO positively states
47
+ * there is nothing further to pay and no date to renew by.
48
+ *
49
+ * The distinction became load-bearing when a missing MANDATORY compliance
50
+ * started blocking allocation (AD-3140, QA round 2 finding G). Parsing 'LTT'
51
+ * to null makes Road Tax read as No Data, so any context configuring Road Tax
52
+ * as mandatory would permanently ground every lifetime-tax vehicle — most of a
53
+ * private fleet — with no way out, because the RTO will never return a date
54
+ * for it however many times the vehicle is re-verified.
55
+ */
56
+ const LIFETIME_TOKENS = new Set([
57
+ 'ltt',
58
+ 'ott',
59
+ 'lifetime',
60
+ 'life time',
61
+ 'life time tax',
62
+ 'lifetime tax',
63
+ 'one time tax',
64
+ ]);
65
+ /**
66
+ * True when a Zoop value states the levy is paid for the life of the vehicle.
67
+ *
68
+ * Callers must treat this as VALID-forever, not as absent. `parseZoopDate`
69
+ * returns null for these — correctly, since there is no date — so this is the
70
+ * only thing that distinguishes them from a genuinely missing record.
71
+ */
72
+ export const isZoopLifetimeValue = (raw) => {
73
+ const s = parseZoopValue(raw);
74
+ if (!s)
75
+ return false;
76
+ return LIFETIME_TOKENS.has(s.trim().toLowerCase().replace(/\s+/g, ' '));
77
+ };
40
78
  const MONTHS = {
41
79
  jan: 0,
42
80
  feb: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"zoop.date.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/date-utils/src/zoop.date.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zoop.date.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/date-utils/src/zoop.date.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,15 @@ export declare enum ComplianceStanding {
66
66
  * sets the default at 30 days).
67
67
  */
68
68
  export declare const DEFAULT_COMPLIANCE_WARNING_WINDOW_DAYS = 30;
69
+ /**
70
+ * AD-3140 §3.4 — default utilisation window for the scheduled ZoopOne sweep.
71
+ *
72
+ * 90 days: long enough that a seasonally idle vehicle is still refreshed before
73
+ * anyone tries to deploy it, short enough to keep a 5k+ fleet's provider spend
74
+ * bounded. Overridable per context via
75
+ * ConfigurationField.ComplianceUtilisationWindowDays.
76
+ */
77
+ export declare const DEFAULT_COMPLIANCE_UTILISATION_WINDOW_DAYS = 90;
69
78
  /** Every compliance type, in the order AD-3140 §2 lists them. */
70
79
  export declare const VEHICLE_COMPLIANCE_KEYS: VehicleComplianceKey[];
71
80
  /**
@@ -70,6 +70,15 @@ export var ComplianceStanding;
70
70
  * sets the default at 30 days).
71
71
  */
72
72
  export const DEFAULT_COMPLIANCE_WARNING_WINDOW_DAYS = 30;
73
+ /**
74
+ * AD-3140 §3.4 — default utilisation window for the scheduled ZoopOne sweep.
75
+ *
76
+ * 90 days: long enough that a seasonally idle vehicle is still refreshed before
77
+ * anyone tries to deploy it, short enough to keep a 5k+ fleet's provider spend
78
+ * bounded. Overridable per context via
79
+ * ConfigurationField.ComplianceUtilisationWindowDays.
80
+ */
81
+ export const DEFAULT_COMPLIANCE_UTILISATION_WINDOW_DAYS = 90;
73
82
  /** Every compliance type, in the order AD-3140 §2 lists them. */
74
83
  export const VEHICLE_COMPLIANCE_KEYS = [
75
84
  VehicleComplianceKey.RegistrationCertificate,
@@ -1 +1 @@
1
- {"version":3,"file":"vehicle.compliance.enum.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/enums/src/vehicle.compliance.enum.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vehicle.compliance.enum.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/enums/src/vehicle.compliance.enum.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,20 @@ export declare enum ConfigurationField {
61
61
  * disables the override entirely, which is the safe default.
62
62
  */
63
63
  ComplianceMaxGraceDays = "cmplMaxGraceDays",
64
+ /**
65
+ * AD-3140 §3.4 — only vehicles allocated to a booking within this many days
66
+ * are re-verified against ZoopOne by the scheduled sweep.
67
+ *
68
+ * A cost control, not a correctness one: every provider hit is billable and
69
+ * the fleet is 5k+ vehicles, so a car nobody has dispatched in months is
70
+ * not worth re-asking about — it will be verified on demand the moment
71
+ * someone tries to deploy it, and the manual re-hit covers the rest.
72
+ *
73
+ * Null falls back to DEFAULT_COMPLIANCE_UTILISATION_WINDOW_DAYS. Zero is a
74
+ * meaningful value and means "sweep nothing" — the scheduled hit is off and
75
+ * only manual re-hits happen.
76
+ */
77
+ ComplianceUtilisationWindowDays = "cmplUtilDays",
64
78
  MarkTripAsCompletedOnPassengerDeboardingCorporate = "mrkCmpltdOnDbordCrprt",
65
79
  MarkTripAsCompletedOnPassengerDeboardingNonCorporate = "mrkCmpltdOnDbordNnCrprt",
66
80
  DriverSACCode = "driverSACCode",
@@ -193,6 +207,7 @@ export interface IConfigurations extends TypedModel {
193
207
  [ConfigurationField.safetyAndCompliance]: Record<OwnershipType, ISafetyAndCompliance>;
194
208
  [ConfigurationField.ComplianceWarningWindowDays]: number | null;
195
209
  [ConfigurationField.ComplianceMaxGraceDays]: number | null;
210
+ [ConfigurationField.ComplianceUtilisationWindowDays]: number | null;
196
211
  [ConfigurationField.MarkTripAsCompletedOnPassengerDeboardingCorporate]: boolean;
197
212
  [ConfigurationField.MarkTripAsCompletedOnPassengerDeboardingNonCorporate]: boolean;
198
213
  [ConfigurationField.DriverSACCode]: string;
@@ -52,6 +52,20 @@ export var ConfigurationField;
52
52
  * disables the override entirely, which is the safe default.
53
53
  */
54
54
  ConfigurationField["ComplianceMaxGraceDays"] = "cmplMaxGraceDays";
55
+ /**
56
+ * AD-3140 §3.4 — only vehicles allocated to a booking within this many days
57
+ * are re-verified against ZoopOne by the scheduled sweep.
58
+ *
59
+ * A cost control, not a correctness one: every provider hit is billable and
60
+ * the fleet is 5k+ vehicles, so a car nobody has dispatched in months is
61
+ * not worth re-asking about — it will be verified on demand the moment
62
+ * someone tries to deploy it, and the manual re-hit covers the rest.
63
+ *
64
+ * Null falls back to DEFAULT_COMPLIANCE_UTILISATION_WINDOW_DAYS. Zero is a
65
+ * meaningful value and means "sweep nothing" — the scheduled hit is off and
66
+ * only manual re-hits happen.
67
+ */
68
+ ConfigurationField["ComplianceUtilisationWindowDays"] = "cmplUtilDays";
55
69
  ConfigurationField["MarkTripAsCompletedOnPassengerDeboardingCorporate"] = "mrkCmpltdOnDbordCrprt";
56
70
  ConfigurationField["MarkTripAsCompletedOnPassengerDeboardingNonCorporate"] = "mrkCmpltdOnDbordNnCrprt";
57
71
  ConfigurationField["DriverSACCode"] = "driverSACCode";
@@ -1 +1 @@
1
- {"version":3,"file":"configurations.model.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/models/src/configurations.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configurations.model.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/models/src/configurations.model.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,16 @@ import { VehicleComplianceKey } from '@autologix/shared/enums';
3
3
  export interface RcComplianceMapping {
4
4
  expiries: Partial<Record<VehicleComplianceKey, Date | null>>;
5
5
  numbers: Partial<Record<VehicleComplianceKey, string | null>>;
6
+ /**
7
+ * Compliances the provider states are paid for the life of the vehicle and
8
+ * so have no expiry — `rc_tax_upto: 'LTT'` on a private car.
9
+ *
10
+ * Reported separately from `expiries` because there is no date to report,
11
+ * and separately from "no data" because it is the opposite claim: the RTO
12
+ * is telling us there is nothing left to renew. A caller that conflates the
13
+ * two blocks a vehicle that can never be unblocked.
14
+ */
15
+ lifetime: Partial<Record<VehicleComplianceKey, boolean>>;
6
16
  /** From rc_commercial_status. Null when the provider omits it. */
7
17
  isCommercial: boolean | null;
8
18
  /** e.g. 'Contract Carriage Permit [L TAXI]' — which permit is actually held. */
@@ -1,4 +1,4 @@
1
- import { parseZoopDate, parseZoopFlag, parseZoopValue, } from '@autologix/shared/date-utils';
1
+ import { isZoopLifetimeValue, parseZoopDate, parseZoopFlag, parseZoopValue, } from '@autologix/shared/date-utils';
2
2
  import { VehicleComplianceKey } from '@autologix/shared/enums';
3
3
  /**
4
4
  * Maps an RC-advance result to compliance records (AD-3140 §5).
@@ -44,6 +44,12 @@ export const mapComplianceFromRc = (raw) => {
44
44
  // Form 42: no field in the payload. Left absent rather than
45
45
  // null-mapped so the distinction stays visible here.
46
46
  },
47
+ lifetime: {
48
+ // Road tax is the only levy the payload expresses this way. Kept as
49
+ // a map rather than a boolean so a provider that starts returning
50
+ // e.g. a lifetime permit needs no shape change here.
51
+ [VehicleComplianceKey.RoadTax]: isZoopLifetimeValue(r?.rc_tax_upto),
52
+ },
47
53
  numbers: {
48
54
  [VehicleComplianceKey.PUC]: parseZoopValue(r?.rc_pucc_no),
49
55
  [VehicleComplianceKey.StatePermit]: parseZoopValue(r?.rc_permit_number),
@@ -1 +1 @@
1
- {"version":3,"file":"map.compliance.from.rc.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/map.compliance.from.rc.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,aAAa,EACb,cAAc,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAsB/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAQ,EAAuB,EAAE;IACpE,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,CAAC;IAC7B,OAAO;QACN,QAAQ,EAAE;YACT,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,aAAa,CAC5D,CAAC,EAAE,cAAc,IAAI,CAAC,EAAE,WAAW,CACnC;YACD,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,mBAAmB,CAAC;YACjE,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,aAAa,CAChD,CAAC,EAAE,qBAAqB,IAAI,CAAC,EAAE,oBAAoB,CACnD;YACD,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,aAAa,CACnD,CAAC,EAAE,2BAA2B,CAC9B;YACD,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;YAC7D,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa,CAC5C,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,YAAY,CACjC;YACD,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,aAAa,CACzD,CAAC,EAAE,SAAS,EAAE,WAAW,IAAI,CAAC,EAAE,cAAc,CAC9C;YACD,4DAA4D;YAC5D,qDAAqD;SACrD;QACD,OAAO,EAAE;YACR,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC;YACzD,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,cAAc,CACjD,CAAC,EAAE,gBAAgB,CACnB;YACD,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,cAAc,CACpD,CAAC,EAAE,sBAAsB,CACzB;YACD,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,cAAc,CAC1D,CAAC,EAAE,SAAS,EAAE,aAAa,CAC3B;SACD;QACD,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC;QACpD,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC;QAC7C,UAAU,EAAE,aAAa,CAAC,CAAC,EAAE,eAAe,CAAC;QAC7C,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC;QAChC,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC;QAClC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC;QACvC,aAAa,EAAE;YACd,gBAAgB,EAAE,aAAa,CAAC,CAAC,EAAE,iBAAiB,CAAC;YACrD,cAAc,EAAE,aAAa,CAAC,CAAC,EAAE,uBAAuB,CAAC;SACzD;KACD,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"map.compliance.from.rc.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/map.compliance.from.rc.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,cAAc,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAgC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAQ,EAAuB,EAAE;IACpE,MAAM,CAAC,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,CAAC;IAC7B,OAAO;QACN,QAAQ,EAAE;YACT,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,aAAa,CAC5D,CAAC,EAAE,cAAc,IAAI,CAAC,EAAE,WAAW,CACnC;YACD,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,mBAAmB,CAAC;YACjE,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,aAAa,CAChD,CAAC,EAAE,qBAAqB,IAAI,CAAC,EAAE,oBAAoB,CACnD;YACD,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,aAAa,CACnD,CAAC,EAAE,2BAA2B,CAC9B;YACD,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;YAC7D,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,aAAa,CAC5C,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,YAAY,CACjC;YACD,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,aAAa,CACzD,CAAC,EAAE,SAAS,EAAE,WAAW,IAAI,CAAC,EAAE,cAAc,CAC9C;YACD,4DAA4D;YAC5D,qDAAqD;SACrD;QACD,QAAQ,EAAE;YACT,oEAAoE;YACpE,kEAAkE;YAClE,qDAAqD;YACrD,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,WAAW,CAAC;SACnE;QACD,OAAO,EAAE;YACR,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC;YACzD,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,cAAc,CACjD,CAAC,EAAE,gBAAgB,CACnB;YACD,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,cAAc,CACpD,CAAC,EAAE,sBAAsB,CACzB;YACD,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,cAAc,CAC1D,CAAC,EAAE,SAAS,EAAE,aAAa,CAC3B;SACD;QACD,YAAY,EAAE,aAAa,CAAC,CAAC,EAAE,oBAAoB,CAAC;QACpD,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC;QAC7C,UAAU,EAAE,aAAa,CAAC,CAAC,EAAE,eAAe,CAAC;QAC7C,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC;QAChC,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC;QAClC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC;QACvC,aAAa,EAAE;YACd,gBAAgB,EAAE,aAAa,CAAC,CAAC,EAAE,iBAAiB,CAAC;YACrD,cAAc,EAAE,aAAa,CAAC,CAAC,EAAE,uBAAuB,CAAC;SACzD;KACD,CAAC;AACH,CAAC,CAAC"}
@@ -1,2 +1,20 @@
1
1
  import { IPassenger, IRequest } from '@autologix/shared/models';
2
+ /**
3
+ * Resolves the name to display for a passenger — the `{{user_name}}` token in
4
+ * every alert template, the calendar invite title, the booking report column.
5
+ *
6
+ * `Passenger.psngrName` cannot be trusted on its own: the signup and
7
+ * context-lookup paths store only the first name in it while writing the full
8
+ * name into `firstName`/`lastName`, and a later profile edit never re-syncs it.
9
+ * A booking whose row had drifted that way rendered the full name for the one
10
+ * recipient resolved through the booking communications (that path composes
11
+ * `firstName + lastName`) and the first name alone for everyone else.
12
+ *
13
+ * So the composed `firstName + lastName` is used in preference to `psngrName`,
14
+ * but only when it contributes a name part `psngrName` is missing. That keeps
15
+ * the output identical for every row where `psngrName` is already complete —
16
+ * including the ones whose `lastName` merely repeats a word the stored name
17
+ * already has — and only repairs the genuinely truncated ones. The names
18
+ * carried on the request are used when the passenger row yields nothing.
19
+ */
2
20
  export declare function resolvePassengerDisplayName(passenger: IPassenger | null | undefined, request: IRequest | null | undefined): string;
@@ -2,20 +2,47 @@ import { PassengerField, RequestCommunicationField, RequestField, RequestPasseng
2
2
  function isValidName(value) {
3
3
  return !!value && value !== 'undefined' && value !== 'null';
4
4
  }
5
+ /** Trimmed value, or '' for anything the caller must not display. */
6
+ function cleanName(value) {
7
+ return isValidName(value) ? value.trim() : '';
8
+ }
9
+ /** Lower-cased name parts — "Ravi Kumar" → ['ravi', 'kumar']. */
10
+ function nameParts(value) {
11
+ return value ? value.toLowerCase().split(/\s+/).filter(Boolean) : [];
12
+ }
13
+ /**
14
+ * Resolves the name to display for a passenger — the `{{user_name}}` token in
15
+ * every alert template, the calendar invite title, the booking report column.
16
+ *
17
+ * `Passenger.psngrName` cannot be trusted on its own: the signup and
18
+ * context-lookup paths store only the first name in it while writing the full
19
+ * name into `firstName`/`lastName`, and a later profile edit never re-syncs it.
20
+ * A booking whose row had drifted that way rendered the full name for the one
21
+ * recipient resolved through the booking communications (that path composes
22
+ * `firstName + lastName`) and the first name alone for everyone else.
23
+ *
24
+ * So the composed `firstName + lastName` is used in preference to `psngrName`,
25
+ * but only when it contributes a name part `psngrName` is missing. That keeps
26
+ * the output identical for every row where `psngrName` is already complete —
27
+ * including the ones whose `lastName` merely repeats a word the stored name
28
+ * already has — and only repairs the genuinely truncated ones. The names
29
+ * carried on the request are used when the passenger row yields nothing.
30
+ */
5
31
  export function resolvePassengerDisplayName(passenger, request) {
6
- const rawName = passenger?.[PassengerField.PassengerName] ??
7
- request?.[RequestField.PassengerDetails]?.[0]?.[RequestPassengerField.PassengerName] ??
8
- request?.[RequestField.Communications]?.[0]?.[RequestCommunicationField.PassengerName] ??
9
- '';
10
- if (isValidName(rawName)) {
11
- return rawName;
32
+ const storedName = cleanName(passenger?.[PassengerField.PassengerName]);
33
+ const composedName = [
34
+ cleanName(passenger?.[PassengerField.FirstName]),
35
+ cleanName(passenger?.[PassengerField.LastName]),
36
+ ]
37
+ .filter(Boolean)
38
+ .join(' ');
39
+ const storedParts = nameParts(storedName);
40
+ const composedAddsAName = nameParts(composedName).some((part) => !storedParts.includes(part));
41
+ const passengerName = composedName && composedAddsAName ? composedName : storedName;
42
+ if (passengerName) {
43
+ return passengerName;
12
44
  }
13
- const commName = request?.[RequestField.Communications]?.[0]?.[RequestCommunicationField.PassengerName];
14
- const firstNameRaw = passenger?.[PassengerField.FirstName] ??
15
- (isValidName(commName) ? commName.split(' ')[0] : '');
16
- const firstName = isValidName(firstNameRaw) ? firstNameRaw : '';
17
- const lastNameRaw = passenger?.[PassengerField.LastName] ?? '';
18
- const lastName = isValidName(lastNameRaw) ? lastNameRaw : '';
19
- return [firstName, lastName].filter(Boolean).join(' ');
45
+ return (cleanName(request?.[RequestField.PassengerDetails]?.[0]?.[RequestPassengerField.PassengerName]) ||
46
+ cleanName(request?.[RequestField.Communications]?.[0]?.[RequestCommunicationField.PassengerName]));
20
47
  }
21
48
  //# sourceMappingURL=resolve.passenger.display.name.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.passenger.display.name.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/resolve.passenger.display.name.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,GACrB,MAAM,0BAA0B,CAAC;AAElC,SAAS,WAAW,CAAC,KAAgC;IACpD,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,MAAM,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,2BAA2B,CAC1C,SAAwC,EACxC,OAAoC;IAEpC,MAAM,OAAO,GACZ,SAAS,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC;QACzC,OAAO,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAC9C,qBAAqB,CAAC,aAAa,CACnC;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAC5C,yBAAyB,CAAC,aAAa,CACvC;QACD,EAAE,CAAC;IAEJ,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GACb,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAC5C,yBAAyB,CAAC,aAAa,CACvC,CAAC;IACH,MAAM,YAAY,GACjB,SAAS,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC;QACrC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7D,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"resolve.passenger.display.name.js","sourceRoot":"","sources":["../../../../../../../libs/shared/src/lib/utilities/src/resolve.passenger.display.name.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,GACrB,MAAM,0BAA0B,CAAC;AAElC,SAAS,WAAW,CAAC,KAAgC;IACpD,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,MAAM,CAAC;AAC7D,CAAC;AAED,qEAAqE;AACrE,SAAS,SAAS,CAAC,KAAgC;IAClD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,iEAAiE;AACjE,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,2BAA2B,CAC1C,SAAwC,EACxC,OAAoC;IAEpC,MAAM,UAAU,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG;QACpB,SAAS,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,SAAS,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;KAC/C;SACC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,iBAAiB,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CACrD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CACrC,CAAC;IACF,MAAM,aAAa,GAClB,YAAY,IAAI,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;IAE/D,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,OAAO,CACN,SAAS,CACR,OAAO,EAAE,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAC9C,qBAAqB,CAAC,aAAa,CACnC,CACD;QACD,SAAS,CACR,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAC5C,yBAAyB,CAAC,aAAa,CACvC,CACD,CACD,CAAC;AACH,CAAC"}