@campfire-interactive/master-data-client 4.4.0 → 4.9.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 (58) hide show
  1. package/dist/engineeringChanges.d.ts +8 -6
  2. package/dist/engineeringChanges.d.ts.map +1 -1
  3. package/dist/engineeringChanges.js +8 -6
  4. package/dist/engineeringChanges.js.map +1 -1
  5. package/dist/equipment.d.ts +5 -1
  6. package/dist/equipment.d.ts.map +1 -1
  7. package/dist/equipment.js +18 -2
  8. package/dist/equipment.js.map +1 -1
  9. package/dist/exchangeRates.d.ts +6 -1
  10. package/dist/exchangeRates.d.ts.map +1 -1
  11. package/dist/exchangeRates.js +11 -0
  12. package/dist/exchangeRates.js.map +1 -1
  13. package/dist/imports.d.ts +1 -1
  14. package/dist/imports.d.ts.map +1 -1
  15. package/dist/imports.js.map +1 -1
  16. package/dist/index.d.ts +2 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +5 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/materials.d.ts +5 -1
  21. package/dist/materials.d.ts.map +1 -1
  22. package/dist/materials.js +16 -0
  23. package/dist/materials.js.map +1 -1
  24. package/dist/partAttributes.d.ts +7 -1
  25. package/dist/partAttributes.d.ts.map +1 -1
  26. package/dist/partAttributes.js +18 -0
  27. package/dist/partAttributes.js.map +1 -1
  28. package/dist/partTypes.d.ts +6 -1
  29. package/dist/partTypes.d.ts.map +1 -1
  30. package/dist/partTypes.js +17 -0
  31. package/dist/partTypes.js.map +1 -1
  32. package/dist/plants.d.ts +3 -0
  33. package/dist/plants.d.ts.map +1 -1
  34. package/dist/plants.js +5 -2
  35. package/dist/plants.js.map +1 -1
  36. package/dist/processFamilies.d.ts +6 -2
  37. package/dist/processFamilies.d.ts.map +1 -1
  38. package/dist/processFamilies.js +18 -2
  39. package/dist/processFamilies.js.map +1 -1
  40. package/dist/quotes.d.ts +21 -1
  41. package/dist/quotes.d.ts.map +1 -1
  42. package/dist/quotes.js +29 -0
  43. package/dist/quotes.js.map +1 -1
  44. package/dist/rateCatalog.d.ts +46 -1
  45. package/dist/rateCatalog.d.ts.map +1 -1
  46. package/dist/rateCatalog.js +73 -6
  47. package/dist/rateCatalog.js.map +1 -1
  48. package/dist/schedulePeriods.d.ts +16 -0
  49. package/dist/schedulePeriods.d.ts.map +1 -0
  50. package/dist/schedulePeriods.js +81 -0
  51. package/dist/schedulePeriods.js.map +1 -0
  52. package/dist/suppliers.d.ts +14 -0
  53. package/dist/suppliers.d.ts.map +1 -0
  54. package/dist/suppliers.js +84 -0
  55. package/dist/suppliers.js.map +1 -0
  56. package/dist/types.d.ts +129 -6
  57. package/dist/types.d.ts.map +1 -1
  58. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { HttpTransport } from './http';
2
- import type { ProcessFamily, CreateProcessFamilyInput, UpdateProcessFamilyInput, SingleResponse, ListResponse, CreateResponse } from './types';
2
+ import type { ProcessFamily, CreateProcessFamilyInput, UpdateProcessFamilyInput, SingleResponse, ListResponse, CreateResponse, BulkArchiveResult } from './types';
3
3
  /**
4
4
  * TenantProcessFamily resource — the equipment taxonomy. Reference data;
5
5
  * `list` returns the tenant's set (no pagination).
@@ -8,12 +8,16 @@ export declare class ProcessFamilyResource {
8
8
  private readonly http;
9
9
  constructor(http: HttpTransport);
10
10
  list(options?: {
11
- active?: boolean;
11
+ status?: 'active' | 'archived' | 'all';
12
12
  category?: string;
13
13
  }): Promise<ListResponse<ProcessFamily>>;
14
14
  get(id: string): Promise<SingleResponse<ProcessFamily>>;
15
15
  create(input: CreateProcessFamilyInput, idempotencyKey?: string): Promise<CreateResponse<ProcessFamily>>;
16
16
  update(id: string, input: UpdateProcessFamilyInput): Promise<SingleResponse<ProcessFamily>>;
17
17
  archive(id: string): Promise<void>;
18
+ /** Archive many process families in one call (soft; reversible via {@link batchRestore}). */
19
+ batchArchive(ids: string[]): Promise<SingleResponse<BulkArchiveResult>>;
20
+ /** Restore (un-archive) many process families in one call. */
21
+ batchRestore(ids: string[]): Promise<SingleResponse<BulkArchiveResult>>;
18
22
  }
