@or-sdk/sku-builder 2.0.3-beta.3983.0 → 2.1.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/CHANGELOG.md +9 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/makeSkuFragment.js +2 -17
- package/dist/cjs/utils/makeSkuFragment.js.map +1 -1
- package/dist/cjs/utils/skuBuilder.js +9 -15
- package/dist/cjs/utils/skuBuilder.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/makeSkuFragment.js +2 -17
- package/dist/esm/utils/makeSkuFragment.js.map +1 -1
- package/dist/esm/utils/skuBuilder.js +9 -15
- package/dist/esm/utils/skuBuilder.js.map +1 -1
- package/dist/types/SkuBuilder.d.ts +78 -4
- package/dist/types/SkuBuilder.d.ts.map +1 -1
- package/dist/types/apiError.d.ts +3 -0
- package/dist/types/apiError.d.ts.map +1 -1
- package/dist/types/types.d.ts +25 -11
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/makeSkuFragment.d.ts +2 -2
- package/dist/types/utils/makeSkuFragment.d.ts.map +1 -1
- package/dist/types/utils/skuBuilder.d.ts +2 -6
- package/dist/types/utils/skuBuilder.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/SkuBuilder.ts +1 -1
- package/src/types.ts +0 -13
- package/src/utils/makeSkuFragment.ts +3 -27
- package/src/utils/skuBuilder.ts +12 -25
- package/tsconfig.types.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.1.0](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/sku-builder@2.0.2...@or-sdk/sku-builder@2.1.0) (2026-02-24)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **deployer:** Add methods 'fetchFlowLogsChunk' and 'fetchAllFlowLogs' to fetch flow logs ([6b70992](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/commit/6b70992ce3d1e4f308db69df700528f6eeffafcf))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
6
15
|
## [2.0.2](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/sku-builder@2.0.1...@or-sdk/sku-builder@2.0.2) (2026-01-20)
|
|
7
16
|
|
|
8
17
|
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAqCA,IAAY,iBAcX;AAdD,WAAY,iBAAiB;IAC3B,wDAAmC,CAAA;IACnC,0DAAqC,CAAA;IACrC,8DAAyC,CAAA;IACzC,sDAAiC,CAAA;IACjC,sCAAiB,CAAA;IACjB,wDAAmC,CAAA;IACnC,sDAAiC,CAAA;IACjC,2DAAsC,CAAA;IACtC,gDAA2B,CAAA;IAC3B,kCAAa,CAAA;IACb,8CAAyB,CAAA;IACzB,wDAAmC,CAAA;IACnC,0DAAqC,CAAA;AACvC,CAAC,EAdW,iBAAiB,iCAAjB,iBAAiB,QAc5B;AAKD,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,qDAAmD,CAAA;IACnD,uDAAqD,CAAA;IACrD,mDAAiD,CAAA;IACjD,mCAAiC,CAAA;IACjC,qDAAmD,CAAA;IACnD,mDAAiD,CAAA;IACjD,wDAAuD,CAAA;IACvD,6CAA2C,CAAA;IAC3C,uDAAqD,CAAA;IACrD,qDAAmD,CAAA;AACrD,CAAC,EAXW,cAAc,8BAAd,cAAc,QAWzB;AAKD,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,wCAA6B,CAAA;IAC7B,oDAAyC,CAAA;AAC3C,CAAC,EAHW,uBAAuB,uCAAvB,uBAAuB,QAGlC"}
|
|
@@ -2,30 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = makeSkuFragment;
|
|
4
4
|
function makeSkuFragment(value, pattern, mapping) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var _a, _b, _c, _d;
|
|
5
|
+
return pattern.reduce(function (acc, item) {
|
|
6
|
+
var _a, _b;
|
|
8
7
|
var service = item.service, valueKey = item.valueKey;
|
|
9
8
|
var codeItem = (_b = (_a = mapping[service]) === null || _a === void 0 ? void 0 : _a.find(function (el) { return el.sqlCode === String(value[valueKey]); })) !== null && _b !== void 0 ? _b : { skuCode: 'ERR' };
|
|
10
9
|
if (service === 'direction' && value[valueKey] === 'Transfer') {
|
|
11
10
|
codeItem.skuCode = 'OUT';
|
|
12
11
|
}
|
|
13
12
|
var code = codeItem.skuCode || 'ERR';
|
|
14
|
-
var segmentPositionInFinalSku = 1 + index;
|
|
15
|
-
if (code === 'ERR') {
|
|
16
|
-
errorDetails.push({
|
|
17
|
-
segment_position: segmentPositionInFinalSku,
|
|
18
|
-
original_value: String(value[valueKey]),
|
|
19
|
-
expected_service: service,
|
|
20
|
-
error_type: 'mapping_not_found',
|
|
21
|
-
groupId: (_d = (_c = mapping[service]) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.groupId
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
13
|
return !acc ? code : "".concat(acc, "-").concat(code);
|
|
25
14
|
}, '');
|
|
26
|
-
return {
|
|
27
|
-
fragment: fragment,
|
|
28
|
-
errorDetails: errorDetails.length > 0 ? errorDetails : undefined
|
|
29
|
-
};
|
|
30
15
|
}
|
|
31
16
|
//# sourceMappingURL=makeSkuFragment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeSkuFragment.js","sourceRoot":"","sources":["../../../src/utils/makeSkuFragment.ts"],"names":[],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"makeSkuFragment.js","sourceRoot":"","sources":["../../../src/utils/makeSkuFragment.ts"],"names":[],"mappings":";;AAEA,kCAiBC;AAjBD,SAAwB,eAAe,CACrC,KAA8B,EAC9B,OAGG,EACH,OAAkC;IAElC,OAAO,OAAO,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI;;QACtB,IAAA,OAAO,GAAe,IAAI,QAAnB,EAAE,QAAQ,GAAK,IAAI,SAAT,CAAU;QACnC,IAAM,QAAQ,GAAG,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAtC,CAAsC,CAAC,mCAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5G,IAAI,OAAO,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE,CAAC;YAC9D,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,IAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAG,GAAG,cAAI,IAAI,CAAE,CAAC;IACxC,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
|
|
@@ -34,7 +34,7 @@ function skuBuilder(item, type, mapping, options) {
|
|
|
34
34
|
if (options === void 0) { options = {}; }
|
|
35
35
|
var result = __assign(__assign({}, item), { SKU: '', Amount: 0 });
|
|
36
36
|
var pattern = (0, getPattern_1.default)(type, item);
|
|
37
|
-
var
|
|
37
|
+
var skuFragment = (0, makeSkuFragment_1.default)(item, pattern, mapping);
|
|
38
38
|
switch (type) {
|
|
39
39
|
case types_1.CategoryNamespace.PROCESSING_FLOW:
|
|
40
40
|
result = (0, makeFlowProcessingSku_1.default)(item, options);
|
|
@@ -43,44 +43,38 @@ function skuBuilder(item, type, mapping, options) {
|
|
|
43
43
|
result = (0, makeVoiceProcessingSku_1.default)(item);
|
|
44
44
|
break;
|
|
45
45
|
case types_1.CategoryNamespace.LOOKUP:
|
|
46
|
-
result = (0, makeLookupSku_1.default)(item,
|
|
46
|
+
result = (0, makeLookupSku_1.default)(item, skuFragment);
|
|
47
47
|
break;
|
|
48
48
|
case types_1.CategoryNamespace.TELEPHONY_VOICE:
|
|
49
|
-
result = (0, makeTelephonyVoiceSku_1.default)(item,
|
|
49
|
+
result = (0, makeTelephonyVoiceSku_1.default)(item, skuFragment);
|
|
50
50
|
break;
|
|
51
51
|
case types_1.CategoryNamespace.MESSAGING_TEXT:
|
|
52
|
-
result = (0, makeTextMessagingSku_1.default)(item,
|
|
52
|
+
result = (0, makeTextMessagingSku_1.default)(item, skuFragment);
|
|
53
53
|
break;
|
|
54
54
|
case types_1.CategoryNamespace.CARRIER_FEE:
|
|
55
|
-
result = (0, makeCarrierFeeSku_1.default)(item,
|
|
55
|
+
result = (0, makeCarrierFeeSku_1.default)(item, skuFragment);
|
|
56
56
|
break;
|
|
57
57
|
case types_1.CategoryNamespace.STORAGE_WEAVIATE:
|
|
58
|
-
result = (0, makeWeaviateStorageSku_1.default)(item,
|
|
58
|
+
result = (0, makeWeaviateStorageSku_1.default)(item, skuFragment);
|
|
59
59
|
break;
|
|
60
60
|
case types_1.CategoryNamespace.STORAGE_GENERAL:
|
|
61
61
|
result = (0, makeGeneralStorageSku_1.default)(item);
|
|
62
62
|
break;
|
|
63
63
|
case types_1.CategoryNamespace.CONVERSATIONS_WAP:
|
|
64
|
-
result = (0, makeWapConversationSku_1.default)(item,
|
|
64
|
+
result = (0, makeWapConversationSku_1.default)(item, skuFragment);
|
|
65
65
|
break;
|
|
66
66
|
case types_1.CategoryNamespace.EXECUTABLE_GENERAL:
|
|
67
67
|
case types_1.CategoryNamespace.EXECUTABLE_LLM:
|
|
68
|
-
result = (0, makeExecutableSku_1.default)(item,
|
|
68
|
+
result = (0, makeExecutableSku_1.default)(item, skuFragment);
|
|
69
69
|
break;
|
|
70
70
|
case types_1.CategoryNamespace.IDENTIFIER:
|
|
71
|
-
result = (0, makeIdentifierSku_1.default)(item,
|
|
71
|
+
result = (0, makeIdentifierSku_1.default)(item, skuFragment);
|
|
72
72
|
break;
|
|
73
73
|
case types_1.CategoryNamespace.USER: {
|
|
74
74
|
result = (0, makeUserSku_1.default)(item, mapping['user']);
|
|
75
75
|
break;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
if (skuFragmentResult.errorDetails && Array.isArray(result)) {
|
|
79
|
-
result = result.map(function (r) { return (__assign(__assign({}, r), { errorDetails: skuFragmentResult.errorDetails })); });
|
|
80
|
-
}
|
|
81
|
-
else if (skuFragmentResult.errorDetails && !Array.isArray(result)) {
|
|
82
|
-
result = __assign(__assign({}, result), { errorDetails: skuFragmentResult.errorDetails });
|
|
83
|
-
}
|
|
84
78
|
return result;
|
|
85
79
|
}
|
|
86
80
|
//# sourceMappingURL=skuBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skuBuilder.js","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAiBA,
|
|
1
|
+
{"version":3,"file":"skuBuilder.js","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAiBA,6BAwEC;AAzFD,kCAA+D;AAE/D,4DAAsC;AACtC,0EAAoD;AACpD,0EAAoD;AACpD,kFAA4D;AAC5D,kFAA4D;AAC5D,0EAAoD;AACpD,kEAA4C;AAC5C,sEAAgD;AAChD,kFAA4D;AAC5D,gFAA0D;AAC1D,8DAAwC;AACxC,oFAA8D;AAC9D,oFAA8D;AAC9D,oFAA8D;AAE9D,SAAwB,UAAU,CAChC,IAAO,EACP,IAAY,EACZ,OAAkC,EAClC,OAAqB;IAArB,wBAAA,EAAA,YAAqB;IAGrB,IAAI,MAAM,yBACL,IAAI,KACP,GAAG,EAAE,EAAE,EACP,MAAM,EAAE,CAAC,GACV,CAAC;IAKF,IAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,IAAM,WAAW,GAAG,IAAA,yBAAe,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE5D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,yBAAiB,CAAC,eAAe;YACpC,MAAM,GAAG,IAAA,+BAAqB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM;QAER,KAAK,yBAAiB,CAAC,gBAAgB;YACrC,MAAM,GAAG,IAAA,gCAAsB,EAAC,IAAI,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,yBAAiB,CAAC,MAAM;YAC3B,MAAM,GAAG,IAAA,uBAAa,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,yBAAiB,CAAC,eAAe;YACpC,MAAM,GAAG,IAAA,+BAAqB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAClD,MAAM;QAER,KAAK,yBAAiB,CAAC,cAAc;YACnC,MAAM,GAAG,IAAA,8BAAoB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM;QAER,KAAK,yBAAiB,CAAC,WAAW;YAChC,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9C,MAAM;QAER,KAAK,yBAAiB,CAAC,gBAAgB;YACrC,MAAM,GAAG,IAAA,gCAAsB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACnD,MAAM;QAER,KAAK,yBAAiB,CAAC,eAAe;YACpC,MAAM,GAAG,IAAA,+BAAqB,EAAC,IAAI,CAAC,CAAC;YACrC,MAAM;QAER,KAAK,yBAAiB,CAAC,iBAAiB;YACtC,MAAM,GAAG,IAAA,gCAAsB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACnD,MAAM;QAER,KAAK,yBAAiB,CAAC,kBAAkB,CAAC;QAC1C,KAAK,yBAAiB,CAAC,cAAc;YACnC,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9C,MAAM;QAER,KAAK,yBAAiB,CAAC,UAAU;YAC/B,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC9C,MAAM;QAER,KAAK,yBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5B,MAAM,GAAG,IAAA,qBAAW,EAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5C,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAN,IAAY,iBAcX;AAdD,WAAY,iBAAiB;IAC3B,wDAAmC,CAAA;IACnC,0DAAqC,CAAA;IACrC,8DAAyC,CAAA;IACzC,sDAAiC,CAAA;IACjC,sCAAiB,CAAA;IACjB,wDAAmC,CAAA;IACnC,sDAAiC,CAAA;IACjC,2DAAsC,CAAA;IACtC,gDAA2B,CAAA;IAC3B,kCAAa,CAAA;IACb,8CAAyB,CAAA;IACzB,wDAAmC,CAAA;IACnC,0DAAqC,CAAA;AACvC,CAAC,EAdW,iBAAiB,KAAjB,iBAAiB,QAc5B;AAKD,MAAM,CAAN,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,qDAAmD,CAAA;IACnD,uDAAqD,CAAA;IACrD,mDAAiD,CAAA;IACjD,mCAAiC,CAAA;IACjC,qDAAmD,CAAA;IACnD,mDAAiD,CAAA;IACjD,wDAAuD,CAAA;IACvD,6CAA2C,CAAA;IAC3C,uDAAqD,CAAA;IACrD,qDAAmD,CAAA;AACrD,CAAC,EAXW,cAAc,KAAd,cAAc,QAWzB;AAKD,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,wCAA6B,CAAA;IAC7B,oDAAyC,CAAA;AAC3C,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC"}
|
|
@@ -1,28 +1,13 @@
|
|
|
1
1
|
export default function makeSkuFragment(value, pattern, mapping) {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _a, _b, _c, _d;
|
|
2
|
+
return pattern.reduce((acc, item) => {
|
|
3
|
+
var _a, _b;
|
|
5
4
|
const { service, valueKey } = item;
|
|
6
5
|
const codeItem = (_b = (_a = mapping[service]) === null || _a === void 0 ? void 0 : _a.find(el => el.sqlCode === String(value[valueKey]))) !== null && _b !== void 0 ? _b : { skuCode: 'ERR' };
|
|
7
6
|
if (service === 'direction' && value[valueKey] === 'Transfer') {
|
|
8
7
|
codeItem.skuCode = 'OUT';
|
|
9
8
|
}
|
|
10
9
|
const code = codeItem.skuCode || 'ERR';
|
|
11
|
-
const segmentPositionInFinalSku = 1 + index;
|
|
12
|
-
if (code === 'ERR') {
|
|
13
|
-
errorDetails.push({
|
|
14
|
-
segment_position: segmentPositionInFinalSku,
|
|
15
|
-
original_value: String(value[valueKey]),
|
|
16
|
-
expected_service: service,
|
|
17
|
-
error_type: 'mapping_not_found',
|
|
18
|
-
groupId: (_d = (_c = mapping[service]) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.groupId
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
10
|
return !acc ? code : `${acc}-${code}`;
|
|
22
11
|
}, '');
|
|
23
|
-
return {
|
|
24
|
-
fragment,
|
|
25
|
-
errorDetails: errorDetails.length > 0 ? errorDetails : undefined
|
|
26
|
-
};
|
|
27
12
|
}
|
|
28
13
|
//# sourceMappingURL=makeSkuFragment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeSkuFragment.js","sourceRoot":"","sources":["../../../src/utils/makeSkuFragment.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,KAA8B,EAC9B,OAGG,EACH,OAAkC;IAElC,
|
|
1
|
+
{"version":3,"file":"makeSkuFragment.js","sourceRoot":"","sources":["../../../src/utils/makeSkuFragment.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,KAA8B,EAC9B,OAGG,EACH,OAAkC;IAElC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;;QAClC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,mCAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5G,IAAI,OAAO,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE,CAAC;YAC9D,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACxC,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
|
|
@@ -16,7 +16,7 @@ import makeWeaviateStorageSku from './makeWeaviateStorageSku';
|
|
|
16
16
|
export default function skuBuilder(item, type, mapping, options = {}) {
|
|
17
17
|
let result = Object.assign(Object.assign({}, item), { SKU: '', Amount: 0 });
|
|
18
18
|
const pattern = getPattern(type, item);
|
|
19
|
-
const
|
|
19
|
+
const skuFragment = makeSkuFragment(item, pattern, mapping);
|
|
20
20
|
switch (type) {
|
|
21
21
|
case CategoryNamespace.PROCESSING_FLOW:
|
|
22
22
|
result = makeFlowProcessingSku(item, options);
|
|
@@ -25,44 +25,38 @@ export default function skuBuilder(item, type, mapping, options = {}) {
|
|
|
25
25
|
result = makeVoiceProcessingSku(item);
|
|
26
26
|
break;
|
|
27
27
|
case CategoryNamespace.LOOKUP:
|
|
28
|
-
result = makeLookupSku(item,
|
|
28
|
+
result = makeLookupSku(item, skuFragment);
|
|
29
29
|
break;
|
|
30
30
|
case CategoryNamespace.TELEPHONY_VOICE:
|
|
31
|
-
result = makeTelephonyVoiceSku(item,
|
|
31
|
+
result = makeTelephonyVoiceSku(item, skuFragment);
|
|
32
32
|
break;
|
|
33
33
|
case CategoryNamespace.MESSAGING_TEXT:
|
|
34
|
-
result = makeTextMessagingSku(item,
|
|
34
|
+
result = makeTextMessagingSku(item, skuFragment);
|
|
35
35
|
break;
|
|
36
36
|
case CategoryNamespace.CARRIER_FEE:
|
|
37
|
-
result = makeCarrierFeeSku(item,
|
|
37
|
+
result = makeCarrierFeeSku(item, skuFragment);
|
|
38
38
|
break;
|
|
39
39
|
case CategoryNamespace.STORAGE_WEAVIATE:
|
|
40
|
-
result = makeWeaviateStorageSku(item,
|
|
40
|
+
result = makeWeaviateStorageSku(item, skuFragment);
|
|
41
41
|
break;
|
|
42
42
|
case CategoryNamespace.STORAGE_GENERAL:
|
|
43
43
|
result = makeGeneralStorageSku(item);
|
|
44
44
|
break;
|
|
45
45
|
case CategoryNamespace.CONVERSATIONS_WAP:
|
|
46
|
-
result = makeWapConversationSku(item,
|
|
46
|
+
result = makeWapConversationSku(item, skuFragment);
|
|
47
47
|
break;
|
|
48
48
|
case CategoryNamespace.EXECUTABLE_GENERAL:
|
|
49
49
|
case CategoryNamespace.EXECUTABLE_LLM:
|
|
50
|
-
result = makeExecutableSku(item,
|
|
50
|
+
result = makeExecutableSku(item, skuFragment);
|
|
51
51
|
break;
|
|
52
52
|
case CategoryNamespace.IDENTIFIER:
|
|
53
|
-
result = makeIdentifierSku(item,
|
|
53
|
+
result = makeIdentifierSku(item, skuFragment);
|
|
54
54
|
break;
|
|
55
55
|
case CategoryNamespace.USER: {
|
|
56
56
|
result = makeUserSku(item, mapping['user']);
|
|
57
57
|
break;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
if (skuFragmentResult.errorDetails && Array.isArray(result)) {
|
|
61
|
-
result = result.map(r => (Object.assign(Object.assign({}, r), { errorDetails: skuFragmentResult.errorDetails })));
|
|
62
|
-
}
|
|
63
|
-
else if (skuFragmentResult.errorDetails && !Array.isArray(result)) {
|
|
64
|
-
result = Object.assign(Object.assign({}, result), { errorDetails: skuFragmentResult.errorDetails });
|
|
65
|
-
}
|
|
66
60
|
return result;
|
|
67
61
|
}
|
|
68
62
|
//# sourceMappingURL=skuBuilder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skuBuilder.js","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"skuBuilder.js","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,89 @@
|
|
|
1
1
|
import { AxiosError, Base } from '@or-sdk/base';
|
|
2
|
-
import { Mapping, Options, SkuBuilderConfig
|
|
2
|
+
import { Mapping, Options, SkuBuilderConfig } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* OneReach SkuBuilder service
|
|
5
|
+
* ## Installation:
|
|
6
|
+
* ```
|
|
7
|
+
* $ npm i @or-sdk/sku-builder
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
3
10
|
export declare class SkuBuilder extends Base {
|
|
4
11
|
private readonly userToken?;
|
|
5
12
|
private readonly billingApiUrl?;
|
|
6
13
|
private mapping;
|
|
7
14
|
private withApiErrorLog;
|
|
15
|
+
/**
|
|
16
|
+
* @param {SkuBuilderConfig} [params]
|
|
17
|
+
* Configuration parameters for the SkuBuilder.
|
|
18
|
+
*
|
|
19
|
+
* @param {string} [params.token]
|
|
20
|
+
* The account token for authentication.
|
|
21
|
+
*
|
|
22
|
+
* @param {string} [params.billingApiUrl]
|
|
23
|
+
* The URL for the billing API.
|
|
24
|
+
*
|
|
25
|
+
* @param {string} [params.discoveryUrl]
|
|
26
|
+
* The URL for the discovery service.
|
|
27
|
+
*
|
|
28
|
+
* @param {Array<Mapping>} [params.mapping]
|
|
29
|
+
* Optional mapping configurations.
|
|
30
|
+
* In case this parameter empty SDK gets all mappings and apply it authomaticaly
|
|
31
|
+
*
|
|
32
|
+
* @param {boolean} [params.withApiErrorLog]
|
|
33
|
+
* Flag to enable API error logging.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { SkuBuilder } from '@or-sdk/sku-builder'
|
|
38
|
+
* const skuBuilder = new SkuBuilder({
|
|
39
|
+
* token: 'my-account-token-string',
|
|
40
|
+
* billingApiUrl: 'https://billing.ops-dev.api.onereach.ai',
|
|
41
|
+
* discoveryUrl: 'http://example.billing.ops-dev/endpoint',
|
|
42
|
+
* mapping: 'array-of-mapping-collections'
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
8
46
|
constructor(params?: SkuBuilderConfig);
|
|
47
|
+
/**
|
|
48
|
+
* The method gets SKU mapping collections.
|
|
49
|
+
*
|
|
50
|
+
* @returns {Array<Mapping>} array of mapping collections
|
|
51
|
+
*/
|
|
9
52
|
getMapping(): Promise<Mapping[]>;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Generates SKUs for incoming events.
|
|
55
|
+
* This function processes an array of incoming event objects, all of which should belong to the same
|
|
56
|
+
* type (`type`). Based on the `type`, the function determines the appropriate SKU generation
|
|
57
|
+
* logic. It then extends each event object with generated SKU identifiers and associated amount properties.
|
|
58
|
+
*
|
|
59
|
+
* @param {Array<Object>} payload
|
|
60
|
+
* An array of incoming event objects. Each event should conform to the expected structure based on the `type`.
|
|
61
|
+
* All events in the array must belong to the same category or type as specified by `type`.
|
|
62
|
+
*
|
|
63
|
+
* @param {type} type
|
|
64
|
+
* A string representing the type or category of the events. This parameter dictates the SKU generation strategy.
|
|
65
|
+
* Examples might include `"flow-processing"`, `"executable"`, `"text-messaging"`, etc.
|
|
66
|
+
*
|
|
67
|
+
* @param {Object} [options={}]
|
|
68
|
+
* Optional parameters to control the flow processing behavior. These options can customize how SKUs are generated
|
|
69
|
+
* or how the events are processed. If not provided, default processing rules will apply.
|
|
70
|
+
*
|
|
71
|
+
* @property {boolean} [options.isProcessingSegment=false]
|
|
72
|
+
* Determines whether each SKU should be generated in segements. By defult each SKU are generating in minutes.
|
|
73
|
+
*
|
|
74
|
+
* @returns {Array<Object>}
|
|
75
|
+
* Returns a new array of event objects, each extended with the following additional properties:
|
|
76
|
+
*
|
|
77
|
+
* - `SKU` (string): The generated SKU identifier for the event.
|
|
78
|
+
* - `Amount` (number): The calculated amount associated with the SKU, based on event data and processing rules.
|
|
79
|
+
*/
|
|
80
|
+
makeSku<T extends Record<string, unknown>>(payload: T[], type: string, options?: Options): Promise<(Record<"SKU" | "Amount", unknown> & T)[]>;
|
|
81
|
+
/**
|
|
82
|
+
* Parses an AxiosError and returns a standardized Error object.
|
|
83
|
+
*
|
|
84
|
+
* @param {AxiosError} e - The AxiosError instance to be parsed.
|
|
85
|
+
* @returns {Error} A new Error object containing the error code, message, and stack trace.
|
|
86
|
+
*/
|
|
13
87
|
parseError(e: AxiosError): Error;
|
|
14
88
|
private logApiError;
|
|
15
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkuBuilder.d.ts","sourceRoot":"","sources":["../../src/SkuBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAS,MAAM,cAAc,CAAC;AAKvD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAwB,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"SkuBuilder.d.ts","sourceRoot":"","sources":["../../src/SkuBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAS,MAAM,cAAc,CAAC;AAKvD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAwB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAInF;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,IAAI;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,eAAe,CAAU;IAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;gBACS,MAAM,GAAE,gBAAqB;IAiBzC;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IA+B7C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACU,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO;IAanB;;;;;OAKG;IACI,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK;IAavC,OAAO,CAAC,WAAW;CAYpB"}
|
package/dist/types/apiError.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiError.d.ts","sourceRoot":"","sources":["../../src/apiError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apiError.d.ts","sourceRoot":"","sources":["../../src/apiError.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;aAEf,UAAU,EAAE,GAAG;aAEf,KAAK,CAAC,EAAE,MAAM;aACd,cAAc,CAAC,EAAE,MAAM;gBAHvB,UAAU,EAAE,GAAG,EAC/B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,MAAM,YAAA,EACd,cAAc,CAAC,EAAE,MAAM,YAAA;CAI1C"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -8,23 +8,28 @@ export type Mapping = {
|
|
|
8
8
|
metadata?: object;
|
|
9
9
|
};
|
|
10
10
|
export type SkuBuilderConfig = {
|
|
11
|
+
/**
|
|
12
|
+
* Token
|
|
13
|
+
*/
|
|
11
14
|
token?: Token;
|
|
15
|
+
/**
|
|
16
|
+
* URL of Billing Api
|
|
17
|
+
*/
|
|
12
18
|
billingApiUrl?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Service discovery URL
|
|
21
|
+
*/
|
|
13
22
|
discoveryUrl?: string;
|
|
23
|
+
/**
|
|
24
|
+
* If true, the API error details like request url, params and body,
|
|
25
|
+
* will be outputted to console
|
|
26
|
+
*/
|
|
14
27
|
withApiErrorLog?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* SKU mapping
|
|
30
|
+
*/
|
|
15
31
|
mapping?: Array<Mapping>;
|
|
16
32
|
};
|
|
17
|
-
export type ErrorDetails = {
|
|
18
|
-
segment_position: number;
|
|
19
|
-
original_value: string;
|
|
20
|
-
expected_service: string;
|
|
21
|
-
error_type: 'mapping_not_found';
|
|
22
|
-
groupId?: string;
|
|
23
|
-
};
|
|
24
|
-
export type SkuFragmentResult = {
|
|
25
|
-
fragment: string;
|
|
26
|
-
errorDetails?: ErrorDetails[];
|
|
27
|
-
};
|
|
28
33
|
export type Options = {
|
|
29
34
|
isProcessingSegment?: boolean;
|
|
30
35
|
};
|
|
@@ -43,6 +48,9 @@ export declare enum CategoryNamespace {
|
|
|
43
48
|
STORAGE_GENERAL = "storage-general",
|
|
44
49
|
STORAGE_WEAVIATE = "storage-weaviate"
|
|
45
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated use CategoryNamespace
|
|
53
|
+
*/
|
|
46
54
|
export declare enum UsageQueryType {
|
|
47
55
|
FLOW_PROCESSING = "processing-flow",
|
|
48
56
|
VOICE_PROCESSING = "processing-voice",
|
|
@@ -55,10 +63,16 @@ export declare enum UsageQueryType {
|
|
|
55
63
|
WEAVIATE_STORAGE = "storage-weaviate",
|
|
56
64
|
GENERAL_STORAGE = "storage-general"
|
|
57
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* @deprecated use CategoryNamespace
|
|
68
|
+
*/
|
|
58
69
|
export declare enum UsageResourcesQueryType {
|
|
59
70
|
USER = "user",
|
|
60
71
|
IDENTIFIER = "identifier"
|
|
61
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* @deprecated use CategoryNamespace
|
|
75
|
+
*/
|
|
62
76
|
export type QueryType = UsageQueryType | UsageResourcesQueryType;
|
|
63
77
|
export type PaginatedResponseDto<T> = {
|
|
64
78
|
total: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAAE,CAAC;AAEzD,oBAAY,iBAAiB;IAC3B,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IACjC,MAAM,WAAW;IACjB,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,iBAAiB,qBAAqB;IACtC,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;CACtC;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,eAAe,oBAAoC;IACnD,gBAAgB,qBAAqC;IACrD,UAAU,uBAAuC;IACjD,MAAM,WAA2B;IACjC,eAAe,oBAAoC;IACnD,cAAc,mBAAmC;IACjD,iBAAiB,qBAAsC;IACvD,WAAW,gBAAgC;IAC3C,gBAAgB,qBAAqC;IACrD,eAAe,oBAAoC;CACpD;AAED;;GAEG;AACH,oBAAY,uBAAuB;IACjC,IAAI,SAAyB;IAC7B,UAAU,eAA+B;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,uBAAuB,CAAC;AAEjE,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,EAAE,CAAC;CACX,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Mapping
|
|
1
|
+
import { Mapping } from '../types';
|
|
2
2
|
export default function makeSkuFragment(value: Record<string, unknown>, pattern: {
|
|
3
3
|
service: string;
|
|
4
4
|
valueKey: string;
|
|
5
|
-
}[], mapping: Record<string, Mapping[]>):
|
|
5
|
+
}[], mapping: Record<string, Mapping[]>): string;
|
|
6
6
|
//# sourceMappingURL=makeSkuFragment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeSkuFragment.d.ts","sourceRoot":"","sources":["../../../src/utils/makeSkuFragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"makeSkuFragment.d.ts","sourceRoot":"","sources":["../../../src/utils/makeSkuFragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,EAAE,EACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,UAWnC"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { Mapping, Options
|
|
2
|
-
export default function skuBuilder<T extends Record<string, unknown>>(item: T, type: string, mapping: Record<string, Mapping[]>, options?: Options): (Record<'SKU' | 'Amount', unknown> & T &
|
|
3
|
-
errorDetails?: ErrorDetails[];
|
|
4
|
-
}) | (Record<'SKU' | 'Amount', unknown> & T & {
|
|
5
|
-
errorDetails?: ErrorDetails[];
|
|
6
|
-
})[];
|
|
1
|
+
import { Mapping, Options } from '../types';
|
|
2
|
+
export default function skuBuilder<T extends Record<string, unknown>>(item: T, type: string, mapping: Record<string, Mapping[]>, options?: Options): (Record<'SKU' | 'Amount', unknown> & T) | (Record<'SKU' | 'Amount', unknown> & T)[];
|
|
7
3
|
//# sourceMappingURL=skuBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skuBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"skuBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAiB/D,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAClC,OAAO,GAAE,OAAY,GACpB,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAmErF"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@or-sdk/sku-builder",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
7
7
|
"types": "dist/types/index.d.ts",
|
|
8
8
|
"scripts": {
|
|
9
|
-
"build": "pnpm clean && pnpm
|
|
9
|
+
"build": "pnpm clean && concurrently 'pnpm:build:*(!watch)'",
|
|
10
10
|
"build:cjs": "tsc --project tsconfig.json",
|
|
11
11
|
"build:esm": "tsc --project tsconfig.esm.json",
|
|
12
12
|
"build:types": "tsc --project tsconfig.types.json",
|
|
13
|
-
"build:watch": "concurrently
|
|
13
|
+
"build:watch": "concurrently 'pnpm:build:watch:*'",
|
|
14
14
|
"build:watch:cjs": "tsc --project tsconfig.json -w",
|
|
15
15
|
"build:watch:esm": "tsc --project tsconfig.esm.json -w",
|
|
16
16
|
"build:watch:types": "tsc --project tsconfig.types.json -w",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"test:watch": "vitest --watch"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@or-sdk/base": "^0.
|
|
24
|
+
"@or-sdk/base": "^0.43.0",
|
|
25
25
|
"lodash.clonedeep": "^4.5.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
@@ -32,5 +32,6 @@
|
|
|
32
32
|
},
|
|
33
33
|
"publishConfig": {
|
|
34
34
|
"access": "public"
|
|
35
|
-
}
|
|
35
|
+
},
|
|
36
|
+
"gitHead": "ce62679c119c54ef41fd0d8f7084c563c3b21b24"
|
|
36
37
|
}
|
package/src/SkuBuilder.ts
CHANGED
|
@@ -3,7 +3,7 @@ import cloneDeep from 'lodash.clonedeep';
|
|
|
3
3
|
|
|
4
4
|
import { ApiError } from './apiError';
|
|
5
5
|
import { SERVICE_KEY } from './constants';
|
|
6
|
-
import { Mapping, Options, PaginatedResponseDto, SkuBuilderConfig
|
|
6
|
+
import { Mapping, Options, PaginatedResponseDto, SkuBuilderConfig } from './types';
|
|
7
7
|
import { skuBuilder } from './utils';
|
|
8
8
|
import { transformMapping } from './utils/transformMapping';
|
|
9
9
|
|
package/src/types.ts
CHANGED
|
@@ -33,19 +33,6 @@ export type SkuBuilderConfig = {
|
|
|
33
33
|
mapping?: Array<Mapping>;
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
export type ErrorDetails = {
|
|
37
|
-
segment_position: number;
|
|
38
|
-
original_value: string;
|
|
39
|
-
expected_service: string;
|
|
40
|
-
error_type: 'mapping_not_found';
|
|
41
|
-
groupId?: string;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export type SkuFragmentResult = {
|
|
45
|
-
fragment: string;
|
|
46
|
-
errorDetails?: ErrorDetails[];
|
|
47
|
-
};
|
|
48
|
-
|
|
49
36
|
export type Options = { isProcessingSegment?: boolean; };
|
|
50
37
|
|
|
51
38
|
export enum CategoryNamespace {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Mapping
|
|
1
|
+
import { Mapping } from '../types';
|
|
2
2
|
|
|
3
3
|
export default function makeSkuFragment(
|
|
4
4
|
value: Record<string, unknown>,
|
|
@@ -7,38 +7,14 @@ export default function makeSkuFragment(
|
|
|
7
7
|
valueKey: string;
|
|
8
8
|
}[],
|
|
9
9
|
mapping: Record<string, Mapping[]>,
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const fragment = pattern.reduce((acc, item, index) => {
|
|
10
|
+
) {
|
|
11
|
+
return pattern.reduce((acc, item) => {
|
|
14
12
|
const { service, valueKey } = item;
|
|
15
13
|
const codeItem = mapping[service]?.find(el => el.sqlCode === String(value[valueKey])) ?? { skuCode: 'ERR' };
|
|
16
|
-
|
|
17
14
|
if (service === 'direction' && value[valueKey] === 'Transfer') {
|
|
18
15
|
codeItem.skuCode = 'OUT'; // apply overrides for direction codes
|
|
19
16
|
}
|
|
20
|
-
|
|
21
17
|
const code = codeItem.skuCode || 'ERR';
|
|
22
|
-
|
|
23
|
-
// Calculate the segment position in the final SKU (accounting for prefix)
|
|
24
|
-
const segmentPositionInFinalSku = 1 + index; // +1 to account for prefix like 'IDN'
|
|
25
|
-
|
|
26
|
-
// Track error details if mapping was not found
|
|
27
|
-
if (code === 'ERR') {
|
|
28
|
-
errorDetails.push({
|
|
29
|
-
segment_position: segmentPositionInFinalSku,
|
|
30
|
-
original_value: String(value[valueKey]),
|
|
31
|
-
expected_service: service,
|
|
32
|
-
error_type: 'mapping_not_found',
|
|
33
|
-
groupId: mapping[service]?.[0]?.groupId
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
|
|
37
18
|
return !acc ? code : `${acc}-${code}`;
|
|
38
19
|
}, '');
|
|
39
|
-
|
|
40
|
-
return {
|
|
41
|
-
fragment,
|
|
42
|
-
errorDetails: errorDetails.length > 0 ? errorDetails : undefined
|
|
43
|
-
};
|
|
44
20
|
}
|
package/src/utils/skuBuilder.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CategoryNamespace, Mapping, Options
|
|
1
|
+
import { CategoryNamespace, Mapping, Options } from '../types';
|
|
2
2
|
|
|
3
3
|
import getPattern from './getPattern';
|
|
4
4
|
import makeCarrierFeeSku from './makeCarrierFeeSku';
|
|
@@ -20,9 +20,9 @@ export default function skuBuilder<T extends Record<string, unknown>>(
|
|
|
20
20
|
type: string,
|
|
21
21
|
mapping: Record<string, Mapping[]>,
|
|
22
22
|
options: Options = {},
|
|
23
|
-
): (Record<'SKU' | 'Amount', unknown> & T
|
|
23
|
+
): (Record<'SKU' | 'Amount', unknown> & T) | (Record<'SKU' | 'Amount', unknown> & T)[] {
|
|
24
24
|
|
|
25
|
-
let result: (Record<'SKU' | 'Amount', unknown> & T
|
|
25
|
+
let result: (Record<'SKU' | 'Amount', unknown> & T) | (Record<'SKU' | 'Amount', unknown> & T)[] = {
|
|
26
26
|
...item,
|
|
27
27
|
SKU: '',
|
|
28
28
|
Amount: 0,
|
|
@@ -32,7 +32,7 @@ export default function skuBuilder<T extends Record<string, unknown>>(
|
|
|
32
32
|
* to handle unique case for executable category
|
|
33
33
|
*/
|
|
34
34
|
const pattern = getPattern(type, item);
|
|
35
|
-
const
|
|
35
|
+
const skuFragment = makeSkuFragment(item, pattern, mapping);
|
|
36
36
|
|
|
37
37
|
switch (type) {
|
|
38
38
|
case CategoryNamespace.PROCESSING_FLOW:
|
|
@@ -44,23 +44,23 @@ export default function skuBuilder<T extends Record<string, unknown>>(
|
|
|
44
44
|
break;
|
|
45
45
|
|
|
46
46
|
case CategoryNamespace.LOOKUP:
|
|
47
|
-
result = makeLookupSku(item,
|
|
47
|
+
result = makeLookupSku(item, skuFragment);
|
|
48
48
|
break;
|
|
49
49
|
|
|
50
50
|
case CategoryNamespace.TELEPHONY_VOICE:
|
|
51
|
-
result = makeTelephonyVoiceSku(item,
|
|
51
|
+
result = makeTelephonyVoiceSku(item, skuFragment);
|
|
52
52
|
break;
|
|
53
53
|
|
|
54
54
|
case CategoryNamespace.MESSAGING_TEXT:
|
|
55
|
-
result = makeTextMessagingSku(item,
|
|
55
|
+
result = makeTextMessagingSku(item, skuFragment);
|
|
56
56
|
break;
|
|
57
57
|
|
|
58
58
|
case CategoryNamespace.CARRIER_FEE:
|
|
59
|
-
result = makeCarrierFeeSku(item,
|
|
59
|
+
result = makeCarrierFeeSku(item, skuFragment);
|
|
60
60
|
break;
|
|
61
61
|
|
|
62
62
|
case CategoryNamespace.STORAGE_WEAVIATE:
|
|
63
|
-
result = makeWeaviateStorageSku(item,
|
|
63
|
+
result = makeWeaviateStorageSku(item, skuFragment);
|
|
64
64
|
break;
|
|
65
65
|
|
|
66
66
|
case CategoryNamespace.STORAGE_GENERAL:
|
|
@@ -68,16 +68,16 @@ export default function skuBuilder<T extends Record<string, unknown>>(
|
|
|
68
68
|
break;
|
|
69
69
|
|
|
70
70
|
case CategoryNamespace.CONVERSATIONS_WAP:
|
|
71
|
-
result = makeWapConversationSku(item,
|
|
71
|
+
result = makeWapConversationSku(item, skuFragment);
|
|
72
72
|
break;
|
|
73
73
|
|
|
74
74
|
case CategoryNamespace.EXECUTABLE_GENERAL:
|
|
75
75
|
case CategoryNamespace.EXECUTABLE_LLM:
|
|
76
|
-
result = makeExecutableSku(item,
|
|
76
|
+
result = makeExecutableSku(item, skuFragment);
|
|
77
77
|
break;
|
|
78
78
|
|
|
79
79
|
case CategoryNamespace.IDENTIFIER:
|
|
80
|
-
result = makeIdentifierSku(item,
|
|
80
|
+
result = makeIdentifierSku(item, skuFragment);
|
|
81
81
|
break;
|
|
82
82
|
|
|
83
83
|
case CategoryNamespace.USER: {
|
|
@@ -86,18 +86,5 @@ export default function skuBuilder<T extends Record<string, unknown>>(
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
// Add error details to the result if they exist
|
|
90
|
-
if (skuFragmentResult.errorDetails && Array.isArray(result)) {
|
|
91
|
-
result = result.map(r => ({
|
|
92
|
-
...r,
|
|
93
|
-
errorDetails: skuFragmentResult.errorDetails
|
|
94
|
-
}));
|
|
95
|
-
} else if (skuFragmentResult.errorDetails && !Array.isArray(result)) {
|
|
96
|
-
result = {
|
|
97
|
-
...result,
|
|
98
|
-
errorDetails: skuFragmentResult.errorDetails
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
89
|
return result;
|
|
103
90
|
}
|