@fiado/type-kit 3.399.0 → 3.401.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 (52) hide show
  1. package/_test_/unit/loanCredit/dtos/loanDeviceContract.test.ts +405 -0
  2. package/_test_/unit/mdm/dtos/mdmDeviceContract.test.ts +83 -0
  3. package/bin/loanCredit/dtos/LoanDeviceNotifyItem.d.ts +12 -0
  4. package/bin/loanCredit/dtos/LoanDeviceNotifyItem.js +54 -0
  5. package/bin/loanCredit/dtos/LoanDeviceReleaseItem.d.ts +8 -0
  6. package/bin/loanCredit/dtos/LoanDeviceReleaseItem.js +37 -0
  7. package/bin/loanCredit/dtos/LoanDeviceUnlockItem.d.ts +6 -0
  8. package/bin/loanCredit/dtos/LoanDeviceUnlockItem.js +31 -0
  9. package/bin/loanCredit/dtos/requests/LoanDeviceManualUnlockRequest.d.ts +2 -2
  10. package/bin/loanCredit/dtos/requests/LoanDeviceManualUnlockRequest.js +2 -2
  11. package/bin/loanCredit/dtos/requests/LoanDeviceNotifyRequest.d.ts +7 -0
  12. package/bin/loanCredit/dtos/requests/LoanDeviceNotifyRequest.js +37 -0
  13. package/bin/loanCredit/dtos/requests/LoanDeviceReleaseRequest.d.ts +7 -0
  14. package/bin/loanCredit/dtos/requests/LoanDeviceReleaseRequest.js +37 -0
  15. package/bin/loanCredit/dtos/responses/LoanDeviceNotifyResponse.d.ts +5 -0
  16. package/bin/loanCredit/dtos/responses/LoanDeviceNotifyResponse.js +7 -0
  17. package/bin/loanCredit/dtos/responses/LoanDeviceNotifyResult.d.ts +8 -0
  18. package/bin/loanCredit/dtos/responses/LoanDeviceNotifyResult.js +8 -0
  19. package/bin/loanCredit/dtos/responses/LoanDeviceReleaseResponse.d.ts +5 -0
  20. package/bin/loanCredit/dtos/responses/LoanDeviceReleaseResponse.js +7 -0
  21. package/bin/loanCredit/dtos/responses/LoanDeviceReleaseResult.d.ts +8 -0
  22. package/bin/loanCredit/dtos/responses/LoanDeviceReleaseResult.js +8 -0
  23. package/bin/loanCredit/index.d.ts +12 -0
  24. package/bin/loanCredit/index.js +15 -1
  25. package/bin/loanCredit/validators/IsFutureIso8601DateTime.d.ts +18 -0
  26. package/bin/loanCredit/validators/IsFutureIso8601DateTime.js +41 -0
  27. package/bin/mdm/dtos/DeviceEnrollRequest.d.ts +3 -0
  28. package/bin/mdm/dtos/DeviceEnrollRequest.js +7 -0
  29. package/bin/mdm/dtos/DeviceUnlockRequest.d.ts +2 -0
  30. package/bin/mdm/dtos/DeviceUnlockRequest.js +6 -0
  31. package/bin/mdm/enums/MdmErrorCodeEnum.d.ts +1 -0
  32. package/bin/mdm/enums/MdmErrorCodeEnum.js +1 -0
  33. package/bin/mdm/index.d.ts +1 -0
  34. package/bin/mdm/index.js +4 -0
  35. package/package.json +1 -1
  36. package/src/loanCredit/dtos/LoanDeviceNotifyItem.ts +36 -0
  37. package/src/loanCredit/dtos/LoanDeviceReleaseItem.ts +22 -0
  38. package/src/loanCredit/dtos/LoanDeviceUnlockItem.ts +17 -0
  39. package/src/loanCredit/dtos/requests/LoanDeviceManualUnlockRequest.ts +4 -4
  40. package/src/loanCredit/dtos/requests/LoanDeviceNotifyRequest.ts +23 -0
  41. package/src/loanCredit/dtos/requests/LoanDeviceReleaseRequest.ts +23 -0
  42. package/src/loanCredit/dtos/responses/LoanDeviceNotifyResponse.ts +6 -0
  43. package/src/loanCredit/dtos/responses/LoanDeviceNotifyResult.ts +10 -0
  44. package/src/loanCredit/dtos/responses/LoanDeviceReleaseResponse.ts +6 -0
  45. package/src/loanCredit/dtos/responses/LoanDeviceReleaseResult.ts +10 -0
  46. package/src/loanCredit/index.ts +13 -0
  47. package/src/loanCredit/validators/IsFutureIso8601DateTime.ts +32 -0
  48. package/src/mdm/README.md +16 -0
  49. package/src/mdm/dtos/DeviceEnrollRequest.ts +8 -1
  50. package/src/mdm/dtos/DeviceUnlockRequest.ts +7 -1
  51. package/src/mdm/enums/MdmErrorCodeEnum.ts +1 -0
  52. package/src/mdm/index.ts +3 -0
