@configura/web-api 1.6.1-alpha.7 → 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/.eslintrc.json +18 -0
  2. package/LICENSE +201 -201
  3. package/README.md +1 -1
  4. package/dist/CatalogueAPI.d.ts +551 -512
  5. package/dist/CatalogueAPI.js +293 -277
  6. package/dist/CfgMeasure.d.ts +32 -32
  7. package/dist/CfgMeasure.js +30 -30
  8. package/dist/CfgProduct.d.ts +268 -239
  9. package/dist/CfgProduct.js +778 -668
  10. package/dist/CfgReferencePathHelper.d.ts +14 -0
  11. package/dist/CfgReferencePathHelper.js +13 -0
  12. package/dist/ConfigurationConverter.d.ts +5 -0
  13. package/dist/ConfigurationConverter.js +72 -0
  14. package/dist/index.d.ts +23 -18
  15. package/dist/index.js +23 -18
  16. package/dist/io/CfgHistoryManager.d.ts +51 -0
  17. package/dist/io/CfgHistoryManager.js +82 -0
  18. package/dist/io/CfgHistoryToProdConfConnector.d.ts +21 -0
  19. package/dist/io/CfgHistoryToProdConfConnector.js +56 -0
  20. package/dist/io/CfgIOManager.d.ts +49 -0
  21. package/dist/io/CfgIOManager.js +115 -0
  22. package/dist/io/CfgIOProdConfConnector.d.ts +53 -0
  23. package/dist/io/CfgIOProdConfConnector.js +141 -0
  24. package/dist/io/CfgObservableStateManager.d.ts +22 -0
  25. package/dist/io/CfgObservableStateManager.js +65 -0
  26. package/dist/io/CfgObservableStateToProdConfConnector.d.ts +15 -0
  27. package/dist/io/CfgObservableStateToProdConfConnector.js +16 -0
  28. package/dist/io/CfgWindowEventManager.d.ts +22 -0
  29. package/dist/io/CfgWindowEventManager.js +38 -0
  30. package/dist/io/CfgWindowMessageManager.d.ts +41 -0
  31. package/dist/io/CfgWindowMessageManager.js +84 -0
  32. package/dist/io/CfgWindowMessageToProdConfConnector.d.ts +17 -0
  33. package/dist/io/CfgWindowMessageToProdConfConnector.js +18 -0
  34. package/dist/io/index.d.ts +9 -0
  35. package/dist/io/index.js +8 -0
  36. package/dist/material/CfgMaterialMapping.d.ts +7 -7
  37. package/dist/material/CfgMaterialMapping.js +181 -181
  38. package/dist/material/CfgMtrlApplication.d.ts +18 -18
  39. package/dist/material/CfgMtrlApplication.js +43 -43
  40. package/dist/material/CfgMtrlApplicationSource.d.ts +7 -7
  41. package/dist/material/CfgMtrlApplicationSource.js +8 -8
  42. package/dist/material/CfgMtrlSource.d.ts +19 -19
  43. package/dist/material/CfgMtrlSource.js +40 -40
  44. package/dist/material/CfgMtrlSourceWithMetaData.d.ts +7 -7
  45. package/dist/material/CfgMtrlSourceWithMetaData.js +1 -1
  46. package/dist/productConfiguration/CfgFeature.d.ts +187 -178
  47. package/dist/productConfiguration/CfgFeature.js +645 -611
  48. package/dist/productConfiguration/CfgOption.d.ts +151 -128
  49. package/dist/productConfiguration/CfgOption.js +416 -394
  50. package/dist/productConfiguration/CfgProductConfiguration.d.ts +117 -120
  51. package/dist/productConfiguration/CfgProductConfiguration.js +307 -307
  52. package/dist/productConfiguration/filters.d.ts +15 -15
  53. package/dist/productConfiguration/filters.js +70 -70
  54. package/dist/productConfiguration/productParamsGenerator.d.ts +15 -15
  55. package/dist/productConfiguration/productParamsGenerator.js +51 -51
  56. package/dist/productConfiguration/utilitiesProductConfiguration.d.ts +17 -17
  57. package/dist/productConfiguration/utilitiesProductConfiguration.js +80 -80
  58. package/dist/productLoader.d.ts +33 -33
  59. package/dist/productLoader.js +49 -49
  60. package/dist/syncGroups/SyncGroupsApplyMode.d.ts +21 -0
  61. package/dist/syncGroups/SyncGroupsApplyMode.js +21 -0
  62. package/dist/syncGroups/SyncGroupsHandler.d.ts +41 -0
  63. package/dist/syncGroups/SyncGroupsHandler.js +359 -0
  64. package/dist/syncGroups/SyncGroupsPathHelper.d.ts +27 -0
  65. package/dist/syncGroups/SyncGroupsPathHelper.js +90 -0
  66. package/dist/syncGroups/SyncGroupsState.d.ts +36 -0
  67. package/dist/syncGroups/SyncGroupsState.js +125 -0
  68. package/dist/syncGroups/SyncGroupsTransaction.d.ts +155 -0
  69. package/dist/syncGroups/SyncGroupsTransaction.js +576 -0
  70. package/dist/tasks/TaskHandler.d.ts +77 -78
  71. package/dist/tasks/TaskHandler.js +275 -265
  72. package/dist/tasks/formats.d.ts +4 -4
  73. package/dist/tasks/formats.js +7 -7
  74. package/dist/tests/testData/collectorForTest.d.ts +73 -73
  75. package/dist/tests/testData/collectorForTest.js +194 -195
  76. package/dist/tests/testData/dummyProductForTest.d.ts +4 -4
  77. package/dist/tests/testData/dummyProductForTest.js +32 -36
  78. package/dist/tests/testData/testDataAdditionalProductInAdditionalProductInProductForTest.d.ts +11 -32
  79. package/dist/tests/testData/testDataAdditionalProductInAdditionalProductInProductForTest.js +277 -348
  80. package/dist/tests/testData/testDataCachedGetProduct.d.ts +5 -5
  81. package/dist/tests/testData/testDataCachedGetProduct.js +185 -196
  82. package/dist/tests/testData/testDataCachedPostValidate.d.ts +7 -7
  83. package/dist/tests/testData/testDataCachedPostValidate.js +183 -183
  84. package/dist/tests/testData/testDataNoAdditionalProductNoPropagateForTest.d.ts +3 -3
  85. package/dist/tests/testData/testDataNoAdditionalProductNoPropagateForTest.js +1099 -1099
  86. package/dist/tests/testData/testDataOptions.d.ts +13 -0
  87. package/dist/tests/testData/testDataOptions.js +60 -0
  88. package/dist/tests/testData/testDataProductAggregatedPrice.d.ts +6 -6
  89. package/dist/tests/testData/testDataProductAggregatedPrice.js +187 -198
  90. package/dist/tests/testData/testDataUpcharge.d.ts +8 -29
  91. package/dist/tests/testData/testDataUpcharge.js +119 -151
  92. package/dist/utilitiesCatalogueData.d.ts +33 -25
  93. package/dist/utilitiesCatalogueData.js +164 -66
  94. package/dist/utilitiesCataloguePermission.d.ts +32 -39
  95. package/dist/utilitiesCataloguePermission.js +76 -84
  96. package/dist/utilitiesNumericValues.d.ts +24 -24
  97. package/dist/utilitiesNumericValues.js +109 -109
  98. package/package.json +3 -3
