@temboplus/tembo-dashboard 0.5.0 → 0.6.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.
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/modules/auth/auth.repository.d.ts.map +1 -1
- package/dist/modules/collection/collection.api-contract.d.ts +4 -0
- package/dist/modules/collection/collection.api-contract.d.ts.map +1 -1
- package/dist/modules/collection/collection.model.d.ts +40 -1
- package/dist/modules/collection/collection.model.d.ts.map +1 -1
- package/dist/modules/collection/collection.query.d.ts +13 -1
- package/dist/modules/collection/collection.query.d.ts.map +1 -1
- package/dist/modules/collection/collection.types.d.ts +51 -1
- package/dist/modules/collection/collection.types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.repository.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.repository.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAiB,MAAM,iBAAiB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,cAAc,CAAC,OAAO,YAAY,CAAC;gBACzD,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAIvD;;OAEG;IACG,KAAK,CAAC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAoD/F,cAAc,CAAC,KAAK,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAchG"}
|
|
@@ -23,6 +23,8 @@ export declare const collectionContract: {
|
|
|
23
23
|
channelIn: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodEnum<typeof import("./collection.types.js").COLLECTION_CHANNEL>>>>;
|
|
24
24
|
status: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("./collection.types.js").COLLECTION_STATUS, string>>>;
|
|
25
25
|
statusIn: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodEnum<typeof import("./collection.types.js").COLLECTION_STATUS>>>>;
|
|
26
|
+
statusCode: z.ZodOptional<z.ZodEnum<typeof import("./collection.types.js").COLLECTION_STATUS_CODE>>;
|
|
27
|
+
statusCodeIn: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodEnum<typeof import("./collection.types.js").COLLECTION_STATUS_CODE>>>>;
|
|
26
28
|
minAmount: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>>;
|
|
27
29
|
maxAmount: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>>;
|
|
28
30
|
search: z.ZodOptional<z.ZodString>;
|
|
@@ -36,6 +38,7 @@ export declare const collectionContract: {
|
|
|
36
38
|
results: z.ZodArray<z.ZodObject<{
|
|
37
39
|
id: z.ZodString;
|
|
38
40
|
status: z.ZodEnum<typeof import("./collection.types.js").COLLECTION_STATUS>;
|
|
41
|
+
statusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("./collection.types.js").COLLECTION_STATUS_CODE, unknown>>;
|
|
39
42
|
statusMessage: z.ZodString;
|
|
40
43
|
accountNo: z.ZodString;
|
|
41
44
|
walletId: z.ZodString;
|
|
@@ -98,6 +101,7 @@ export declare const collectionContract: {
|
|
|
98
101
|
200: z.ZodObject<{
|
|
99
102
|
id: z.ZodString;
|
|
100
103
|
status: z.ZodEnum<typeof import("./collection.types.js").COLLECTION_STATUS>;
|
|
104
|
+
statusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("./collection.types.js").COLLECTION_STATUS_CODE, unknown>>;
|
|
101
105
|
statusMessage: z.ZodString;
|
|
102
106
|
accountNo: z.ZodString;
|
|
103
107
|
walletId: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.api-contract.d.ts","sourceRoot":"","sources":["../../../src/modules/collection/collection.api-contract.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"collection.api-contract.d.ts","sourceRoot":"","sources":["../../../src/modules/collection/collection.api-contract.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Amount, type AmountJSON } from "@temboplus/frontend-core";
|
|
2
2
|
import { type MobileChannelInfo } from "../../lib/types.js";
|
|
3
|
-
import { COLLECTION_CHANNEL, COLLECTION_STATUS } from "./collection.types.js";
|
|
3
|
+
import { COLLECTION_CHANNEL, COLLECTION_STATUS, COLLECTION_STATUS_CODE } from "./collection.types.js";
|
|
4
4
|
export interface CollectionStatusInfo {
|
|
5
5
|
label: string;
|
|
6
6
|
description: string;
|
|
@@ -9,9 +9,22 @@ export interface CollectionStatusInfo {
|
|
|
9
9
|
userFriendlyMessage: string;
|
|
10
10
|
}
|
|
11
11
|
export declare const COLLECTION_STATUS_INFO: Record<COLLECTION_STATUS, CollectionStatusInfo>;
|
|
12
|
+
export interface CollectionStatusCodeInfo {
|
|
13
|
+
label: string;
|
|
14
|
+
description: string;
|
|
15
|
+
/** The status this code is reported under. */
|
|
16
|
+
status: COLLECTION_STATUS;
|
|
17
|
+
userFriendlyMessage: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const COLLECTION_STATUS_CODE_INFO: Record<COLLECTION_STATUS_CODE, CollectionStatusCodeInfo>;
|
|
20
|
+
/**
|
|
21
|
+
* All statuses (v1 and v2) in the given category.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getCollectionStatusesByCategory(category: CollectionStatusInfo["category"]): COLLECTION_STATUS[];
|
|
12
24
|
export interface CollectionData {
|
|
13
25
|
id: string;
|
|
14
26
|
status: COLLECTION_STATUS;
|
|
27
|
+
statusCode?: string | null;
|
|
15
28
|
statusMessage: string;
|
|
16
29
|
accountNo: string;
|
|
17
30
|
walletId: string;
|
|
@@ -40,6 +53,7 @@ export interface CollectionData {
|
|
|
40
53
|
export interface CollectionJson {
|
|
41
54
|
id: string;
|
|
42
55
|
status: COLLECTION_STATUS;
|
|
56
|
+
statusCode?: string | null;
|
|
43
57
|
statusMessage: string;
|
|
44
58
|
accountNo: string;
|
|
45
59
|
walletId: string;
|
|
@@ -71,6 +85,12 @@ export interface CollectionJson {
|
|
|
71
85
|
export declare class Collection {
|
|
72
86
|
readonly id: string;
|
|
73
87
|
readonly status: COLLECTION_STATUS;
|
|
88
|
+
/**
|
|
89
|
+
* v2 reason code. Always one of `COLLECTION_STATUS_CODE`: unrecognised or
|
|
90
|
+
* missing codes (e.g. v1 collections) are `UNKNOWN`. The raw value is
|
|
91
|
+
* available via `getOriginalField("statusCode")`.
|
|
92
|
+
*/
|
|
93
|
+
readonly statusCode: COLLECTION_STATUS_CODE;
|
|
74
94
|
readonly statusMessage: string;
|
|
75
95
|
readonly accountNo: string;
|
|
76
96
|
readonly walletId: string;
|
|
@@ -124,10 +144,29 @@ export declare class Collection {
|
|
|
124
144
|
* Check if collection failed
|
|
125
145
|
*/
|
|
126
146
|
isFailed(): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Check if the customer did not respond to the prompt in time (v2).
|
|
149
|
+
* Expired collections are also counted by `isFailed()`.
|
|
150
|
+
*/
|
|
151
|
+
isExpired(): boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Check if the collection reached a final status. Pending collections must
|
|
154
|
+
* never be treated as failed.
|
|
155
|
+
*/
|
|
156
|
+
isFinal(): boolean;
|
|
127
157
|
/**
|
|
128
158
|
* Get status color and label
|
|
129
159
|
*/
|
|
130
160
|
getStatusInfo(): CollectionStatusInfo;
|
|
161
|
+
/**
|
|
162
|
+
* Get the normalized v2 status code. Never `undefined`: unrecognised or
|
|
163
|
+
* missing codes are `UNKNOWN`.
|
|
164
|
+
*/
|
|
165
|
+
getStatusCode(): COLLECTION_STATUS_CODE;
|
|
166
|
+
/**
|
|
167
|
+
* Get the label and description for the status code.
|
|
168
|
+
*/
|
|
169
|
+
getStatusCodeInfo(): CollectionStatusCodeInfo;
|
|
131
170
|
/**
|
|
132
171
|
* Get channel information. Returns `undefined` for non-mobile channels
|
|
133
172
|
* (e.g. bank channels such as CRDB or Ecobank).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.model.d.ts","sourceRoot":"","sources":["../../../src/modules/collection/collection.model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAiB,KAAK,UAAU,EAAsC,MAAM,0BAA0B,CAAC;AACtH,OAAO,EAAE,KAAK,iBAAiB,EAAkB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"collection.model.d.ts","sourceRoot":"","sources":["../../../src/modules/collection/collection.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { QueryBuilder } from "../../lib/query/index.js";
|
|
2
|
-
import { COLLECTION_CHANNEL, COLLECTION_STATUS, type CollectionFilters } from "./collection.types.js";
|
|
2
|
+
import { COLLECTION_CHANNEL, COLLECTION_STATUS, COLLECTION_STATUS_CODE, type CollectionFilters } from "./collection.types.js";
|
|
3
3
|
type CollectionUrlParams = Record<string, string | string[]>;
|
|
4
4
|
/**
|
|
5
5
|
* Collection-specific query builder that extends the base QueryBuilder
|
|
@@ -50,13 +50,19 @@ export declare class CollectionQuery extends QueryBuilder {
|
|
|
50
50
|
private static normalizeUrlParams;
|
|
51
51
|
whereStatus(status: COLLECTION_STATUS): this;
|
|
52
52
|
whereStatusIn(statuses: COLLECTION_STATUS[]): this;
|
|
53
|
+
whereStatusCode(statusCode: COLLECTION_STATUS_CODE): this;
|
|
54
|
+
whereStatusCodeIn(statusCodes: COLLECTION_STATUS_CODE[]): this;
|
|
53
55
|
whereChannel(channel: COLLECTION_CHANNEL): this;
|
|
54
56
|
whereChannelIn(channels: COLLECTION_CHANNEL[]): this;
|
|
55
57
|
whereIdIn(ids: string[]): this;
|
|
56
58
|
whereReferenceIn(references: string[]): this;
|
|
59
|
+
/** Pending collections, across v1 and v2 statuses. */
|
|
57
60
|
wherePending(): this;
|
|
58
61
|
whereSuccessful(): this;
|
|
62
|
+
/** Failed collections, across v1 and v2 statuses. Includes `PAYMENT_EXPIRED`. */
|
|
59
63
|
whereFailed(): this;
|
|
64
|
+
/** Collections the customer did not respond to in time (v2). */
|
|
65
|
+
whereExpired(): this;
|
|
60
66
|
whereAmount(amount: number): this;
|
|
61
67
|
whereAmountLessThan(amount: number): this;
|
|
62
68
|
whereAmountGreaterThan(amount: number): this;
|
|
@@ -133,6 +139,8 @@ export declare class CollectionQuery extends QueryBuilder {
|
|
|
133
139
|
private whereInValues;
|
|
134
140
|
/** Narrow an unknown array to a `COLLECTION_STATUS[]` (preserving order). */
|
|
135
141
|
private getValidStatuses;
|
|
142
|
+
/** Narrow an unknown array to a `COLLECTION_STATUS_CODE[]` (preserving order). */
|
|
143
|
+
private getValidStatusCodes;
|
|
136
144
|
/** Narrow an unknown array to a `COLLECTION_CHANNEL[]` (preserving order). */
|
|
137
145
|
private getValidChannels;
|
|
138
146
|
/**
|
|
@@ -151,6 +159,10 @@ export declare class CollectionQuery extends QueryBuilder {
|
|
|
151
159
|
* Type guard for valid statuses
|
|
152
160
|
*/
|
|
153
161
|
private isValidStatus;
|
|
162
|
+
/**
|
|
163
|
+
* Type guard for valid status codes
|
|
164
|
+
*/
|
|
165
|
+
private isValidStatusCode;
|
|
154
166
|
}
|
|
155
167
|
export {};
|
|
156
168
|
//# sourceMappingURL=collection.query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.query.d.ts","sourceRoot":"","sources":["../../../src/modules/collection/collection.query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"collection.query.d.ts","sourceRoot":"","sources":["../../../src/modules/collection/collection.query.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,51 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Collection outcome.
|
|
4
|
+
*
|
|
5
|
+
* v1 encoded the failure reason in the status itself (e.g. `INSUFFICIENT_FUNDS`).
|
|
6
|
+
* v2 reduces the status to the outcome (`PENDING_ACK`, `PAYMENT_ACCEPTED`,
|
|
7
|
+
* `PAYMENT_FAILED`, `PAYMENT_EXPIRED`) and moves the reason to `statusCode`.
|
|
8
|
+
* Both sets are supported because historical collections keep their v1 status.
|
|
9
|
+
*/
|
|
2
10
|
export declare enum COLLECTION_STATUS {
|
|
3
11
|
PAYMENT_ACCEPTED = "PAYMENT_ACCEPTED",
|
|
12
|
+
PENDING_ACK = "PENDING_ACK",
|
|
13
|
+
PAYMENT_FAILED = "PAYMENT_FAILED",
|
|
14
|
+
PAYMENT_EXPIRED = "PAYMENT_EXPIRED",
|
|
4
15
|
GENERIC_FAILURE = "GENERIC_FAILURE",
|
|
5
16
|
INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS",
|
|
17
|
+
INVALID_REFERENCE = "INVALID_REFERENCE",
|
|
6
18
|
PAYMENT_REJECTED = "PAYMENT_REJECTED",
|
|
7
19
|
PENDING = "PENDING",
|
|
8
|
-
PENDING_ACK = "PENDING_ACK",
|
|
9
20
|
PROVIDER_FAILED = "PROVIDER_FAILED"
|
|
10
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* v2 collection status codes: the reason behind a `COLLECTION_STATUS`.
|
|
24
|
+
* Identical across all mobile money channels.
|
|
25
|
+
*
|
|
26
|
+
* New codes may be added over time. Any value that is not one of these
|
|
27
|
+
* (including a missing code on v1 collections) is normalized to `UNKNOWN`
|
|
28
|
+
* by `toCollectionStatusCode()`.
|
|
29
|
+
*/
|
|
30
|
+
export declare enum COLLECTION_STATUS_CODE {
|
|
31
|
+
AWAITING_USER = "AWAITING_USER",
|
|
32
|
+
PROVIDER_UNCERTAIN = "PROVIDER_UNCERTAIN",
|
|
33
|
+
SUCCESS = "SUCCESS",
|
|
34
|
+
USER_TIMEOUT = "USER_TIMEOUT",
|
|
35
|
+
INSUFFICIENT_BALANCE = "INSUFFICIENT_BALANCE",
|
|
36
|
+
INVALID_NUMBER = "INVALID_NUMBER",
|
|
37
|
+
INVALID_PIN = "INVALID_PIN",
|
|
38
|
+
ACCOUNT_LOCKED = "ACCOUNT_LOCKED",
|
|
39
|
+
ACCOUNT_RESTRICTED = "ACCOUNT_RESTRICTED",
|
|
40
|
+
USER_CANCELLED = "USER_CANCELLED",
|
|
41
|
+
USER_BUSY = "USER_BUSY",
|
|
42
|
+
USER_UNREACHABLE = "USER_UNREACHABLE",
|
|
43
|
+
LIMIT_EXCEEDED = "LIMIT_EXCEEDED",
|
|
44
|
+
INVALID_AMOUNT = "INVALID_AMOUNT",
|
|
45
|
+
PROVIDER_BUSY = "PROVIDER_BUSY",
|
|
46
|
+
PROVIDER_ERROR = "PROVIDER_ERROR",
|
|
47
|
+
UNKNOWN = "UNKNOWN"
|
|
48
|
+
}
|
|
11
49
|
export declare enum COLLECTION_CHANNEL {
|
|
12
50
|
AIRTEL = "TZ-AIRTEL-C2B",
|
|
13
51
|
TIGO = "TZ-TIGO-C2B",
|
|
@@ -17,6 +55,12 @@ export declare enum COLLECTION_CHANNEL {
|
|
|
17
55
|
CRDB = "TZ-CRDB",
|
|
18
56
|
ECOBANK = "TZ-ECOBANK"
|
|
19
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Normalize a raw status code. Anything that is not a known
|
|
60
|
+
* `COLLECTION_STATUS_CODE` (unrecognised, empty, `null` or `undefined`)
|
|
61
|
+
* becomes `COLLECTION_STATUS_CODE.UNKNOWN`.
|
|
62
|
+
*/
|
|
63
|
+
export declare function toCollectionStatusCode(value: unknown): COLLECTION_STATUS_CODE;
|
|
20
64
|
/**
|
|
21
65
|
* Accepts a single string, a comma-separated string, or an array of strings,
|
|
22
66
|
* and normalizes to a deduplicated, trimmed, non-empty `string[]`.
|
|
@@ -27,6 +71,7 @@ export declare const CollectionDTOSchemas: {
|
|
|
27
71
|
collection: z.ZodObject<{
|
|
28
72
|
id: z.ZodString;
|
|
29
73
|
status: z.ZodEnum<typeof COLLECTION_STATUS>;
|
|
74
|
+
statusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<COLLECTION_STATUS_CODE, unknown>>;
|
|
30
75
|
statusMessage: z.ZodString;
|
|
31
76
|
accountNo: z.ZodString;
|
|
32
77
|
walletId: z.ZodString;
|
|
@@ -74,6 +119,8 @@ export declare const CollectionDTOSchemas: {
|
|
|
74
119
|
channelIn: z.ZodOptional<z.ZodArray<z.ZodEnum<typeof COLLECTION_CHANNEL>>>;
|
|
75
120
|
status: z.ZodOptional<z.ZodEnum<typeof COLLECTION_STATUS>>;
|
|
76
121
|
statusIn: z.ZodOptional<z.ZodArray<z.ZodEnum<typeof COLLECTION_STATUS>>>;
|
|
122
|
+
statusCode: z.ZodOptional<z.ZodEnum<typeof COLLECTION_STATUS_CODE>>;
|
|
123
|
+
statusCodeIn: z.ZodOptional<z.ZodArray<z.ZodEnum<typeof COLLECTION_STATUS_CODE>>>;
|
|
77
124
|
minAmount: z.ZodOptional<z.ZodNumber>;
|
|
78
125
|
maxAmount: z.ZodOptional<z.ZodNumber>;
|
|
79
126
|
search: z.ZodOptional<z.ZodString>;
|
|
@@ -100,11 +147,14 @@ export declare const CollectionDTOSchemas: {
|
|
|
100
147
|
channelIn: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodEnum<typeof COLLECTION_CHANNEL>>>>;
|
|
101
148
|
status: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<COLLECTION_STATUS, string>>>;
|
|
102
149
|
statusIn: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodEnum<typeof COLLECTION_STATUS>>>>;
|
|
150
|
+
statusCode: z.ZodOptional<z.ZodEnum<typeof COLLECTION_STATUS_CODE>>;
|
|
151
|
+
statusCodeIn: z.ZodOptional<z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>, z.ZodTransform<string[], string | string[]>>, z.ZodArray<z.ZodEnum<typeof COLLECTION_STATUS_CODE>>>>;
|
|
103
152
|
minAmount: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>>;
|
|
104
153
|
maxAmount: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>>;
|
|
105
154
|
search: z.ZodOptional<z.ZodString>;
|
|
106
155
|
}, z.core.$strip>;
|
|
107
156
|
paymentStatus: z.ZodEnum<typeof COLLECTION_STATUS>;
|
|
157
|
+
statusCode: z.ZodEnum<typeof COLLECTION_STATUS_CODE>;
|
|
108
158
|
paymentChannel: z.ZodEnum<typeof COLLECTION_CHANNEL>;
|
|
109
159
|
};
|
|
110
160
|
export type CollectionDTO = z.infer<typeof CollectionDTOSchemas.collection>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.types.d.ts","sourceRoot":"","sources":["../../../src/modules/collection/collection.types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,iBAAiB;
|
|
1
|
+
{"version":3,"file":"collection.types.d.ts","sourceRoot":"","sources":["../../../src/modules/collection/collection.types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;GAOG;AACH,oBAAY,iBAAiB;IAE3B,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAG3B,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IAGnC,eAAe,oBAAoB;IACnC,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,eAAe,oBAAoB;CACpC;AAED;;;;;;;GAOG;AACH,oBAAY,sBAAsB;IAEhC,aAAa,kBAAkB;IAC/B,kBAAkB,uBAAuB;IAGzC,OAAO,YAAY;IAGnB,YAAY,iBAAiB;IAG7B,oBAAoB,yBAAyB;IAC7C,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IACjC,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,OAAO,YAAY;CACpB;AAED,oBAAY,kBAAkB;IAC5B,MAAM,kBAAkB;IACxB,IAAI,gBAAgB;IACpB,OAAO,mBAAmB;IAC1B,SAAS,qBAAqB;IAC9B,OAAO,mBAAmB;IAC1B,IAAI,YAAY;IAChB,OAAO,eAAe;CACvB;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAE7E;AAQD;;;GAGG;AACH,QAAA,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MAAM,EAO7C,CAAC;AAoHF,OAAO,EAAE,aAAa,IAAI,uBAAuB,EAAE,CAAC;AAEpD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOhC,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC5E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AACvF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,wBAAwB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@temboplus/tembo-dashboard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "A foundational library for Temboplus-Dashboard projects providing type-safe data layer abstraction with API contracts, domain models, and repositories.",
|
|
5
5
|
"author": "Okello Gerald",
|
|
6
6
|
"license": "MIT",
|