@go-labs-sg/bb 2.28.0 → 2.29.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/README.md +8 -0
- package/dist/index.js +21 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -337,3 +337,11 @@ bun run pack:artifact
|
|
|
337
337
|
`pack:artifact` copies only the publish allowlist into a temporary staging directory and writes a sanitized publish manifest there. It never edits the source `package.json`, and the staged archive contains no workspace-only development dependencies. The release workflow packs once, validates the resulting archive, smoke-tests that exact tarball under Bun 1.4, then publishes that exact tarball. Types from `@go-labs/budget-builder-api` are compile-time only (`import type`). Prisma enum **values** used at runtime live in `src/prisma-enums.ts` (kept in sync with `packages/budget-builder/db` generated enums) so npm installs do not need `@go-labs/budget-builder-db`.
|
|
338
338
|
|
|
339
339
|
The generated `command-reference.md` and `command-manifest.json` are release artifacts. Regenerate them whenever the command registry changes; the release workflow rejects a tarball that does not include both files.
|
|
340
|
+
|
|
341
|
+
### Customer invoice lifecycle filters
|
|
342
|
+
|
|
343
|
+
`bb customer-invoice list --status SENT` filters by the displayed invoice lifecycle.
|
|
344
|
+
The list also accepts `PARTIALLY_SENT`, `PARTIALLY_PAID`, `PAID`, and `VOIDED`,
|
|
345
|
+
alongside existing approval states such as `APPROVED` and `PENDING_APPROVAL`.
|
|
346
|
+
`--sortBy status` sorts by lifecycle; `lifecycleStatus` in list/detail output is
|
|
347
|
+
separate from the stored approval/operational `status`.
|
package/dist/index.js
CHANGED
|
@@ -19681,6 +19681,14 @@ var ErrorStatus = {
|
|
|
19681
19681
|
RESOLVED: "RESOLVED",
|
|
19682
19682
|
IGNORED: "IGNORED"
|
|
19683
19683
|
};
|
|
19684
|
+
var CustomerInvoiceBatchStatus = {
|
|
19685
|
+
CREATING: "CREATING",
|
|
19686
|
+
PENDING_APPROVAL: "PENDING_APPROVAL",
|
|
19687
|
+
APPROVED: "APPROVED",
|
|
19688
|
+
REJECTED_VOIDED: "REJECTED_VOIDED",
|
|
19689
|
+
EXPIRED_VOIDED: "EXPIRED_VOIDED",
|
|
19690
|
+
PARTIAL_QBO_FAILURE: "PARTIAL_QBO_FAILURE"
|
|
19691
|
+
};
|
|
19684
19692
|
var BillStatus = {
|
|
19685
19693
|
DRAFT: "DRAFT",
|
|
19686
19694
|
PENDING_APPROVAL: "PENDING_APPROVAL",
|
|
@@ -19742,6 +19750,16 @@ var ExtendedErrorStatus = {
|
|
|
19742
19750
|
...ErrorStatus
|
|
19743
19751
|
};
|
|
19744
19752
|
|
|
19753
|
+
// ../utils/src/customer-invoice-lifecycle.ts
|
|
19754
|
+
var customerInvoiceLifecycleStatuses = [
|
|
19755
|
+
...Object.values(CustomerInvoiceBatchStatus),
|
|
19756
|
+
"PARTIALLY_SENT",
|
|
19757
|
+
"SENT",
|
|
19758
|
+
"PARTIALLY_PAID",
|
|
19759
|
+
"PAID",
|
|
19760
|
+
"VOIDED"
|
|
19761
|
+
];
|
|
19762
|
+
|
|
19745
19763
|
// src/prisma-enums.ts
|
|
19746
19764
|
var ProjectStatus2 = {
|
|
19747
19765
|
PITCH: "PITCH",
|
|
@@ -19757,14 +19775,6 @@ var SupplierQuotationStatus = {
|
|
|
19757
19775
|
REJECTED: "REJECTED",
|
|
19758
19776
|
SUPERSEDED: "SUPERSEDED"
|
|
19759
19777
|
};
|
|
19760
|
-
var CustomerInvoiceBatchStatus = {
|
|
19761
|
-
CREATING: "CREATING",
|
|
19762
|
-
PENDING_APPROVAL: "PENDING_APPROVAL",
|
|
19763
|
-
APPROVED: "APPROVED",
|
|
19764
|
-
REJECTED_VOIDED: "REJECTED_VOIDED",
|
|
19765
|
-
EXPIRED_VOIDED: "EXPIRED_VOIDED",
|
|
19766
|
-
PARTIAL_QBO_FAILURE: "PARTIAL_QBO_FAILURE"
|
|
19767
|
-
};
|
|
19768
19778
|
var BudgetStatus2 = {
|
|
19769
19779
|
DRAFT: "DRAFT",
|
|
19770
19780
|
PENDING_APPROVAL: "PENDING_APPROVAL",
|
|
@@ -19797,7 +19807,7 @@ var BUDGET_STATUS_VALUES = new Set(Object.values(BudgetStatus2));
|
|
|
19797
19807
|
var BILL_STATUS_VALUES = new Set(Object.values(BillStatus2));
|
|
19798
19808
|
var PROJECT_STATUS_VALUES = new Set(Object.values(ProjectStatus2));
|
|
19799
19809
|
var SUPPLIER_QUOTATION_STATUS_VALUES = new Set(Object.values(SupplierQuotationStatus));
|
|
19800
|
-
var
|
|
19810
|
+
var CUSTOMER_INVOICE_LIFECYCLE_STATUS_VALUES = new Set(customerInvoiceLifecycleStatuses);
|
|
19801
19811
|
var USER_ROLE_VALUES = new Set(Object.values(UserRole));
|
|
19802
19812
|
var EXTENDED_PROJECT_STATUS_VALUES = new Set(Object.values(ExtendedProjectStatus));
|
|
19803
19813
|
var DASHBOARD_ROLE_VALUES = new Set([
|
|
@@ -20023,8 +20033,8 @@ function parseCommaSeparatedCustomerInvoiceStatuses(raw) {
|
|
|
20023
20033
|
if (parts.length === 0)
|
|
20024
20034
|
return;
|
|
20025
20035
|
for (const status of parts) {
|
|
20026
|
-
if (!
|
|
20027
|
-
throw new Error(`Invalid customer invoice status "${status}". Use one of: ${[...
|
|
20036
|
+
if (!CUSTOMER_INVOICE_LIFECYCLE_STATUS_VALUES.has(status)) {
|
|
20037
|
+
throw new Error(`Invalid customer invoice status "${status}". Use one of: ${[...CUSTOMER_INVOICE_LIFECYCLE_STATUS_VALUES].join(", ")}.`);
|
|
20028
20038
|
}
|
|
20029
20039
|
}
|
|
20030
20040
|
return parts;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@go-labs-sg/bb",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.29.0",
|
|
4
4
|
"description": "Budget Builder CLI for AI agents — manage budgets, bills, claims, quotations, and customer invoices with explicit workflow previews for sensitive changes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|