@@ -1,7 +1,7 @@
1
- import { LoanDeviceCreditRefItem } from '../LoanDeviceCreditRefItem';
1
+ import { LoanDeviceUnlockItem } from '../LoanDeviceUnlockItem';
2
2
  /** Body de `POST /private/devices/manual-unlock` (loan-credit-business). Desbloquea en lote. */
3
3
  export declare class LoanDeviceManualUnlockRequest {
4
- items: LoanDeviceCreditRefItem[];
4
+ items: LoanDeviceUnlockItem[];
5
5
  /** Referencia con la que el caller correlaciona este batch; vuelve en cada resultado. */
6
6
  operationReference: string;
7
7
  }
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.LoanDeviceManualUnlockRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
- const LoanDeviceCreditRefItem_1 = require("../LoanDeviceCreditRefItem");
15
+ const LoanDeviceUnlockItem_1 = require("../LoanDeviceUnlockItem");
16
16
  const LoanDeviceBatchLimits_1 = require("../../constants/LoanDeviceBatchLimits");
17
17
  /** Body de `POST /private/devices/manual-unlock` (loan-credit-business). Desbloquea en lote. */
18
18
  class LoanDeviceManualUnlockRequest {
@@ -25,7 +25,7 @@ __decorate([
25
25
  (0, class_validator_1.ArrayMaxSize)(LoanDeviceBatchLimits_1.LOAN_DEVICE_MAX_BATCH),
26
26
  (0, class_validator_1.ArrayUnique)((item) => item.creditId),
27
27
  (0, class_validator_1.ValidateNested)({ each: true }),
28
- (0, class_transformer_1.Type)(() => LoanDeviceCreditRefItem_1.LoanDeviceCreditRefItem),
28
+ (0, class_transformer_1.Type)(() => LoanDeviceUnlockItem_1.LoanDeviceUnlockItem),
29
29
  __metadata("design:type", Array)
30
30
  ], LoanDeviceManualUnlockRequest.prototype, "items", void 0);
31
31
  __decorate([
@@ -0,0 +1,7 @@
1
+ import { LoanDeviceNotifyItem } from '../LoanDeviceNotifyItem';
2
+ /** Body de `POST /private/devices/notify` (loan-credit-business). Notifica en lote. */
3
+ export declare class LoanDeviceNotifyRequest {
4
+ items: LoanDeviceNotifyItem[];
5
+ /** Referencia con la que el caller correlaciona este batch; vuelve en cada resultado. */
6
+ operationReference: string;
7
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LoanDeviceNotifyRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const LoanDeviceNotifyItem_1 = require("../LoanDeviceNotifyItem");
16
+ const LoanDeviceBatchLimits_1 = require("../../constants/LoanDeviceBatchLimits");
17
+ /** Body de `POST /private/devices/notify` (loan-credit-business). Notifica en lote. */
18
+ class LoanDeviceNotifyRequest {
19
+ }
20
+ exports.LoanDeviceNotifyRequest = LoanDeviceNotifyRequest;
21
+ __decorate([
22
+ (0, class_transformer_1.Expose)(),
23
+ (0, class_validator_1.IsArray)(),
24
+ (0, class_validator_1.ArrayNotEmpty)(),
25
+ (0, class_validator_1.ArrayMaxSize)(LoanDeviceBatchLimits_1.LOAN_DEVICE_MAX_BATCH),
26
+ (0, class_validator_1.ArrayUnique)((item) => item.creditId),
27
+ (0, class_validator_1.ValidateNested)({ each: true }),
28
+ (0, class_transformer_1.Type)(() => LoanDeviceNotifyItem_1.LoanDeviceNotifyItem),
29
+ __metadata("design:type", Array)
30
+ ], LoanDeviceNotifyRequest.prototype, "items", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.IsNotEmpty)(),
35
+ (0, class_validator_1.Length)(1, 64),
36
+ __metadata("design:type", String)
37
+ ], LoanDeviceNotifyRequest.prototype, "operationReference", void 0);
@@ -0,0 +1,7 @@
1
+ import { LoanDeviceReleaseItem } from '../LoanDeviceReleaseItem';
2
+ /** Body de `POST /private/devices/release` (loan-credit-business). Libera en lote. */
3
+ export declare class LoanDeviceReleaseRequest {
4
+ items: LoanDeviceReleaseItem[];
5
+ /** Referencia con la que el caller correlaciona este batch; vuelve en cada resultado. */
6
+ operationReference: string;
7
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LoanDeviceReleaseRequest = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const LoanDeviceReleaseItem_1 = require("../LoanDeviceReleaseItem");
16
+ const LoanDeviceBatchLimits_1 = require("../../constants/LoanDeviceBatchLimits");
17
+ /** Body de `POST /private/devices/release` (loan-credit-business). Libera en lote. */
18
+ class LoanDeviceReleaseRequest {
19
+ }
20
+ exports.LoanDeviceReleaseRequest = LoanDeviceReleaseRequest;
21
+ __decorate([
22
+ (0, class_transformer_1.Expose)(),
23
+ (0, class_validator_1.IsArray)(),
24
+ (0, class_validator_1.ArrayNotEmpty)(),
25
+ (0, class_validator_1.ArrayMaxSize)(LoanDeviceBatchLimits_1.LOAN_DEVICE_MAX_BATCH),
26
+ (0, class_validator_1.ArrayUnique)((item) => item.creditId),
27
+ (0, class_validator_1.ValidateNested)({ each: true }),
28
+ (0, class_transformer_1.Type)(() => LoanDeviceReleaseItem_1.LoanDeviceReleaseItem),
29
+ __metadata("design:type", Array)
30
+ ], LoanDeviceReleaseRequest.prototype, "items", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Expose)(),
33
+ (0, class_validator_1.IsString)(),
34
+ (0, class_validator_1.IsNotEmpty)(),
35
+ (0, class_validator_1.Length)(1, 64),
36
+ __metadata("design:type", String)
37
+ ], LoanDeviceReleaseRequest.prototype, "operationReference", void 0);
@@ -0,0 +1,5 @@
1
+ import { LoanDeviceNotifyResult } from './LoanDeviceNotifyResult';
2
+ /** Response de `POST /private/devices/notify`. Un resultado por ítem enviado. */
3
+ export declare class LoanDeviceNotifyResponse {
4
+ results: LoanDeviceNotifyResult[];
5
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoanDeviceNotifyResponse = void 0;
4
+ /** Response de `POST /private/devices/notify`. Un resultado por ítem enviado. */
5
+ class LoanDeviceNotifyResponse {
6
+ }
7
+ exports.LoanDeviceNotifyResponse = LoanDeviceNotifyResponse;
@@ -0,0 +1,8 @@
1
+ import { LoanDeviceOperationResult } from '../LoanDeviceOperationResult';
2
+ import { LoanDeviceMdmStatusEnum } from '../../enums/LoanDeviceMdmStatusEnum';
3
+ /** Resultado por crédito de la notificación en lote. */
4
+ export declare class LoanDeviceNotifyResult extends LoanDeviceOperationResult {
5
+ /** Estado nuestro del expediente después de intentar la notificación. */
6
+ mdmStatus: LoanDeviceMdmStatusEnum;
7
+ notifiedAt?: string;
8
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoanDeviceNotifyResult = void 0;
4
+ const LoanDeviceOperationResult_1 = require("../LoanDeviceOperationResult");
5
+ /** Resultado por crédito de la notificación en lote. */
6
+ class LoanDeviceNotifyResult extends LoanDeviceOperationResult_1.LoanDeviceOperationResult {
7
+ }
8
+ exports.LoanDeviceNotifyResult = LoanDeviceNotifyResult;
@@ -0,0 +1,5 @@
1
+ import { LoanDeviceReleaseResult } from './LoanDeviceReleaseResult';
2
+ /** Response de `POST /private/devices/release`. Un resultado por ítem enviado. */
3
+ export declare class LoanDeviceReleaseResponse {
4
+ results: LoanDeviceReleaseResult[];
5
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoanDeviceReleaseResponse = void 0;
4
+ /** Response de `POST /private/devices/release`. Un resultado por ítem enviado. */
5
+ class LoanDeviceReleaseResponse {
6
+ }
7
+ exports.LoanDeviceReleaseResponse = LoanDeviceReleaseResponse;
@@ -0,0 +1,8 @@
1
+ import { LoanDeviceOperationResult } from '../LoanDeviceOperationResult';
2
+ import { LoanDeviceMdmStatusEnum } from '../../enums/LoanDeviceMdmStatusEnum';
3
+ /** Resultado por crédito de la liberación definitiva en lote. */
4
+ export declare class LoanDeviceReleaseResult extends LoanDeviceOperationResult {
5
+ /** Estado nuestro del expediente después de intentar la liberación. */
6
+ mdmStatus: LoanDeviceMdmStatusEnum;
7
+ releasedAt?: string;
8
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoanDeviceReleaseResult = void 0;
4
+ const LoanDeviceOperationResult_1 = require("../LoanDeviceOperationResult");
5
+ /** Resultado por crédito de la liberación definitiva en lote. */
6
+ class LoanDeviceReleaseResult extends LoanDeviceOperationResult_1.LoanDeviceOperationResult {
7
+ }
8
+ exports.LoanDeviceReleaseResult = LoanDeviceReleaseResult;
@@ -33,6 +33,8 @@ export { MdmDeviceStatusEnum } from '../mdm/enums/MdmDeviceStatusEnum';
33
33
  export { MdmOperationTypeEnum } from '../mdm/enums/MdmOperationTypeEnum';
34
34
  export { MdmProviderEnum } from '../mdm/enums/MdmProviderEnum';
35
35
  export { DeviceEnrollmentModeEnum } from '../mdm/enums/DeviceEnrollmentModeEnum';
36
+ export { DeviceNotifyIntensityEnum } from '../mdm/enums/DeviceNotifyIntensityEnum';
37
+ export { DeviceReleaseReasonEnum } from '../mdm/enums/DeviceReleaseReasonEnum';
36
38
  export { MdmError } from '../mdm/dtos/MdmError';
37
39
  export { DeviceLockScreenMessage } from '../mdm/dtos/DeviceLockScreenMessage';
38
40
  export { MdmLockModeEnum } from '../retailCatalog/enums/MdmLockModeEnum';
@@ -42,12 +44,17 @@ export * from './dtos/LoanDeviceOperationResult';
42
44
  export * from './dtos/LoanDeviceCreditRefItem';
43
45
  export * from './dtos/LoanDeviceEnrollItem';
44
46
  export * from './dtos/LoanDeviceManualLockItem';
47
+ export * from './dtos/LoanDeviceUnlockItem';
48
+ export * from './dtos/LoanDeviceNotifyItem';
49
+ export * from './dtos/LoanDeviceReleaseItem';
45
50
  export * from './dtos/requests/LoanDeviceEnrollRequest';
46
51
  export * from './dtos/requests/LoanDeviceEnrollStatusRequest';
47
52
  export * from './dtos/requests/LoanDeviceStatusRequest';
48
53
  export * from './dtos/requests/LoanDeviceLastSeenRequest';
49
54
  export * from './dtos/requests/LoanDeviceManualLockRequest';
50
55
  export * from './dtos/requests/LoanDeviceManualUnlockRequest';
56
+ export * from './dtos/requests/LoanDeviceNotifyRequest';
57
+ export * from './dtos/requests/LoanDeviceReleaseRequest';
51
58
  export * from './dtos/responses/LoanDeviceEnrollResult';
52
59
  export * from './dtos/responses/LoanDeviceEnrollResponse';
53
60
  export * from './dtos/responses/LoanDeviceEnrollStatusResult';
@@ -61,3 +68,8 @@ export * from './dtos/responses/LoanDeviceManualLockResponse';
61
68
  export * from './dtos/responses/LoanDevicePinUnlockResult';
62
69
  export * from './dtos/responses/LoanDeviceUnlockResult';
63
70
  export * from './dtos/responses/LoanDeviceManualUnlockResponse';
71
+ export * from './dtos/responses/LoanDeviceNotifyResult';
72
+ export * from './dtos/responses/LoanDeviceNotifyResponse';
73
+ export * from './dtos/responses/LoanDeviceReleaseResult';
74
+ export * from './dtos/responses/LoanDeviceReleaseResponse';
75
+ export * from './validators/IsFutureIso8601DateTime';
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.MdmLockModeEnum = exports.DeviceLockScreenMessage = exports.MdmError = exports.DeviceEnrollmentModeEnum = exports.MdmProviderEnum = exports.MdmOperationTypeEnum = exports.MdmDeviceStatusEnum = exports.MdmOperationStatusEnum = exports.ClientLevelEnum = void 0;
17
+ exports.MdmLockModeEnum = exports.DeviceLockScreenMessage = exports.MdmError = exports.DeviceReleaseReasonEnum = exports.DeviceNotifyIntensityEnum = exports.DeviceEnrollmentModeEnum = exports.MdmProviderEnum = exports.MdmOperationTypeEnum = exports.MdmDeviceStatusEnum = exports.MdmOperationStatusEnum = exports.ClientLevelEnum = void 0;
18
18
  // Enums
19
19
  __exportStar(require("./enums/LoanCreditStatusEnum"), exports);
20
20
  __exportStar(require("./enums/LoanInstallmentStatusEnum"), exports);
@@ -63,6 +63,10 @@ var MdmProviderEnum_1 = require("../mdm/enums/MdmProviderEnum");
63
63
  Object.defineProperty(exports, "MdmProviderEnum", { enumerable: true, get: function () { return MdmProviderEnum_1.MdmProviderEnum; } });
64
64
  var DeviceEnrollmentModeEnum_1 = require("../mdm/enums/DeviceEnrollmentModeEnum");
65
65
  Object.defineProperty(exports, "DeviceEnrollmentModeEnum", { enumerable: true, get: function () { return DeviceEnrollmentModeEnum_1.DeviceEnrollmentModeEnum; } });
66
+ var DeviceNotifyIntensityEnum_1 = require("../mdm/enums/DeviceNotifyIntensityEnum");
67
+ Object.defineProperty(exports, "DeviceNotifyIntensityEnum", { enumerable: true, get: function () { return DeviceNotifyIntensityEnum_1.DeviceNotifyIntensityEnum; } });
68
+ var DeviceReleaseReasonEnum_1 = require("../mdm/enums/DeviceReleaseReasonEnum");
69
+ Object.defineProperty(exports, "DeviceReleaseReasonEnum", { enumerable: true, get: function () { return DeviceReleaseReasonEnum_1.DeviceReleaseReasonEnum; } });
66
70
  var MdmError_1 = require("../mdm/dtos/MdmError");
67
71
  Object.defineProperty(exports, "MdmError", { enumerable: true, get: function () { return MdmError_1.MdmError; } });
68
72
  var DeviceLockScreenMessage_1 = require("../mdm/dtos/DeviceLockScreenMessage");
@@ -75,12 +79,17 @@ __exportStar(require("./dtos/LoanDeviceOperationResult"), exports);
75
79
  __exportStar(require("./dtos/LoanDeviceCreditRefItem"), exports);
76
80
  __exportStar(require("./dtos/LoanDeviceEnrollItem"), exports);
77
81
  __exportStar(require("./dtos/LoanDeviceManualLockItem"), exports);
82
+ __exportStar(require("./dtos/LoanDeviceUnlockItem"), exports);
83
+ __exportStar(require("./dtos/LoanDeviceNotifyItem"), exports);
84
+ __exportStar(require("./dtos/LoanDeviceReleaseItem"), exports);
78
85
  __exportStar(require("./dtos/requests/LoanDeviceEnrollRequest"), exports);
79
86
  __exportStar(require("./dtos/requests/LoanDeviceEnrollStatusRequest"), exports);
80
87
  __exportStar(require("./dtos/requests/LoanDeviceStatusRequest"), exports);
81
88
  __exportStar(require("./dtos/requests/LoanDeviceLastSeenRequest"), exports);
82
89
  __exportStar(require("./dtos/requests/LoanDeviceManualLockRequest"), exports);
83
90
  __exportStar(require("./dtos/requests/LoanDeviceManualUnlockRequest"), exports);
91
+ __exportStar(require("./dtos/requests/LoanDeviceNotifyRequest"), exports);
92
+ __exportStar(require("./dtos/requests/LoanDeviceReleaseRequest"), exports);
84
93
  __exportStar(require("./dtos/responses/LoanDeviceEnrollResult"), exports);
85
94
  __exportStar(require("./dtos/responses/LoanDeviceEnrollResponse"), exports);
86
95
  __exportStar(require("./dtos/responses/LoanDeviceEnrollStatusResult"), exports);
@@ -94,3 +103,8 @@ __exportStar(require("./dtos/responses/LoanDeviceManualLockResponse"), exports);
94
103
  __exportStar(require("./dtos/responses/LoanDevicePinUnlockResult"), exports);
95
104
  __exportStar(require("./dtos/responses/LoanDeviceUnlockResult"), exports);
96
105
  __exportStar(require("./dtos/responses/LoanDeviceManualUnlockResponse"), exports);
106
+ __exportStar(require("./dtos/responses/LoanDeviceNotifyResult"), exports);
107
+ __exportStar(require("./dtos/responses/LoanDeviceNotifyResponse"), exports);
108
+ __exportStar(require("./dtos/responses/LoanDeviceReleaseResult"), exports);
109
+ __exportStar(require("./dtos/responses/LoanDeviceReleaseResponse"), exports);
110
+ __exportStar(require("./validators/IsFutureIso8601DateTime"), exports);
@@ -0,0 +1,18 @@
1
+ import { ValidationArguments, ValidatorConstraintInterface } from 'class-validator';
2
+ /**
3
+ * Valida que el valor sea un datetime ISO-8601 con hora y zona, y posterior al momento actual.
4
+ *
5
+ * Por qué no alcanza `@IsISO8601()`:
6
+ * - acepta el date-only (`"2026-09-30"`), que no fija un instante y el proveedor MDM necesita uno;
7
+ * - acepta fechas pasadas, y un corte "hasta ayer" es un no-op silencioso.
8
+ *
9
+ * Uso típico:
10
+ * ```ts
11
+ * @Validate(IsFutureIso8601DateTime)
12
+ * unlockUntil?: string;
13
+ * ```
14
+ */
15
+ export declare class IsFutureIso8601DateTime implements ValidatorConstraintInterface {
16
+ validate(value: unknown, _args: ValidationArguments): boolean;
17
+ defaultMessage(args: ValidationArguments): string;
18
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.IsFutureIso8601DateTime = void 0;
10
+ const class_validator_1 = require("class-validator");
11
+ /** Datetime ISO-8601 completo: fecha, hora y zona (`Z` u offset). Rechaza el date-only. */
12
+ const ISO_DATETIME_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{1,3})?)?(Z|[+-]\d{2}:\d{2})$/;
13
+ /**
14
+ * Valida que el valor sea un datetime ISO-8601 con hora y zona, y posterior al momento actual.
15
+ *
16
+ * Por qué no alcanza `@IsISO8601()`:
17
+ * - acepta el date-only (`"2026-09-30"`), que no fija un instante y el proveedor MDM necesita uno;
18
+ * - acepta fechas pasadas, y un corte "hasta ayer" es un no-op silencioso.
19
+ *
20
+ * Uso típico:
21
+ * ```ts
22
+ * @Validate(IsFutureIso8601DateTime)
23
+ * unlockUntil?: string;
24
+ * ```
25
+ */
26
+ let IsFutureIso8601DateTime = class IsFutureIso8601DateTime {
27
+ validate(value, _args) {
28
+ if (typeof value !== 'string' || !ISO_DATETIME_PATTERN.test(value)) {
29
+ return false;
30
+ }
31
+ const instant = Date.parse(value);
32
+ return !Number.isNaN(instant) && instant > Date.now();
33
+ }
34
+ defaultMessage(args) {
35
+ return `${args.property} debe ser un datetime ISO-8601 con hora y zona, y posterior al momento actual`;
36
+ }
37
+ };
38
+ exports.IsFutureIso8601DateTime = IsFutureIso8601DateTime;
39
+ exports.IsFutureIso8601DateTime = IsFutureIso8601DateTime = __decorate([
40
+ (0, class_validator_1.ValidatorConstraint)({ name: 'isFutureIso8601DateTime', async: false })
41
+ ], IsFutureIso8601DateTime);
@@ -1,3 +1,4 @@
1
+ import { MdmLockModeEnum } from "../../retailCatalog/enums/MdmLockModeEnum";
1
2
  export declare class DeviceEnrollRequest {
2
3
  imei: string;
3
4
  imei2?: string;
@@ -5,5 +6,7 @@ export declare class DeviceEnrollRequest {
5
6
  model?: string;
6
7
  creditId: string;
7
8
  termMonths: number;
9
+ /** Cuándo se dispara el bloqueo del equipo; si se omite es ONDEMAND, que es el modo de hoy. */
10
+ lockMode?: MdmLockModeEnum;
8
11
  operationReference: string;
9
12
  }
@@ -13,6 +13,7 @@ exports.DeviceEnrollRequest = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const CreditIdPattern_1 = require("../../common/constants/CreditIdPattern");
16
+ const MdmLockModeEnum_1 = require("../../retailCatalog/enums/MdmLockModeEnum");
16
17
  class DeviceEnrollRequest {
17
18
  }
18
19
  exports.DeviceEnrollRequest = DeviceEnrollRequest;
@@ -51,6 +52,12 @@ __decorate([
51
52
  (0, class_validator_1.IsPositive)(),
52
53
  __metadata("design:type", Number)
53
54
  ], DeviceEnrollRequest.prototype, "termMonths", void 0);
55
+ __decorate([
56
+ (0, class_transformer_1.Expose)(),
57
+ (0, class_validator_1.IsEnum)(MdmLockModeEnum_1.MdmLockModeEnum),
58
+ (0, class_validator_1.IsOptional)(),
59
+ __metadata("design:type", String)
60
+ ], DeviceEnrollRequest.prototype, "lockMode", void 0);
54
61
  __decorate([
55
62
  (0, class_transformer_1.Expose)(),
56
63
  (0, class_validator_1.IsString)(),
@@ -1,4 +1,6 @@
1
1
  export declare class DeviceUnlockRequest {
2
2
  imei: string;
3
+ /** ISO-8601 de hasta cuándo vale el desbloqueo; solo aplica en modo SCHEDULED. */
4
+ unlockUntil?: string;
3
5
  operationReference: string;
4
6
  }
@@ -21,6 +21,12 @@ __decorate([
21
21
  (0, class_validator_1.IsNotEmpty)(),
22
22
  __metadata("design:type", String)
23
23
  ], DeviceUnlockRequest.prototype, "imei", void 0);
24
+ __decorate([
25
+ (0, class_transformer_1.Expose)(),
26
+ (0, class_validator_1.IsISO8601)(),
27
+ (0, class_validator_1.IsOptional)(),
28
+ __metadata("design:type", String)
29
+ ], DeviceUnlockRequest.prototype, "unlockUntil", void 0);
24
30
  __decorate([
25
31
  (0, class_transformer_1.Expose)(),
26
32
  (0, class_validator_1.IsString)(),
@@ -3,6 +3,7 @@ export declare enum MdmErrorCodeEnum {
3
3
  DEVICE_NOT_FOUND = "DEVICE_NOT_FOUND",
4
4
  DEVICE_NOT_ENROLLED = "DEVICE_NOT_ENROLLED",
5
5
  INVALID_REQUEST = "INVALID_REQUEST",
6
+ UNLOCK_UNTIL_REQUIRED = "UNLOCK_UNTIL_REQUIRED",
6
7
  PROVIDER_ERROR = "PROVIDER_ERROR",
7
8
  PROVIDER_TIMEOUT = "PROVIDER_TIMEOUT",
8
9
  PROVIDER_RATE_LIMITED = "PROVIDER_RATE_LIMITED",
@@ -7,6 +7,7 @@ var MdmErrorCodeEnum;
7
7
  MdmErrorCodeEnum["DEVICE_NOT_FOUND"] = "DEVICE_NOT_FOUND";
8
8
  MdmErrorCodeEnum["DEVICE_NOT_ENROLLED"] = "DEVICE_NOT_ENROLLED";
9
9
  MdmErrorCodeEnum["INVALID_REQUEST"] = "INVALID_REQUEST";
10
+ MdmErrorCodeEnum["UNLOCK_UNTIL_REQUIRED"] = "UNLOCK_UNTIL_REQUIRED";
10
11
  MdmErrorCodeEnum["PROVIDER_ERROR"] = "PROVIDER_ERROR";
11
12
  MdmErrorCodeEnum["PROVIDER_TIMEOUT"] = "PROVIDER_TIMEOUT";
12
13
  MdmErrorCodeEnum["PROVIDER_RATE_LIMITED"] = "PROVIDER_RATE_LIMITED";
@@ -45,3 +45,4 @@ export * from "./enums/MdmOperationStatusEnum";
45
45
  export * from "./enums/MdmErrorCodeEnum";
46
46
  export * from "./enums/MdmProviderEnum";
47
47
  export * from "./enums/MdmOperationTypeEnum";
48
+ export { MdmLockModeEnum } from "../retailCatalog/enums/MdmLockModeEnum";
package/bin/mdm/index.js CHANGED
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.MdmLockModeEnum = void 0;
17
18
  // dtos
18
19
  __exportStar(require("./dtos/MdmError"), exports);
19
20
  __exportStar(require("./dtos/DeviceLockScreenMessage"), exports);
@@ -68,3 +69,6 @@ __exportStar(require("./enums/MdmOperationStatusEnum"), exports);
68
69
  __exportStar(require("./enums/MdmErrorCodeEnum"), exports);
69
70
  __exportStar(require("./enums/MdmProviderEnum"), exports);
70
71
  __exportStar(require("./enums/MdmOperationTypeEnum"), exports);
72
+ // enums de otro dominio — el modo de bloqueo lo define el producto en el catálogo
73
+ var MdmLockModeEnum_1 = require("../retailCatalog/enums/MdmLockModeEnum");
74
+ Object.defineProperty(exports, "MdmLockModeEnum", { enumerable: true, get: function () { return MdmLockModeEnum_1.MdmLockModeEnum; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiado/type-kit",
3
- "version": "3.399.0",
3
+ "version": "3.401.0",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",
@@ -0,0 +1,36 @@
1
+ import { Expose } from 'class-transformer';
2
+ import { IsEnum, IsNotEmpty, IsString, Matches, MaxLength } from 'class-validator';
3
+ import { DeviceNotifyIntensityEnum } from '../../mdm/enums/DeviceNotifyIntensityEnum';
4
+ import { CREDIT_ID_MESSAGE, CREDIT_ID_PATTERN } from '../constants/CreditIdPattern';
5
+
6
+ /**
7
+ * Ítem de notificación: a qué crédito se le avisa y con qué texto.
8
+ * Los tres campos de texto son obligatorios: Datacultr usa el código y Trustonic el texto crudo.
9
+ */
10
+ export class LoanDeviceNotifyItem {
11
+ @Expose()
12
+ @Matches(CREDIT_ID_PATTERN, { message: CREDIT_ID_MESSAGE })
13
+ creditId: string;
14
+
15
+ @Expose()
16
+ @IsEnum(DeviceNotifyIntensityEnum)
17
+ intensity: DeviceNotifyIntensityEnum;
18
+
19
+ @Expose()
20
+ @IsString()
21
+ @IsNotEmpty()
22
+ @MaxLength(64)
23
+ notificationCode: string;
24
+
25
+ @Expose()
26
+ @IsString()
27
+ @IsNotEmpty()
28
+ @MaxLength(128)
29
+ title: string;
30
+
31
+ @Expose()
32
+ @IsString()
33
+ @IsNotEmpty()
34
+ @MaxLength(1024)
35
+ content: string;
36
+ }
@@ -0,0 +1,22 @@
1
+ import { Expose } from 'class-transformer';
2
+ import { IsEnum, IsOptional, IsString, Matches, MaxLength } from 'class-validator';
3
+ import { DeviceReleaseReasonEnum } from '../../mdm/enums/DeviceReleaseReasonEnum';
4
+ import { CREDIT_ID_MESSAGE, CREDIT_ID_PATTERN } from '../constants/CreditIdPattern';
5
+
6
+ /** Ítem de liberación definitiva: qué crédito se libera del MDM y por qué. */
7
+ export class LoanDeviceReleaseItem {
8
+ @Expose()
9
+ @Matches(CREDIT_ID_PATTERN, { message: CREDIT_ID_MESSAGE })
10
+ creditId: string;
11
+
12
+ @Expose()
13
+ @IsEnum(DeviceReleaseReasonEnum)
14
+ reason: DeviceReleaseReasonEnum;
15
+
16
+ /** Nota libre del operador; queda en el expediente del dispositivo. */
17
+ @Expose()
18
+ @IsString()
19
+ @IsOptional()
20
+ @MaxLength(500)
21
+ comment?: string;
22
+ }
@@ -0,0 +1,17 @@
1
+ import { Expose } from 'class-transformer';
2
+ import { IsOptional, Matches, Validate } from 'class-validator';
3
+ import { CREDIT_ID_MESSAGE, CREDIT_ID_PATTERN } from '../constants/CreditIdPattern';
4
+ import { IsFutureIso8601DateTime } from '../validators/IsFutureIso8601DateTime';
5
+
6
+ /** Ítem de desbloqueo: qué crédito se desbloquea y, opcionalmente, hasta cuándo. */
7
+ export class LoanDeviceUnlockItem {
8
+ @Expose()
9
+ @Matches(CREDIT_ID_PATTERN, { message: CREDIT_ID_MESSAGE })
10
+ creditId: string;
11
+
12
+ /** Datetime ISO-8601 futuro de hasta cuándo vale el desbloqueo; solo aplica en modo SCHEDULED. */
13
+ @Expose()
14
+ @Validate(IsFutureIso8601DateTime)
15
+ @IsOptional()
16
+ unlockUntil?: string;
17
+ }
@@ -1,6 +1,6 @@
1
1
  import { Expose, Type } from 'class-transformer';
2
2
  import { ArrayMaxSize, ArrayNotEmpty, ArrayUnique, IsArray, IsNotEmpty, IsString, Length, ValidateNested } from 'class-validator';
3
- import { LoanDeviceCreditRefItem } from '../LoanDeviceCreditRefItem';
3
+ import { LoanDeviceUnlockItem } from '../LoanDeviceUnlockItem';
4
4
  import { LOAN_DEVICE_MAX_BATCH } from '../../constants/LoanDeviceBatchLimits';
5
5
 
6
6
  /** Body de `POST /private/devices/manual-unlock` (loan-credit-business). Desbloquea en lote. */
@@ -9,10 +9,10 @@ export class LoanDeviceManualUnlockRequest {
9
9
  @IsArray()
10
10
  @ArrayNotEmpty()
11
11
  @ArrayMaxSize(LOAN_DEVICE_MAX_BATCH)
12
- @ArrayUnique((item: LoanDeviceCreditRefItem) => item.creditId)
12
+ @ArrayUnique((item: LoanDeviceUnlockItem) => item.creditId)
13
13
  @ValidateNested({ each: true })
14
- @Type(() => LoanDeviceCreditRefItem)
15
- items: LoanDeviceCreditRefItem[];
14
+ @Type(() => LoanDeviceUnlockItem)
15
+ items: LoanDeviceUnlockItem[];
16
16
 
17
17
  /** Referencia con la que el caller correlaciona este batch; vuelve en cada resultado. */
18
18
  @Expose()
@@ -0,0 +1,23 @@
1
+ import { Expose, Type } from 'class-transformer';
2
+ import { ArrayMaxSize, ArrayNotEmpty, ArrayUnique, IsArray, IsNotEmpty, IsString, Length, ValidateNested } from 'class-validator';
3
+ import { LoanDeviceNotifyItem } from '../LoanDeviceNotifyItem';
4
+ import { LOAN_DEVICE_MAX_BATCH } from '../../constants/LoanDeviceBatchLimits';
5
+
6
+ /** Body de `POST /private/devices/notify` (loan-credit-business). Notifica en lote. */
7
+ export class LoanDeviceNotifyRequest {
8
+ @Expose()
9
+ @IsArray()
10
+ @ArrayNotEmpty()
11
+ @ArrayMaxSize(LOAN_DEVICE_MAX_BATCH)
12
+ @ArrayUnique((item: LoanDeviceNotifyItem) => item.creditId)
13
+ @ValidateNested({ each: true })
14
+ @Type(() => LoanDeviceNotifyItem)
15
+ items: LoanDeviceNotifyItem[];
16
+
17
+ /** Referencia con la que el caller correlaciona este batch; vuelve en cada resultado. */
18
+ @Expose()
19
+ @IsString()
20
+ @IsNotEmpty()
21
+ @Length(1, 64)
22
+ operationReference: string;
23
+ }
@@ -0,0 +1,23 @@
1
+ import { Expose, Type } from 'class-transformer';
2
+ import { ArrayMaxSize, ArrayNotEmpty, ArrayUnique, IsArray, IsNotEmpty, IsString, Length, ValidateNested } from 'class-validator';
3
+ import { LoanDeviceReleaseItem } from '../LoanDeviceReleaseItem';
4
+ import { LOAN_DEVICE_MAX_BATCH } from '../../constants/LoanDeviceBatchLimits';
5
+
6
+ /** Body de `POST /private/devices/release` (loan-credit-business). Libera en lote. */
7
+ export class LoanDeviceReleaseRequest {
8
+ @Expose()
9
+ @IsArray()
10
+ @ArrayNotEmpty()
11
+ @ArrayMaxSize(LOAN_DEVICE_MAX_BATCH)
12
+ @ArrayUnique((item: LoanDeviceReleaseItem) => item.creditId)
13
+ @ValidateNested({ each: true })
14
+ @Type(() => LoanDeviceReleaseItem)
15
+ items: LoanDeviceReleaseItem[];
16
+
17
+ /** Referencia con la que el caller correlaciona este batch; vuelve en cada resultado. */
18
+ @Expose()
19
+ @IsString()
20
+ @IsNotEmpty()
21
+ @Length(1, 64)
22
+ operationReference: string;
23
+ }
@@ -0,0 +1,6 @@
1
+ import { LoanDeviceNotifyResult } from './LoanDeviceNotifyResult';
2
+
3
+ /** Response de `POST /private/devices/notify`. Un resultado por ítem enviado. */
4
+ export class LoanDeviceNotifyResponse {
5
+ results: LoanDeviceNotifyResult[];
6
+ }
@@ -0,0 +1,10 @@
1
+ import { LoanDeviceOperationResult } from '../LoanDeviceOperationResult';
2
+ import { LoanDeviceMdmStatusEnum } from '../../enums/LoanDeviceMdmStatusEnum';
3
+
4
+ /** Resultado por crédito de la notificación en lote. */
5
+ export class LoanDeviceNotifyResult extends LoanDeviceOperationResult {
6
+ /** Estado nuestro del expediente después de intentar la notificación. */
7
+ mdmStatus: LoanDeviceMdmStatusEnum;
8
+
9
+ notifiedAt?: string;
10
+ }
@@ -0,0 +1,6 @@
1
+ import { LoanDeviceReleaseResult } from './LoanDeviceReleaseResult';
2
+
3
+ /** Response de `POST /private/devices/release`. Un resultado por ítem enviado. */
4
+ export class LoanDeviceReleaseResponse {
5
+ results: LoanDeviceReleaseResult[];
6
+ }