19
23
  //# sourceMappingURL=processFamilies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processFamilies.d.ts","sourceRoot":"","sources":["../src/processFamilies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,aAAa,EACb,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,CAAC,OAAO,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAWlC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAOvD,MAAM,CACV,KAAK,EAAE,wBAAwB,EAC/B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IASnC,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAQnC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMzC"}
1
+ {"version":3,"file":"processFamilies.d.ts","sourceRoot":"","sources":["../src/processFamilies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,aAAa,EACb,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,CAAC,OAAO,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;QACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAWlC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAOvD,MAAM,CACV,KAAK,EAAE,wBAAwB,EAC/B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IASnC,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAQnC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxC,6FAA6F;IACvF,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAQ7E,8DAA8D;IACxD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;CAO9E"}
@@ -12,8 +12,8 @@ class ProcessFamilyResource {
12
12
  }
13
13
  async list(options) {
14
14
  const query = {};
15
- if (options?.active !== undefined)
16
- query.active = String(options.active);
15
+ if (options?.status)
16
+ query.status = options.status;
17
17
  if (options?.category)
18
18
  query.category = options.category;
19
19
  return this.http.request({
@@ -49,6 +49,22 @@ class ProcessFamilyResource {
49
49
  path: `/v1/process-families/${encodeURIComponent(id)}`,
50
50
  });
51
51
  }
52
+ /** Archive many process families in one call (soft; reversible via {@link batchRestore}). */
53
+ async batchArchive(ids) {
54
+ return this.http.request({
55
+ method: 'POST',
56
+ path: '/v1/process-families/batch-archive',
57
+ body: { ids },
58
+ });
59
+ }
60
+ /** Restore (un-archive) many process families in one call. */
61
+ async batchRestore(ids) {
62
+ return this.http.request({
63
+ method: 'POST',
64
+ path: '/v1/process-families/batch-restore',
65
+ body: { ids },
66
+ });
67
+ }
52
68
  }
53
69
  exports.ProcessFamilyResource = ProcessFamilyResource;
54
70
  //# sourceMappingURL=processFamilies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processFamilies.js","sourceRoot":"","sources":["../src/processFamilies.ts"],"names":[],"mappings":";;;AAUA;;;GAGG;AACH,MAAa,qBAAqB;IACH;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CAAC,OAGV;QACC,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,IAAI,OAAO,EAAE,MAAM,KAAK,SAAS;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,OAAO,EAAE,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B;YACpD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB;YAC5B,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC;YACtD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAA+B,EAC/B,cAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC;YACtD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,KAAK;YACX,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,EAAU,EACV,KAA+B;QAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC;YACtD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACtD,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAY;YACjC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;CACF;AArDD,sDAqDC"}
1
+ {"version":3,"file":"processFamilies.js","sourceRoot":"","sources":["../src/processFamilies.ts"],"names":[],"mappings":";;;AAWA;;;GAGG;AACH,MAAa,qBAAqB;IACH;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CAAC,OAGV;QACC,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,IAAI,OAAO,EAAE,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACnD,IAAI,OAAO,EAAE,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B;YACpD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB;YAC5B,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC;YACtD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAA+B,EAC/B,cAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC;YACtD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,KAAK;YACX,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,EAAU,EACV,KAA+B;QAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAgC;YACtD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACtD,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAY;YACjC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,YAAY,CAAC,GAAa;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoC;YAC1D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oCAAoC;YAC1C,IAAI,EAAE,EAAE,GAAG,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,YAAY,CAAC,GAAa;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoC;YAC1D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oCAAoC;YAC1C,IAAI,EAAE,EAAE,GAAG,EAAE;SACd,CAAC,CAAC;IACL,CAAC;CACF;AAvED,sDAuEC"}
package/dist/quotes.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { HttpTransport } from './http';
2
- import type { Quote, AuditLogEntry, CreateQuoteInput, UpdateQuoteInput, TransitionQuoteStatusInput, SetEffectiveCostInput, SetEffectivePriceInput, ListQuotesOptions, GetQuoteOptions, SingleResponse, ListResponse, CreateResponse } from './types';
2
+ import type { Quote, AuditLogEntry, CreateQuoteInput, UpdateQuoteInput, TransitionQuoteStatusInput, SetEffectiveCostInput, SetEffectivePriceInput, ListQuotesOptions, GetQuoteOptions, SingleResponse, ListResponse, CreateResponse, BulkArchiveResult } from './types';
3
3
  /**
4
4
  * Quote resource — federated identity shared between OMSF and CPQ.
5
5
  *
@@ -18,6 +18,18 @@ export declare class QuoteResource {
18
18
  list(options?: ListQuotesOptions): Promise<ListResponse<Quote>>;
19
19
  get(id: string, options?: GetQuoteOptions): Promise<SingleResponse<Quote>>;
20
20
  create(input: CreateQuoteInput, idempotencyKey?: string): Promise<CreateResponse<Quote>>;
21
+ /**
22
+ * Issue the next `RFQ-YYYY-NNNN` for the caller's tenant — the authoritative
23
+ * quote-number mint (master-data owns the number and enforces `quoteNumber`
24
+ * uniqueness). Atomic per (tenant, year); the first call of a year seeds the
25
+ * counter above the existing numeric max. Returns `{ quoteNumber }`. CPQ's
26
+ * createRfq calls this instead of scanning its own list and incrementing —
27
+ * a scan that wedged at `RFQ-YYYY-10000` once a tenant's yearly sequence
28
+ * passed four digits.
29
+ */
30
+ nextNumber(): Promise<SingleResponse<{
31
+ quoteNumber: string;
32
+ }>>;
21
33
  /**
22
34
  * Update non-status fields. Server rejects with 422 if `status` is present
23
35
  * in the body — use {@link transitionStatus} instead. `customerCompanyId`
@@ -58,6 +70,14 @@ export declare class QuoteResource {
58
70
  * cutover) plus the audit log. Hard-deleting would orphan all of those.
59
71
  */
60
72
  archive(id: string, reason?: string): Promise<void>;
73
+ /**
74
+ * Archive many quotes in one call (admin-only, same semantics as
75
+ * {@link archive}). Archive-only — no batchRestore: Quote's 10-status
76
+ * state machine has no legal 'lost' -> 'draft' transition, so a naive
77
+ * bulk restore doesn't apply. Un-archiving means an admin explicitly
78
+ * picking a re-entry status via {@link transitionStatus}.
79
+ */
80
+ batchArchive(ids: string[]): Promise<SingleResponse<BulkArchiveResult>>;
61
81
  getAudit(id: string): Promise<ListResponse<AuditLogEntry>>;
62
82
  /**
63
83
  * Record the resolved effective cost of a quote — a canonical, quote-level
@@ -1 +1 @@
1
- {"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../src/quotes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAqB/D,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAY1E,MAAM,CACV,KAAK,EAAE,gBAAgB,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IASjC;;;;OAIG;IACG,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,gBAAgB,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IASjC;;;;;;;;;;;;;;;;;OAiBG;IACG,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,0BAA0B,EACjC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IASjC;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAOhE;;;;;;;;;;;;;;OAcG;IACG,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,qBAAqB,EAC5B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IASjC;;;;;;;;;;;;;;OAcG;IACG,iBAAiB,CACrB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,sBAAsB,EAC7B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CAQlC"}
1
+ {"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../src/quotes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAqB/D,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAY1E,MAAM,CACV,KAAK,EAAE,gBAAgB,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IASjC;;;;;;;;OAQG;IACG,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAOpE;;;;OAIG;IACG,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,gBAAgB,EACvB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IASjC;;;;;;;;;;;;;;;;;OAiBG;IACG,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,0BAA0B,EACjC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IASjC;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD;;;;;;OAMG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAQvE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAOhE;;;;;;;;;;;;;;OAcG;IACG,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,qBAAqB,EAC5B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IASjC;;;;;;;;;;;;;;OAcG;IACG,iBAAiB,CACrB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,sBAAsB,EAC7B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CAQlC"}
package/dist/quotes.js CHANGED
@@ -67,6 +67,21 @@ class QuoteResource {
67
67
  idempotencyKey,
68
68
  });
69
69
  }
70
+ /**
71
+ * Issue the next `RFQ-YYYY-NNNN` for the caller's tenant — the authoritative
72
+ * quote-number mint (master-data owns the number and enforces `quoteNumber`
73
+ * uniqueness). Atomic per (tenant, year); the first call of a year seeds the
74
+ * counter above the existing numeric max. Returns `{ quoteNumber }`. CPQ's
75
+ * createRfq calls this instead of scanning its own list and incrementing —
76
+ * a scan that wedged at `RFQ-YYYY-10000` once a tenant's yearly sequence
77
+ * passed four digits.
78
+ */
79
+ async nextNumber() {
80
+ return this.http.request({
81
+ method: 'POST',
82
+ path: '/v1/quotes/next-number',
83
+ });
84
+ }
70
85
  /**
71
86
  * Update non-status fields. Server rejects with 422 if `status` is present
72
87
  * in the body — use {@link transitionStatus} instead. `customerCompanyId`
@@ -127,6 +142,20 @@ class QuoteResource {
127
142
  body: reason ? { reason } : undefined,
128
143
  });
129
144
  }
145
+ /**
146
+ * Archive many quotes in one call (admin-only, same semantics as
147
+ * {@link archive}). Archive-only — no batchRestore: Quote's 10-status
148
+ * state machine has no legal 'lost' -> 'draft' transition, so a naive
149
+ * bulk restore doesn't apply. Un-archiving means an admin explicitly
150
+ * picking a re-entry status via {@link transitionStatus}.
151
+ */
152
+ async batchArchive(ids) {
153
+ return this.http.request({
154
+ method: 'POST',
155
+ path: '/v1/quotes/batch-archive',
156
+ body: { ids },
157
+ });
158
+ }
130
159
  async getAudit(id) {
131
160
  return this.http.request({
132
161
  method: 'GET',
@@ -1 +1 @@
1
- {"version":3,"file":"quotes.js","sourceRoot":"","sources":["../src/quotes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quotes.js","sourceRoot":"","sources":["../src/quotes.ts"],"names":[],"mappings":";;;AAiBA;;;;;;;;;;;GAWG;AACH,MAAa,aAAa;IACK;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CAAC,OAA2B;QACpC,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,MAAM;gBAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAClD,IAAI,OAAO,CAAC,IAAI;gBAAE,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC5C,IAAI,OAAO,CAAC,CAAC;gBAAE,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM;gBAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAClD,IAAI,OAAO,CAAC,OAAO;gBAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACrD,IAAI,OAAO,CAAC,iBAAiB;gBAAE,KAAK,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;YACnF,IAAI,OAAO,CAAC,SAAS;gBAAE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3D,IAAI,OAAO,CAAC,SAAS;gBAAE,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3D,IAAI,OAAO,CAAC,OAAO;gBAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAsB;YAC5C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY;YAClB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,OAAyB;QAC7C,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB;YAC9C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAC5C,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAuB,EACvB,cAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB;YAC9C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,KAAK;YACX,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA0C;YAChE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACV,EAAU,EACV,KAAuB,EACvB,cAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB;YAC9C,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAC5C,IAAI,EAAE,KAAK;YACX,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,gBAAgB,CACpB,EAAU,EACV,KAAiC,EACjC,cAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB;YAC9C,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,SAAS;YACnD,IAAI,EAAE,KAAK;YACX,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,MAAe;QACvC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAY;YACjC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAC5C,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;SACtC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,GAAa;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoC;YAC1D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,EAAE,GAAG,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA8B;YACpD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,QAAQ;SACnD,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,gBAAgB,CACpB,EAAU,EACV,KAA4B,EAC5B,cAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB;YAC9C,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,iBAAiB;YAC3D,IAAI,EAAE,KAAK;YACX,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,iBAAiB,CACrB,EAAU,EACV,KAA6B,EAC7B,cAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAwB;YAC9C,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,kBAAkB;YAC5D,IAAI,EAAE,KAAK;YACX,cAAc;SACf,CAAC,CAAC;IACL,CAAC;CACF;AApND,sCAoNC"}
@@ -1,35 +1,80 @@
1
1
  import { HttpTransport } from './http';
2
- import type { Uom, CreateUomInput, UpdateUomInput, RateLine, CreateRateLineInput, UpdateRateLineInput, RateGrade, CreateRateGradeInput, UpdateRateGradeInput, SingleResponse, ListResponse, CreateResponse } from './types';
2
+ import type { Uom, CreateUomInput, UpdateUomInput, RateLine, CreateRateLineInput, UpdateRateLineInput, RateGrade, CreateRateGradeInput, UpdateRateGradeInput, SingleResponse, ListResponse, CreateResponse, BulkArchiveResult } from './types';
3
3
  declare class UomResource {
4
4
  private readonly http;
5
5
  constructor(http: HttpTransport);
6
+ /** Bug fix: this previously sent an `active` boolean param the backend
7
+ * never read (listUoms had no status concept at all) — the Archived/All
8
+ * filter silently no-opped. Now sends `status`, matching every other
9
+ * entity's convention, paired with Uom's newly-added soft archive. */
6
10
  list(options?: {
11
+ status?: 'active' | 'archived' | 'all';
12
+ /** @deprecated Never actually reached the backend filter — use `status`
13
+ * instead. Kept only so any existing caller that sets this doesn't hit
14
+ * a type error; has no effect. */
7
15
  active?: boolean;
8
16
  }): Promise<ListResponse<Uom>>;
9
17
  create(input: CreateUomInput): Promise<CreateResponse<Uom>>;
10
18
  update(id: string, input: UpdateUomInput): Promise<SingleResponse<Uom>>;
19
+ /** Hard delete. Prefer {@link batchArchive} for reversible removal. */
11
20
  remove(id: string): Promise<void>;
21
+ /** Archive many UoMs in one call (soft, flips `active`; distinct from the
22
+ * hard {@link remove} above — new capability). Reversible via
23
+ * {@link batchRestore}. */
24
+ batchArchive(ids: string[]): Promise<SingleResponse<BulkArchiveResult>>;
25
+ /** Restore (un-archive) many UoMs in one call. */
26
+ batchRestore(ids: string[]): Promise<SingleResponse<BulkArchiveResult>>;
12
27
  }
13
28
  declare class RateLineResource {
14
29
  private readonly http;
15
30
  constructor(http: HttpTransport);
31
+ /** Bug fix: this previously sent an `active` boolean param the backend
32
+ * never read (it reads `status`) — the Archived/All filter silently
33
+ * no-opped. Now sends `status`, matching every other entity. */
16
34
  list(options?: {
17
35
  binding?: string;
36
+ status?: 'active' | 'archived' | 'all';
37
+ /** @deprecated Never actually reached the backend filter (it reads
38
+ * `status`, not `active`) — use `status` instead. Kept only so any
39
+ * existing caller that sets this doesn't hit a type error; has no
40
+ * effect. */
18
41
  active?: boolean;
19
42
  }): Promise<ListResponse<RateLine>>;
20
43
  create(input: CreateRateLineInput): Promise<CreateResponse<RateLine>>;
21
44
  update(id: string, input: UpdateRateLineInput): Promise<SingleResponse<RateLine>>;
45
+ /** Hard delete. 2026-07-24: previously soft-archived (matched Archive), which made
46
+ * the two indistinguishable; now really deletes. Prefer {@link batchArchive}
47
+ * for reversible removal. */
22
48
  remove(id: string): Promise<void>;
49
+ /** Archive many rate lines in one call. Reversible via {@link batchRestore}. */
50
+ batchArchive(ids: string[]): Promise<SingleResponse<BulkArchiveResult>>;
51
+ /** Restore (un-archive) many rate lines in one call. */
52
+ batchRestore(ids: string[]): Promise<SingleResponse<BulkArchiveResult>>;
23
53
  }
24
54
  declare class RateGradeResource {
25
55
  private readonly http;
26
56
  constructor(http: HttpTransport);
57
+ /** Bug fix: this previously sent an `active` boolean param the backend
58
+ * never read (it reads `status`) — the Archived/All filter silently
59
+ * no-opped. Now sends `status`, matching every other entity. */
27
60
  list(options?: {
61
+ status?: 'active' | 'archived' | 'all';
62
+ /** @deprecated Never actually reached the backend filter (it reads
63
+ * `status`, not `active`) — use `status` instead. Kept only so any
64
+ * existing caller that sets this doesn't hit a type error; has no
65
+ * effect. */
28
66
  active?: boolean;
29
67
  }): Promise<ListResponse<RateGrade>>;
30
68
  create(input: CreateRateGradeInput): Promise<CreateResponse<RateGrade>>;
31
69
  update(id: string, input: UpdateRateGradeInput): Promise<SingleResponse<RateGrade>>;
70
+ /** Hard delete. 2026-07-24: previously soft-archived (matched Archive), which made
71
+ * the two indistinguishable; now really deletes. Prefer {@link batchArchive}
72
+ * for reversible removal. */
32
73
  remove(id: string): Promise<void>;
74
+ /** Archive many rate grades in one call. Reversible via {@link batchRestore}. */
75
+ batchArchive(ids: string[]): Promise<SingleResponse<BulkArchiveResult>>;
76
+ /** Restore (un-archive) many rate grades in one call. */
77
+ batchRestore(ids: string[]): Promise<SingleResponse<BulkArchiveResult>>;
33
78
  }
34
79
  /**
35
80
  * Rate reference catalogs (UoM / RateLine / RateGrade) — the vocabulary a rate
@@ -1 +1 @@
1
- {"version":3,"file":"rateCatalog.d.ts","sourceRoot":"","sources":["../src/rateCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,GAAG,EACH,cAAc,EACd,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,cAAM,WAAW;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAUhE,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAQ3D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAQvE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxC;AAED,cAAM,gBAAgB;IACR,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,CAAC,OAAO,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAW7B,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAQrE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAQjF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxC;AAED,cAAM,iBAAiB;IACT,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAUtE,MAAM,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAQvE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAQnF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxC;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;gBAEvB,IAAI,EAAE,aAAa;CAKhC"}
1
+ {"version":3,"file":"rateCatalog.d.ts","sourceRoot":"","sources":["../src/rateCatalog.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,14 @@ class UomResource {
6
6
  constructor(http) {
7
7
  this.http = http;
8
8
  }
9
+ /** Bug fix: this previously sent an `active` boolean param the backend
10
+ * never read (listUoms had no status concept at all) — the Archived/All
11
+ * filter silently no-opped. Now sends `status`, matching every other
12
+ * entity's convention, paired with Uom's newly-added soft archive. */
9
13
  async list(options) {
10
14
  const query = {};
11
- if (options?.active !== undefined)
12
- query.active = String(options.active);
15
+ if (options?.status)
16
+ query.status = options.status;
13
17
  return this.http.request({
14
18
  method: 'GET',
15
19
  path: '/v1/rate-catalog/uoms',
@@ -30,24 +34,46 @@ class UomResource {
30
34
  body: input,
31
35
  });
32
36
  }
37
+ /** Hard delete. Prefer {@link batchArchive} for reversible removal. */
33
38
  async remove(id) {
34
39
  await this.http.request({
35
40
  method: 'DELETE',
36
41
  path: `/v1/rate-catalog/uoms/${encodeURIComponent(id)}`,
37
42
  });
38
43
  }
44
+ /** Archive many UoMs in one call (soft, flips `active`; distinct from the
45
+ * hard {@link remove} above — new capability). Reversible via
46
+ * {@link batchRestore}. */
47
+ async batchArchive(ids) {
48
+ return this.http.request({
49
+ method: 'POST',
50
+ path: '/v1/rate-catalog/uoms/batch-archive',
51
+ body: { ids },
52
+ });
53
+ }
54
+ /** Restore (un-archive) many UoMs in one call. */
55
+ async batchRestore(ids) {
56
+ return this.http.request({
57
+ method: 'POST',
58
+ path: '/v1/rate-catalog/uoms/batch-restore',
59
+ body: { ids },
60
+ });
61
+ }
39
62
  }
40
63
  class RateLineResource {
41
64
  http;
42
65
  constructor(http) {
43
66
  this.http = http;
44
67
  }
68
+ /** Bug fix: this previously sent an `active` boolean param the backend
69
+ * never read (it reads `status`) — the Archived/All filter silently
70
+ * no-opped. Now sends `status`, matching every other entity. */
45
71
  async list(options) {
46
72
  const query = {};
47
73
  if (options?.binding)
48
74
  query.binding = options.binding;
49
- if (options?.active !== undefined)
50
- query.active = String(options.active);
75
+ if (options?.status)
76
+ query.status = options.status;
51
77
  return this.http.request({
52
78
  method: 'GET',
53
79
  path: '/v1/rate-catalog/lines',
@@ -68,22 +94,44 @@ class RateLineResource {
68
94
  body: input,
69
95
  });
70
96
  }
97
+ /** Hard delete. 2026-07-24: previously soft-archived (matched Archive), which made
98
+ * the two indistinguishable; now really deletes. Prefer {@link batchArchive}
99
+ * for reversible removal. */
71
100
  async remove(id) {
72
101
  await this.http.request({
73
102
  method: 'DELETE',
74
103
  path: `/v1/rate-catalog/lines/${encodeURIComponent(id)}`,
75
104
  });
76
105
  }
106
+ /** Archive many rate lines in one call. Reversible via {@link batchRestore}. */
107
+ async batchArchive(ids) {
108
+ return this.http.request({
109
+ method: 'POST',
110
+ path: '/v1/rate-catalog/lines/batch-archive',
111
+ body: { ids },
112
+ });
113
+ }
114
+ /** Restore (un-archive) many rate lines in one call. */
115
+ async batchRestore(ids) {
116
+ return this.http.request({
117
+ method: 'POST',
118
+ path: '/v1/rate-catalog/lines/batch-restore',
119
+ body: { ids },
120
+ });
121
+ }
77
122
  }
78
123
  class RateGradeResource {
79
124
  http;
80
125
  constructor(http) {
81
126
  this.http = http;
82
127
  }
128
+ /** Bug fix: this previously sent an `active` boolean param the backend
129
+ * never read (it reads `status`) — the Archived/All filter silently
130
+ * no-opped. Now sends `status`, matching every other entity. */
83
131
  async list(options) {
84
132
  const query = {};
85
- if (options?.active !== undefined)
86
- query.active = String(options.active);
133
+ if (options?.status)
134
+ query.status = options.status;
87
135
  return this.http.request({
88
136
  method: 'GET',
89
137
  path: '/v1/rate-catalog/grades',
@@ -104,12 +152,31 @@ class RateGradeResource {
104
152
  body: input,
105
153
  });
106
154
  }
155
+ /** Hard delete. 2026-07-24: previously soft-archived (matched Archive), which made
156
+ * the two indistinguishable; now really deletes. Prefer {@link batchArchive}
157
+ * for reversible removal. */
107
158
  async remove(id) {
108
159
  await this.http.request({
109
160
  method: 'DELETE',
110
161
  path: `/v1/rate-catalog/grades/${encodeURIComponent(id)}`,
111
162
  });
112
163
  }
164
+ /** Archive many rate grades in one call. Reversible via {@link batchRestore}. */
165
+ async batchArchive(ids) {
166
+ return this.http.request({
167
+ method: 'POST',
168
+ path: '/v1/rate-catalog/grades/batch-archive',
169
+ body: { ids },
170
+ });
171
+ }
172
+ /** Restore (un-archive) many rate grades in one call. */
173
+ async batchRestore(ids) {
174
+ return this.http.request({
175
+ method: 'POST',
176
+ path: '/v1/rate-catalog/grades/batch-restore',
177
+ body: { ids },
178
+ });
179
+ }
113
180
  }
114
181
  /**
115
182
  * Rate reference catalogs (UoM / RateLine / RateGrade) — the vocabulary a rate
@@ -1 +1 @@
1
- {"version":3,"file":"rateCatalog.js","sourceRoot":"","sources":["../src/rateCatalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rateCatalog.js","sourceRoot":"","sources":["../src/rateCatalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { SchedulePeriod } from './types';
2
+ /** The recognisable shapes a span can take. `custom` = anything else. */
3
+ export type SchedulePeriodGranularity = 'year' | 'quarter' | 'month' | 'fiscal-year' | 'custom';
4
+ /**
5
+ * Classify a span by its shape. A period is only a `year` / `quarter` / `month`
6
+ * if it covers exactly that unit — a stretch that merely starts on Jan 1 but
7
+ * ends in November is `custom`, not a year, because calling it "2027" would
8
+ * overstate what the customer committed to.
9
+ */
10
+ export declare function schedulePeriodGranularity(period: SchedulePeriod): SchedulePeriodGranularity;
11
+ /**
12
+ * Human label for a span: `2027`, `Q2 2027`, `Mar 2027`, `FY 2026-27`, or a raw
13
+ * `2027-03-15 – 2027-04-28` range when the span matches no convention.
14
+ */
15
+ export declare function formatSchedulePeriod(period: SchedulePeriod): string;
16
+ //# sourceMappingURL=schedulePeriods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedulePeriods.d.ts","sourceRoot":"","sources":["../src/schedulePeriods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAoB9C,yEAAyE;AACzE,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;AAmBhG;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,yBAAyB,CAmB3F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAiBnE"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.schedulePeriodGranularity = schedulePeriodGranularity;
4
+ exports.formatSchedulePeriod = formatSchedulePeriod;
5
+ /**
6
+ * Display helpers for arbitrary-period schedules (`effectiveVolumesByPeriod` /
7
+ * `effectivePricesByPeriod`).
8
+ *
9
+ * Granularity is NOT stored on a schedule point — it's derivable from the span,
10
+ * and a stored label can contradict the dates. It lives here rather than in each
11
+ * consumer so every app labels the same span identically.
12
+ *
13
+ * Note there is deliberately no rollup helper here: the yearly rollup CPQ costs
14
+ * against is computed server-side at write time, so there is exactly one
15
+ * implementation of it and clients can't disagree with the stored column.
16
+ */
17
+ const MONTHS = [
18
+ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
19
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',
20
+ ];
21
+ function parts(iso) {
22
+ const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(iso);
23
+ if (!m)
24
+ return null;
25
+ return { year: Number(m[1]), month: Number(m[2]), day: Number(m[3]) };
26
+ }
27
+ function lastDayOfMonth(year, month) {
28
+ return new Date(Date.UTC(year, month, 0)).getUTCDate();
29
+ }
30
+ /**
31
+ * Classify a span by its shape. A period is only a `year` / `quarter` / `month`
32
+ * if it covers exactly that unit — a stretch that merely starts on Jan 1 but
33
+ * ends in November is `custom`, not a year, because calling it "2027" would
34
+ * overstate what the customer committed to.
35
+ */
36
+ function schedulePeriodGranularity(period) {
37
+ const start = parts(period.periodStart);
38
+ const end = parts(period.periodEnd);
39
+ if (!start || !end)
40
+ return 'custom';
41
+ const endsMonth = end.day === lastDayOfMonth(end.year, end.month);
42
+ if (start.day !== 1 || !endsMonth)
43
+ return 'custom';
44
+ if (start.year === end.year) {
45
+ if (start.month === 1 && end.month === 12)
46
+ return 'year';
47
+ if (start.month === end.month)
48
+ return 'month';
49
+ // Calendar quarters only — Feb-Apr is a 3-month custom block, not "Q1".
50
+ if (end.month - start.month === 2 && (start.month - 1) % 3 === 0)
51
+ return 'quarter';
52
+ return 'custom';
53
+ }
54
+ // A 12-month span crossing exactly one year boundary reads as a fiscal year.
55
+ if (end.year === start.year + 1 && end.month === start.month - 1)
56
+ return 'fiscal-year';
57
+ return 'custom';
58
+ }
59
+ /**
60
+ * Human label for a span: `2027`, `Q2 2027`, `Mar 2027`, `FY 2026-27`, or a raw
61
+ * `2027-03-15 – 2027-04-28` range when the span matches no convention.
62
+ */
63
+ function formatSchedulePeriod(period) {
64
+ const start = parts(period.periodStart);
65
+ const end = parts(period.periodEnd);
66
+ if (!start || !end)
67
+ return `${period.periodStart} – ${period.periodEnd}`;
68
+ switch (schedulePeriodGranularity(period)) {
69
+ case 'year':
70
+ return String(start.year);
71
+ case 'quarter':
72
+ return `Q${Math.floor((start.month - 1) / 3) + 1} ${start.year}`;
73
+ case 'month':
74
+ return `${MONTHS[start.month - 1]} ${start.year}`;
75
+ case 'fiscal-year':
76
+ return `FY ${start.year}-${String(end.year % 100).padStart(2, '0')}`;
77
+ default:
78
+ return `${period.periodStart} – ${period.periodEnd}`;
79
+ }
80
+ }
81
+ //# sourceMappingURL=schedulePeriods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedulePeriods.js","sourceRoot":"","sources":["../src/schedulePeriods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { HttpTransport } from './http';
2
+ import type { Supplier, AuditLogEntry, CreateSupplierInput, UpdateSupplierInput, MergeRequest, ListSuppliersOptions, GetSupplierOptions, SingleResponse, ListResponse, CreateResponse } from './types';
3
+ export declare class SupplierResource {
4
+ private readonly http;
5
+ constructor(http: HttpTransport);
6
+ list(options?: ListSuppliersOptions): Promise<ListResponse<Supplier>>;
7
+ get(id: string, options?: GetSupplierOptions): Promise<SingleResponse<Supplier>>;
8
+ create(input: CreateSupplierInput, idempotencyKey?: string): Promise<CreateResponse<Supplier>>;
9
+ update(id: string, input: UpdateSupplierInput, idempotencyKey?: string): Promise<SingleResponse<Supplier>>;
10
+ archive(id: string): Promise<void>;
11
+ merge(request: MergeRequest, idempotencyKey?: string): Promise<SingleResponse<Supplier>>;
12
+ getAudit(id: string): Promise<ListResponse<AuditLogEntry>>;
13
+ }
14
+ //# sourceMappingURL=suppliers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suppliers.d.ts","sourceRoot":"","sources":["../src/suppliers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAmBrE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAYhF,MAAM,CACV,KAAK,EAAE,mBAAmB,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAS9B,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mBAAmB,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAS9B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlC,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAS9B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;CAMjE"}