@campfire-interactive/master-data-client 5.29.0 → 5.30.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/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -0
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/programs.d.ts +65 -0
- package/dist/programs.d.ts.map +1 -0
- package/dist/programs.js +193 -0
- package/dist/programs.js.map +1 -0
- package/dist/quoteAsks.d.ts +18 -2
- package/dist/quoteAsks.d.ts.map +1 -1
- package/dist/quoteAsks.js +23 -2
- package/dist/quoteAsks.js.map +1 -1
- package/dist/rfqs.d.ts +103 -0
- package/dist/rfqs.d.ts.map +1 -0
- package/dist/rfqs.js +148 -0
- package/dist/rfqs.js.map +1 -0
- package/dist/standardAttributes.d.ts +75 -0
- package/dist/standardAttributes.d.ts.map +1 -0
- package/dist/standardAttributes.js +183 -0
- package/dist/standardAttributes.js.map +1 -0
- package/dist/types.d.ts +172 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +31 -31
package/dist/quoteAsks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quoteAsks.js","sourceRoot":"","sources":["../src/quoteAsks.ts"],"names":[],"mappings":";;;AAWA
|
|
1
|
+
{"version":3,"file":"quoteAsks.js","sourceRoot":"","sources":["../src/quoteAsks.ts"],"names":[],"mappings":";;;AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,2CAA2C;AAC3C,MAAa,gBAAgB;IACE;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;gDAC4C;IAC5C,KAAK,CAAC,IAAI,CAAC,OAA8B;QACvC,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,IAAI,OAAO,EAAE,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACnD,IAAI,OAAO,EAAE,iBAAiB;YAAE,KAAK,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACpF,IAAI,OAAO,EAAE,aAAa;YAAE,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoC;YAC1D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB;YACtB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,uCAAuC;IACvC,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAiC;YACvD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SACjD,CAAC,CAAC;IACL,CAAC;IAED;;+EAE2E;IAC3E,wEAAwE;IACxE,gEAAgE;IAChE,KAAK,CAAC,MAAM,CACV,KAA0B,EAC1B,cAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B;YACjD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,KAAK;YACX,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,0CAA0C;IAC1C,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAA0B;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA2B;YACjD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAChD,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,0CAA0C;IAC1C,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoD;YAC1E,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SACjD,CAAC,CAAC;IACL,CAAC;CACF;AA7ED,4CA6EC"}
|
package/dist/rfqs.d.ts
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { HttpTransport } from './http';
|
|
2
|
+
import type { Rfq, RfqDetail, RfqSummary, CreateRfqInput, UpdateRfqInput, ListRfqsOptions, SingleResponse } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* RFQs — ONE customer request; the competing quotes are its options.
|
|
5
|
+
*
|
|
6
|
+
* The level ABOVE the quote. An OEM asks for several COMPETING groupings of the
|
|
7
|
+
* same parts and picks one ("give me four prices on A3 bumpers: base + S line,
|
|
8
|
+
* RS alone, wagon alone, all four"); each grouping is a `Quote`, and the RFQ is
|
|
9
|
+
* what makes that set nameable. Without it "the losers" is not a set the system
|
|
10
|
+
* can name, and a shared nullable `opportunityId` is not a grouping — it is
|
|
11
|
+
* nullable, it drifts, and an opportunity spans rounds. See the nextgen ADR
|
|
12
|
+
* `2026-08-05-multi-part-quotes.md`.
|
|
13
|
+
*
|
|
14
|
+
* **A finer grain than an opportunity.** Audi asking for four prices in March
|
|
15
|
+
* and re-quoting in September is two RFQs on one opportunity. `opportunityId`
|
|
16
|
+
* is carried for reporting and is never used to decide competition.
|
|
17
|
+
*
|
|
18
|
+
* **A quote joins an RFQ via `rfqId` on the quote** (`quotes.create` /
|
|
19
|
+
* `quotes.update`), not through a method here. The join is validated to match
|
|
20
|
+
* the RFQ's customer — an RFQ is one OEM's request, and a foreign quote inside
|
|
21
|
+
* it would make "these compete with each other" false.
|
|
22
|
+
*
|
|
23
|
+
* **⚠ NEVER SUM AN RFQ'S QUOTES.** They are alternatives; three of four lose on
|
|
24
|
+
* every multi-scenario RFQ by construction. `range` (min/max) is the only honest
|
|
25
|
+
* summary and is deliberately provided instead of a total. For the same reason
|
|
26
|
+
* the RFQ carries no value column and no count column — both are computed at
|
|
27
|
+
* read.
|
|
28
|
+
*
|
|
29
|
+
* **⚠ Recording a win does not close the siblings.** Setting `status: 'won'`
|
|
30
|
+
* records WHICH quote won. Award-closes-losers (overlap + RFQ resolution, kept
|
|
31
|
+
* together) is behavior over quote lifecycles and ships in a later phase behind
|
|
32
|
+
* its own gate.
|
|
33
|
+
*
|
|
34
|
+
* **Replaces `quoteAsks` (5.30.0).** Same rows, same ids — `quote_ask` became
|
|
35
|
+
* the `rfq` table on 2026-10-24 and migrated rows kept their UUIDs, so an
|
|
36
|
+
* `askId` held from before resolves here unchanged. `quoteAsks` still works and
|
|
37
|
+
* still returns the old shape; it is deprecated and will be removed once every
|
|
38
|
+
* consumer is on this resource.
|
|
39
|
+
*/
|
|
40
|
+
export declare class RfqResource {
|
|
41
|
+
private readonly http;
|
|
42
|
+
constructor(http: HttpTransport);
|
|
43
|
+
/** RFQs with a `quoteCount` each — never an aggregate value. */
|
|
44
|
+
list(options?: ListRfqsOptions): Promise<SingleResponse<RfqSummary[]>>;
|
|
45
|
+
/**
|
|
46
|
+
* One RFQ with its competing quotes — each carrying its own lines and roll-up
|
|
47
|
+
* — plus the RFQ-level `range`.
|
|
48
|
+
*/
|
|
49
|
+
get(id: string): Promise<SingleResponse<RfqDetail>>;
|
|
50
|
+
/**
|
|
51
|
+
* Open a request. `rfqNumber` (`RFQ-YYYY-NNN`) is minted server-side from an
|
|
52
|
+
* atomic per-(tenant, year) counter.
|
|
53
|
+
*
|
|
54
|
+
* Send `receivedAt` when you know it: it is when the REQUEST arrived, which
|
|
55
|
+
* is not when the record was created. A caller minting an RFQ from an email
|
|
56
|
+
* that sat unread for two days should send the email's timestamp, or every
|
|
57
|
+
* response-time report measures the job rather than the response.
|
|
58
|
+
*
|
|
59
|
+
* `source` says what made this RFQ and defaults to `manual`. It is never
|
|
60
|
+
* nullable, deliberately — "was this minted by a machine?" has to stay
|
|
61
|
+
* answerable.
|
|
62
|
+
*/
|
|
63
|
+
create(input: CreateRfqInput, idempotencyKey?: string): Promise<SingleResponse<Rfq>>;
|
|
64
|
+
/**
|
|
65
|
+
* Update the editable fields and the status.
|
|
66
|
+
*
|
|
67
|
+
* `status: 'won'` requires `wonByQuoteId`, and the winner must be one of this
|
|
68
|
+
* RFQ's own quotes (422 otherwise) — the record of which one won must point
|
|
69
|
+
* inside the set that was competing. `status: 'merged'` requires
|
|
70
|
+
* `mergedIntoRfqId`; prefer {@link merge}, which takes it as its argument.
|
|
71
|
+
*
|
|
72
|
+
* `closedAt` is managed server-side, not supplied: stamped on the way out of
|
|
73
|
+
* `open`, cleared on the way back in.
|
|
74
|
+
*/
|
|
75
|
+
update(id: string, input: UpdateRfqInput): Promise<SingleResponse<Rfq>>;
|
|
76
|
+
/**
|
|
77
|
+
* Absorb this RFQ into another — the duplicate case, where two requests turn
|
|
78
|
+
* out to be one.
|
|
79
|
+
*
|
|
80
|
+
* The absorbed RFQ closes as `merged` and records WHAT absorbed it. Cancelling
|
|
81
|
+
* a duplicate instead loses that, which is what every consumer did before this
|
|
82
|
+
* existed: the row said "cancelled" and nothing said why or where the request
|
|
83
|
+
* went.
|
|
84
|
+
*
|
|
85
|
+
* Does not move quotes. One-directional and non-recursive.
|
|
86
|
+
*/
|
|
87
|
+
merge(id: string, mergedIntoRfqId: string): Promise<SingleResponse<Rfq>>;
|
|
88
|
+
/**
|
|
89
|
+
* Withdraw the request. Its quotes SURVIVE and compete with nothing again
|
|
90
|
+
* (`rfqId` is `ON DELETE SET NULL`) — deleting the request must never delete
|
|
91
|
+
* the offers made against it.
|
|
92
|
+
*
|
|
93
|
+
* Refused (422) once `won`, `lost` or `merged`: those rows are the record of
|
|
94
|
+
* how the request ended, and without them a closed sibling has no
|
|
95
|
+
* explanation. Cancel it instead. Also refused while other RFQs are merged
|
|
96
|
+
* into it.
|
|
97
|
+
*/
|
|
98
|
+
remove(id: string): Promise<SingleResponse<{
|
|
99
|
+
id: string;
|
|
100
|
+
rfqNumber: string;
|
|
101
|
+
}>>;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=rfqs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rfqs.d.ts","sourceRoot":"","sources":["../src/rfqs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,GAAG,EACH,SAAS,EACT,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD,gEAAgE;IAC1D,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;IAa5E;;;OAGG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAOzD;;;;;;;;;;;;OAYG;IACG,MAAM,CACV,KAAK,EAAE,cAAc,EACrB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAS/B;;;;;;;;;;OAUG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAQ7E;;;;;;;;;;OAUG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAQ9E;;;;;;;;;OASG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAMrF"}
|
package/dist/rfqs.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RfqResource = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* RFQs — ONE customer request; the competing quotes are its options.
|
|
6
|
+
*
|
|
7
|
+
* The level ABOVE the quote. An OEM asks for several COMPETING groupings of the
|
|
8
|
+
* same parts and picks one ("give me four prices on A3 bumpers: base + S line,
|
|
9
|
+
* RS alone, wagon alone, all four"); each grouping is a `Quote`, and the RFQ is
|
|
10
|
+
* what makes that set nameable. Without it "the losers" is not a set the system
|
|
11
|
+
* can name, and a shared nullable `opportunityId` is not a grouping — it is
|
|
12
|
+
* nullable, it drifts, and an opportunity spans rounds. See the nextgen ADR
|
|
13
|
+
* `2026-08-05-multi-part-quotes.md`.
|
|
14
|
+
*
|
|
15
|
+
* **A finer grain than an opportunity.** Audi asking for four prices in March
|
|
16
|
+
* and re-quoting in September is two RFQs on one opportunity. `opportunityId`
|
|
17
|
+
* is carried for reporting and is never used to decide competition.
|
|
18
|
+
*
|
|
19
|
+
* **A quote joins an RFQ via `rfqId` on the quote** (`quotes.create` /
|
|
20
|
+
* `quotes.update`), not through a method here. The join is validated to match
|
|
21
|
+
* the RFQ's customer — an RFQ is one OEM's request, and a foreign quote inside
|
|
22
|
+
* it would make "these compete with each other" false.
|
|
23
|
+
*
|
|
24
|
+
* **⚠ NEVER SUM AN RFQ'S QUOTES.** They are alternatives; three of four lose on
|
|
25
|
+
* every multi-scenario RFQ by construction. `range` (min/max) is the only honest
|
|
26
|
+
* summary and is deliberately provided instead of a total. For the same reason
|
|
27
|
+
* the RFQ carries no value column and no count column — both are computed at
|
|
28
|
+
* read.
|
|
29
|
+
*
|
|
30
|
+
* **⚠ Recording a win does not close the siblings.** Setting `status: 'won'`
|
|
31
|
+
* records WHICH quote won. Award-closes-losers (overlap + RFQ resolution, kept
|
|
32
|
+
* together) is behavior over quote lifecycles and ships in a later phase behind
|
|
33
|
+
* its own gate.
|
|
34
|
+
*
|
|
35
|
+
* **Replaces `quoteAsks` (5.30.0).** Same rows, same ids — `quote_ask` became
|
|
36
|
+
* the `rfq` table on 2026-10-24 and migrated rows kept their UUIDs, so an
|
|
37
|
+
* `askId` held from before resolves here unchanged. `quoteAsks` still works and
|
|
38
|
+
* still returns the old shape; it is deprecated and will be removed once every
|
|
39
|
+
* consumer is on this resource.
|
|
40
|
+
*/
|
|
41
|
+
class RfqResource {
|
|
42
|
+
http;
|
|
43
|
+
constructor(http) {
|
|
44
|
+
this.http = http;
|
|
45
|
+
}
|
|
46
|
+
/** RFQs with a `quoteCount` each — never an aggregate value. */
|
|
47
|
+
async list(options) {
|
|
48
|
+
const query = {};
|
|
49
|
+
if (options?.status)
|
|
50
|
+
query.status = options.status;
|
|
51
|
+
if (options?.source)
|
|
52
|
+
query.source = options.source;
|
|
53
|
+
if (options?.customerCompanyId)
|
|
54
|
+
query.customerCompanyId = options.customerCompanyId;
|
|
55
|
+
if (options?.opportunityId)
|
|
56
|
+
query.opportunityId = options.opportunityId;
|
|
57
|
+
return this.http.request({
|
|
58
|
+
method: 'GET',
|
|
59
|
+
path: '/v1/rfqs',
|
|
60
|
+
query,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* One RFQ with its competing quotes — each carrying its own lines and roll-up
|
|
65
|
+
* — plus the RFQ-level `range`.
|
|
66
|
+
*/
|
|
67
|
+
async get(id) {
|
|
68
|
+
return this.http.request({
|
|
69
|
+
method: 'GET',
|
|
70
|
+
path: `/v1/rfqs/${encodeURIComponent(id)}`,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Open a request. `rfqNumber` (`RFQ-YYYY-NNN`) is minted server-side from an
|
|
75
|
+
* atomic per-(tenant, year) counter.
|
|
76
|
+
*
|
|
77
|
+
* Send `receivedAt` when you know it: it is when the REQUEST arrived, which
|
|
78
|
+
* is not when the record was created. A caller minting an RFQ from an email
|
|
79
|
+
* that sat unread for two days should send the email's timestamp, or every
|
|
80
|
+
* response-time report measures the job rather than the response.
|
|
81
|
+
*
|
|
82
|
+
* `source` says what made this RFQ and defaults to `manual`. It is never
|
|
83
|
+
* nullable, deliberately — "was this minted by a machine?" has to stay
|
|
84
|
+
* answerable.
|
|
85
|
+
*/
|
|
86
|
+
async create(input, idempotencyKey) {
|
|
87
|
+
return this.http.request({
|
|
88
|
+
method: 'POST',
|
|
89
|
+
path: '/v1/rfqs',
|
|
90
|
+
body: input,
|
|
91
|
+
idempotencyKey,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Update the editable fields and the status.
|
|
96
|
+
*
|
|
97
|
+
* `status: 'won'` requires `wonByQuoteId`, and the winner must be one of this
|
|
98
|
+
* RFQ's own quotes (422 otherwise) — the record of which one won must point
|
|
99
|
+
* inside the set that was competing. `status: 'merged'` requires
|
|
100
|
+
* `mergedIntoRfqId`; prefer {@link merge}, which takes it as its argument.
|
|
101
|
+
*
|
|
102
|
+
* `closedAt` is managed server-side, not supplied: stamped on the way out of
|
|
103
|
+
* `open`, cleared on the way back in.
|
|
104
|
+
*/
|
|
105
|
+
async update(id, input) {
|
|
106
|
+
return this.http.request({
|
|
107
|
+
method: 'PATCH',
|
|
108
|
+
path: `/v1/rfqs/${encodeURIComponent(id)}`,
|
|
109
|
+
body: input,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Absorb this RFQ into another — the duplicate case, where two requests turn
|
|
114
|
+
* out to be one.
|
|
115
|
+
*
|
|
116
|
+
* The absorbed RFQ closes as `merged` and records WHAT absorbed it. Cancelling
|
|
117
|
+
* a duplicate instead loses that, which is what every consumer did before this
|
|
118
|
+
* existed: the row said "cancelled" and nothing said why or where the request
|
|
119
|
+
* went.
|
|
120
|
+
*
|
|
121
|
+
* Does not move quotes. One-directional and non-recursive.
|
|
122
|
+
*/
|
|
123
|
+
async merge(id, mergedIntoRfqId) {
|
|
124
|
+
return this.http.request({
|
|
125
|
+
method: 'POST',
|
|
126
|
+
path: `/v1/rfqs/${encodeURIComponent(id)}/merge`,
|
|
127
|
+
body: { mergedIntoRfqId },
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Withdraw the request. Its quotes SURVIVE and compete with nothing again
|
|
132
|
+
* (`rfqId` is `ON DELETE SET NULL`) — deleting the request must never delete
|
|
133
|
+
* the offers made against it.
|
|
134
|
+
*
|
|
135
|
+
* Refused (422) once `won`, `lost` or `merged`: those rows are the record of
|
|
136
|
+
* how the request ended, and without them a closed sibling has no
|
|
137
|
+
* explanation. Cancel it instead. Also refused while other RFQs are merged
|
|
138
|
+
* into it.
|
|
139
|
+
*/
|
|
140
|
+
async remove(id) {
|
|
141
|
+
return this.http.request({
|
|
142
|
+
method: 'DELETE',
|
|
143
|
+
path: `/v1/rfqs/${encodeURIComponent(id)}`,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.RfqResource = RfqResource;
|
|
148
|
+
//# sourceMappingURL=rfqs.js.map
|
package/dist/rfqs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rfqs.js","sourceRoot":"","sources":["../src/rfqs.ts"],"names":[],"mappings":";;;AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAa,WAAW;IACO;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD,gEAAgE;IAChE,KAAK,CAAC,IAAI,CAAC,OAAyB;QAClC,MAAM,KAAK,GAAuC,EAAE,CAAC;QACrD,IAAI,OAAO,EAAE,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACnD,IAAI,OAAO,EAAE,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACnD,IAAI,OAAO,EAAE,iBAAiB;YAAE,KAAK,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACpF,IAAI,OAAO,EAAE,aAAa;YAAE,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA+B;YACrD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;YAChB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAA4B;YAClD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,CACV,KAAqB,EACrB,cAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAsB;YAC5C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,KAAK;YACX,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAAqB;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAsB;YAC5C,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,YAAY,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAC1C,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,EAAU,EAAE,eAAuB;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAsB;YAC5C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,YAAY,kBAAkB,CAAC,EAAE,CAAC,QAAQ;YAChD,IAAI,EAAE,EAAE,eAAe,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAoD;YAC1E,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,YAAY,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;CACF;AA3GD,kCA2GC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { HttpTransport } from './http';
|
|
2
|
+
import type { StandardAttribute, CreateStandardAttributeInput, CreateStandardAttributeDefaultInput, UpdateStandardAttributeInput, StandardAttributeValue, SetStandardAttributeValueInput, SetStandardAttributeValueResult, StandardAttributeHistoryEntry, StandardAttributeDefault, UpdateStandardAttributeDefaultInput, SingleResponse, ListResponse } from './types';
|
|
3
|
+
export declare class StandardAttributeResource {
|
|
4
|
+
private readonly http;
|
|
5
|
+
constructor(http: HttpTransport);
|
|
6
|
+
/** Add an attribute to THIS TENANT. Filled by a person — the enrichment
|
|
7
|
+
* pass only knows the platform catalog. */
|
|
8
|
+
create(input: CreateStandardAttributeInput, idempotencyKey?: string): Promise<SingleResponse<StandardAttribute>>;
|
|
9
|
+
/** ARCHIVE one. It stops being offered and every value already recorded
|
|
10
|
+
* against it stays readable — so this never conflicts with what is stored,
|
|
11
|
+
* and it is reversible. */
|
|
12
|
+
archive(id: string): Promise<SingleResponse<StandardAttribute>>;
|
|
13
|
+
/** This tenant's attribute catalog, in display order. */
|
|
14
|
+
list(options?: {
|
|
15
|
+
enabledOnly?: boolean;
|
|
16
|
+
}): Promise<ListResponse<StandardAttribute>>;
|
|
17
|
+
/** Rename, reorder, enable or disable one attribute. `key` is immutable. */
|
|
18
|
+
update(id: string, input: UpdateStandardAttributeInput, idempotencyKey?: string): Promise<SingleResponse<StandardAttribute>>;
|
|
19
|
+
/**
|
|
20
|
+
* Quote ids whose attribute VALUES match free text.
|
|
21
|
+
*
|
|
22
|
+
* Prefer `quotes.list({ q })` — it matches these too, and it filters the page,
|
|
23
|
+
* so the count and the cursor agree with what you get. Reach for this only
|
|
24
|
+
* when you are narrowing an already-fetched list in a browser and need to know
|
|
25
|
+
* which rows matched on an attribute rather than on a visible column.
|
|
26
|
+
*
|
|
27
|
+
* Enabled, active attributes only: one switched off or archived is not offered
|
|
28
|
+
* on a quote, so a row returned because it matched one would be returned for a
|
|
29
|
+
* reason the user cannot see anywhere on screen.
|
|
30
|
+
*/
|
|
31
|
+
searchQuoteIds(q: string): Promise<SingleResponse<{
|
|
32
|
+
ids: string[];
|
|
33
|
+
}>>;
|
|
34
|
+
/** Every stored value on one quote, in catalog order. */
|
|
35
|
+
listValues(quoteId: string): Promise<ListResponse<StandardAttributeValue>>;
|
|
36
|
+
/**
|
|
37
|
+
* Write values on a quote.
|
|
38
|
+
*
|
|
39
|
+
* Send the whole set in one call rather than looping: the server writes them
|
|
40
|
+
* in a single transaction, and `onlyIfBlank` on each input is what makes the
|
|
41
|
+
* enrichment pass fill blanks without ever overwriting a rep's correction.
|
|
42
|
+
*/
|
|
43
|
+
setValues(quoteId: string, values: SetStandardAttributeValueInput[], idempotencyKey?: string): Promise<ListResponse<SetStandardAttributeValueResult>>;
|
|
44
|
+
/** Every stored value on one opportunity, in catalog order. */
|
|
45
|
+
listOpportunityValues(opportunityId: string): Promise<ListResponse<StandardAttributeValue>>;
|
|
46
|
+
/** Write values on an opportunity. Send the whole set in one call. */
|
|
47
|
+
setOpportunityValues(opportunityId: string, values: SetStandardAttributeValueInput[], idempotencyKey?: string): Promise<ListResponse<SetStandardAttributeValueResult>>;
|
|
48
|
+
/** One attribute's timeline on an opportunity, or the whole one's when no key. */
|
|
49
|
+
listOpportunityHistory(opportunityId: string, key?: string): Promise<ListResponse<StandardAttributeHistoryEntry>>;
|
|
50
|
+
/** One attribute's timeline on a quote, or the whole quote's when no key. */
|
|
51
|
+
listHistory(quoteId: string, key?: string): Promise<ListResponse<StandardAttributeHistoryEntry>>;
|
|
52
|
+
/** Add an attribute to the PLATFORM catalog. Seeds NEW tenants only —
|
|
53
|
+
* tenants already provisioned keep the copy they have. */
|
|
54
|
+
createDefault(input: CreateStandardAttributeDefaultInput, idempotencyKey?: string): Promise<SingleResponse<StandardAttributeDefault>>;
|
|
55
|
+
/** Stop seeding one into new tenants. Existing tenant copies and every value
|
|
56
|
+
* ever recorded against the key are untouched. */
|
|
57
|
+
removeDefault(id: string): Promise<SingleResponse<{
|
|
58
|
+
id: string;
|
|
59
|
+
}>>;
|
|
60
|
+
/**
|
|
61
|
+
* The PLATFORM-wide defaults, in display order — what a new tenant's copy is
|
|
62
|
+
* seeded from. Readable by any tenant; only the platform tenant can write.
|
|
63
|
+
*/
|
|
64
|
+
listDefaults(): Promise<ListResponse<StandardAttributeDefault>>;
|
|
65
|
+
/**
|
|
66
|
+
* Rename or reorder one platform default.
|
|
67
|
+
*
|
|
68
|
+
* Changes what the NEXT tenant is seeded with. It does not reach tenants
|
|
69
|
+
* already provisioned — their copy is theirs to name.
|
|
70
|
+
*
|
|
71
|
+
* `key` is immutable — it is what every stored value references.
|
|
72
|
+
*/
|
|
73
|
+
updateDefault(id: string, input: UpdateStandardAttributeDefaultInput, idempotencyKey?: string): Promise<SingleResponse<StandardAttributeDefault>>;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=standardAttributes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standardAttributes.d.ts","sourceRoot":"","sources":["../src/standardAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,mCAAmC,EACnC,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,wBAAwB,EACxB,mCAAmC,EACnC,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AAUjB,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,aAAa;IAEhD;gDAC4C;IACtC,MAAM,CACV,KAAK,EAAE,4BAA4B,EACnC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAS7C;;gCAE4B;IACtB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAOrE,yDAAyD;IACnD,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAQzF,4EAA4E;IACtE,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,4BAA4B,EACnC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAS7C;;;;;;;;;;;OAWG;IACG,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAAE,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAO3E,yDAAyD;IACnD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAOhF;;;;;;OAMG;IACG,SAAS,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,8BAA8B,EAAE,EACxC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IAqBzD,+DAA+D;IACzD,qBAAqB,CACzB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAOhD,sEAAsE;IAChE,oBAAoB,CACxB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,8BAA8B,EAAE,EACxC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IASzD,kFAAkF;IAC5E,sBAAsB,CAC1B,aAAa,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAQvD,6EAA6E;IACvE,WAAW,CACf,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAUvD;+DAC2D;IACrD,aAAa,CACjB,KAAK,EAAE,mCAAmC,EAC1C,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;IASpD;uDACmD;IAC7C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAOxE;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAOrE;;;;;;;OAOG;IACG,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mCAAmC,EAC1C,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;CAQrD"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StandardAttributeResource = void 0;
|
|
4
|
+
// Standard Attributes: the platform-owned set of vehicle and program facts a
|
|
5
|
+
// quote carries, each with the source it came from and a full change history.
|
|
6
|
+
// See nextgen docs/decisions/2026-09-18-standard-attributes.md.
|
|
7
|
+
//
|
|
8
|
+
// The catalog is landlord-owned and provisioned per tenant, and a tenant can
|
|
9
|
+
// add its own beside the seeded ones. Nothing is ever destroyed: a tenant
|
|
10
|
+
// ARCHIVES an attribute, which stops it being offered and leaves every recorded
|
|
11
|
+
// value readable. `key` is immutable throughout.
|
|
12
|
+
class StandardAttributeResource {
|
|
13
|
+
http;
|
|
14
|
+
constructor(http) {
|
|
15
|
+
this.http = http;
|
|
16
|
+
}
|
|
17
|
+
/** Add an attribute to THIS TENANT. Filled by a person — the enrichment
|
|
18
|
+
* pass only knows the platform catalog. */
|
|
19
|
+
async create(input, idempotencyKey) {
|
|
20
|
+
return this.http.request({
|
|
21
|
+
method: 'POST',
|
|
22
|
+
path: '/v1/standard-attributes',
|
|
23
|
+
body: input,
|
|
24
|
+
idempotencyKey,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** ARCHIVE one. It stops being offered and every value already recorded
|
|
28
|
+
* against it stays readable — so this never conflicts with what is stored,
|
|
29
|
+
* and it is reversible. */
|
|
30
|
+
async archive(id) {
|
|
31
|
+
return this.http.request({
|
|
32
|
+
method: 'DELETE',
|
|
33
|
+
path: `/v1/standard-attributes/${encodeURIComponent(id)}`,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/** This tenant's attribute catalog, in display order. */
|
|
37
|
+
async list(options) {
|
|
38
|
+
const query = options?.enabledOnly ? '?enabledOnly=true' : '';
|
|
39
|
+
return this.http.request({
|
|
40
|
+
method: 'GET',
|
|
41
|
+
path: `/v1/standard-attributes${query}`,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/** Rename, reorder, enable or disable one attribute. `key` is immutable. */
|
|
45
|
+
async update(id, input, idempotencyKey) {
|
|
46
|
+
return this.http.request({
|
|
47
|
+
method: 'PATCH',
|
|
48
|
+
path: `/v1/standard-attributes/${encodeURIComponent(id)}`,
|
|
49
|
+
body: input,
|
|
50
|
+
idempotencyKey,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Quote ids whose attribute VALUES match free text.
|
|
55
|
+
*
|
|
56
|
+
* Prefer `quotes.list({ q })` — it matches these too, and it filters the page,
|
|
57
|
+
* so the count and the cursor agree with what you get. Reach for this only
|
|
58
|
+
* when you are narrowing an already-fetched list in a browser and need to know
|
|
59
|
+
* which rows matched on an attribute rather than on a visible column.
|
|
60
|
+
*
|
|
61
|
+
* Enabled, active attributes only: one switched off or archived is not offered
|
|
62
|
+
* on a quote, so a row returned because it matched one would be returned for a
|
|
63
|
+
* reason the user cannot see anywhere on screen.
|
|
64
|
+
*/
|
|
65
|
+
async searchQuoteIds(q) {
|
|
66
|
+
return this.http.request({
|
|
67
|
+
method: 'GET',
|
|
68
|
+
path: `/v1/standard-attributes/search?q=${encodeURIComponent(q)}`,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/** Every stored value on one quote, in catalog order. */
|
|
72
|
+
async listValues(quoteId) {
|
|
73
|
+
return this.http.request({
|
|
74
|
+
method: 'GET',
|
|
75
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/standard-attributes`,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Write values on a quote.
|
|
80
|
+
*
|
|
81
|
+
* Send the whole set in one call rather than looping: the server writes them
|
|
82
|
+
* in a single transaction, and `onlyIfBlank` on each input is what makes the
|
|
83
|
+
* enrichment pass fill blanks without ever overwriting a rep's correction.
|
|
84
|
+
*/
|
|
85
|
+
async setValues(quoteId, values, idempotencyKey) {
|
|
86
|
+
return this.http.request({
|
|
87
|
+
method: 'PUT',
|
|
88
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/standard-attributes`,
|
|
89
|
+
body: { values },
|
|
90
|
+
idempotencyKey,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
// ── The same three, against an opportunity ────────────────────────────────
|
|
94
|
+
//
|
|
95
|
+
// An opportunity's Program & Vehicle values used to be resolved live and
|
|
96
|
+
// stored nowhere, so there was no home for a value somebody typed or for a
|
|
97
|
+
// migration to land. These give it the same store a quote has.
|
|
98
|
+
//
|
|
99
|
+
// The opportunity is an OMSF record; master-data holds the values against a
|
|
100
|
+
// loose id and does not check that it names anything. Values on an
|
|
101
|
+
// opportunity are independent of its quotes' — a quote copies at create via
|
|
102
|
+
// the enrichment pass and then diverges, so that an approver's figures cannot
|
|
103
|
+
// move because somebody edited the opportunity.
|
|
104
|
+
/** Every stored value on one opportunity, in catalog order. */
|
|
105
|
+
async listOpportunityValues(opportunityId) {
|
|
106
|
+
return this.http.request({
|
|
107
|
+
method: 'GET',
|
|
108
|
+
path: `/v1/opportunities/${encodeURIComponent(opportunityId)}/standard-attributes`,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/** Write values on an opportunity. Send the whole set in one call. */
|
|
112
|
+
async setOpportunityValues(opportunityId, values, idempotencyKey) {
|
|
113
|
+
return this.http.request({
|
|
114
|
+
method: 'PUT',
|
|
115
|
+
path: `/v1/opportunities/${encodeURIComponent(opportunityId)}/standard-attributes`,
|
|
116
|
+
body: { values },
|
|
117
|
+
idempotencyKey,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/** One attribute's timeline on an opportunity, or the whole one's when no key. */
|
|
121
|
+
async listOpportunityHistory(opportunityId, key) {
|
|
122
|
+
const query = key ? `?key=${encodeURIComponent(key)}` : '';
|
|
123
|
+
return this.http.request({
|
|
124
|
+
method: 'GET',
|
|
125
|
+
path: `/v1/opportunities/${encodeURIComponent(opportunityId)}/standard-attributes/history${query}`,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/** One attribute's timeline on a quote, or the whole quote's when no key. */
|
|
129
|
+
async listHistory(quoteId, key) {
|
|
130
|
+
const query = key ? `?key=${encodeURIComponent(key)}` : '';
|
|
131
|
+
return this.http.request({
|
|
132
|
+
method: 'GET',
|
|
133
|
+
path: `/v1/quotes/${encodeURIComponent(quoteId)}/standard-attributes/history${query}`,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// ── The landlord catalog ───────────────────────────────────────────────────
|
|
137
|
+
/** Add an attribute to the PLATFORM catalog. Seeds NEW tenants only —
|
|
138
|
+
* tenants already provisioned keep the copy they have. */
|
|
139
|
+
async createDefault(input, idempotencyKey) {
|
|
140
|
+
return this.http.request({
|
|
141
|
+
method: 'POST',
|
|
142
|
+
path: '/v1/standard-attribute-defaults',
|
|
143
|
+
body: input,
|
|
144
|
+
idempotencyKey,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/** Stop seeding one into new tenants. Existing tenant copies and every value
|
|
148
|
+
* ever recorded against the key are untouched. */
|
|
149
|
+
async removeDefault(id) {
|
|
150
|
+
return this.http.request({
|
|
151
|
+
method: 'DELETE',
|
|
152
|
+
path: `/v1/standard-attribute-defaults/${encodeURIComponent(id)}`,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The PLATFORM-wide defaults, in display order — what a new tenant's copy is
|
|
157
|
+
* seeded from. Readable by any tenant; only the platform tenant can write.
|
|
158
|
+
*/
|
|
159
|
+
async listDefaults() {
|
|
160
|
+
return this.http.request({
|
|
161
|
+
method: 'GET',
|
|
162
|
+
path: '/v1/standard-attribute-defaults',
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Rename or reorder one platform default.
|
|
167
|
+
*
|
|
168
|
+
* Changes what the NEXT tenant is seeded with. It does not reach tenants
|
|
169
|
+
* already provisioned — their copy is theirs to name.
|
|
170
|
+
*
|
|
171
|
+
* `key` is immutable — it is what every stored value references.
|
|
172
|
+
*/
|
|
173
|
+
async updateDefault(id, input, idempotencyKey) {
|
|
174
|
+
return this.http.request({
|
|
175
|
+
method: 'PATCH',
|
|
176
|
+
path: `/v1/standard-attribute-defaults/${encodeURIComponent(id)}`,
|
|
177
|
+
body: input,
|
|
178
|
+
idempotencyKey,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.StandardAttributeResource = StandardAttributeResource;
|
|
183
|
+
//# sourceMappingURL=standardAttributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standardAttributes.js","sourceRoot":"","sources":["../src/standardAttributes.ts"],"names":[],"mappings":"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"}
|