@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.
Files changed (3) hide show
  1. package/README.md +8 -0
  2. package/dist/index.js +21 -11
  3. 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 CUSTOMER_INVOICE_BATCH_STATUS_VALUES = new Set(Object.values(CustomerInvoiceBatchStatus));
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 (!CUSTOMER_INVOICE_BATCH_STATUS_VALUES.has(status)) {
20027
- throw new Error(`Invalid customer invoice status "${status}". Use one of: ${[...CUSTOMER_INVOICE_BATCH_STATUS_VALUES].join(", ")}.`);
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.28.0",
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",