@configura/web-api 1.6.1 → 2.0.0-alpha.2
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/.eslintrc.json +18 -18
- package/LICENSE +201 -201
- package/README.md +1 -1
- package/dist/CatalogueAPI.d.ts +551 -507
- package/dist/CatalogueAPI.js +293 -280
- package/dist/CfgMeasure.d.ts +32 -32
- package/dist/CfgMeasure.js +30 -30
- package/dist/CfgProduct.d.ts +268 -258
- package/dist/CfgProduct.js +778 -747
- package/dist/CfgReferencePathHelper.d.ts +14 -0
- package/dist/CfgReferencePathHelper.js +13 -0
- package/dist/ConfigurationConverter.d.ts +5 -0
- package/dist/ConfigurationConverter.js +72 -0
- package/dist/index.d.ts +23 -20
- package/dist/index.js +23 -20
- package/dist/io/CfgHistoryManager.d.ts +51 -0
- package/dist/io/CfgHistoryManager.js +82 -0
- package/dist/io/CfgHistoryToProdConfConnector.d.ts +21 -0
- package/dist/io/CfgHistoryToProdConfConnector.js +56 -0
- package/dist/io/CfgIOManager.d.ts +49 -0
- package/dist/io/CfgIOManager.js +115 -0
- package/dist/io/CfgIOProdConfConnector.d.ts +53 -0
- package/dist/io/CfgIOProdConfConnector.js +141 -0
- package/dist/io/CfgObservableStateManager.d.ts +22 -0
- package/dist/io/CfgObservableStateManager.js +65 -0
- package/dist/io/CfgObservableStateToProdConfConnector.d.ts +15 -0
- package/dist/io/CfgObservableStateToProdConfConnector.js +16 -0
- package/dist/io/CfgWindowEventManager.d.ts +22 -0
- package/dist/io/CfgWindowEventManager.js +38 -0
- package/dist/io/CfgWindowMessageManager.d.ts +41 -0
- package/dist/io/CfgWindowMessageManager.js +84 -0
- package/dist/io/CfgWindowMessageToProdConfConnector.d.ts +17 -0
- package/dist/io/CfgWindowMessageToProdConfConnector.js +18 -0
- package/dist/io/index.d.ts +9 -0
- package/dist/io/index.js +8 -0
- package/dist/material/CfgMaterialMapping.d.ts +7 -7
- package/dist/material/CfgMaterialMapping.js +181 -181
- package/dist/material/CfgMtrlApplication.d.ts +18 -18
- package/dist/material/CfgMtrlApplication.js +43 -43
- package/dist/material/CfgMtrlApplicationSource.d.ts +7 -7
- package/dist/material/CfgMtrlApplicationSource.js +8 -8
- package/dist/material/CfgMtrlSource.d.ts +19 -19
- package/dist/material/CfgMtrlSource.js +40 -40
- package/dist/material/CfgMtrlSourceWithMetaData.d.ts +7 -7
- package/dist/material/CfgMtrlSourceWithMetaData.js +1 -1
- package/dist/productConfiguration/CfgFeature.d.ts +187 -188
- package/dist/productConfiguration/CfgFeature.js +645 -636
- package/dist/productConfiguration/CfgOption.d.ts +151 -150
- package/dist/productConfiguration/CfgOption.js +416 -426
- package/dist/productConfiguration/CfgProductConfiguration.d.ts +117 -120
- package/dist/productConfiguration/CfgProductConfiguration.js +307 -309
- package/dist/productConfiguration/filters.d.ts +15 -15
- package/dist/productConfiguration/filters.js +70 -70
- package/dist/productConfiguration/productParamsGenerator.d.ts +15 -15
- package/dist/productConfiguration/productParamsGenerator.js +51 -51
- package/dist/productConfiguration/utilitiesProductConfiguration.d.ts +17 -17
- package/dist/productConfiguration/utilitiesProductConfiguration.js +80 -80
- package/dist/productLoader.d.ts +33 -33
- package/dist/productLoader.js +49 -49
- package/dist/syncGroups/SyncGroupsApplyMode.d.ts +20 -20
- package/dist/syncGroups/SyncGroupsApplyMode.js +21 -21
- package/dist/syncGroups/SyncGroupsHandler.d.ts +40 -40
- package/dist/syncGroups/SyncGroupsHandler.js +359 -358
- package/dist/syncGroups/SyncGroupsPathHelper.d.ts +26 -26
- package/dist/syncGroups/SyncGroupsPathHelper.js +90 -90
- package/dist/syncGroups/SyncGroupsState.d.ts +35 -35
- package/dist/syncGroups/SyncGroupsState.js +125 -125
- package/dist/syncGroups/SyncGroupsTransaction.d.ts +154 -154
- package/dist/syncGroups/SyncGroupsTransaction.js +576 -576
- package/dist/tasks/TaskHandler.d.ts +77 -78
- package/dist/tasks/TaskHandler.js +275 -276
- package/dist/tasks/formats.d.ts +4 -4
- package/dist/tasks/formats.js +7 -7
- package/dist/tests/testData/collectorForTest.d.ts +73 -73
- package/dist/tests/testData/collectorForTest.js +194 -194
- package/dist/tests/testData/dummyProductForTest.d.ts +4 -4
- package/dist/tests/testData/dummyProductForTest.js +32 -36
- package/dist/tests/testData/testDataAdditionalProductInAdditionalProductInProductForTest.d.ts +11 -11
- package/dist/tests/testData/testDataAdditionalProductInAdditionalProductInProductForTest.js +277 -277
- package/dist/tests/testData/testDataCachedGetProduct.d.ts +5 -5
- package/dist/tests/testData/testDataCachedGetProduct.js +185 -185
- package/dist/tests/testData/testDataCachedPostValidate.d.ts +7 -7
- package/dist/tests/testData/testDataCachedPostValidate.js +183 -183
- package/dist/tests/testData/testDataNoAdditionalProductNoPropagateForTest.d.ts +3 -3
- package/dist/tests/testData/testDataNoAdditionalProductNoPropagateForTest.js +1099 -1099
- package/dist/tests/testData/testDataOptions.d.ts +12 -12
- package/dist/tests/testData/testDataOptions.js +60 -60
- package/dist/tests/testData/testDataProductAggregatedPrice.d.ts +6 -6
- package/dist/tests/testData/testDataProductAggregatedPrice.js +187 -187
- package/dist/tests/testData/testDataUpcharge.d.ts +8 -8
- package/dist/tests/testData/testDataUpcharge.js +119 -119
- package/dist/utilitiesCatalogueData.d.ts +42 -31
- package/dist/utilitiesCatalogueData.js +173 -162
- package/dist/utilitiesCataloguePermission.d.ts +38 -37
- package/dist/utilitiesCataloguePermission.js +79 -80
- package/dist/utilitiesNumericValues.d.ts +24 -24
- package/dist/utilitiesNumericValues.js +109 -109
- package/package.json +3 -3
package/dist/CatalogueAPI.js
CHANGED
|
@@ -1,280 +1,293 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
|
-
export const
|
|
13
|
-
"glb",
|
|
14
|
-
"gltf",
|
|
15
|
-
"fbx",
|
|
16
|
-
"dwg",
|
|
17
|
-
"cmdrw",
|
|
18
|
-
"cmfav",
|
|
19
|
-
"cmsym",
|
|
20
|
-
];
|
|
21
|
-
export const
|
|
22
|
-
"pending",
|
|
23
|
-
"running",
|
|
24
|
-
"finished",
|
|
25
|
-
"failed",
|
|
26
|
-
];
|
|
27
|
-
export const
|
|
28
|
-
export const
|
|
29
|
-
"pending",
|
|
30
|
-
"running",
|
|
31
|
-
"finished",
|
|
32
|
-
"failed",
|
|
33
|
-
];
|
|
34
|
-
export const
|
|
35
|
-
export class
|
|
36
|
-
}
|
|
37
|
-
export class CatalogueAPI {
|
|
38
|
-
constructor(_fetch = window.fetch.bind(window)) {
|
|
39
|
-
this._fetch = _fetch;
|
|
40
|
-
}
|
|
41
|
-
// For internal use
|
|
42
|
-
_saveAlternativeReferer() {
|
|
43
|
-
if (typeof document === "undefined") {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const parts = new RegExp("^(http[s]?:\\/\\/[^:\\/\\s]+)", "i").exec(document.referrer);
|
|
47
|
-
if (parts !== null) {
|
|
48
|
-
this._alternativeReferer = parts[1];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
hasFeature(feature) {
|
|
52
|
-
return (this.auth !== undefined &&
|
|
53
|
-
this.auth.apiSession.features !== undefined &&
|
|
54
|
-
this.auth.apiSession.features.indexOf(feature) > -1);
|
|
55
|
-
}
|
|
56
|
-
fetch(url, options) {
|
|
57
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
-
let response;
|
|
59
|
-
let body;
|
|
60
|
-
let err;
|
|
61
|
-
if (options.method === "POST" && options.body) {
|
|
62
|
-
options.headers["Content-Type"] = "application/json;charset=utf-8";
|
|
63
|
-
}
|
|
64
|
-
try {
|
|
65
|
-
response = yield this._fetch(url, options);
|
|
66
|
-
body = yield response.text();
|
|
67
|
-
const parsed = JSON.parse(body);
|
|
68
|
-
if ("error" in parsed) {
|
|
69
|
-
err = new
|
|
70
|
-
err.body = body;
|
|
71
|
-
err.status = response.status;
|
|
72
|
-
err.parsed = parsed;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
return parsed;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
catch (e) {
|
|
79
|
-
const msg = e instanceof Error ? e.message : `${e}`;
|
|
80
|
-
err = new
|
|
81
|
-
err.body = body;
|
|
82
|
-
err.status = response && response.status;
|
|
83
|
-
err.error = e instanceof Error ? e : Error(msg);
|
|
84
|
-
}
|
|
85
|
-
throw err;
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
postPublicAccessTokenAuthorize(params, endpoint) {
|
|
89
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
const url = `/v1/access-token/public/${encodeURIComponent(params.accessTokenId)}/authorize`;
|
|
91
|
-
const options = {
|
|
92
|
-
method: "POST",
|
|
93
|
-
headers: {},
|
|
94
|
-
};
|
|
95
|
-
if (this._alternativeReferer) {
|
|
96
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
97
|
-
}
|
|
98
|
-
return this.fetch(endpoint + url, options);
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
getApplicationAreas(params) {
|
|
102
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
if (this.auth === undefined) {
|
|
104
|
-
throw new Error("missing auth");
|
|
105
|
-
}
|
|
106
|
-
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/application-areas`;
|
|
107
|
-
const options = {
|
|
108
|
-
method: "GET",
|
|
109
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
110
|
-
};
|
|
111
|
-
if (this._alternativeReferer) {
|
|
112
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
113
|
-
}
|
|
114
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
postExport(params, body) {
|
|
118
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
-
if (this.auth === undefined) {
|
|
120
|
-
throw new Error("missing auth");
|
|
121
|
-
}
|
|
122
|
-
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/export/${encodeURIComponent(params.partNumber)}`;
|
|
123
|
-
const options = {
|
|
124
|
-
method: "POST",
|
|
125
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
126
|
-
body: JSON.stringify(body),
|
|
127
|
-
};
|
|
128
|
-
if (this._alternativeReferer) {
|
|
129
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
130
|
-
}
|
|
131
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
getPriceLists(params) {
|
|
135
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
136
|
-
if (this.auth === undefined) {
|
|
137
|
-
throw new Error("missing auth");
|
|
138
|
-
}
|
|
139
|
-
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/price-lists`;
|
|
140
|
-
const options = {
|
|
141
|
-
method: "GET",
|
|
142
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
143
|
-
};
|
|
144
|
-
if (this._alternativeReferer) {
|
|
145
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
146
|
-
}
|
|
147
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
getProduct(params) {
|
|
151
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
-
if (this.auth === undefined) {
|
|
153
|
-
throw new Error("missing auth");
|
|
154
|
-
}
|
|
155
|
-
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/product-v2/${encodeURIComponent(params.partNumber)}`;
|
|
156
|
-
const options = {
|
|
157
|
-
method: "GET",
|
|
158
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
159
|
-
};
|
|
160
|
-
if (this._alternativeReferer) {
|
|
161
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
162
|
-
}
|
|
163
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
postRender(params, body) {
|
|
167
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
168
|
-
if (this.auth === undefined) {
|
|
169
|
-
throw new Error("missing auth");
|
|
170
|
-
}
|
|
171
|
-
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/product/${encodeURIComponent(params.partNumber)}/render`;
|
|
172
|
-
const options = {
|
|
173
|
-
method: "POST",
|
|
174
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
175
|
-
body: JSON.stringify(body),
|
|
176
|
-
};
|
|
177
|
-
if (this._alternativeReferer) {
|
|
178
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
179
|
-
}
|
|
180
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
postValidate(params, body) {
|
|
184
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
-
if (this.auth === undefined) {
|
|
186
|
-
throw new Error("missing auth");
|
|
187
|
-
}
|
|
188
|
-
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/product/${encodeURIComponent(params.partNumber)}/validate`;
|
|
189
|
-
const options = {
|
|
190
|
-
method: "POST",
|
|
191
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
192
|
-
body: JSON.stringify(body),
|
|
193
|
-
};
|
|
194
|
-
if (this._alternativeReferer) {
|
|
195
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
196
|
-
}
|
|
197
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
getTocTree(params) {
|
|
201
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
202
|
-
if (this.auth === undefined) {
|
|
203
|
-
throw new Error("missing auth");
|
|
204
|
-
}
|
|
205
|
-
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/toc`;
|
|
206
|
-
const options = {
|
|
207
|
-
method: "GET",
|
|
208
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
209
|
-
};
|
|
210
|
-
if (this._alternativeReferer) {
|
|
211
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
212
|
-
}
|
|
213
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
getTocFlat(params) {
|
|
217
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
218
|
-
if (this.auth === undefined) {
|
|
219
|
-
throw new Error("missing auth");
|
|
220
|
-
}
|
|
221
|
-
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/toc/flat`;
|
|
222
|
-
const options = {
|
|
223
|
-
method: "GET",
|
|
224
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
225
|
-
};
|
|
226
|
-
if (this._alternativeReferer) {
|
|
227
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
228
|
-
}
|
|
229
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
getExportById(params) {
|
|
233
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
234
|
-
if (this.auth === undefined) {
|
|
235
|
-
throw new Error("missing auth");
|
|
236
|
-
}
|
|
237
|
-
const url = `/v1/export/${encodeURIComponent(params.uuid)}`;
|
|
238
|
-
const options = {
|
|
239
|
-
method: "GET",
|
|
240
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
241
|
-
};
|
|
242
|
-
if (this._alternativeReferer) {
|
|
243
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
244
|
-
}
|
|
245
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
getRenderById(params) {
|
|
249
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
250
|
-
if (this.auth === undefined) {
|
|
251
|
-
throw new Error("missing auth");
|
|
252
|
-
}
|
|
253
|
-
const url = `/v1/render/${encodeURIComponent(params.uuid)}`;
|
|
254
|
-
const options = {
|
|
255
|
-
method: "GET",
|
|
256
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
257
|
-
};
|
|
258
|
-
if (this._alternativeReferer) {
|
|
259
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
260
|
-
}
|
|
261
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
postSessionTokenRefresh() {
|
|
265
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
266
|
-
if (this.auth === undefined) {
|
|
267
|
-
throw new Error("missing auth");
|
|
268
|
-
}
|
|
269
|
-
const url = `/v1/session-token/refresh`;
|
|
270
|
-
const options = {
|
|
271
|
-
method: "POST",
|
|
272
|
-
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
273
|
-
};
|
|
274
|
-
if (this._alternativeReferer) {
|
|
275
|
-
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
276
|
-
}
|
|
277
|
-
return this.fetch(this.auth.endpoint + url, options);
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
}
|
|
1
|
+
// WARNING: This file was auto generated by the code in web-rnd/tygen.
|
|
2
|
+
// Do not commit manual changes to this file.
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
export const dtoExportFormatNames = [
|
|
13
|
+
"glb",
|
|
14
|
+
"gltf",
|
|
15
|
+
"fbx",
|
|
16
|
+
"dwg",
|
|
17
|
+
"cmdrw",
|
|
18
|
+
"cmfav",
|
|
19
|
+
"cmsym",
|
|
20
|
+
];
|
|
21
|
+
export const dtoExportStatusStatusNames = [
|
|
22
|
+
"pending",
|
|
23
|
+
"running",
|
|
24
|
+
"finished",
|
|
25
|
+
"failed",
|
|
26
|
+
];
|
|
27
|
+
export const dtoRenderFormatNames = ["jpg", "png"];
|
|
28
|
+
export const dtoRenderStatusStatusNames = [
|
|
29
|
+
"pending",
|
|
30
|
+
"running",
|
|
31
|
+
"finished",
|
|
32
|
+
"failed",
|
|
33
|
+
];
|
|
34
|
+
export const dtoSyncGroupMethodsNames = ["pull", "push", "twoWay"];
|
|
35
|
+
export class DtoAPIError extends Error {
|
|
36
|
+
}
|
|
37
|
+
export class CatalogueAPI {
|
|
38
|
+
constructor(_fetch = window.fetch.bind(window)) {
|
|
39
|
+
this._fetch = _fetch;
|
|
40
|
+
}
|
|
41
|
+
// For internal use
|
|
42
|
+
_saveAlternativeReferer() {
|
|
43
|
+
if (typeof document === "undefined") {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const parts = new RegExp("^(http[s]?:\\/\\/[^:\\/\\s]+)", "i").exec(document.referrer);
|
|
47
|
+
if (parts !== null) {
|
|
48
|
+
this._alternativeReferer = parts[1];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
hasFeature(feature) {
|
|
52
|
+
return (this.auth !== undefined &&
|
|
53
|
+
this.auth.apiSession.features !== undefined &&
|
|
54
|
+
this.auth.apiSession.features.indexOf(feature) > -1);
|
|
55
|
+
}
|
|
56
|
+
fetch(url, options) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
let response;
|
|
59
|
+
let body;
|
|
60
|
+
let err;
|
|
61
|
+
if (options.method === "POST" && options.body) {
|
|
62
|
+
options.headers["Content-Type"] = "application/json;charset=utf-8";
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
response = yield this._fetch(url, options);
|
|
66
|
+
body = yield response.text();
|
|
67
|
+
const parsed = JSON.parse(body);
|
|
68
|
+
if ("error" in parsed) {
|
|
69
|
+
err = new DtoAPIError(parsed.error);
|
|
70
|
+
err.body = body;
|
|
71
|
+
err.status = response.status;
|
|
72
|
+
err.parsed = parsed;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return parsed;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
const msg = e instanceof Error ? e.message : `${e}`;
|
|
80
|
+
err = new DtoAPIError(msg);
|
|
81
|
+
err.body = body;
|
|
82
|
+
err.status = response && response.status;
|
|
83
|
+
err.error = e instanceof Error ? e : Error(msg);
|
|
84
|
+
}
|
|
85
|
+
throw err;
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
postPublicAccessTokenAuthorize(params, endpoint) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const url = `/v1/access-token/public/${encodeURIComponent(params.accessTokenId)}/authorize`;
|
|
91
|
+
const options = {
|
|
92
|
+
method: "POST",
|
|
93
|
+
headers: {},
|
|
94
|
+
};
|
|
95
|
+
if (this._alternativeReferer) {
|
|
96
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
97
|
+
}
|
|
98
|
+
return this.fetch(endpoint + url, options);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
getApplicationAreas(params) {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
if (this.auth === undefined) {
|
|
104
|
+
throw new Error("missing auth");
|
|
105
|
+
}
|
|
106
|
+
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/application-areas`;
|
|
107
|
+
const options = {
|
|
108
|
+
method: "GET",
|
|
109
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
110
|
+
};
|
|
111
|
+
if (this._alternativeReferer) {
|
|
112
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
113
|
+
}
|
|
114
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
postExport(params, body) {
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
if (this.auth === undefined) {
|
|
120
|
+
throw new Error("missing auth");
|
|
121
|
+
}
|
|
122
|
+
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/export/${encodeURIComponent(params.partNumber)}`;
|
|
123
|
+
const options = {
|
|
124
|
+
method: "POST",
|
|
125
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
126
|
+
body: JSON.stringify(body),
|
|
127
|
+
};
|
|
128
|
+
if (this._alternativeReferer) {
|
|
129
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
130
|
+
}
|
|
131
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
getPriceLists(params) {
|
|
135
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
if (this.auth === undefined) {
|
|
137
|
+
throw new Error("missing auth");
|
|
138
|
+
}
|
|
139
|
+
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/price-lists`;
|
|
140
|
+
const options = {
|
|
141
|
+
method: "GET",
|
|
142
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
143
|
+
};
|
|
144
|
+
if (this._alternativeReferer) {
|
|
145
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
146
|
+
}
|
|
147
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
getProduct(params) {
|
|
151
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
152
|
+
if (this.auth === undefined) {
|
|
153
|
+
throw new Error("missing auth");
|
|
154
|
+
}
|
|
155
|
+
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/product-v2/${encodeURIComponent(params.partNumber)}`;
|
|
156
|
+
const options = {
|
|
157
|
+
method: "GET",
|
|
158
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
159
|
+
};
|
|
160
|
+
if (this._alternativeReferer) {
|
|
161
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
162
|
+
}
|
|
163
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
postRender(params, body) {
|
|
167
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
168
|
+
if (this.auth === undefined) {
|
|
169
|
+
throw new Error("missing auth");
|
|
170
|
+
}
|
|
171
|
+
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/product/${encodeURIComponent(params.partNumber)}/render`;
|
|
172
|
+
const options = {
|
|
173
|
+
method: "POST",
|
|
174
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
175
|
+
body: JSON.stringify(body),
|
|
176
|
+
};
|
|
177
|
+
if (this._alternativeReferer) {
|
|
178
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
179
|
+
}
|
|
180
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
postValidate(params, body) {
|
|
184
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
+
if (this.auth === undefined) {
|
|
186
|
+
throw new Error("missing auth");
|
|
187
|
+
}
|
|
188
|
+
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/product/${encodeURIComponent(params.partNumber)}/validate`;
|
|
189
|
+
const options = {
|
|
190
|
+
method: "POST",
|
|
191
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
192
|
+
body: JSON.stringify(body),
|
|
193
|
+
};
|
|
194
|
+
if (this._alternativeReferer) {
|
|
195
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
196
|
+
}
|
|
197
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
getTocTree(params) {
|
|
201
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
202
|
+
if (this.auth === undefined) {
|
|
203
|
+
throw new Error("missing auth");
|
|
204
|
+
}
|
|
205
|
+
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/toc`;
|
|
206
|
+
const options = {
|
|
207
|
+
method: "GET",
|
|
208
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
209
|
+
};
|
|
210
|
+
if (this._alternativeReferer) {
|
|
211
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
212
|
+
}
|
|
213
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
getTocFlat(params) {
|
|
217
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
218
|
+
if (this.auth === undefined) {
|
|
219
|
+
throw new Error("missing auth");
|
|
220
|
+
}
|
|
221
|
+
const url = `/v1/catalogue/${encodeURIComponent(params.lang)}/${encodeURIComponent(params.enterprise)}/${encodeURIComponent(params.prdCat)}/${encodeURIComponent(params.prdCatVersion)}/${encodeURIComponent(params.vendor)}/${encodeURIComponent(params.priceList)}/toc/flat`;
|
|
222
|
+
const options = {
|
|
223
|
+
method: "GET",
|
|
224
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
225
|
+
};
|
|
226
|
+
if (this._alternativeReferer) {
|
|
227
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
228
|
+
}
|
|
229
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
getExportById(params) {
|
|
233
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
234
|
+
if (this.auth === undefined) {
|
|
235
|
+
throw new Error("missing auth");
|
|
236
|
+
}
|
|
237
|
+
const url = `/v1/export/${encodeURIComponent(params.uuid)}`;
|
|
238
|
+
const options = {
|
|
239
|
+
method: "GET",
|
|
240
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
241
|
+
};
|
|
242
|
+
if (this._alternativeReferer) {
|
|
243
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
244
|
+
}
|
|
245
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
getRenderById(params) {
|
|
249
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
250
|
+
if (this.auth === undefined) {
|
|
251
|
+
throw new Error("missing auth");
|
|
252
|
+
}
|
|
253
|
+
const url = `/v1/render/${encodeURIComponent(params.uuid)}`;
|
|
254
|
+
const options = {
|
|
255
|
+
method: "GET",
|
|
256
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
257
|
+
};
|
|
258
|
+
if (this._alternativeReferer) {
|
|
259
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
260
|
+
}
|
|
261
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
postSessionTokenRefresh() {
|
|
265
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
266
|
+
if (this.auth === undefined) {
|
|
267
|
+
throw new Error("missing auth");
|
|
268
|
+
}
|
|
269
|
+
const url = `/v1/session-token/refresh`;
|
|
270
|
+
const options = {
|
|
271
|
+
method: "POST",
|
|
272
|
+
headers: { "X-API-Key": this.auth.secretToken || "" },
|
|
273
|
+
};
|
|
274
|
+
if (this._alternativeReferer) {
|
|
275
|
+
options.headers["Alternative-Referer"] = this._alternativeReferer;
|
|
276
|
+
}
|
|
277
|
+
return this.fetch(this.auth.endpoint + url, options);
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
export const DTO_OPERATION_ID_TO_DEBIT_GROUP = {
|
|
282
|
+
postPublicAccessTokenAuthorize: "base",
|
|
283
|
+
getApplicationAreas: "base",
|
|
284
|
+
postExport: "export",
|
|
285
|
+
getPriceLists: "base",
|
|
286
|
+
getProduct: "base",
|
|
287
|
+
postRender: "render",
|
|
288
|
+
postValidate: "base",
|
|
289
|
+
getTocTree: "base",
|
|
290
|
+
getTocFlat: "base",
|
|
291
|
+
getExportById: "base",
|
|
292
|
+
getRenderById: "base",
|
|
293
|
+
};
|
package/dist/CfgMeasure.d.ts
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
/**
|
|
3
|
-
* Measures can be used to Anchor items (Models or Additional Products).
|
|
4
|
-
*
|
|
5
|
-
* Measures originates in Models, and can then be used in Products. There is nothing stopping
|
|
6
|
-
* having multiple Models in the same Product that use the same Measure name. If so it is ambiguous
|
|
7
|
-
* which of the Models in the Product to anchor to.
|
|
8
|
-
*
|
|
9
|
-
* Measure Priority tries to solve this by allowing MeasureParams to contain an ordered list
|
|
10
|
-
* containing which Model should have highest priority (i.e. gets "first dibs") when Anchoring.
|
|
11
|
-
*
|
|
12
|
-
* Unfortunately the solution is currently a bit limited - we can not differentiate between Models
|
|
13
|
-
* pointing to the same URL in a Product. However, we consistently pick the first one.
|
|
14
|
-
* Lower index = higher priority
|
|
15
|
-
*/
|
|
16
|
-
export declare type CfgMeasurePriority = {
|
|
17
|
-
index: number;
|
|
18
|
-
modelLocalFilePath: string;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* This class strips the Measurement of things that are not actually used or relevant
|
|
22
|
-
* to Stage, specifically anchoring and stretching. Measurements can also contain
|
|
23
|
-
* volume and area, but these are ignored. Here Measures are used to define defaults
|
|
24
|
-
* such as its preferences when dealing with ambiguity or its default value.
|
|
25
|
-
*/
|
|
26
|
-
export declare class CfgMeasureDefinition {
|
|
27
|
-
readonly measureParamCode: string;
|
|
28
|
-
readonly numericValue:
|
|
29
|
-
readonly measurePriorities: CfgMeasurePriority[];
|
|
30
|
-
static make(measurement:
|
|
31
|
-
private constructor();
|
|
32
|
-
}
|
|
1
|
+
import { DtoMeasurement, DtoValueWithUnit } from "./CatalogueAPI.js";
|
|
2
|
+
/**
|
|
3
|
+
* Measures can be used to Anchor items (Models or Additional Products).
|
|
4
|
+
*
|
|
5
|
+
* Measures originates in Models, and can then be used in Products. There is nothing stopping
|
|
6
|
+
* having multiple Models in the same Product that use the same Measure name. If so it is ambiguous
|
|
7
|
+
* which of the Models in the Product to anchor to.
|
|
8
|
+
*
|
|
9
|
+
* Measure Priority tries to solve this by allowing MeasureParams to contain an ordered list
|
|
10
|
+
* containing which Model should have highest priority (i.e. gets "first dibs") when Anchoring.
|
|
11
|
+
*
|
|
12
|
+
* Unfortunately the solution is currently a bit limited - we can not differentiate between Models
|
|
13
|
+
* pointing to the same URL in a Product. However, we consistently pick the first one.
|
|
14
|
+
* Lower index = higher priority
|
|
15
|
+
*/
|
|
16
|
+
export declare type CfgMeasurePriority = {
|
|
17
|
+
index: number;
|
|
18
|
+
modelLocalFilePath: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* This class strips the Measurement of things that are not actually used or relevant
|
|
22
|
+
* to Stage, specifically anchoring and stretching. Measurements can also contain
|
|
23
|
+
* volume and area, but these are ignored. Here Measures are used to define defaults
|
|
24
|
+
* such as its preferences when dealing with ambiguity or its default value.
|
|
25
|
+
*/
|
|
26
|
+
export declare class CfgMeasureDefinition {
|
|
27
|
+
readonly measureParamCode: string;
|
|
28
|
+
readonly numericValue: DtoValueWithUnit | undefined;
|
|
29
|
+
readonly measurePriorities: CfgMeasurePriority[];
|
|
30
|
+
static make(measurement: DtoMeasurement): CfgMeasureDefinition | undefined;
|
|
31
|
+
private constructor();
|
|
32
|
+
}
|
|
33
33
|
//# sourceMappingURL=CfgMeasure.d.ts.map
|