@onabl/contracts 0.3.0 → 0.3.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,31 @@
1
+ import { z } from "zod";
2
+ export declare const PAYMENT_METHODS: readonly ["EFT", "CARD", "CASH", "OTHER"];
3
+ export type PaymentMethod = (typeof PAYMENT_METHODS)[number];
4
+ export declare const RecordPaymentSchema: z.ZodObject<{
5
+ amount: z.ZodNumber;
6
+ method: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
7
+ EFT: "EFT";
8
+ CARD: "CARD";
9
+ CASH: "CASH";
10
+ OTHER: "OTHER";
11
+ }>>>;
12
+ reference: z.ZodOptional<z.ZodString>;
13
+ receivedAt: z.ZodOptional<z.ZodISODateTime>;
14
+ note: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>;
16
+ export type RecordPayment = z.infer<typeof RecordPaymentSchema>;
17
+ export declare const PaymentSummarySchema: z.ZodObject<{
18
+ id: z.ZodString;
19
+ amount: z.ZodString;
20
+ method: z.ZodEnum<{
21
+ EFT: "EFT";
22
+ CARD: "CARD";
23
+ CASH: "CASH";
24
+ OTHER: "OTHER";
25
+ }>;
26
+ reference: z.ZodNullable<z.ZodString>;
27
+ receivedAt: z.ZodString;
28
+ note: z.ZodNullable<z.ZodString>;
29
+ }, z.core.$strip>;
30
+ export type PaymentSummary = z.infer<typeof PaymentSummarySchema>;
31
+ //# sourceMappingURL=invoices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../src/invoices.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,eAAe,2CAA4C,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,mBAAmB;;;;;;;;;;;iBAO9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAIhE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAO/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PaymentSummarySchema = exports.RecordPaymentSchema = exports.PAYMENT_METHODS = void 0;
4
+ // packages/contracts/src/invoices.ts
5
+ // E2 — the payment ledger. Request validation for POST /invoices/:uuid/payments
6
+ // (tenant-authenticated, not part of the public-api.ts surface — no external
7
+ // consumer needs this, it's the dashboard's "Record payment" action).
8
+ const zod_1 = require("zod");
9
+ exports.PAYMENT_METHODS = ["EFT", "CARD", "CASH", "OTHER"];
10
+ exports.RecordPaymentSchema = zod_1.z.object({
11
+ amount: zod_1.z.number().positive(),
12
+ method: zod_1.z.enum(exports.PAYMENT_METHODS).optional().default("OTHER"),
13
+ reference: zod_1.z.string().max(200).optional(),
14
+ // The actual payment date, tenant-set and backdatable — defaults to now when omitted.
15
+ receivedAt: zod_1.z.iso.datetime().optional(),
16
+ note: zod_1.z.string().max(2000).optional(),
17
+ });
18
+ // Dashboard-only payment history entry — never exposed on the public invoice
19
+ // response (no recordedBy, no internal-note leakage to the customer).
20
+ exports.PaymentSummarySchema = zod_1.z.object({
21
+ id: zod_1.z.string(),
22
+ amount: zod_1.z.string(),
23
+ method: zod_1.z.enum(exports.PAYMENT_METHODS),
24
+ reference: zod_1.z.string().nullable(),
25
+ receivedAt: zod_1.z.string(),
26
+ note: zod_1.z.string().nullable(),
27
+ });
@@ -259,6 +259,7 @@ export declare const InvoiceSchema: z.ZodObject<{
259
259
  balance_uploaded: "balance_uploaded";
260
260
  }>>;
261
261
  statusChangedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
262
+ outstanding: z.ZodOptional<z.ZodString>;
262
263
  depositPercent: z.ZodNullable<z.ZodNumber>;
263
264
  depositAmount: z.ZodNullable<z.ZodString>;
264
265
  balanceAmount: z.ZodNullable<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,SAAS,EAAY,MAAM,qBAAqB,CAAC;AAkC9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBlB,CAAC;AAEjB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BnB,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBb,CAAC;AAIjB,eAAO,MAAM,0BAA0B;;;;;;mBAA2H,CAAC;AAInK,eAAO,MAAM,8BAA8B;;;;iBAIzC,CAAC;AAIH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+CR,CAAC;AAEjB,eAAO,MAAM,yBAAyB;;iBAAwC,CAAC;AAC/E,eAAO,MAAM,0BAA0B;;iBAAwC,CAAC;AAIhF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,uFAAwF,CAAC;AACtH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,qKAAqK;AACrK,eAAO,MAAM,kCAAkC,6CAA8C,CAAC;AAE9F,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0DV,CAAC;AAEjB,eAAO,MAAM,0BAA0B;;iBAAqC,CAAC;AAI7E,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AAIH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,SAAS,EAAY,MAAM,qBAAqB,CAAC;AAkC9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBlB,CAAC;AAEjB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BnB,CAAC;AAEjB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBb,CAAC;AAIjB,eAAO,MAAM,0BAA0B;;;;;;mBAA2H,CAAC;AAInK,eAAO,MAAM,8BAA8B;;;;iBAIzC,CAAC;AAIH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+CR,CAAC;AAEjB,eAAO,MAAM,yBAAyB;;iBAAwC,CAAC;AAC/E,eAAO,MAAM,0BAA0B;;iBAAwC,CAAC;AAIhF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,uFAAwF,CAAC;AACtH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,qKAAqK;AACrK,eAAO,MAAM,kCAAkC,6CAA8C,CAAC;AAE9F,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA6DV,CAAC;AAEjB,eAAO,MAAM,0BAA0B;;iBAAqC,CAAC;AAI7E,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AAIH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -188,6 +188,9 @@ exports.InvoiceSchema = zod_1.z
188
188
  // confirmation, and against which milestone. Orthogonal to `status`.
189
189
  popStatus: zod_1.z.enum(["none", "deposit_uploaded", "balance_uploaded"]).optional(),
190
190
  statusChangedAt: zod_1.z.string().nullable().optional(),
191
+ // E2 — total minus every recorded payment. Additive; absent on responses
192
+ // from before the payment ledger existed.
193
+ outstanding: zod_1.z.string().optional(),
191
194
  depositPercent: zod_1.z.number().nullable(),
192
195
  depositAmount: zod_1.z.string().nullable(),
193
196
  balanceAmount: zod_1.z.string().nullable(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onabl/contracts",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Zod request/response validation schemas for onabl's public API — the SDK's typed contract with the API.",
5
5
  "license": "MIT",
6
6
  "repository": {