@or-sdk/sku-builder 2.1.2-beta.4049.0 → 2.1.3-beta.4064.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 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.2](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/sku-builder@2.1.1...@or-sdk/sku-builder@2.1.2) (2026-03-18)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **@or-sdk/sku-builder:** handle non string sql codes ([07eeaa2](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/commit/07eeaa22c93e850ec7e2de973a14fbb2262f7131))
12
+
13
+
14
+
6
15
  ## [2.1.1](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/sku-builder@2.1.0...@or-sdk/sku-builder@2.1.1) (2026-02-25)
7
16
 
8
17
  **Note:** Version bump only for package @or-sdk/sku-builder
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAsCA,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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAmDA,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,15 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = makeSkuFragment;
4
4
  function makeSkuFragment(value, pattern, mapping) {
5
- return pattern.reduce(function (acc, item) {
6
- var _a, _b;
5
+ var errorDetails = [];
6
+ var fragment = pattern.reduce(function (acc, item, index) {
7
+ var _a, _b, _c, _d;
7
8
  var service = item.service, valueKey = item.valueKey;
8
9
  var codeItem = (_b = (_a = mapping[service]) === null || _a === void 0 ? void 0 : _a.find(function (el) { return String(el.sqlCode) === String(value[valueKey]); })) !== null && _b !== void 0 ? _b : { skuCode: 'ERR' };
9
10
  if (service === 'direction' && value[valueKey] === 'Transfer') {
10
11
  codeItem.skuCode = 'OUT';
11
12
  }
12
13
  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
+ }
13
24
  return !acc ? code : "".concat(acc, "-").concat(code);
14
25
  }, '');
26
+ return {
27
+ fragment: fragment,
28
+ errorDetails: errorDetails.length > 0 ? errorDetails : undefined
29
+ };
15
30
  }
16
31
  //# sourceMappingURL=makeSkuFragment.js.map
@@ -1 +1 @@
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,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAA9C,CAA8C,CAAC,mCAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACpH,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"}
1
+ {"version":3,"file":"makeSkuFragment.js","sourceRoot":"","sources":["../../../src/utils/makeSkuFragment.ts"],"names":[],"mappings":";;AAEA,kCAwCC;AAxCD,SAAwB,eAAe,CACrC,KAA8B,EAC9B,OAGG,EACH,OAAkC;IAElC,IAAM,YAAY,GAAmB,EAAE,CAAC;IAExC,IAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,EAAE,KAAK;;QACvC,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,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAA9C,CAA8C,CAAC,mCAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACpH,IAAI,OAAO,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE,CAAC;YAC9D,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,IAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC;QAGvC,IAAM,yBAAyB,GAAG,CAAC,GAAG,KAAK,CAAC;QAG5C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC;gBAChB,gBAAgB,EAAE,yBAAyB;gBAC3C,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACvC,gBAAgB,EAAE,OAAO;gBACzB,UAAU,EAAE,mBAAmB;gBAC/B,OAAO,EAAE,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,0CAAG,CAAC,CAAC,0CAAE,OAAO;aACxC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAG,GAAG,cAAI,IAAI,CAAE,CAAC;IACxC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,QAAQ,UAAA;QACR,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;AACJ,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 skuFragment = (0, makeSkuFragment_1.default)(item, pattern, mapping);
37
+ var skuFragmentResult = (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,38 +43,44 @@ 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, skuFragment);
46
+ result = (0, makeLookupSku_1.default)(item, skuFragmentResult.fragment);
47
47
  break;
48
48
  case types_1.CategoryNamespace.TELEPHONY_VOICE:
49
- result = (0, makeTelephonyVoiceSku_1.default)(item, skuFragment);
49
+ result = (0, makeTelephonyVoiceSku_1.default)(item, skuFragmentResult.fragment);
50
50
  break;
51
51
  case types_1.CategoryNamespace.MESSAGING_TEXT:
52
- result = (0, makeTextMessagingSku_1.default)(item, skuFragment);
52
+ result = (0, makeTextMessagingSku_1.default)(item, skuFragmentResult.fragment);
53
53
  break;
54
54
  case types_1.CategoryNamespace.CARRIER_FEE:
55
- result = (0, makeCarrierFeeSku_1.default)(item, skuFragment);
55
+ result = (0, makeCarrierFeeSku_1.default)(item, skuFragmentResult.fragment);
56
56
  break;
57
57
  case types_1.CategoryNamespace.STORAGE_WEAVIATE:
58
- result = (0, makeWeaviateStorageSku_1.default)(item, skuFragment);
58
+ result = (0, makeWeaviateStorageSku_1.default)(item, skuFragmentResult.fragment);
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, skuFragment);
64
+ result = (0, makeWapConversationSku_1.default)(item, skuFragmentResult.fragment);
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, skuFragment);
68
+ result = (0, makeExecutableSku_1.default)(item, skuFragmentResult.fragment);
69
69
  break;
