@or-sdk/sku-builder 2.0.2 → 2.0.3-beta.3979.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.
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAkDA,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,29 @@
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, _e;
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 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
+ if (code === 'ERR' && !((_c = mapping[service]) === null || _c === void 0 ? void 0 : _c.find(function (el) { return el.sqlCode === String(value[valueKey]); }))) {
15
+ errorDetails.push({
16
+ segment_position: index,
17
+ original_value: String(value[valueKey]),
18
+ expected_service: service,
19
+ error_type: 'mapping_not_found',
20
+ groupId: (_e = (_d = mapping[service]) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.groupId
21
+ });
22
+ }
13
23
  return !acc ? code : "".concat(acc, "-").concat(code);
14
24
  }, '');
25
+ return {
26
+ fragment: fragment,
27
+ errorDetails: errorDetails.length > 0 ? errorDetails : undefined
28
+ };
15
29
  }
16
30
  //# 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,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"}
1
+ {"version":3,"file":"makeSkuFragment.js","sourceRoot":"","sources":["../../../src/utils/makeSkuFragment.ts"],"names":[],"mappings":";;AAEA,kCAsCC;AAtCD,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,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAtC,CAAsC,CAAC,mCAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAE5G,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,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAA,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,CAAA,EAAE,CAAC;YAC5F,YAAY,CAAC,IAAI,CAAC;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,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":"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"}
@@ -1 +1 @@
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
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAkDA,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,27 @@
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, _e;
4
5
  const { service, valueKey } = item;
5
6
  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' };
6
7
  if (service === 'direction' && value[valueKey] === 'Transfer') {
7
8
  codeItem.skuCode = 'OUT';
8
9
  }
9
10
  const code = codeItem.skuCode || 'ERR';
11
+ if (code === 'ERR' && !((_c = mapping[service]) === null || _c === void 0 ? void 0 : _c.find(el => el.sqlCode === String(value[valueKey])))) {
12
+ errorDetails.push({
13
+ segment_position: index,
14
+ original_value: String(value[valueKey]),
15
+ expected_service: service,
16
+ error_type: 'mapping_not_found',
17
+ groupId: (_e = (_d = mapping[service]) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.groupId
18
+ });
19
+ }
10
20
  return !acc ? code : `${acc}-${code}`;
11
21
  }, '');
22
+ return {
23
+ fragment,
24
+ errorDetails: errorDetails.length > 0 ? errorDetails : undefined
25
+ };
12
26
  }
13
27
  //# 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,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"}
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,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,mCAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAE5G,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,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAE,CAAC;YAC5F,YAAY,CAAC,IAAI,CAAC;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,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"}
@@ -14,6 +14,17 @@ export type SkuBuilderConfig = {
14
14
  withApiErrorLog?: boolean;
15
15
  mapping?: Array<Mapping>;
16
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
+ };
17
28
  export type Options = {
18
29
  isProcessingSegment?: boolean;
19
30
  };
@@ -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;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,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
+ {"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;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,CA+BnB"}
@@ -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.0.2",
3
+ "version": "2.0.3-beta.3979.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -32,6 +32,5 @@
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"
35
- },
36
- "gitHead": "adc76707d75a0550999f5e5576d6ba370ed9a219"
35
+ }
37
36
  }
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
@@ -33,6 +33,19 @@ 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
+
36
49
  export type Options = { isProcessingSegment?: boolean; };
37
50
 
38
51
  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,35 @@ 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 => el.sqlCode === String(value[valueKey])) ?? { skuCode: 'ERR' };
16
+
14
17
  if (service === 'direction' && value[valueKey] === 'Transfer') {
15
18
  codeItem.skuCode = 'OUT'; // apply overrides for direction codes
16
19
  }
20
+
17
21
  const code = codeItem.skuCode || 'ERR';
22
+
23
+ // Track error details if mapping was not found
24
+ if (code === 'ERR' && !mapping[service]?.find(el => el.sqlCode === String(value[valueKey]))) {
25
+ errorDetails.push({
26
+ segment_position: index,
27
+ original_value: String(value[valueKey]),
28
+ expected_service: service,
29
+ error_type: 'mapping_not_found',
30
+ groupId: mapping[service]?.[0]?.groupId
31
+ });
32
+ }
33
+
18
34
  return !acc ? code : `${acc}-${code}`;
19
35
  }, '');
36
+
37
+ return {
38
+ fragment,
39
+ errorDetails: errorDetails.length > 0 ? errorDetails : undefined
40
+ };
20
41
  }
@@ -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
  }