@go-labs-sg/bb 2.23.0 → 2.24.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 (2) hide show
  1. package/dist/index.js +71 -41
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -15118,7 +15118,7 @@ import { readFile, writeFile } from "fs/promises";
15118
15118
  import { basename } from "path";
15119
15119
  import { createInterface as createInterface2 } from "readline/promises";
15120
15120
 
15121
- // src/prisma-enums.ts
15121
+ // ../db/src/generated/prisma/enums.ts
15122
15122
  var EstimationMode = {
15123
15123
  MICRO: "MICRO",
15124
15124
  MANPOWER_SPECIFIED: "MANPOWER_SPECIFIED"
@@ -15130,21 +15130,6 @@ var ProjectStatus = {
15130
15130
  RECONCILED: "RECONCILED",
15131
15131
  LOST: "LOST"
15132
15132
  };
15133
- var SupplierQuotationStatus = {
15134
- DRAFT: "DRAFT",
15135
- PENDING_APPROVAL: "PENDING_APPROVAL",
15136
- APPROVED: "APPROVED",
15137
- REJECTED: "REJECTED",
15138
- SUPERSEDED: "SUPERSEDED"
15139
- };
15140
- var CustomerInvoiceBatchStatus = {
15141
- CREATING: "CREATING",
15142
- PENDING_APPROVAL: "PENDING_APPROVAL",
15143
- APPROVED: "APPROVED",
15144
- REJECTED_VOIDED: "REJECTED_VOIDED",
15145
- EXPIRED_VOIDED: "EXPIRED_VOIDED",
15146
- PARTIAL_QBO_FAILURE: "PARTIAL_QBO_FAILURE"
15147
- };
15148
15133
  var BudgetStatus = {
15149
15134
  DRAFT: "DRAFT",
15150
15135
  PENDING_APPROVAL: "PENDING_APPROVAL",
@@ -15169,13 +15154,6 @@ var ApprovalType = {
15169
15154
  CUSTOMER_INVOICE: "CUSTOMER_INVOICE",
15170
15155
  QUOTATION: "QUOTATION"
15171
15156
  };
15172
- var UserRole = {
15173
- USER: "USER",
15174
- LEAD: "LEAD",
15175
- ADMIN: "ADMIN",
15176
- INSIDE_SALES: "INSIDE_SALES",
15177
- ACCOUNTING_TEAM: "ACCOUNTING_TEAM"
15178
- };
15179
15157
  var ErrorSeverity = {
15180
15158
  LOW: "LOW",
15181
15159
  MEDIUM: "MEDIUM",
@@ -15197,7 +15175,7 @@ var BillStatus = {
15197
15175
  REJECTED: "REJECTED"
15198
15176
  };
15199
15177
 
15200
- // src/filter-enums.ts
15178
+ // ../utils/src/filter-enums.ts
15201
15179
  var ExtendedApprovalStatus = {
15202
15180
  ...ApprovalStatus,
15203
15181
  ALL: "ALL"
@@ -15249,10 +15227,60 @@ var ExtendedErrorStatus = {
15249
15227
  ...ErrorStatus
15250
15228
  };
15251
15229
 
15230
+ // src/prisma-enums.ts
15231
+ var ProjectStatus2 = {
15232
+ PITCH: "PITCH",
15233
+ WON: "WON",
15234
+ COMPLETED: "COMPLETED",
15235
+ RECONCILED: "RECONCILED",
15236
+ LOST: "LOST"
15237
+ };
15238
+ var SupplierQuotationStatus = {
15239
+ DRAFT: "DRAFT",
15240
+ PENDING_APPROVAL: "PENDING_APPROVAL",
15241
+ APPROVED: "APPROVED",
15242
+ REJECTED: "REJECTED",
15243
+ SUPERSEDED: "SUPERSEDED"
15244
+ };
15245
+ var CustomerInvoiceBatchStatus = {
15246
+ CREATING: "CREATING",
15247
+ PENDING_APPROVAL: "PENDING_APPROVAL",
15248
+ APPROVED: "APPROVED",
15249
+ REJECTED_VOIDED: "REJECTED_VOIDED",
15250
+ EXPIRED_VOIDED: "EXPIRED_VOIDED",
15251
+ PARTIAL_QBO_FAILURE: "PARTIAL_QBO_FAILURE"
15252
+ };
15253
+ var BudgetStatus2 = {
15254
+ DRAFT: "DRAFT",
15255
+ PENDING_APPROVAL: "PENDING_APPROVAL",
15256
+ APPROVED: "APPROVED",
15257
+ REJECTED: "REJECTED",
15258
+ ESTIMATE_CREATED: "ESTIMATE_CREATED",
15259
+ ESTIMATE_SENT: "ESTIMATE_SENT",
15260
+ ESTIMATE_ACCEPTED: "ESTIMATE_ACCEPTED",
15261
+ ESTIMATE_REJECTED: "ESTIMATE_REJECTED",
15262
+ ESTIMATE_CLOSED: "ESTIMATE_CLOSED"
15263
+ };
15264
+ var UserRole = {
15265
+ USER: "USER",
15266
+ LEAD: "LEAD",
15267
+ ADMIN: "ADMIN",
15268
+ INSIDE_SALES: "INSIDE_SALES",
15269
+ ACCOUNTING_TEAM: "ACCOUNTING_TEAM"
15270
+ };
15271
+ var BillStatus2 = {
15272
+ DRAFT: "DRAFT",
15273
+ PENDING_APPROVAL: "PENDING_APPROVAL",
15274
+ CHECKED: "CHECKED",
15275
+ APPROVED: "APPROVED",
15276
+ PAID: "PAID",
15277
+ REJECTED: "REJECTED"
15278
+ };
15279
+
15252
15280
  // src/parse-cli-enums.ts
15253
- var BUDGET_STATUS_VALUES = new Set(Object.values(BudgetStatus));
15254
- var BILL_STATUS_VALUES = new Set(Object.values(BillStatus));
15255
- var PROJECT_STATUS_VALUES = new Set(Object.values(ProjectStatus));
15281
+ var BUDGET_STATUS_VALUES = new Set(Object.values(BudgetStatus2));
15282
+ var BILL_STATUS_VALUES = new Set(Object.values(BillStatus2));
15283
+ var PROJECT_STATUS_VALUES = new Set(Object.values(ProjectStatus2));
15256
15284
  var SUPPLIER_QUOTATION_STATUS_VALUES = new Set(Object.values(SupplierQuotationStatus));
15257
15285
  var CUSTOMER_INVOICE_BATCH_STATUS_VALUES = new Set(Object.values(CustomerInvoiceBatchStatus));
15258
15286
  var USER_ROLE_VALUES = new Set(Object.values(UserRole));
@@ -15299,7 +15327,7 @@ function parseBillStatusForUpdate(raw) {
15299
15327
  if (!BILL_STATUS_VALUES.has(raw)) {
15300
15328
  throw new Error(`Invalid bill status "${raw}". Use one of: ${[...BILL_STATUS_VALUES].join(", ")}.`);
15301
15329
  }
15302
- if (raw === BillStatus.PENDING_APPROVAL) {
15330
+ if (raw === BillStatus2.PENDING_APPROVAL) {
15303
15331
  throw new Error("Cannot set PENDING_APPROVAL via update-bill-status. Use create-bill-approval <billId> instead.");
15304
15332
  }
15305
15333
  return raw;
@@ -15538,13 +15566,13 @@ function parseApprovalTypeFlag(raw) {
15538
15566
  }
15539
15567
  return u;
15540
15568
  }
15541
- var budgetStatusesForHelp = Object.values(BudgetStatus);
15542
- var billStatusesForHelp = Object.values(BillStatus);
15543
- var billStatusesForUpdateHelp = Object.values(BillStatus).filter((s) => s !== BillStatus.PENDING_APPROVAL);
15544
- var projectStatusesForHelp = Object.values(ProjectStatus);
15569
+ var budgetStatusesForHelp = Object.values(BudgetStatus2);
15570
+ var billStatusesForHelp = Object.values(BillStatus2);
15571
+ var billStatusesForUpdateHelp = Object.values(BillStatus2).filter((s) => s !== BillStatus2.PENDING_APPROVAL);
15572
+ var projectStatusesForHelp = Object.values(ProjectStatus2);
15545
15573
  var userRolesForHelp = Object.values(UserRole);
15546
15574
 
15547
- // src/rich-text.ts
15575
+ // ../utils/src/rich-text.ts
15548
15576
  var escapeHtml = (text) => text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
15549
15577
  var createRichTextFromPlainText = (text) => {
15550
15578
  const lines = text?.split(/\r?\n/) ?? [];
@@ -15561,6 +15589,8 @@ var createRichTextFromPlainText = (text) => {
15561
15589
  };
15562
15590
  };
15563
15591
  var isRichTextJson = (value) => Boolean(value && typeof value === "object" && "json" in value && "html" in value && typeof value.html === "string");
15592
+
15593
+ // src/rich-text.ts
15564
15594
  var normalizePlainTextRichTextField = ({
15565
15595
  input,
15566
15596
  textField,
@@ -16500,11 +16530,11 @@ var quotationAttachmentContentTypeForFileName = (fileName) => {
16500
16530
  throw new Error(`Unsupported quotation attachment type: ${fileName}. Use PDF, JPEG, or PNG.`);
16501
16531
  };
16502
16532
  var LOCKED_BUDGET_STATUSES_REQUIRING_CONFIRMATION = new Set([
16503
- BudgetStatus.ESTIMATE_CREATED,
16504
- BudgetStatus.ESTIMATE_SENT,
16505
- BudgetStatus.ESTIMATE_ACCEPTED,
16506
- BudgetStatus.ESTIMATE_REJECTED,
16507
- BudgetStatus.ESTIMATE_CLOSED
16533
+ BudgetStatus2.ESTIMATE_CREATED,
16534
+ BudgetStatus2.ESTIMATE_SENT,
16535
+ BudgetStatus2.ESTIMATE_ACCEPTED,
16536
+ BudgetStatus2.ESTIMATE_REJECTED,
16537
+ BudgetStatus2.ESTIMATE_CLOSED
16508
16538
  ]);
16509
16539
  var lockedBudgetStatusLabels = {
16510
16540
  ESTIMATE_CREATED: "Estimate Created",
@@ -16863,10 +16893,10 @@ async function createBillApproval(billId) {
16863
16893
  });
16864
16894
  }
16865
16895
  var validateBillStatusUpdateOptions = (opts) => {
16866
- if (opts.status === BillStatus.PAID && !opts.paymentReference?.trim()) {
16896
+ if (opts.status === BillStatus2.PAID && !opts.paymentReference?.trim()) {
16867
16897
  throw new Error("update-bill-status requires --paymentReference when status is PAID.");
16868
16898
  }
16869
- if (opts.status !== BillStatus.PAID && opts.paymentProofPath !== undefined) {
16899
+ if (opts.status !== BillStatus2.PAID && opts.paymentProofPath !== undefined) {
16870
16900
  throw new Error("--paymentProof can only be used when status is PAID.");
16871
16901
  }
16872
16902
  if (opts.paymentProofPath !== undefined && !opts.paymentProofPath.trim()) {
@@ -18146,7 +18176,7 @@ var reconcileProject = async (projectId) => {
18146
18176
  out(result);
18147
18177
  };
18148
18178
  var completeProject = async (projectId) => {
18149
- await updateProjectStatus(projectId, ProjectStatus.COMPLETED);
18179
+ await updateProjectStatus(projectId, ProjectStatus2.COMPLETED);
18150
18180
  };
18151
18181
  var importQuickBooksProjectId = async (projectId, projectUrl) => {
18152
18182
  const result = await api2.project.importQboProjectId.mutate({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@go-labs-sg/bb",
3
- "version": "2.23.0",
3
+ "version": "2.24.1",
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",