70
70
  case types_1.CategoryNamespace.IDENTIFIER:
71
- result = (0, makeIdentifierSku_1.default)(item, skuFragment);
71
+ result = (0, makeIdentifierSku_1.default)(item, skuFragmentResult.fragment);
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
+ }
78
84
  return result;
79
85
  }
80
86
  //# sourceMappingURL=skuBuilder.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"skuBuilder.js","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAiBA,6BAqFC;AAtGD,kCAA6E;AAE7E,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,iBAAiB,GAAG,IAAA,yBAAe,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAElE,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,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM;QAER,KAAK,yBAAiB,CAAC,eAAe;YACpC,MAAM,GAAG,IAAA,+BAAqB,EAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACjE,MAAM;QAER,KAAK,yBAAiB,CAAC,cAAc;YACnC,MAAM,GAAG,IAAA,8BAAoB,EAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAChE,MAAM;QAER,KAAK,yBAAiB,CAAC,WAAW;YAChC,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM;QAER,KAAK,yBAAiB,CAAC,gBAAgB;YACrC,MAAM,GAAG,IAAA,gCAAsB,EAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAClE,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,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAClE,MAAM;QAER,KAAK,yBAAiB,CAAC,kBAAkB,CAAC;QAC1C,KAAK,yBAAiB,CAAC,cAAc;YACnC,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM;QAER,KAAK,yBAAiB,CAAC,UAAU;YAC/B,MAAM,GAAG,IAAA,2BAAiB,EAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC7D,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;IAGD,IAAI,iBAAiB,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,uBACpB,CAAC,KACJ,YAAY,EAAE,iBAAiB,CAAC,YAAY,IAC5C,EAHuB,CAGvB,CAAC,CAAC;IACN,CAAC;SAAM,IAAI,iBAAiB,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpE,MAAM,yBACD,MAAM,KACT,YAAY,EAAE,iBAAiB,CAAC,YAAY,GAC7C,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAsCA,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
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAmDA,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,13 +1,28 @@
1
1
  export default function makeSkuFragment(value, pattern, mapping) {
2
- return pattern.reduce((acc, item) => {
3
- var _a, _b;
2
+ const errorDetails = [];
3
+ const fragment = pattern.reduce((acc, item, index) => {
4
+ var _a, _b, _c, _d;
4
5
  const { service, valueKey } = item;
5
6
  const codeItem = (_b = (_a = mapping[service]) === null || _a === void 0 ? void 0 : _a.find(el => String(el.sqlCode) === String(value[valueKey]))) !== null && _b !== void 0 ? _b : { skuCode: 'ERR' };
6
7
  if (service === 'direction' && value[valueKey] === 'Transfer') {
7
8
  codeItem.skuCode = 'OUT';
8
9
  }
9
10
  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
+ }
10
21
  return !acc ? code : `${acc}-${code}`;
11
22
  }, '');
23
+ return {
24
+ fragment,
25
+ errorDetails: errorDetails.length > 0 ? errorDetails : undefined
26
+ };
12
27
  }
13
28
  //# 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,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,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,mCAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACpH,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"}
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,MAAM,YAAY,GAAmB,EAAE,CAAC;IAExC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;;QACnD,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,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,mCAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACpH,IAAI,OAAO,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE,CAAC;YAC9D,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC;QAGvC,MAAM,yBAAyB,GAAG,CAAC,GAAG,KAAK,CAAC;QAG5C,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC;gBAChB,gBAAgB,EAAE,yBAAyB;gBAC3C,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACvC,gBAAgB,EAAE,OAAO;gBACzB,UAAU,EAAE,mBAAmB;gBAC/B,OAAO,EAAE,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,0CAAG,CAAC,CAAC,0CAAE,OAAO;aACxC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACxC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,QAAQ;QACR,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;AACJ,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 skuFragment = makeSkuFragment(item, pattern, mapping);
19
+ const skuFragmentResult = makeSkuFragment(item, pattern, mapping);
20
20
  switch (type) {
21
21
  case CategoryNamespace.PROCESSING_FLOW:
22
22
  result = makeFlowProcessingSku(item, options);
@@ -25,38 +25,44 @@ 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, skuFragment);
28
+ result = makeLookupSku(item, skuFragmentResult.fragment);
29
29
  break;
30
30
  case CategoryNamespace.TELEPHONY_VOICE:
31
- result = makeTelephonyVoiceSku(item, skuFragment);
31
+ result = makeTelephonyVoiceSku(item, skuFragmentResult.fragment);
32
32
  break;
33
33
  case CategoryNamespace.MESSAGING_TEXT:
34
- result = makeTextMessagingSku(item, skuFragment);
34
+ result = makeTextMessagingSku(item, skuFragmentResult.fragment);
35
35
  break;
36
36
  case CategoryNamespace.CARRIER_FEE:
37
- result = makeCarrierFeeSku(item, skuFragment);
37
+ result = makeCarrierFeeSku(item, skuFragmentResult.fragment);
38
38
  break;
39
39
  case CategoryNamespace.STORAGE_WEAVIATE:
40
- result = makeWeaviateStorageSku(item, skuFragment);
40
+ result = makeWeaviateStorageSku(item, skuFragmentResult.fragment);
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, skuFragment);
46
+ result = makeWapConversationSku(item, skuFragmentResult.fragment);
47
47
  break;
