@campfire-interactive/master-data-client 4.13.0 → 4.14.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/dist/attributeDefinitions.d.ts +15 -0
- package/dist/attributeDefinitions.d.ts.map +1 -0
- package/dist/attributeDefinitions.js +70 -0
- package/dist/attributeDefinitions.js.map +1 -0
- package/dist/attributeGroups.d.ts +14 -0
- package/dist/attributeGroups.d.ts.map +1 -0
- package/dist/attributeGroups.js +51 -0
- package/dist/attributeGroups.js.map +1 -0
- package/dist/attributeOptions.d.ts +18 -0
- package/dist/attributeOptions.d.ts.map +1 -0
- package/dist/attributeOptions.js +63 -0
- package/dist/attributeOptions.js.map +1 -0
- package/dist/attributeValidation.d.ts +15 -0
- package/dist/attributeValidation.d.ts.map +1 -0
- package/dist/attributeValidation.js +141 -0
- package/dist/attributeValidation.js.map +1 -0
- package/dist/client.d.ts +12 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +18 -0
- package/dist/client.js.map +1 -1
- package/dist/companies.d.ts.map +1 -1
- package/dist/companies.js +2 -0
- package/dist/companies.js.map +1 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +5 -2
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/ownership.d.ts +21 -0
- package/dist/ownership.d.ts.map +1 -0
- package/dist/ownership.js +36 -0
- package/dist/ownership.js.map +1 -0
- package/dist/programs.d.ts.map +1 -1
- package/dist/programs.js +2 -0
- package/dist/programs.js.map +1 -1
- package/dist/quoteAsks.d.ts +66 -0
- package/dist/quoteAsks.d.ts.map +1 -0
- package/dist/quoteAsks.js +103 -0
- package/dist/quoteAsks.js.map +1 -0
- package/dist/quoteLines.d.ts +91 -0
- package/dist/quoteLines.d.ts.map +1 -0
- package/dist/quoteLines.js +147 -0
- package/dist/quoteLines.js.map +1 -0
- package/dist/quotes.d.ts +10 -5
- package/dist/quotes.d.ts.map +1 -1
- package/dist/quotes.js +10 -5
- package/dist/quotes.js.map +1 -1
- package/dist/rateBooks.d.ts +28 -1
- package/dist/rateBooks.d.ts.map +1 -1
- package/dist/rateBooks.js +73 -0
- package/dist/rateBooks.js.map +1 -1
- package/dist/rates.d.ts +6 -1
- package/dist/rates.d.ts.map +1 -1
- package/dist/rates.js +14 -0
- package/dist/rates.js.map +1 -1
- package/dist/types.d.ts +659 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QuoteLineResource = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Quote lines — the finished goods on a quote.
|
|
6
|
+
*
|
|
7
|
+
* A quote is MULTI-PART: it is the document the OEM receives and it carries one
|
|
8
|
+
* line per finished good, each with its own volume, cost and price. See the
|
|
9
|
+
* nextgen ADR `2026-08-05-multi-part-quotes.md`.
|
|
10
|
+
*
|
|
11
|
+
* Two things to know before using this:
|
|
12
|
+
*
|
|
13
|
+
* 1. **`Quote.partId` is now a derived mirror** of these lines and is
|
|
14
|
+
* deprecated. It reflects the FIRST line only, so it is lossy the moment a
|
|
15
|
+
* quote has more than one. Read `lines` here instead. It keeps working for
|
|
16
|
+
* the whole deprecation window — including writes, which transparently
|
|
17
|
+
* maintain the quote's single line — and is dropped in a later major.
|
|
18
|
+
*
|
|
19
|
+
* 2. **Never sum lines across competing quotes.** When an OEM asks for several
|
|
20
|
+
* competing groupings of the same parts, those are alternatives, not
|
|
21
|
+
* additions. `rollUp` covers ONE quote; anything aggregating across a round
|
|
22
|
+
* must dedupe by part.
|
|
23
|
+
*
|
|
24
|
+
* Cost is DERIVED, never authored: it reaches a line only through
|
|
25
|
+
* {@link setEffectiveCost}, published by whichever engine resolved it. There is
|
|
26
|
+
* no authored-cost field, deliberately — the earlier design had one whose only
|
|
27
|
+
* writer was a human, so it could store a per-grouping cost but never produce
|
|
28
|
+
* one, and went stale unnoticed on the next re-cost.
|
|
29
|
+
*/
|
|
30
|
+
class QuoteLineResource {
|
|
31
|
+
http;
|
|
32
|
+
constructor(http) {
|
|
33
|
+
this.http = http;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The quote's lines, each with resolved `terms` (volume / cost / price plus
|
|
37
|
+
* which tier each came from), and the quote-level `rollUp`.
|
|
38
|
+
*/
|
|
39
|
+
async list(quoteId) {
|
|
40
|
+
return this.http.request({
|
|
41
|
+
method: 'GET',
|
|
42
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/lines`,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The resolved line sets for MANY quotes, in one round trip.
|
|
47
|
+
*
|
|
48
|
+
* Use this instead of looping {@link list} whenever you read volume off a set
|
|
49
|
+
* of quotes — a per-quote fan-out is slow and, against a hub holding one warm
|
|
50
|
+
* instance, manufactures cold starts.
|
|
51
|
+
*
|
|
52
|
+
* Chunk to 200 ids per call (the server rejects more). Ids that don't exist, or
|
|
53
|
+
* belong to another tenant, are simply absent from the result — so index the
|
|
54
|
+
* response by `quoteId` rather than assuming it lines up positionally with the
|
|
55
|
+
* ids you passed. A quote that exists but has no finished goods comes back with
|
|
56
|
+
* an empty `lines` array.
|
|
57
|
+
*/
|
|
58
|
+
// Typed SingleResponse<T[]> rather than ListResponse<T>: this batch read is not
|
|
59
|
+
// paginated, so it carries no cursor/hasMore meta and claiming ListMeta would
|
|
60
|
+
// promise fields the server never sends.
|
|
61
|
+
async listForQuotes(quoteIds) {
|
|
62
|
+
return this.http.request({
|
|
63
|
+
method: 'GET',
|
|
64
|
+
path: '/v1/quote-lines',
|
|
65
|
+
query: { quoteIds: quoteIds.join(',') },
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Add a finished good to a quote. Returns the full line set, so a caller never
|
|
70
|
+
* has to re-fetch to get the new roll-up.
|
|
71
|
+
*
|
|
72
|
+
* Omit `partId` to have it resolved from `partNumber` against the parts
|
|
73
|
+
* catalog; it is left null when nothing matches, which is legal — soft
|
|
74
|
+
* enforcement, so a part number that hasn't been reconciled into the catalog
|
|
75
|
+
* can still be quoted. Pass `partId: null` to pin it null explicitly.
|
|
76
|
+
*/
|
|
77
|
+
async add(quoteId, input, idempotencyKey) {
|
|
78
|
+
return this.http.request({
|
|
79
|
+
method: 'POST',
|
|
80
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/lines`,
|
|
81
|
+
body: input,
|
|
82
|
+
idempotencyKey,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Update a line's AUTHORED terms. Derived cost/price are not settable here.
|
|
87
|
+
*
|
|
88
|
+
* A `note`-only patch is accepted while the quote is in review — flagging a bad
|
|
89
|
+
* part is something that happens DURING review. Anything touching the figures
|
|
90
|
+
* requires a pre-approval status (422 otherwise).
|
|
91
|
+
*/
|
|
92
|
+
async update(quoteId, lineId, input) {
|
|
93
|
+
return this.http.request({
|
|
94
|
+
method: 'PATCH',
|
|
95
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/lines/${encodeURIComponent(lineId)}`,
|
|
96
|
+
body: input,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/** Remove a finished good. The last line may be removed. */
|
|
100
|
+
async remove(quoteId, lineId) {
|
|
101
|
+
return this.http.request({
|
|
102
|
+
method: 'DELETE',
|
|
103
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/lines/${encodeURIComponent(lineId)}`,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Set the document order. `lineIds` must list every line on the quote exactly
|
|
108
|
+
* once (422 otherwise). Order also decides which line supplies the deprecated
|
|
109
|
+
* `quote.partId` mirror.
|
|
110
|
+
*/
|
|
111
|
+
async reorder(quoteId, lineIds) {
|
|
112
|
+
return this.http.request({
|
|
113
|
+
method: 'PUT',
|
|
114
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/lines/reorder`,
|
|
115
|
+
body: { lineIds },
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Publish a DERIVED per-line cost — the line-scoped mirror of
|
|
120
|
+
* `quotes.setEffectiveCost`, and the only way a cost reaches a line.
|
|
121
|
+
*
|
|
122
|
+
* Deliberately NOT gated on quote status: a re-cost must always be able to
|
|
123
|
+
* land, or the published number silently diverges from the cost model that
|
|
124
|
+
* produced it. When the figure lands on a quote already in approval the
|
|
125
|
+
* response sets `invalidatesApproval` — the caller owns what to do about it
|
|
126
|
+
* (OMSF voids the collected approvals and re-routes).
|
|
127
|
+
*/
|
|
128
|
+
async setEffectiveCost(quoteId, lineId, input, idempotencyKey) {
|
|
129
|
+
return this.http.request({
|
|
130
|
+
method: 'PATCH',
|
|
131
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/lines/${encodeURIComponent(lineId)}/effective-cost`,
|
|
132
|
+
body: input,
|
|
133
|
+
idempotencyKey,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
/** Price-side sibling of {@link setEffectiveCost}. */
|
|
137
|
+
async setEffectivePrice(quoteId, lineId, input, idempotencyKey) {
|
|
138
|
+
return this.http.request({
|
|
139
|
+
method: 'PATCH',
|
|
140
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/lines/${encodeURIComponent(lineId)}/effective-price`,
|
|
141
|
+
body: input,
|
|
142
|
+
idempotencyKey,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.QuoteLineResource = QuoteLineResource;
|
|
147
|
+
//# sourceMappingURL=quoteLines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quoteLines.js","sourceRoot":"","sources":["../src/quoteLines.ts"],"names":[],"mappings":"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"}
|
package/dist/quotes.d.ts
CHANGED
|
@@ -19,13 +19,18 @@ export declare class QuoteResource {
|
|
|
19
19
|
get(id: string, options?: GetQuoteOptions): Promise<SingleResponse<Quote>>;
|
|
20
20
|
create(input: CreateQuoteInput, idempotencyKey?: string): Promise<CreateResponse<Quote>>;
|
|
21
21
|
/**
|
|
22
|
-
* Issue the next `
|
|
22
|
+
* Issue the next `Q-YYYY-NNN` for the caller's tenant — the authoritative
|
|
23
23
|
* quote-number mint (master-data owns the number and enforces `quoteNumber`
|
|
24
24
|
* uniqueness). Atomic per (tenant, year); the first call of a year seeds the
|
|
25
|
-
* counter above the existing numeric max
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* passed four digits.
|
|
25
|
+
* counter above the existing numeric max, across both prefixes. Returns
|
|
26
|
+
* `{ quoteNumber }`. Both CPQ and OMSF call this instead of scanning the quote
|
|
27
|
+
* list and incrementing — scans that wedged at 10000 once a tenant's yearly
|
|
28
|
+
* sequence passed four digits (CPQ) and raced on concurrent creates (OMSF).
|
|
29
|
+
*
|
|
30
|
+
* **The prefix changed from `RFQ-` to `Q-` on 2026-08-06**, because `RFQ-` now
|
|
31
|
+
* names the customer's request that several competing quotes answer. Quotes
|
|
32
|
+
* numbered before the change keep their `RFQ-` numbers — treat a quote number
|
|
33
|
+
* as an opaque string and never parse a prefix out of it.
|
|
29
34
|
*/
|
|
30
35
|
nextNumber(): Promise<SingleResponse<{
|
|
31
36
|
quoteNumber: string;
|
package/dist/quotes.d.ts.map
CHANGED
|
@@ -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,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
|
|
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;;;;;;;;;;;;;OAaG;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
|
@@ -68,13 +68,18 @@ class QuoteResource {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
|
-
* Issue the next `
|
|
71
|
+
* Issue the next `Q-YYYY-NNN` for the caller's tenant — the authoritative
|
|
72
72
|
* quote-number mint (master-data owns the number and enforces `quoteNumber`
|
|
73
73
|
* uniqueness). Atomic per (tenant, year); the first call of a year seeds the
|
|
74
|
-
* counter above the existing numeric max
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* passed four digits.
|
|
74
|
+
* counter above the existing numeric max, across both prefixes. Returns
|
|
75
|
+
* `{ quoteNumber }`. Both CPQ and OMSF call this instead of scanning the quote
|
|
76
|
+
* list and incrementing — scans that wedged at 10000 once a tenant's yearly
|
|
77
|
+
* sequence passed four digits (CPQ) and raced on concurrent creates (OMSF).
|
|
78
|
+
*
|
|
79
|
+
* **The prefix changed from `RFQ-` to `Q-` on 2026-08-06**, because `RFQ-` now
|
|
80
|
+
* names the customer's request that several competing quotes answer. Quotes
|
|
81
|
+
* numbered before the change keep their `RFQ-` numbers — treat a quote number
|
|
82
|
+
* as an opaque string and never parse a prefix out of it.
|
|
78
83
|
*/
|
|
79
84
|
async nextNumber() {
|
|
80
85
|
return this.http.request({
|
package/dist/quotes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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
|
|
1
|
+
{"version":3,"file":"quotes.js","sourceRoot":"","sources":["../src/quotes.ts"],"names":[],"mappings":"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"}
|
package/dist/rateBooks.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpTransport } from './http';
|
|
2
|
-
import type { RateBook, CreateRateBookInput, UpdateRateBookInput, ListRateBooksOptions, SingleResponse, ListResponse, CreateResponse } from './types';
|
|
2
|
+
import type { RateBook, CreateRateBookInput, UpdateRateBookInput, ListRateBooksOptions, RateBookSummary, RateBookPlant, RateBookEquipmentPage, MachineRateLine, CategoryRateRow, RateCategoryKind, RateContainer, ListRateBookEquipmentOptions, SingleResponse, ListResponse, CreateResponse } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Rate Books (v1) — the versioned, effective-dated container for rate values.
|
|
5
5
|
* CPQ-verbatim shape adopted in the 2026-07-02 consolidation. Publish freezes
|
|
@@ -14,5 +14,32 @@ export declare class RateBookResource {
|
|
|
14
14
|
update(id: string, input: UpdateRateBookInput, idempotencyKey?: string): Promise<SingleResponse<RateBook>>;
|
|
15
15
|
archive(id: string): Promise<void>;
|
|
16
16
|
publish(id: string, idempotencyKey?: string): Promise<SingleResponse<RateBook>>;
|
|
17
|
+
/** The tenant's active rate book summary, or null when none is active. */
|
|
18
|
+
getActive(): Promise<SingleResponse<{
|
|
19
|
+
book: RateBookSummary | null;
|
|
20
|
+
}>>;
|
|
21
|
+
/** Distinct plants (by opaque plantId) carrying rate elements in the book,
|
|
22
|
+
* with per-plant element counts. */
|
|
23
|
+
listPlants(bookId: string): Promise<SingleResponse<{
|
|
24
|
+
rows: RateBookPlant[];
|
|
25
|
+
}>>;
|
|
26
|
+
/** Cursor-paginated equipment for a plant in the book. `lens` defaults to
|
|
27
|
+
* 'rated' (machines with a rate in this book); 'all' unions the plant's live
|
|
28
|
+
* machine master. */
|
|
29
|
+
listEquipment(bookId: string, plantId: string, options?: ListRateBookEquipmentOptions): Promise<SingleResponse<RateBookEquipmentPage>>;
|
|
30
|
+
/** The rate-line × year value matrix for one machine in the book. */
|
|
31
|
+
getMachineRates(bookId: string, plantId: string, equipmentCode: string): Promise<SingleResponse<{
|
|
32
|
+
rows: MachineRateLine[];
|
|
33
|
+
}>>;
|
|
34
|
+
/** Category rate rows (global defaults merged with a plant's overrides) for a
|
|
35
|
+
* kind (material/packaging/freight/labor). Omit plantId for globals only. */
|
|
36
|
+
listCategoryRates(bookId: string, kind: RateCategoryKind, plantId?: string): Promise<SingleResponse<{
|
|
37
|
+
rows: CategoryRateRow[];
|
|
38
|
+
}>>;
|
|
39
|
+
/** Distinct packaging containers available in the active book (global merged
|
|
40
|
+
* with the given plant's overrides). */
|
|
41
|
+
listContainers(plantId?: string): Promise<SingleResponse<{
|
|
42
|
+
rows: RateContainer[];
|
|
43
|
+
}>>;
|
|
17
44
|
}
|
|
18
45
|
//# sourceMappingURL=rateBooks.d.ts.map
|
package/dist/rateBooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateBooks.d.ts","sourceRoot":"","sources":["../src/rateBooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,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;IAkBrE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAOlD,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,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"rateBooks.d.ts","sourceRoot":"","sources":["../src/rateBooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,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;IAkBrE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAOlD,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,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAcrF,0EAA0E;IACpE,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;QAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAO5E;yCACqC;IAC/B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAAE,IAAI,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC,CAAC;IAOpF;;0BAEsB;IAChB,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;IAgBjD,qEAAqE;IAC/D,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC;QAAE,IAAI,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC,CAAC;IAOvD;kFAC8E;IACxE,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,EACtB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;QAAE,IAAI,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC,CAAC;IAUvD;6CACyC;IACnC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAAE,IAAI,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC,CAAC;CAS3F"}
|
package/dist/rateBooks.js
CHANGED
|
@@ -71,6 +71,79 @@ class RateBookResource {
|
|
|
71
71
|
idempotencyKey,
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
|
+
// ─── Costing-UI aggregation reads (CPQ-verbatim shapes) ────────────────────
|
|
75
|
+
// Read/aggregation surface the CPQ costing UI needs. Each mirrors CPQ's rate
|
|
76
|
+
// read API field-for-field so the consumer can repoint here as a near
|
|
77
|
+
// drop-in. All are tenant-scoped reads (roles owner/admin/member).
|
|
78
|
+
/** The tenant's active rate book summary, or null when none is active. */
|
|
79
|
+
async getActive() {
|
|
80
|
+
return this.http.request({
|
|
81
|
+
method: 'GET',
|
|
82
|
+
path: '/v1/rate-books/active',
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/** Distinct plants (by opaque plantId) carrying rate elements in the book,
|
|
86
|
+
* with per-plant element counts. */
|
|
87
|
+
async listPlants(bookId) {
|
|
88
|
+
return this.http.request({
|
|
89
|
+
method: 'GET',
|
|
90
|
+
path: `/v1/rate-books/${encodeURIComponent(bookId)}/plants`,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/** Cursor-paginated equipment for a plant in the book. `lens` defaults to
|
|
94
|
+
* 'rated' (machines with a rate in this book); 'all' unions the plant's live
|
|
95
|
+
* machine master. */
|
|
96
|
+
async listEquipment(bookId, plantId, options) {
|
|
97
|
+
const query = {};
|
|
98
|
+
if (options) {
|
|
99
|
+
if (options.q)
|
|
100
|
+
query.q = options.q;
|
|
101
|
+
if (options.family)
|
|
102
|
+
query.family = options.family;
|
|
103
|
+
if (options.cursor)
|
|
104
|
+
query.cursor = options.cursor;
|
|
105
|
+
if (options.limit !== undefined)
|
|
106
|
+
query.limit = String(options.limit);
|
|
107
|
+
if (options.lens)
|
|
108
|
+
query.lens = options.lens;
|
|
109
|
+
}
|
|
110
|
+
return this.http.request({
|
|
111
|
+
method: 'GET',
|
|
112
|
+
path: `/v1/rate-books/${encodeURIComponent(bookId)}/plants/${encodeURIComponent(plantId)}/equipment`,
|
|
113
|
+
query,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/** The rate-line × year value matrix for one machine in the book. */
|
|
117
|
+
async getMachineRates(bookId, plantId, equipmentCode) {
|
|
118
|
+
return this.http.request({
|
|
119
|
+
method: 'GET',
|
|
120
|
+
path: `/v1/rate-books/${encodeURIComponent(bookId)}/plants/${encodeURIComponent(plantId)}/equipment/${encodeURIComponent(equipmentCode)}/rates`,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/** Category rate rows (global defaults merged with a plant's overrides) for a
|
|
124
|
+
* kind (material/packaging/freight/labor). Omit plantId for globals only. */
|
|
125
|
+
async listCategoryRates(bookId, kind, plantId) {
|
|
126
|
+
const query = { kind };
|
|
127
|
+
if (plantId)
|
|
128
|
+
query.plantId = plantId;
|
|
129
|
+
return this.http.request({
|
|
130
|
+
method: 'GET',
|
|
131
|
+
path: `/v1/rate-books/${encodeURIComponent(bookId)}/rates`,
|
|
132
|
+
query,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/** Distinct packaging containers available in the active book (global merged
|
|
136
|
+
* with the given plant's overrides). */
|
|
137
|
+
async listContainers(plantId) {
|
|
138
|
+
const query = {};
|
|
139
|
+
if (plantId)
|
|
140
|
+
query.plantId = plantId;
|
|
141
|
+
return this.http.request({
|
|
142
|
+
method: 'GET',
|
|
143
|
+
path: '/v1/rate-containers',
|
|
144
|
+
query,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
74
147
|
}
|
|
75
148
|
exports.RateBookResource = RateBookResource;
|
|
76
149
|
//# sourceMappingURL=rateBooks.js.map
|
package/dist/rateBooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateBooks.js","sourceRoot":"","sources":["../src/rateBooks.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"rateBooks.js","sourceRoot":"","sources":["../src/rateBooks.ts"],"names":[],"mappings":"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"}
|
package/dist/rates.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpTransport } from './http';
|
|
2
|
-
import type { RateLookupInput, RateLookupResult, SingleResponse } from './types';
|
|
2
|
+
import type { RateLookupInput, RateLookupResult, RateSnapshot, SingleResponse } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Consumer-facing read surface for rate values. Resolves a single rate value
|
|
5
5
|
* from the active rate model without dealing with book/element lifecycle.
|
|
@@ -8,5 +8,10 @@ export declare class RatesResource {
|
|
|
8
8
|
private readonly http;
|
|
9
9
|
constructor(http: HttpTransport);
|
|
10
10
|
lookup(input: RateLookupInput): Promise<SingleResponse<RateLookupResult>>;
|
|
11
|
+
/**
|
|
12
|
+
* Bulk rate set for consumer per-run caching (CPQ costing). Fetch once per
|
|
13
|
+
* calc run and resolve rates in-memory instead of calling `lookup` per driver.
|
|
14
|
+
*/
|
|
15
|
+
snapshot(asOf?: string): Promise<SingleResponse<RateSnapshot>>;
|
|
11
16
|
}
|
|
12
17
|
//# sourceMappingURL=rates.d.ts.map
|
package/dist/rates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rates.d.ts","sourceRoot":"","sources":["../src/rates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"rates.d.ts","sourceRoot":"","sources":["../src/rates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE/F;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAE1C,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAoB/E;;;OAGG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;CASrE"}
|
package/dist/rates.js
CHANGED
|
@@ -40,6 +40,20 @@ class RatesResource {
|
|
|
40
40
|
query,
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Bulk rate set for consumer per-run caching (CPQ costing). Fetch once per
|
|
45
|
+
* calc run and resolve rates in-memory instead of calling `lookup` per driver.
|
|
46
|
+
*/
|
|
47
|
+
async snapshot(asOf) {
|
|
48
|
+
const query = {};
|
|
49
|
+
if (asOf)
|
|
50
|
+
query.asOf = asOf;
|
|
51
|
+
return this.http.request({
|
|
52
|
+
method: 'GET',
|
|
53
|
+
path: '/v1/rates/snapshot',
|
|
54
|
+
query,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
43
57
|
}
|
|
44
58
|
exports.RatesResource = RatesResource;
|
|
45
59
|
//# sourceMappingURL=rates.js.map
|
package/dist/rates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rates.js","sourceRoot":"","sources":["../src/rates.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAa,aAAa;IACK;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,UAAU;YAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAC1D,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACjD,IAAI,KAAK,CAAC,aAAa;YAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACnE,IAAI,KAAK,CAAC,WAAW;YAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7D,IAAI,KAAK,CAAC,UAAU;YAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAC1D,IAAI,KAAK,CAAC,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,IAAI,KAAK,CAAC,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAmC;YACzD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB;YACxB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"rates.js","sourceRoot":"","sources":["../src/rates.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAa,aAAa;IACK;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,IAAI,KAAK,CAAC,UAAU;YAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAC1D,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,IAAI,KAAK,CAAC,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACjD,IAAI,KAAK,CAAC,aAAa;YAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACnE,IAAI,KAAK,CAAC,WAAW;YAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7D,IAAI,KAAK,CAAC,UAAU;YAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAC1D,IAAI,KAAK,CAAC,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,IAAI,KAAK,CAAC,SAAS;YAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACvD,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAmC;YACzD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB;YACxB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAa;QAC1B,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA+B;YACrD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,oBAAoB;YAC1B,KAAK;SACN,CAAC,CAAC;IACL,CAAC;CACF;AApCD,sCAoCC"}
|