@temboplus/tembo-dashboard 0.6.0 → 0.7.1

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.
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Normalized payment outcome, shared by collections and payouts.
3
+ *
4
+ * These are the v2 collection statuses. The backend reports the same
5
+ * vocabulary on records that are not themselves v2 (v1 collections, payouts)
6
+ * through the optional `normalizedStatus` field, so a single set of labels can
7
+ * describe every record.
8
+ */
9
+ export declare enum NORMALIZED_STATUS {
10
+ /** Recorded before the provider confirms the request. No callback is sent. */
11
+ PENDING = "PENDING",
12
+ PENDING_ACK = "PENDING_ACK",
13
+ PAYMENT_ACCEPTED = "PAYMENT_ACCEPTED",
14
+ PAYMENT_FAILED = "PAYMENT_FAILED",
15
+ PAYMENT_EXPIRED = "PAYMENT_EXPIRED"
16
+ }
17
+ /**
18
+ * The reason behind a `NORMALIZED_STATUS`. Identical across all channels.
19
+ *
20
+ * New codes may be added over time; any value that is not one of these is
21
+ * normalized to `UNKNOWN` by `toNormalizedStatusCode()`.
22
+ */
23
+ export declare enum NORMALIZED_STATUS_CODE {
24
+ AWAITING_USER = "AWAITING_USER",
25
+ PROVIDER_UNCERTAIN = "PROVIDER_UNCERTAIN",
26
+ SUCCESS = "SUCCESS",
27
+ USER_TIMEOUT = "USER_TIMEOUT",
28
+ INSUFFICIENT_BALANCE = "INSUFFICIENT_BALANCE",
29
+ INVALID_NUMBER = "INVALID_NUMBER",
30
+ INVALID_PIN = "INVALID_PIN",
31
+ ACCOUNT_LOCKED = "ACCOUNT_LOCKED",
32
+ ACCOUNT_RESTRICTED = "ACCOUNT_RESTRICTED",
33
+ USER_CANCELLED = "USER_CANCELLED",
34
+ USER_BUSY = "USER_BUSY",
35
+ USER_UNREACHABLE = "USER_UNREACHABLE",
36
+ LIMIT_EXCEEDED = "LIMIT_EXCEEDED",
37
+ INVALID_AMOUNT = "INVALID_AMOUNT",
38
+ PROVIDER_BUSY = "PROVIDER_BUSY",
39
+ PROVIDER_ERROR = "PROVIDER_ERROR",
40
+ UNKNOWN = "UNKNOWN"
41
+ }
42
+ export interface NormalizedStatusInfo {
43
+ label: string;
44
+ description: string;
45
+ category: "success" | "pending" | "failed";
46
+ color: "success" | "warning" | "error";
47
+ userFriendlyMessage: string;
48
+ }
49
+ export declare const NORMALIZED_STATUS_INFO: Record<NORMALIZED_STATUS, NormalizedStatusInfo>;
50
+ export interface NormalizedStatusCodeInfo {
51
+ label: string;
52
+ description: string;
53
+ /** The status this code is reported under. */
54
+ status: NORMALIZED_STATUS;
55
+ userFriendlyMessage: string;
56
+ }
57
+ export declare const NORMALIZED_STATUS_CODE_INFO: Record<NORMALIZED_STATUS_CODE, NormalizedStatusCodeInfo>;
58
+ /**
59
+ * Strict: the value only when it is a known `NORMALIZED_STATUS`, otherwise
60
+ * `undefined`. Use on fields that may hold something else entirely.
61
+ */
62
+ export declare function asNormalizedStatus(value: unknown): NORMALIZED_STATUS | undefined;
63
+ /**
64
+ * Strict: the value only when it is a known `NORMALIZED_STATUS_CODE`,
65
+ * otherwise `undefined`. Use on fields that may hold something else entirely
66
+ * (e.g. a payout's provider status code).
67
+ */
68
+ export declare function asNormalizedStatusCode(value: unknown): NORMALIZED_STATUS_CODE | undefined;
69
+ /**
70
+ * Presence-preserving: `undefined` when the field is absent (`null`,
71
+ * `undefined` or empty), `UNKNOWN` when it is present but unrecognised.
72
+ *
73
+ * Absence is meaningful — it is what distinguishes a record that carries a
74
+ * status code from one that does not — so it is never collapsed to `UNKNOWN`.
75
+ */
76
+ export declare function toNormalizedStatusCode(value: unknown): NORMALIZED_STATUS_CODE | undefined;
77
+ /**
78
+ * Which tier of the resolution produced a `DisplayStatus`:
79
+ * - `native` — the record's own status and status code (a v2 record).
80
+ * - `normalized` — the backend-supplied `normalizedStatus`.
81
+ * - `legacy` — the record's own status alone; no status code to show.
82
+ */
83
+ export type DisplayStatusSource = "native" | "normalized" | "legacy";
84
+ /** What the UI should render for a record's status. */
85
+ export interface DisplayStatus<TStatus extends string = string> {
86
+ status: TStatus | NORMALIZED_STATUS;
87
+ statusInfo: NormalizedStatusInfo;
88
+ /** Absent when there is no status code to display. */
89
+ statusCode?: NORMALIZED_STATUS_CODE;
90
+ /** Absent when there is no status code to display. */
91
+ statusCodeInfo?: NormalizedStatusCodeInfo;
92
+ source: DisplayStatusSource;
93
+ }
94
+ export interface DisplayStatusInput<TStatus extends string> {
95
+ /** The record's own status. */
96
+ status: TStatus;
97
+ /** Label and colour for the record's own status. */
98
+ statusInfo: NormalizedStatusInfo;
99
+ /** The record's own status code, only when it carries the normalized vocabulary. */
100
+ statusCode?: NORMALIZED_STATUS_CODE;
101
+ normalizedStatus?: NORMALIZED_STATUS;
102
+ normalizedStatusCode?: NORMALIZED_STATUS_CODE;
103
+ }
104
+ /**
105
+ * Resolve what to display for a record's status, in three tiers:
106
+ *
107
+ * 1. Its own status and status code are both present — a v2 record. Show both.
108
+ * 2. Otherwise `normalizedStatus` is present. Show it, with
109
+ * `normalizedStatusCode` if that is present too.
110
+ * 3. Otherwise fall back to its own status, and show no status code.
111
+ */
112
+ export declare function resolveDisplayStatus<TStatus extends string>(input: DisplayStatusInput<TStatus>): DisplayStatus<TStatus>;
113
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/lib/status.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,oBAAY,iBAAiB;IAC3B,8EAA8E;IAC9E,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;CACpC;AAED;;;;;GAKG;AACH,oBAAY,sBAAsB;IAIhC,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;AAID,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAoClF,CAAC;AAIF,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,sBAAsB,EAAE,wBAAwB,CAuGhG,CAAC;AAIF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAEzF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAGzF;AAID;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;AAErE,uDAAuD;AACvD,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAC5D,MAAM,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACpC,UAAU,EAAE,oBAAoB,CAAC;IACjC,sDAAsD;IACtD,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,sDAAsD;IACtD,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM;IACxD,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,oDAAoD;IACpD,UAAU,EAAE,oBAAoB,CAAC;IACjC,oFAAoF;IACpF,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,SAAS,MAAM,EACzD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACjC,aAAa,CAAC,OAAO,CAAC,CA0BxB"}
@@ -38,7 +38,9 @@ export declare const collectionContract: {
38
38
  results: z.ZodArray<z.ZodObject<{
39
39
  id: z.ZodString;
40
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>>;
41
+ statusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("./collection.types.js").COLLECTION_STATUS_CODE | undefined, unknown>>;
42
+ normalizedStatus: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("../../index.js").NORMALIZED_STATUS | undefined, unknown>>;
43
+ normalizedStatusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("./collection.types.js").COLLECTION_STATUS_CODE | undefined, unknown>>;
42
44
  statusMessage: z.ZodString;
43
45
  accountNo: z.ZodString;
44
46
  walletId: z.ZodString;
@@ -101,7 +103,9 @@ export declare const collectionContract: {
101
103
  200: z.ZodObject<{
102
104
  id: z.ZodString;
103
105
  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>>;
106
+ statusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("./collection.types.js").COLLECTION_STATUS_CODE | undefined, unknown>>;
107
+ normalizedStatus: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("../../index.js").NORMALIZED_STATUS | undefined, unknown>>;
108
+ normalizedStatusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("./collection.types.js").COLLECTION_STATUS_CODE | undefined, unknown>>;
105
109
  statusMessage: z.ZodString;
106
110
  accountNo: z.ZodString;
107
111
  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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC"}
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,22 +1,13 @@
1
1
  import { Amount, type AmountJSON } from "@temboplus/frontend-core";
2
+ import { type DisplayStatus, type NORMALIZED_STATUS, type NORMALIZED_STATUS_CODE, NORMALIZED_STATUS_CODE_INFO, type NormalizedStatusCodeInfo, type NormalizedStatusInfo } from "../../lib/status.js";
2
3
  import { type MobileChannelInfo } from "../../lib/types.js";
3
- import { COLLECTION_CHANNEL, COLLECTION_STATUS, COLLECTION_STATUS_CODE } from "./collection.types.js";
4
- export interface CollectionStatusInfo {
5
- label: string;
6
- description: string;
7
- category: "success" | "pending" | "failed";
8
- color: "success" | "warning" | "error";
9
- userFriendlyMessage: string;
10
- }
4
+ import { COLLECTION_CHANNEL, COLLECTION_STATUS } from "./collection.types.js";
5
+ /** Collections describe their status with the shared normalized shape. */
6
+ export type CollectionStatusInfo = NormalizedStatusInfo;
11
7
  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>;
8
+ /** Collections describe their status code with the shared normalized shape. */
9
+ export type CollectionStatusCodeInfo = NormalizedStatusCodeInfo;
10
+ export { NORMALIZED_STATUS_CODE_INFO as COLLECTION_STATUS_CODE_INFO };
20
11
  /**
21
12
  * All statuses (v1 and v2) in the given category.
22
13
  */
@@ -25,6 +16,8 @@ export interface CollectionData {
25
16
  id: string;
26
17
  status: COLLECTION_STATUS;
27
18
  statusCode?: string | null;
19
+ normalizedStatus?: string | null;
20
+ normalizedStatusCode?: string | null;
28
21
  statusMessage: string;
29
22
  accountNo: string;
30
23
  walletId: string;
@@ -54,6 +47,8 @@ export interface CollectionJson {
54
47
  id: string;
55
48
  status: COLLECTION_STATUS;
56
49
  statusCode?: string | null;
50
+ normalizedStatus?: string | null;
51
+ normalizedStatusCode?: string | null;
57
52
  statusMessage: string;
58
53
  accountNo: string;
59
54
  walletId: string;
@@ -86,11 +81,18 @@ export declare class Collection {
86
81
  readonly id: string;
87
82
  readonly status: COLLECTION_STATUS;
88
83
  /**
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
84
+ * v2 reason code. `undefined` on collections that carry no code (e.g. v1);
85
+ * a code that is present but unrecognised is `UNKNOWN`. The raw value is
91
86
  * available via `getOriginalField("statusCode")`.
92
87
  */
93
- readonly statusCode: COLLECTION_STATUS_CODE;
88
+ readonly statusCode?: NORMALIZED_STATUS_CODE;
89
+ /**
90
+ * The v2 outcome the backend mapped this collection onto, when it is not
91
+ * itself a v2 collection. `undefined` when the backend supplied none.
92
+ */
93
+ readonly normalizedStatus?: NORMALIZED_STATUS;
94
+ /** The reason behind `normalizedStatus`, when the backend supplied one. */
95
+ readonly normalizedStatusCode?: NORMALIZED_STATUS_CODE;
94
96
  readonly statusMessage: string;
95
97
  readonly accountNo: string;
96
98
  readonly walletId: string;
@@ -159,14 +161,22 @@ export declare class Collection {
159
161
  */
160
162
  getStatusInfo(): CollectionStatusInfo;
161
163
  /**
162
- * Get the normalized v2 status code. Never `undefined`: unrecognised or
163
- * missing codes are `UNKNOWN`.
164
+ * Get the v2 status code. `undefined` when this collection carries none.
165
+ */
166
+ getStatusCode(): NORMALIZED_STATUS_CODE | undefined;
167
+ /**
168
+ * Get the label and description for the status code, when there is one.
164
169
  */
165
- getStatusCode(): COLLECTION_STATUS_CODE;
170
+ getStatusCodeInfo(): CollectionStatusCodeInfo | undefined;
166
171
  /**
167
- * Get the label and description for the status code.
172
+ * What the UI should show for this collection:
173
+ *
174
+ * 1. `status` and `statusCode` are both present — a v2 collection. Show both.
175
+ * 2. Otherwise `normalizedStatus` is present. Show it, with
176
+ * `normalizedStatusCode` if that is present too.
177
+ * 3. Otherwise show `status` alone, and no status code.
168
178
  */
169
- getStatusCodeInfo(): CollectionStatusCodeInfo;
179
+ getDisplayStatus(): DisplayStatus<COLLECTION_STATUS>;
170
180
  /**
171
181
  * Get channel information. Returns `undefined` for non-mobile channels
172
182
  * (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":"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"}
1
+ {"version":3,"file":"collection.model.d.ts","sourceRoot":"","sources":["../../../src/modules/collection/collection.model.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,17 @@
1
1
  import { z } from "zod";
2
+ import { NORMALIZED_STATUS_CODE, toNormalizedStatusCode } from "../../lib/status.js";
2
3
  /**
3
4
  * Collection outcome.
4
5
  *
5
6
  * 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.
7
+ * v2 reduces the status to the outcome (`PENDING`, `PENDING_ACK`,
8
+ * `PAYMENT_ACCEPTED`, `PAYMENT_FAILED`, `PAYMENT_EXPIRED`) and moves the reason
9
+ * to `statusCode`. Both sets are supported because historical collections keep
10
+ * their v1 status.
9
11
  */
10
12
  export declare enum COLLECTION_STATUS {
11
13
  PAYMENT_ACCEPTED = "PAYMENT_ACCEPTED",
14
+ PENDING = "PENDING",
12
15
  PENDING_ACK = "PENDING_ACK",
13
16
  PAYMENT_FAILED = "PAYMENT_FAILED",
14
17
  PAYMENT_EXPIRED = "PAYMENT_EXPIRED",
@@ -16,36 +19,9 @@ export declare enum COLLECTION_STATUS {
16
19
  INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS",
17
20
  INVALID_REFERENCE = "INVALID_REFERENCE",
18
21
  PAYMENT_REJECTED = "PAYMENT_REJECTED",
19
- PENDING = "PENDING",
20
22
  PROVIDER_FAILED = "PROVIDER_FAILED"
21
23
  }
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
- }
24
+ export { NORMALIZED_STATUS_CODE as COLLECTION_STATUS_CODE };
49
25
  export declare enum COLLECTION_CHANNEL {
50
26
  AIRTEL = "TZ-AIRTEL-C2B",
51
27
  TIGO = "TZ-TIGO-C2B",
@@ -55,12 +31,7 @@ export declare enum COLLECTION_CHANNEL {
55
31
  CRDB = "TZ-CRDB",
56
32
  ECOBANK = "TZ-ECOBANK"
57
33
  }
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;
34
+ export { toNormalizedStatusCode as toCollectionStatusCode };
64
35
  /**
65
36
  * Accepts a single string, a comma-separated string, or an array of strings,
66
37
  * and normalizes to a deduplicated, trimmed, non-empty `string[]`.
@@ -71,7 +42,9 @@ export declare const CollectionDTOSchemas: {
71
42
  collection: z.ZodObject<{
72
43
  id: z.ZodString;
73
44
  status: z.ZodEnum<typeof COLLECTION_STATUS>;
74
- statusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<COLLECTION_STATUS_CODE, unknown>>;
45
+ statusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<NORMALIZED_STATUS_CODE | undefined, unknown>>;
46
+ normalizedStatus: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("../../lib/status.js").NORMALIZED_STATUS | undefined, unknown>>;
47
+ normalizedStatusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<NORMALIZED_STATUS_CODE | undefined, unknown>>;
75
48
  statusMessage: z.ZodString;
76
49
  accountNo: z.ZodString;
77
50
  walletId: z.ZodString;
@@ -119,8 +92,8 @@ export declare const CollectionDTOSchemas: {
119
92
  channelIn: z.ZodOptional<z.ZodArray<z.ZodEnum<typeof COLLECTION_CHANNEL>>>;
120
93
  status: z.ZodOptional<z.ZodEnum<typeof COLLECTION_STATUS>>;
121
94
  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>>>;
95
+ statusCode: z.ZodOptional<z.ZodEnum<typeof NORMALIZED_STATUS_CODE>>;
96
+ statusCodeIn: z.ZodOptional<z.ZodArray<z.ZodEnum<typeof NORMALIZED_STATUS_CODE>>>;
124
97
  minAmount: z.ZodOptional<z.ZodNumber>;
125
98
  maxAmount: z.ZodOptional<z.ZodNumber>;
126
99
  search: z.ZodOptional<z.ZodString>;
@@ -147,14 +120,14 @@ export declare const CollectionDTOSchemas: {
147
120
  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>>>>;
148
121
  status: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<COLLECTION_STATUS, string>>>;
149
122
  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>>>>;
123
+ statusCode: z.ZodOptional<z.ZodEnum<typeof NORMALIZED_STATUS_CODE>>;
124
+ 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 NORMALIZED_STATUS_CODE>>>>;
152
125
  minAmount: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>>;
153
126
  maxAmount: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>>;
154
127
  search: z.ZodOptional<z.ZodString>;
155
128
  }, z.core.$strip>;
156
129
  paymentStatus: z.ZodEnum<typeof COLLECTION_STATUS>;
157
- statusCode: z.ZodEnum<typeof COLLECTION_STATUS_CODE>;
130
+ statusCode: z.ZodEnum<typeof NORMALIZED_STATUS_CODE>;
158
131
  paymentChannel: z.ZodEnum<typeof COLLECTION_CHANNEL>;
159
132
  };
160
133
  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;;;;;;;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"}
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,OAAO,EAAsB,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAEzG;;;;;;;;GAQG;AACH,oBAAY,iBAAiB;IAE3B,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAG3B,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IAGnC,eAAe,oBAAoB;IACnC,kBAAkB,uBAAuB;IACzC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;CACpC;AAKD,OAAO,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,CAAC;AAE5D,oBAAY,kBAAkB;IAC5B,MAAM,kBAAkB;IACxB,IAAI,gBAAgB;IACpB,OAAO,mBAAmB;IAC1B,SAAS,qBAAqB;IAC9B,OAAO,mBAAmB;IAC1B,IAAI,YAAY;IAChB,OAAO,eAAe;CACvB;AAMD,OAAO,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,CAAC;AAQ5D;;;GAGG;AACH,QAAA,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MAAM,EAO7C,CAAC;AAuHF,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"}
@@ -36,8 +36,10 @@ export declare const payoutContract: {
36
36
  200: z.ZodObject<{
37
37
  results: z.ZodArray<z.ZodObject<{
38
38
  id: z.ZodString;
39
- statusCode: z.ZodString;
39
+ statusCode: z.ZodOptional<z.ZodString>;
40
40
  statusCodeText: z.ZodEnum<typeof import("./payout.types.js").PAYOUT_STATUS>;
41
+ normalizedStatus: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("../../index.js").NORMALIZED_STATUS | undefined, unknown>>;
42
+ normalizedStatusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("../collection/collection.types.js").COLLECTION_STATUS_CODE | undefined, unknown>>;
41
43
  statusDescription: z.ZodString;
42
44
  countryCode: z.ZodString;
43
45
  serviceCode: z.ZodUnion<readonly [z.ZodEnum<typeof import("./payout.types.js").MOBILE_PAYOUT_CHANNEL>, z.ZodEnum<typeof import("./payout.types.js").BANK_PAYOUT_CHANNEL>]>;
@@ -100,8 +102,10 @@ export declare const payoutContract: {
100
102
  responses: {
101
103
  200: z.ZodObject<{
102
104
  id: z.ZodString;
103
- statusCode: z.ZodString;
105
+ statusCode: z.ZodOptional<z.ZodString>;
104
106
  statusCodeText: z.ZodEnum<typeof import("./payout.types.js").PAYOUT_STATUS>;
107
+ normalizedStatus: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("../../index.js").NORMALIZED_STATUS | undefined, unknown>>;
108
+ normalizedStatusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("../collection/collection.types.js").COLLECTION_STATUS_CODE | undefined, unknown>>;
105
109
  statusDescription: z.ZodString;
106
110
  countryCode: z.ZodString;
107
111
  serviceCode: z.ZodUnion<readonly [z.ZodEnum<typeof import("./payout.types.js").MOBILE_PAYOUT_CHANNEL>, z.ZodEnum<typeof import("./payout.types.js").BANK_PAYOUT_CHANNEL>]>;
@@ -1 +1 @@
1
- {"version":3,"file":"payout.api-contract.d.ts","sourceRoot":"","sources":["../../../src/modules/payout/payout.api-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC"}
1
+ {"version":3,"file":"payout.api-contract.d.ts","sourceRoot":"","sources":["../../../src/modules/payout/payout.api-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC"}
@@ -1,13 +1,9 @@
1
1
  import { Amount, type AmountJson, Bank } from "@temboplus/frontend-core";
2
+ import { type DisplayStatus, type NORMALIZED_STATUS, type NORMALIZED_STATUS_CODE, type NormalizedStatusInfo } from "../../lib/status.js";
2
3
  import { type MobileChannelInfo } from "../../lib/types.js";
3
4
  import { type PAYOUT_CHANNEL, PAYOUT_STATUS } from "./payout.types.js";
4
- export interface PayoutStatusInfo {
5
- label: string;
6
- description: string;
7
- category: "success" | "pending" | "failed";
8
- color: "success" | "warning" | "error";
9
- userFriendlyMessage: string;
10
- }
5
+ /** Payouts describe their status with the shared normalized shape. */
6
+ export type PayoutStatusInfo = NormalizedStatusInfo;
11
7
  export declare const PAYOUT_STATUS_INFO: Record<PAYOUT_STATUS, PayoutStatusInfo>;
12
8
  export interface PayoutData {
13
9
  id: string;
@@ -26,7 +22,9 @@ export interface PayoutData {
26
22
  swiftCode?: string;
27
23
  createdAt: string;
28
24
  updatedAt?: string;
29
- statusCode: string;
25
+ statusCode?: string;
26
+ normalizedStatus?: string | null;
27
+ normalizedStatusCode?: string | null;
30
28
  countryCode: string;
31
29
  postedAmount?: string;
32
30
  walletId?: string;
@@ -57,7 +55,9 @@ export interface PayoutJson {
57
55
  swiftCode?: string;
58
56
  createdAt: string;
59
57
  updatedAt?: string;
60
- statusCode: string;
58
+ statusCode?: string;
59
+ normalizedStatus?: string | null;
60
+ normalizedStatusCode?: string | null;
61
61
  countryCode: string;
62
62
  postedAmount?: AmountJson;
63
63
  walletId?: string;
@@ -91,7 +91,18 @@ export declare class Payout {
91
91
  readonly swiftCode?: string;
92
92
  readonly createdAt: Date;
93
93
  readonly updatedAt?: Date;
94
- readonly statusCode: string;
94
+ /**
95
+ * The provider status code. Payouts have no v2 tier, so this normally holds
96
+ * a provider value rather than a `NORMALIZED_STATUS_CODE`.
97
+ */
98
+ readonly statusCode?: string;
99
+ /**
100
+ * The v2 outcome the backend mapped this payout onto. `undefined` when the
101
+ * backend supplied none.
102
+ */
103
+ readonly normalizedStatus?: NORMALIZED_STATUS;
104
+ /** The reason behind `normalizedStatus`, when the backend supplied one. */
105
+ readonly normalizedStatusCode?: NORMALIZED_STATUS_CODE;
95
106
  readonly countryCode: string;
96
107
  readonly postedAmount?: Amount;
97
108
  readonly walletId?: string;
@@ -137,6 +148,18 @@ export declare class Payout {
137
148
  * Get status color and label
138
149
  */
139
150
  getStatusInfo(): PayoutStatusInfo;
151
+ /**
152
+ * What the UI should show for this payout:
153
+ *
154
+ * 1. `statusCodeText` and a normalized `statusCode` are both present. Show
155
+ * both. Payouts have no v2 tier today, so `statusCode` normally holds a
156
+ * provider value and this tier does not apply — it is only reached if
157
+ * the code is one of `NORMALIZED_STATUS_CODE`.
158
+ * 2. Otherwise `normalizedStatus` is present. Show it, with
159
+ * `normalizedStatusCode` if that is present too.
160
+ * 3. Otherwise show `statusCodeText` alone, and no status code.
161
+ */
162
+ getDisplayStatus(): DisplayStatus<PAYOUT_STATUS>;
140
163
  /**
141
164
  * Get channel information with bank detection for bank transfers
142
165
  */
@@ -1 +1 @@
1
- {"version":3,"file":"payout.model.d.ts","sourceRoot":"","sources":["../../../src/modules/payout/payout.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payout.model.d.ts","sourceRoot":"","sources":["../../../src/modules/payout/payout.model.ts"],"names":[],"mappings":"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"}
@@ -34,8 +34,10 @@ export { toStringArray as payoutToStringArray };
34
34
  export declare const PayoutDTOSchemas: {
35
35
  payout: z.ZodObject<{
36
36
  id: z.ZodString;
37
- statusCode: z.ZodString;
37
+ statusCode: z.ZodOptional<z.ZodString>;
38
38
  statusCodeText: z.ZodEnum<typeof PAYOUT_STATUS>;
39
+ normalizedStatus: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("../../lib/status.js").NORMALIZED_STATUS | undefined, unknown>>;
40
+ normalizedStatusCode: z.ZodPipe<z.ZodOptional<z.ZodUnknown>, z.ZodTransform<import("../../lib/status.js").NORMALIZED_STATUS_CODE | undefined, unknown>>;
39
41
  statusDescription: z.ZodString;
40
42
  countryCode: z.ZodString;
41
43
  serviceCode: z.ZodUnion<readonly [z.ZodEnum<typeof MOBILE_PAYOUT_CHANNEL>, z.ZodEnum<typeof BANK_PAYOUT_CHANNEL>]>;
@@ -1 +1 @@
1
- {"version":3,"file":"payout.types.d.ts","sourceRoot":"","sources":["../../../src/modules/payout/payout.types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,aAAa;IACvB,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,qBAAqB,0BAA0B;IAC/C,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;CACpC;AAED,oBAAY,qBAAqB;IAC/B,MAAM,kBAAkB;IACxB,OAAO,mBAAmB;IAC1B,IAAI,gBAAgB;IACpB,OAAO,mBAAmB;IAC1B,SAAS,qBAAqB;CAC/B;AAED,oBAAY,mBAAmB;IAC7B,IAAI,gBAAgB;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AASzE;;;GAGG;AACH,QAAA,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MAAM,EAO7C,CAAC;AA2HF,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,CAAC;AAEhD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B5B,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAC3E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"payout.types.d.ts","sourceRoot":"","sources":["../../../src/modules/payout/payout.types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,oBAAY,aAAa;IACvB,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,qBAAqB,0BAA0B;IAC/C,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,oBAAoB,yBAAyB;IAC7C,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;CACpC;AAED,oBAAY,qBAAqB;IAC/B,MAAM,kBAAkB;IACxB,OAAO,mBAAmB;IAC1B,IAAI,gBAAgB;IACpB,OAAO,mBAAmB;IAC1B,SAAS,qBAAqB;CAC/B;AAED,oBAAY,mBAAmB;IAC7B,IAAI,gBAAgB;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AASzE;;;GAGG;AACH,QAAA,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MAAM,EAO7C,CAAC;AAgIF,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,CAAC;AAEhD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B5B,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAC3E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,oBAAoB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temboplus/tembo-dashboard",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
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",