48
48
  case CategoryNamespace.EXECUTABLE_GENERAL:
49
49
  case CategoryNamespace.EXECUTABLE_LLM:
50
- result = makeExecutableSku(item, skuFragment);
50
+ result = makeExecutableSku(item, skuFragmentResult.fragment);
51
51
  break;
52
52
  case CategoryNamespace.IDENTIFIER:
53
- result = makeIdentifierSku(item, skuFragment);
53
+ result = makeIdentifierSku(item, skuFragmentResult.fragment);
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
+ }
60
66
  return result;
61
67
  }
62
68
  //# sourceMappingURL=skuBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skuBuilder.js","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skuBuilder.js","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AxiosError, Base } from '@or-sdk/base';
2
- import { Mapping, Options, SkuBuilderConfig } from './types';
2
+ import { Mapping, Options, SkuBuilderConfig, ErrorDetails } from './types';
3
3
  export declare class SkuBuilder extends Base {
4
4
  private readonly userToken?;
5
5
  private readonly billingApiUrl?;
@@ -7,7 +7,9 @@ export declare class SkuBuilder extends Base {
7
7
  private withApiErrorLog;
8
8
  constructor(params?: SkuBuilderConfig);
9
9
  getMapping(): Promise<Mapping[]>;
10
- makeSku<T extends Record<string, unknown>>(payload: T[], type: string, options?: Options): Promise<(Record<"SKU" | "Amount", unknown> & T)[]>;
10
+ makeSku<T extends Record<string, unknown>>(payload: T[], type: string, options?: Options): Promise<(Record<"SKU" | "Amount", unknown> & T & {
11
+ errorDetails?: ErrorDetails[];
12
+ })[]>;
11
13
  parseError(e: AxiosError): Error;
12
14
  private logApiError;
13
15
  }
@@ -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,MAAM,SAAS,CAAC;AAWnF,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;gBAiCrB,MAAM,GAAE,gBAAqB;IAsB5B,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IA0DhC,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO;IAmBZ,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK;IAavC,OAAO,CAAC,WAAW;CAYpB"}
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,YAAY,EAAE,MAAM,SAAS,CAAC;AAWjG,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;gBAiCrB,MAAM,GAAE,gBAAqB;IAsB5B,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IA0DhC,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO;;;IAmBZ,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK;IAavC,OAAO,CAAC,WAAW;CAYpB"}
@@ -1,6 +1,3 @@
1
- /**
2
- * Common parent for all api errors
3
- */
4
1
  export declare class ApiError extends Error {
5
2
  readonly statusCode: any;
6
3
  readonly stack?: string | undefined;
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"apiError.d.ts","sourceRoot":"","sources":["../../src/apiError.ts"],"names":[],"mappings":"AAIA,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"}
@@ -8,28 +8,23 @@ export type Mapping = {
8
8
  metadata?: any;
9
9
  };
10
10
  export type SkuBuilderConfig = {
11
- /**
12
- * Token
13
- */
14
11
  token?: Token;
15
- /**
16
- * URL of Billing Api
17
- */
18
12
  billingApiUrl?: string;
19
- /**
20
- * Service discovery URL
21
- */
22
13
  discoveryUrl?: string;
23
- /**
24
- * If true, the API error details like request url, params and body,
25
- * will be outputted to console
26
- */
27
14
  withApiErrorLog?: boolean;
28
- /**
29
- * SKU mapping
30
- */
31
15
  mapping?: Array<Mapping>;
32
16
  };
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
+ };
33
28
  export type Options = {
34
29
  isProcessingSegment?: boolean;
35
30
  };
