@aibrains/shared-types 0.9.2 → 0.10.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.
Files changed (41) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +6 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/schemas/finance/common.d.ts +41 -0
  6. package/dist/schemas/finance/common.d.ts.map +1 -0
  7. package/dist/schemas/finance/common.js +105 -0
  8. package/dist/schemas/finance/common.js.map +1 -0
  9. package/dist/schemas/finance/fee-structure.schema.d.ts +163 -0
  10. package/dist/schemas/finance/fee-structure.schema.d.ts.map +1 -0
  11. package/dist/schemas/finance/fee-structure.schema.js +78 -0
  12. package/dist/schemas/finance/fee-structure.schema.js.map +1 -0
  13. package/dist/schemas/finance/index.d.ts +12 -0
  14. package/dist/schemas/finance/index.d.ts.map +1 -0
  15. package/dist/schemas/finance/index.js +28 -0
  16. package/dist/schemas/finance/index.js.map +1 -0
  17. package/dist/schemas/finance/invoice.schema.d.ts +301 -0
  18. package/dist/schemas/finance/invoice.schema.d.ts.map +1 -0
  19. package/dist/schemas/finance/invoice.schema.js +107 -0
  20. package/dist/schemas/finance/invoice.schema.js.map +1 -0
  21. package/dist/schemas/finance/payment-gateway.schema.d.ts +84 -0
  22. package/dist/schemas/finance/payment-gateway.schema.d.ts.map +1 -0
  23. package/dist/schemas/finance/payment-gateway.schema.js +41 -0
  24. package/dist/schemas/finance/payment-gateway.schema.js.map +1 -0
  25. package/dist/schemas/finance/payment.schema.d.ts +794 -0
  26. package/dist/schemas/finance/payment.schema.d.ts.map +1 -0
  27. package/dist/schemas/finance/payment.schema.js +170 -0
  28. package/dist/schemas/finance/payment.schema.js.map +1 -0
  29. package/dist/schemas/finance/student-account.schema.d.ts +89 -0
  30. package/dist/schemas/finance/student-account.schema.d.ts.map +1 -0
  31. package/dist/schemas/finance/student-account.schema.js +50 -0
  32. package/dist/schemas/finance/student-account.schema.js.map +1 -0
  33. package/dist/schemas/index.d.ts +1 -0
  34. package/dist/schemas/index.d.ts.map +1 -1
  35. package/dist/schemas/index.js +1 -0
  36. package/dist/schemas/index.js.map +1 -1
  37. package/dist/utils/currency.d.ts +23 -0
  38. package/dist/utils/currency.d.ts.map +1 -0
  39. package/dist/utils/currency.js +45 -0
  40. package/dist/utils/currency.js.map +1 -0
  41. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/finance/payment.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ /**
3
+ * Payment & Receipt Schemas
4
+ *
5
+ * Gateway-agnostic payment types supporting eSewa, Khalti, and manual methods.
6
+ * The frontend NEVER handles gateway credentials — all secrets stay server-side.
7
+ *
8
+ * Payment lifecycle: pending → processing → completed | failed | cancelled → refunded
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.currencyFormatOptionsSchema = exports.paymentFilterSchema = exports.receiptSchema = exports.receiptLineItemSchema = exports.createRefundSchema = exports.voidPaymentSchema = exports.verifyPaymentResponseSchema = exports.recordManualPaymentSchema = exports.initiatePaymentResponseSchema = exports.initiatePaymentSchema = exports.paymentResponseSchema = exports.refundResponseSchema = void 0;
12
+ const zod_1 = require("zod");
13
+ const common_1 = require("./common");
14
+ const common_2 = require("../common");
15
+ // ============================================================================
16
+ // REFUND
17
+ // ============================================================================
18
+ exports.refundResponseSchema = zod_1.z.object({
19
+ id: common_2.uuidSchema,
20
+ paymentId: common_2.uuidSchema,
21
+ amount: zod_1.z.number().positive(),
22
+ reason: zod_1.z.string(),
23
+ gatewayRefundId: zod_1.z.string().optional(),
24
+ status: zod_1.z.enum(['pending', 'completed', 'failed']),
25
+ refundedAt: zod_1.z.string().nullable(),
26
+ createdAt: zod_1.z.string(),
27
+ });
28
+ // ============================================================================
29
+ // PAYMENT RESPONSE
30
+ // ============================================================================
31
+ exports.paymentResponseSchema = zod_1.z.object({
32
+ id: common_2.uuidSchema,
33
+ invoiceId: common_2.uuidSchema,
34
+ studentAccountId: common_2.uuidSchema,
35
+ schoolId: common_2.uuidSchema,
36
+ amount: zod_1.z.number().positive(),
37
+ currency: common_1.currencyEnum,
38
+ gateway: common_1.paymentGatewayEnum,
39
+ gatewayTransactionId: zod_1.z.string().optional(),
40
+ gatewaySessionId: zod_1.z.string().optional(),
41
+ status: common_1.paymentStatusEnum,
42
+ paidAt: zod_1.z.string().nullable(),
43
+ paidBy: zod_1.z.string().nullable(),
44
+ receiptNumber: zod_1.z.string().nullable(),
45
+ metadata: zod_1.z.record(zod_1.z.unknown()).default({}),
46
+ refunds: zod_1.z.array(exports.refundResponseSchema).default([]),
47
+ createdAt: zod_1.z.string(),
48
+ updatedAt: zod_1.z.string(),
49
+ });
50
+ // ============================================================================
51
+ // INITIATE PAYMENT (gateway redirect flow)
52
+ // ============================================================================
53
+ /** Frontend sends this to initiate a gateway payment */
54
+ exports.initiatePaymentSchema = zod_1.z.object({
55
+ invoiceId: common_2.uuidSchema,
56
+ gateway: common_1.paymentGatewayEnum,
57
+ amount: zod_1.z.number().positive().max(10000000),
58
+ currency: common_1.currencyEnum.default('NPR'),
59
+ returnUrl: zod_1.z.string().url(),
60
+ cancelUrl: zod_1.z.string().url(),
61
+ });
62
+ /** Backend responds with redirect URL to gateway payment page */
63
+ exports.initiatePaymentResponseSchema = zod_1.z.object({
64
+ paymentSessionId: zod_1.z.string(),
65
+ redirectUrl: zod_1.z.string(),
66
+ expiresAt: zod_1.z.string(),
67
+ /** For form_post gateways (eSewa), the form fields to auto-submit */
68
+ formData: zod_1.z.record(zod_1.z.string()).optional(),
69
+ /** 'redirect' for simple URL redirect, 'form_post' for hidden form auto-submit */
70
+ method: zod_1.z.enum(['redirect', 'form_post']).default('redirect'),
71
+ });
72
+ // ============================================================================
73
+ // RECORD MANUAL PAYMENT (cash, bank_transfer, cheque)
74
+ // ============================================================================
75
+ exports.recordManualPaymentSchema = zod_1.z.object({
76
+ invoiceId: common_2.uuidSchema,
77
+ gateway: zod_1.z.enum(['cash', 'bank_transfer', 'cheque']),
78
+ amount: zod_1.z.number().positive().max(10000000),
79
+ currency: common_1.currencyEnum.default('NPR'),
80
+ referenceNumber: zod_1.z.string().max(100).optional(),
81
+ notes: zod_1.z.string().max(500).optional(),
82
+ paidDate: zod_1.z.string().optional(),
83
+ idempotencyKey: zod_1.z.string().uuid().optional(),
84
+ });
85
+ // ============================================================================
86
+ // VERIFY PAYMENT (gateway callback)
87
+ // ============================================================================
88
+ exports.verifyPaymentResponseSchema = zod_1.z.object({
89
+ payment: exports.paymentResponseSchema,
90
+ invoice: zod_1.z.object({
91
+ id: common_2.uuidSchema,
92
+ invoiceNumber: zod_1.z.string(),
93
+ status: zod_1.z.string(),
94
+ amountDue: zod_1.z.number(),
95
+ grandTotal: zod_1.z.number(),
96
+ }),
97
+ receipt: zod_1.z.lazy(() => exports.receiptSchema).nullable(),
98
+ status: zod_1.z.enum(['completed', 'failed', 'cancelled']),
99
+ });
100
+ // ============================================================================
101
+ // VOID PAYMENT
102
+ // ============================================================================
103
+ exports.voidPaymentSchema = zod_1.z.object({
104
+ reason: zod_1.z.string().min(1).max(500),
105
+ });
106
+ // ============================================================================
107
+ // REFUND REQUEST
108
+ // ============================================================================
109
+ exports.createRefundSchema = zod_1.z.object({
110
+ amount: zod_1.z.number().positive().max(10000000),
111
+ reason: zod_1.z.string().min(1).max(500),
112
+ });
113
+ // ============================================================================
114
+ // RECEIPT
115
+ // ============================================================================
116
+ exports.receiptLineItemSchema = zod_1.z.object({
117
+ description: zod_1.z.string(),
118
+ amount: zod_1.z.number(),
119
+ taxAmount: zod_1.z.number(),
120
+ total: zod_1.z.number(),
121
+ });
122
+ exports.receiptSchema = zod_1.z.object({
123
+ receiptNumber: zod_1.z.string(),
124
+ paymentId: common_2.uuidSchema,
125
+ invoiceNumber: zod_1.z.string(),
126
+ transactionId: zod_1.z.string(),
127
+ studentName: zod_1.z.string(),
128
+ studentId: common_2.uuidSchema,
129
+ schoolName: zod_1.z.string(),
130
+ schoolAddress: zod_1.z.string().optional(),
131
+ schoolPhone: zod_1.z.string().optional(),
132
+ paidDate: zod_1.z.string(),
133
+ amount: zod_1.z.number(),
134
+ currency: common_1.currencyEnum,
135
+ gateway: common_1.paymentGatewayEnum,
136
+ gatewayDisplayName: zod_1.z.string(),
137
+ lineItems: zod_1.z.array(exports.receiptLineItemSchema),
138
+ subtotal: zod_1.z.number(),
139
+ taxTotal: zod_1.z.number(),
140
+ discountTotal: zod_1.z.number(),
141
+ grandTotal: zod_1.z.number(),
142
+ taxBreakdown: zod_1.z.object({
143
+ panNumber: zod_1.z.string().optional(),
144
+ vatNumber: zod_1.z.string().optional(),
145
+ taxableAmount: zod_1.z.number(),
146
+ taxAmount: zod_1.z.number(),
147
+ }),
148
+ paidBy: zod_1.z.string(),
149
+ notes: zod_1.z.string().optional(),
150
+ });
151
+ // ============================================================================
152
+ // PAYMENT FILTER
153
+ // ============================================================================
154
+ exports.paymentFilterSchema = zod_1.z.object({
155
+ status: zod_1.z.union([common_1.paymentStatusEnum, zod_1.z.array(common_1.paymentStatusEnum)]).optional(),
156
+ gateway: common_1.paymentGatewayEnum.optional(),
157
+ invoiceId: common_2.uuidSchema.optional(),
158
+ studentId: common_2.uuidSchema.optional(),
159
+ dateFrom: zod_1.z.string().optional(),
160
+ dateTo: zod_1.z.string().optional(),
161
+ });
162
+ // ============================================================================
163
+ // CURRENCY FORMATTING
164
+ // ============================================================================
165
+ exports.currencyFormatOptionsSchema = zod_1.z.object({
166
+ locale: zod_1.z.enum(['en', 'ne']).default('en'),
167
+ showSymbol: zod_1.z.boolean().default(true),
168
+ decimals: zod_1.z.number().int().min(0).max(4).default(2),
169
+ });
170
+ //# sourceMappingURL=payment.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.schema.js","sourceRoot":"","sources":["../../../src/schemas/finance/payment.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Student Account & Ledger Schemas
3
+ *
4
+ * Tracks a student's financial ledger within a school.
5
+ * One account per student per school.
6
+ */
7
+ import { z } from 'zod';
8
+ export declare const billingAccountResponseSchema: z.ZodObject<{
9
+ id: z.ZodString;
10
+ studentId: z.ZodString;
11
+ schoolId: z.ZodString;
12
+ studentName: z.ZodString;
13
+ balance: z.ZodNumber;
14
+ totalPaid: z.ZodNumber;
15
+ lastPaymentDate: z.ZodNullable<z.ZodString>;
16
+ createdAt: z.ZodString;
17
+ updatedAt: z.ZodString;
18
+ }, "strip", z.ZodTypeAny, {
19
+ createdAt: string;
20
+ updatedAt: string;
21
+ schoolId: string;
22
+ studentId: string;
23
+ id: string;
24
+ studentName: string;
25
+ balance: number;
26
+ totalPaid: number;
27
+ lastPaymentDate: string | null;
28
+ }, {
29
+ createdAt: string;
30
+ updatedAt: string;
31
+ schoolId: string;
32
+ studentId: string;
33
+ id: string;
34
+ studentName: string;
35
+ balance: number;
36
+ totalPaid: number;
37
+ lastPaymentDate: string | null;
38
+ }>;
39
+ export type BillingAccount = z.infer<typeof billingAccountResponseSchema>;
40
+ export declare const studentAccountFilterSchema: z.ZodObject<{
41
+ studentId: z.ZodOptional<z.ZodString>;
42
+ hasOutstandingBalance: z.ZodOptional<z.ZodBoolean>;
43
+ searchTerm: z.ZodOptional<z.ZodString>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ studentId?: string | undefined;
46
+ searchTerm?: string | undefined;
47
+ hasOutstandingBalance?: boolean | undefined;
48
+ }, {
49
+ studentId?: string | undefined;
50
+ searchTerm?: string | undefined;
51
+ hasOutstandingBalance?: boolean | undefined;
52
+ }>;
53
+ export type StudentAccountFilterDto = z.infer<typeof studentAccountFilterSchema>;
54
+ export declare const studentLedgerEntrySchema: z.ZodObject<{
55
+ id: z.ZodString;
56
+ studentAccountId: z.ZodString;
57
+ entryType: z.ZodEnum<["invoice", "payment", "refund", "adjustment", "write_off"]>;
58
+ referenceId: z.ZodString;
59
+ description: z.ZodString;
60
+ debit: z.ZodNumber;
61
+ credit: z.ZodNumber;
62
+ balance: z.ZodNumber;
63
+ date: z.ZodString;
64
+ createdAt: z.ZodString;
65
+ }, "strip", z.ZodTypeAny, {
66
+ createdAt: string;
67
+ date: string;
68
+ description: string;
69
+ id: string;
70
+ studentAccountId: string;
71
+ balance: number;
72
+ entryType: "invoice" | "payment" | "refund" | "adjustment" | "write_off";
73
+ referenceId: string;
74
+ debit: number;
75
+ credit: number;
76
+ }, {
77
+ createdAt: string;
78
+ date: string;
79
+ description: string;
80
+ id: string;
81
+ studentAccountId: string;
82
+ balance: number;
83
+ entryType: "invoice" | "payment" | "refund" | "adjustment" | "write_off";
84
+ referenceId: string;
85
+ debit: number;
86
+ credit: number;
87
+ }>;
88
+ export type StudentLedgerEntry = z.infer<typeof studentLedgerEntrySchema>;
89
+ //# sourceMappingURL=student-account.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"student-account.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/finance/student-account.schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUvC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAM1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAIrC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAMjF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * Student Account & Ledger Schemas
4
+ *
5
+ * Tracks a student's financial ledger within a school.
6
+ * One account per student per school.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.studentLedgerEntrySchema = exports.studentAccountFilterSchema = exports.billingAccountResponseSchema = void 0;
10
+ const zod_1 = require("zod");
11
+ const common_1 = require("./common");
12
+ const common_2 = require("../common");
13
+ // ============================================================================
14
+ // STUDENT ACCOUNT RESPONSE
15
+ // ============================================================================
16
+ exports.billingAccountResponseSchema = zod_1.z.object({
17
+ id: common_2.uuidSchema,
18
+ studentId: common_2.uuidSchema,
19
+ schoolId: common_2.uuidSchema,
20
+ studentName: zod_1.z.string(),
21
+ balance: zod_1.z.number(),
22
+ totalPaid: zod_1.z.number(),
23
+ lastPaymentDate: zod_1.z.string().nullable(),
24
+ createdAt: zod_1.z.string(),
25
+ updatedAt: zod_1.z.string(),
26
+ });
27
+ // ============================================================================
28
+ // STUDENT ACCOUNT FILTER
29
+ // ============================================================================
30
+ exports.studentAccountFilterSchema = zod_1.z.object({
31
+ studentId: common_2.uuidSchema.optional(),
32
+ hasOutstandingBalance: zod_1.z.coerce.boolean().optional(),
33
+ searchTerm: zod_1.z.string().max(100).optional(),
34
+ });
35
+ // ============================================================================
36
+ // LEDGER ENTRY
37
+ // ============================================================================
38
+ exports.studentLedgerEntrySchema = zod_1.z.object({
39
+ id: common_2.uuidSchema,
40
+ studentAccountId: common_2.uuidSchema,
41
+ entryType: common_1.ledgerEntryTypeEnum,
42
+ referenceId: zod_1.z.string(),
43
+ description: zod_1.z.string(),
44
+ debit: zod_1.z.number().min(0),
45
+ credit: zod_1.z.number().min(0),
46
+ balance: zod_1.z.number(),
47
+ date: zod_1.z.string(),
48
+ createdAt: zod_1.z.string(),
49
+ });
50
+ //# sourceMappingURL=student-account.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"student-account.schema.js","sourceRoot":"","sources":["../../../src/schemas/finance/student-account.schema.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,6BAAwB;AACxB,qCAA+C;AAC/C,sCAAuC;AAEvC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAElE,QAAA,4BAA4B,GAAG,OAAC,CAAC,MAAM,CAAC;IACnD,EAAE,EAAE,mBAAU;IACd,SAAS,EAAE,mBAAU;IACrB,QAAQ,EAAE,mBAAU;IACpB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAIH,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAElE,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,mBAAU,CAAC,QAAQ,EAAE;IAChC,qBAAqB,EAAE,OAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAElE,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,EAAE,EAAE,mBAAU;IACd,gBAAgB,EAAE,mBAAU;IAC5B,SAAS,EAAE,4BAAmB;IAC9B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC"}
@@ -7,4 +7,5 @@ export * from './common';
7
7
  export * from './identity';