@@ -1,196 +1,185 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { CfgProduct } from "../../CfgProduct.js";
11
- import { wrapWithGetProductCache } from "../../productLoader.js";
12
- import { dummyCatId } from "./dummyProductForTest.js";
13
- let prodKeyArray = [];
14
- const A = () => ({
15
- uuid: "A",
16
- unit: "m",
17
- features: [
18
- {
19
- code: "featureA",
20
- description: "",
21
- numericOrder: false,
22
- options: [
23
- {
24
- code: "optionA",
25
- description: "",
26
- additionalProductRefs: [
27
- { refKey: "C_0", catId: dummyCatId, partNumber: "C" },
28
- { refKey: "B_0", catId: dummyCatId, partNumber: "B" },
29
- ],
30
- },
31
- {
32
- code: "optionB",
33
- description: "",
34
- additionalProductRefs: [{ refKey: "E", catId: dummyCatId, partNumber: "E" }],
35
- },
36
- {
37
- code: "optionC",
38
- description: "",
39
- additionalProductRefs: [{ refKey: "D", catId: dummyCatId, partNumber: "D" }],
40
- },
41
- ],
42
- },
43
- ],
44
- productData: {
45
- sku: "A",
46
- partsData: {
47
- basePrice: 40,
48
- currency: "EURO",
49
- listPrice: 50,
50
- pkgCount: 0,
51
- styleNr: "",
52
- selOptions: [
53
- {
54
- code: "!~!",
55
- next: {
56
- optionA: {
57
- code: "optionA",
58
- },
59
- },
60
- },
61
- ],
62
- },
63
- additionalProductRefs: [
64
- { refKey: "B_1", catId: dummyCatId, partNumber: "B", optional: true },
65
- ],
66
- },
67
- rootFeatureRefs: [{ code: "featureA" }],
68
- });
69
- const B = () => ({
70
- uuid: "B",
71
- unit: "m",
72
- features: [],
73
- productData: {
74
- sku: "B",
75
- partsData: {
76
- basePrice: 30,
77
- currency: "EURO",
78
- listPrice: 40,
79
- pkgCount: 0,
80
- selOptions: [],
81
- styleNr: "",
82
- },
83
- additionalProductRefs: [{ refKey: "C_0", catId: dummyCatId, partNumber: "C" }],
84
- },
85
- rootFeatureRefs: [],
86
- });
87
- const C = () => ({
88
- uuid: "C",
89
- unit: "m",
90
- features: [],
91
- productData: {
92
- sku: "C",
93
- partsData: {
94
- basePrice: 20,
95
- currency: "EURO",
96
- listPrice: 30,
97
- pkgCount: 0,
98
- selOptions: [],
99
- styleNr: "",
100
- },
101
- },
102
- rootFeatureRefs: [],
103
- });
104
- const D = () => ({
105
- uuid: "D",
106
- unit: "m",
107
- features: [],
108
- productData: {
109
- sku: "D",
110
- partsData: {
111
- basePrice: 10,
112
- currency: "EURO",
113
- listPrice: 20,
114
- pkgCount: 0,
115
- selOptions: [],
116
- styleNr: "",
117
- },
118
- },
119
- rootFeatureRefs: [],
120
- });
121
- const E = () => ({
122
- uuid: "E",
123
- unit: "m",
124
- features: [],
125
- productData: {
126
- sku: "E",
127
- partsData: {
128
- basePrice: 15,
129
- currency: "USD",
130
- listPrice: 25,
131
- pkgCount: 0,
132
- selOptions: [],
133
- styleNr: "",
134
- },
135
- },
136
- rootFeatureRefs: [],
137
- });
138
- export const getTestProduct = (params, validateCall) => __awaiter(void 0, void 0, void 0, function* () {
139
- const partNumber = params.partNumber;
140
- if (validateCall !== true) {
141
- if (prodKeyArray.indexOf(partNumber) > -1) {
142
- throw new Error("Duplicate call!");
143
- }
144
- else {
145
- prodKeyArray.push(partNumber);
146
- }
147
- }
148
- switch (partNumber) {
149
- case "A":
150
- return A();
151
- case "B":
152
- return B();
153
- case "C":
154
- return C();
155
- case "D":
156
- return D();
157
- case "E":
158
- return E();
159
- }
160
- throw new Error("No such part");
161
- });
162
- export const cachedProductLoaderTest = () => __awaiter(void 0, void 0, void 0, function* () {
163
- prodKeyArray = [];
164
- const productLoader = {
165
- getProduct: getTestProduct,
166
- postValidate: (params, _body) => __awaiter(void 0, void 0, void 0, function* () {
167
- const productData = (yield getTestProduct(params, true)).productData;
168
- let code = "optionA";
169
- for (let test in _body.selOptions[0].next) {
170
- code = test;
171
- break;
172
- }
173
- productData.partsData.selOptions = [
174
- {
175
- code: _body.selOptions[0].code,
176
- next: {
177
- [code]: {
178
- code: code,
179
- },
180
- },
181
- },
182
- ];
183
- const validateResponse = {
184
- uuid: "",
185
- validated: true,
186
- productData,
187
- };
188
- return validateResponse;
189
- }),
190
- };
191
- const productWrapper = yield CfgProduct.make({
192
- getProduct: wrapWithGetProductCache(productLoader.getProduct.bind(productLoader)),
193
- postValidate: productLoader.postValidate.bind(productLoader),
194
- }, "lang", dummyCatId, "A");
195
- return productWrapper;
196
- });
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { CfgProduct } from "../../CfgProduct.js";
11
+ import { wrapWithGetProductCache } from "../../productLoader.js";
12
+ import { dummyCatId } from "./dummyProductForTest.js";
13
+ import { letterOptionCodeA, letterOptions } from "./testDataOptions.js";
14
+ let prodKeyArray = [];
15
+ const A = () => ({
16
+ uuid: "A",
17
+ unit: "m",
18
+ features: [
19
+ {
20
+ code: "featureA",
21
+ description: "",
22
+ numericOrder: false,
23
+ options: [
24
+ Object.assign(Object.assign({}, letterOptions[0]), { additionalProductRefs: [
25
+ { refKey: "C_0", catId: dummyCatId, partNumber: "C" },
26
+ { refKey: "B_0", catId: dummyCatId, partNumber: "B" },
27
+ ] }),
28
+ Object.assign(Object.assign({}, letterOptions[1]), { additionalProductRefs: [{ refKey: "E", catId: dummyCatId, partNumber: "E" }] }),
29
+ Object.assign(Object.assign({}, letterOptions[2]), { additionalProductRefs: [{ refKey: "D", catId: dummyCatId, partNumber: "D" }] }),
30
+ ],
31
+ },
32
+ ],
33
+ productData: {
34
+ sku: "A",
35
+ partsData: {
36
+ basePrice: 40,
37
+ currency: "EURO",
38
+ listPrice: 50,
39
+ pkgCount: 0,
40
+ styleNr: "",
41
+ selOptions: [
42
+ {
43
+ code: "!~!",
44
+ next: {
45
+ [letterOptionCodeA]: {
46
+ code: letterOptionCodeA,
47
+ },
48
+ },
49
+ },
50
+ ],
51
+ },
52
+ additionalProductRefs: [
53
+ { refKey: "B_1", catId: dummyCatId, partNumber: "B", optional: true },
54
+ ],
55
+ },
56
+ rootFeatureRefs: [{ code: "featureA" }],
57
+ });
58
+ const B = () => ({
59
+ uuid: "B",
60
+ unit: "m",
61
+ features: [],
62
+ productData: {
63
+ sku: "B",
64
+ partsData: {
65
+ basePrice: 30,
66
+ currency: "EURO",
67
+ listPrice: 40,
68
+ pkgCount: 0,
69
+ selOptions: [],
70
+ styleNr: "",
71
+ },
72
+ additionalProductRefs: [{ refKey: "C_0", catId: dummyCatId, partNumber: "C" }],
73
+ },
74
+ rootFeatureRefs: [],
75
+ });
76
+ const C = () => ({
77
+ uuid: "C",
78
+ unit: "m",
79
+ features: [],
80
+ productData: {
81
+ sku: "C",
82
+ partsData: {
83
+ basePrice: 20,
84
+ currency: "EURO",
85
+ listPrice: 30,
86
+ pkgCount: 0,
87
+ selOptions: [],
88
+ styleNr: "",
89
+ },
90
+ },
91
+ rootFeatureRefs: [],
92
+ });
93
+ const D = () => ({
94
+ uuid: "D",
95
+ unit: "m",
96
+ features: [],
97
+ productData: {
98
+ sku: "D",
99
+ partsData: {
100
+ basePrice: 10,
101
+ currency: "EURO",
102
+ listPrice: 20,
103
+ pkgCount: 0,
104
+ selOptions: [],
105
+ styleNr: "",
106
+ },
107
+ },
108
+ rootFeatureRefs: [],
109
+ });
110
+ const E = () => ({
111
+ uuid: "E",
112
+ unit: "m",
113
+ features: [],
114
+ productData: {
115
+ sku: "E",
116
+ partsData: {
117
+ basePrice: 15,
118
+ currency: "USD",
119
+ listPrice: 25,
120
+ pkgCount: 0,
121
+ selOptions: [],
122
+ styleNr: "",
123
+ },
124
+ },
125
+ rootFeatureRefs: [],
126
+ });
127
+ export const getTestProduct = (params, validateCall) => {
128
+ const partNumber = params.partNumber;
129
+ if (validateCall !== true) {
130
+ if (prodKeyArray.indexOf(partNumber) > -1) {
131
+ throw new Error("Duplicate call!");
132
+ }
133
+ else {
134
+ prodKeyArray.push(partNumber);
135
+ }
136
+ }
137
+ switch (partNumber) {
138
+ case "A":
139
+ return Promise.resolve(A());
140
+ case "B":
141
+ return Promise.resolve(B());
142
+ case "C":
143
+ return Promise.resolve(C());
144
+ case "D":
145
+ return Promise.resolve(D());
146
+ case "E":
147
+ return Promise.resolve(E());
148
+ }
149
+ throw new Error("No such part");
150
+ };
151
+ export const cachedProductLoaderTest = () => __awaiter(void 0, void 0, void 0, function* () {
152
+ prodKeyArray = [];
153
+ const productLoader = {
154
+ getProduct: getTestProduct,
155
+ postValidate: (params, _body) => __awaiter(void 0, void 0, void 0, function* () {
156
+ const productData = (yield getTestProduct(params, true)).productData;
157
+ let code = letterOptionCodeA;
158
+ for (const test in _body.selOptions[0].next) {
159
+ code = test;
160
+ break;
161
+ }
162
+ productData.partsData.selOptions = [
163
+ {
164
+ code: _body.selOptions[0].code,
165
+ next: {
166
+ [code]: {
167
+ code: code,
168
+ },
169
+ },
170
+ },
171
+ ];
172
+ const validateResponse = {
173
+ uuid: "",
174
+ validated: true,
175
+ productData,
176
+ };
177
+ return validateResponse;
178
+ }),
179
+ };
180
+ const productWrapper = yield CfgProduct.make({
181
+ getProduct: wrapWithGetProductCache(productLoader.getProduct.bind(productLoader)),
182
+ postValidate: productLoader.postValidate.bind(productLoader),
183
+ }, Object.assign(Object.assign({}, dummyCatId), { partNumber: "A" }));
184
+ return productWrapper;
185
+ });
@@ -1,8 +1,8 @@
1
- import { CfgProduct } from "../../CfgProduct.js";
2
- export declare const cachedProductLoaderTest: () => Promise<{
3
- product: CfgProduct;
4
- validateCounter: {
5
- count: number;
6
- };
7
- }>;
1
+ import { CfgProduct } from "../../CfgProduct.js";
2
+ export declare const cachedProductLoaderTest: () => Promise<{
3
+ product: CfgProduct;
4
+ validateCounter: {
5
+ count: number;
6
+ };
7
+ }>;
8
8
  //# sourceMappingURL=testDataCachedPostValidate.d.ts.map