@@ -48,9 +43,6 @@ export declare enum CategoryNamespace {
48
43
  STORAGE_GENERAL = "storage-general",
49
44
  STORAGE_WEAVIATE = "storage-weaviate"
50
45
  }
51
- /**
52
- * @deprecated use CategoryNamespace
53
- */
54
46
  export declare enum UsageQueryType {
55
47
  FLOW_PROCESSING = "processing-flow",
56
48
  VOICE_PROCESSING = "processing-voice",
@@ -63,16 +55,10 @@ export declare enum UsageQueryType {
63
55
  WEAVIATE_STORAGE = "storage-weaviate",
64
56
  GENERAL_STORAGE = "storage-general"
65
57
  }
66
- /**
67
- * @deprecated use CategoryNamespace
68
- */
69
58
  export declare enum UsageResourcesQueryType {
70
59
  USER = "user",
71
60
  IDENTIFIER = "identifier"
72
61
  }
73
- /**
74
- * @deprecated use CategoryNamespace
75
- */
76
62
  export type QueryType = UsageQueryType | UsageResourcesQueryType;
77
63
  export type PaginatedResponseDto<T> = {
78
64
  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,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAE1C,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,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
+ {"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,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAE1C,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAI7B,KAAK,CAAC,EAAE,KAAK,CAAC;IAId,aAAa,CAAC,EAAE,MAAM,CAAC;IAIvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAI1B,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,mBAAmB,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B,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;AAKD,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;AAKD,oBAAY,uBAAuB;IACjC,IAAI,SAAyB;IAC7B,UAAU,eAA+B;CAC1C;AAKD,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 } from '../types';
1
+ import { Mapping, SkuFragmentResult } 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[]>): string;
5
+ }[], mapping: Record<string, Mapping[]>): SkuFragmentResult;
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,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
+ {"version":3,"file":"makeSkuFragment.d.ts","sourceRoot":"","sources":["../../../src/utils/makeSkuFragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEpE,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,GACjC,iBAAiB,CAiCnB"}
@@ -1,3 +1,7 @@
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)[];
1
+ import { Mapping, Options, ErrorDetails } 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 & {
3
+ errorDetails?: ErrorDetails[];
4
+ }) | (Record<'SKU' | 'Amount', unknown> & T & {
5
+ errorDetails?: ErrorDetails[];
6
+ })[];
3
7
  //# 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,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"}
1
+ {"version":3,"file":"skuBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/skuBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAiB7E,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,GAAG;IAAE,YAAY,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,EAAE,CAgF7J"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@or-sdk/sku-builder",
3
- "version": "2.1.2-beta.4049.0",
3
+ "version": "2.1.3-beta.4064.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
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 } from './types';
6
+ import { Mapping, Options, PaginatedResponseDto, SkuBuilderConfig, ErrorDetails } from './types';
7
7
  import { skuBuilder } from './utils';
8
8
  import { transformMapping } from './utils/transformMapping';
9
9
 
package/src/types.ts CHANGED
@@ -34,6 +34,19 @@ export type SkuBuilderConfig = {
34
34
  mapping?: Array<Mapping>;
35
35
  };
36
36
 
37
+ export type ErrorDetails = {
38
+ segment_position: number;
39
+ original_value: string;
40
+ expected_service: string;
41
+ error_type: 'mapping_not_found';
42
+ groupId?: string;
43
+ };
44
+
45
+ export type SkuFragmentResult = {
46
+ fragment: string;
47
+ errorDetails?: ErrorDetails[];
48
+ };
49
+
37
50
  export type Options = { isProcessingSegment?: boolean; };
38
51
 