8
8
  export * from './academics';
9
9
  export * from './enrollment';
10
+ export * from './finance';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
@@ -23,4 +23,5 @@ __exportStar(require("./common"), exports);
23
23
  __exportStar(require("./identity"), exports);
24
24
  __exportStar(require("./academics"), exports);
25
25
  __exportStar(require("./enrollment"), exports);
26
+ __exportStar(require("./finance"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,6CAA2B;AAC3B,8CAA4B;AAC5B,+CAA6B;AAC7B,4CAA0B"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Currency Formatting Utilities
3
+ *
4
+ * NPR formatting with Nepal-style lakh/crore grouping.
5
+ * Pure utility functions — NOT in schema files.
6
+ */
7
+ interface CurrencyFormatOpts {
8
+ locale?: 'en' | 'ne';
9
+ showSymbol?: boolean;
10
+ decimals?: number;
11
+ }
12
+ /**
13
+ * Format an amount as NPR currency string.
14
+ * Uses Nepal's number formatting (commas at lakh/crore positions).
15
+ *
16
+ * Examples:
17
+ * formatNPR(12500) → "NPR 12,500.00"
18
+ * formatNPR(12500, { locale: 'ne', showSymbol: true }) → "रू १२,५००.००"
19
+ * formatNPR(150000) → "NPR 1,50,000.00" (lakh grouping)
20
+ */
21
+ export declare function formatNPR(amount: number, options?: CurrencyFormatOpts): string;
22
+ export {};
23
+ //# sourceMappingURL=currency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.d.ts","sourceRoot":"","sources":["../../src/utils/currency.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CA8BR"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * Currency Formatting Utilities
4
+ *
5
+ * NPR formatting with Nepal-style lakh/crore grouping.
6
+ * Pure utility functions — NOT in schema files.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.formatNPR = formatNPR;
10
+ /**
11
+ * Format an amount as NPR currency string.
12
+ * Uses Nepal's number formatting (commas at lakh/crore positions).
13
+ *
14
+ * Examples:
15
+ * formatNPR(12500) → "NPR 12,500.00"
16
+ * formatNPR(12500, { locale: 'ne', showSymbol: true }) → "रू १२,५००.००"
17
+ * formatNPR(150000) → "NPR 1,50,000.00" (lakh grouping)
18
+ */
19
+ function formatNPR(amount, options = {}) {
20
+ const { locale = 'en', showSymbol = true, decimals = 2 } = options;
21
+ // Format with Nepal-style grouping (##,##,###.##)
22
+ const fixed = Math.abs(amount).toFixed(decimals);
23
+ const [intPart, decPart] = fixed.split('.');
24
+ // Apply lakh/crore grouping: last 3 digits, then groups of 2
25
+ let grouped;
26
+ if (intPart.length <= 3) {
27
+ grouped = intPart;
28
+ }
29
+ else {
30
+ const last3 = intPart.slice(-3);
31
+ const rest = intPart.slice(0, -3);
32
+ const pairs = rest.replace(/\B(?=(\d{2})+(?!\d))/g, ',');
33
+ grouped = `${pairs},${last3}`;
34
+ }
35
+ // Convert digits to Devanagari for Nepali locale
36
+ let formatted = decPart ? `${grouped}.${decPart}` : grouped;
37
+ if (locale === 'ne') {
38
+ formatted = formatted.replace(/[0-9]/g, (d) => String.fromCharCode(0x0966 + Number(d)));
39
+ }
40
+ if (amount < 0)
41
+ formatted = `-${formatted}`;
42
+ const symbol = locale === 'ne' ? 'रू' : 'NPR';
43
+ return showSymbol ? `${symbol} ${formatted}` : formatted;
44
+ }
45
+ //# sourceMappingURL=currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/utils/currency.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAiBH,8BAiCC;AA1CD;;;;;;;;GAQG;AACH,SAAgB,SAAS,CACvB,MAAc,EACd,UAA8B,EAAE;IAEhC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAEnE,kDAAkD;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5C,6DAA6D;IAC7D,IAAI,OAAe,CAAC;IACpB,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;QACzD,OAAO,GAAG,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,iDAAiD;IACjD,IAAI,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAC5C,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CACxC,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,GAAG,CAAC;QAAE,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aibrains/shared-types",
3
- "version": "0.9.2",
3
+ "version": "0.10.1",
4
4
  "description": "Shared Zod schemas, TypeScript types, and validators for Education data models.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",