39
52
  export enum CategoryNamespace {
@@ -1,4 +1,4 @@
1
- import { Mapping } from '../types';
1
+ import { Mapping, ErrorDetails, SkuFragmentResult } from '../types';
2
2
 
3
3
  export default function makeSkuFragment(
4
4
  value: Record<string, unknown>,
@@ -7,14 +7,37 @@ export default function makeSkuFragment(
7
7
  valueKey: string;
8
8
  }[],
9
9
  mapping: Record<string, Mapping[]>,
10
- ) {
11
- return pattern.reduce((acc, item) => {
10
+ ): SkuFragmentResult {
11
+ const errorDetails: ErrorDetails[] = [];
12
+
13
+ const fragment = pattern.reduce((acc, item, index) => {
12
14
  const { service, valueKey } = item;
13
15
  const codeItem = mapping[service]?.find(el => String(el.sqlCode) === String(value[valueKey])) ?? { skuCode: 'ERR' };
14
16
  if (service === 'direction' && value[valueKey] === 'Transfer') {
15
17
  codeItem.skuCode = 'OUT'; // apply overrides for direction codes
16
18
  }
19
+
17
20
  const code = codeItem.skuCode || 'ERR';
21
+
22
+ // Calculate the segment position in the final SKU (accounting for prefix)
23
+ const segmentPositionInFinalSku = 1 + index; // +1 to account for prefix like 'IDN'
24
+
25
+ // Track error details if mapping was not found
26
+ if (code === 'ERR') {
27
+ errorDetails.push({
28
+ segment_position: segmentPositionInFinalSku,
29
+ original_value: String(value[valueKey]),
30
+ expected_service: service,
31
+ error_type: 'mapping_not_found',
32
+ groupId: mapping[service]?.[0]?.groupId
33
+ });
34
+ }
35
+
18
36
  return !acc ? code : `${acc}-${code}`;
19
37
  }, '');
38
+
39
+ return {
40
+ fragment,
41
+ errorDetails: errorDetails.length > 0 ? errorDetails : undefined
42
+ };
20
43
  }
@@ -1,4 +1,4 @@
1
- import { CategoryNamespace, Mapping, Options } from '../types';
1
+ import { CategoryNamespace, Mapping, Options, ErrorDetails } 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) | (Record<'SKU' | 'Amount', unknown> & T)[] {
23
+ ): (Record<'SKU' | 'Amount', unknown> & T & { errorDetails?: ErrorDetails[] }) | (Record<'SKU' | 'Amount', unknown> & T & { errorDetails?: ErrorDetails[] })[] {
24
24
 
25
- let result: (Record<'SKU' | 'Amount', unknown> & T) | (Record<'SKU' | 'Amount', unknown> & T)[] = {
25
+ let result: (Record<'SKU' | 'Amount', unknown> & T & { errorDetails?: ErrorDetails[] }) | (Record<'SKU' | 'Amount', unknown> & T & { errorDetails?: ErrorDetails[] })[] = {
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 skuFragment = makeSkuFragment(item, pattern, mapping);
35
+ const skuFragmentResult = 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, skuFragment);
47
+ result = makeLookupSku(item, skuFragmentResult.fragment);
48
48
  break;
49
49
 
50
50
  case CategoryNamespace.TELEPHONY_VOICE:
51
- result = makeTelephonyVoiceSku(item, skuFragment);
51
+ result = makeTelephonyVoiceSku(item, skuFragmentResult.fragment);
52
52
  break;
53
53
 
54
54
  case CategoryNamespace.MESSAGING_TEXT:
55
- result = makeTextMessagingSku(item, skuFragment);
55
+ result = makeTextMessagingSku(item, skuFragmentResult.fragment);
56
56
  break;
57
57
 
58
58
  case CategoryNamespace.CARRIER_FEE:
59
- result = makeCarrierFeeSku(item, skuFragment);
59
+ result = makeCarrierFeeSku(item, skuFragmentResult.fragment);
60
60
  break;
61
61
 
62
62
  case CategoryNamespace.STORAGE_WEAVIATE:
63
- result = makeWeaviateStorageSku(item, skuFragment);
63
+ result = makeWeaviateStorageSku(item, skuFragmentResult.fragment);
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, skuFragment);
71
+ result = makeWapConversationSku(item, skuFragmentResult.fragment);
72
72
  break;
73
73
 
74
74
  case CategoryNamespace.EXECUTABLE_GENERAL:
75
75
  case CategoryNamespace.EXECUTABLE_LLM:
76
- result = makeExecutableSku(item, skuFragment);
76
+ result = makeExecutableSku(item, skuFragmentResult.fragment);
77
77
  break;
78
78
 
79
79
  case CategoryNamespace.IDENTIFIER:
80
- result = makeIdentifierSku(item, skuFragment);
80
+ result = makeIdentifierSku(item, skuFragmentResult.fragment);
81
81
  break;
82
82
 
83
83
  case CategoryNamespace.USER: {
@@ -86,5 +86,18 @@ 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
+
89
102
  return result;
90
103
  }