@ancon/wildcat-utils 1.52.0-check-optimizations.3 → 1.52.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.
Files changed (45) hide show
  1. package/api/index.d.ts +2 -1
  2. package/api/index.js +1 -1
  3. package/api/index.mjs +17 -14
  4. package/api/isPartialContentResponse.d.ts +3 -0
  5. package/api/isPartialContentResponse.js +1 -0
  6. package/api/isPartialContentResponse.mjs +7 -0
  7. package/check/getOrganizedCheckItemModifications.d.ts +2 -2
  8. package/check/getOrganizedCheckItemModifications.js +1 -1
  9. package/check/getOrganizedCheckItemModifications.mjs +68 -74
  10. package/check/getUniqueCheckItemModificationId.d.ts +2 -2
  11. package/check/getUniqueCheckItemModificationId.js +1 -1
  12. package/check/getUniqueCheckItemModificationId.mjs +5 -5
  13. package/hangfire/createHangfirePoller.d.ts +3 -1
  14. package/hangfire/createHangfirePoller.js +1 -1
  15. package/hangfire/createHangfirePoller.mjs +84 -81
  16. package/hangfire/createMakeHangfireRequest.d.ts +4 -2
  17. package/hangfire/createMakeHangfireRequest.js +1 -1
  18. package/hangfire/createMakeHangfireRequest.mjs +8 -6
  19. package/hangfire/index.js +1 -1
  20. package/hangfire/index.mjs +10 -9
  21. package/hangfire/isHangfireResponse.js +1 -1
  22. package/hangfire/isHangfireResponse.mjs +3 -2
  23. package/index.d.ts +0 -1
  24. package/index.js +1 -1
  25. package/index.mjs +346 -352
  26. package/multilingual/createLocalizedCheckDetails.d.ts +2 -2
  27. package/multilingual/createLocalizedCheckDetails.js +1 -1
  28. package/multilingual/createLocalizedCheckDetails.mjs +27 -31
  29. package/package.json +6 -21
  30. package/signalr/SignalR.js +1 -1
  31. package/signalr/SignalR.mjs +3 -2
  32. package/signalr/index.js +1 -1
  33. package/signalr/index.mjs +5 -4
  34. package/mpsGiftCard/decodeMPSGiftCardQr.d.ts +0 -14
  35. package/mpsGiftCard/decodeMPSGiftCardQr.js +0 -1
  36. package/mpsGiftCard/decodeMPSGiftCardQr.mjs +0 -54
  37. package/mpsGiftCard/index.d.ts +0 -4
  38. package/mpsGiftCard/index.js +0 -1
  39. package/mpsGiftCard/index.mjs +0 -10
  40. package/mpsGiftCard/resolveMPSGiftCardScanAction.d.ts +0 -8
  41. package/mpsGiftCard/resolveMPSGiftCardScanAction.js +0 -1
  42. package/mpsGiftCard/resolveMPSGiftCardScanAction.mjs +0 -10
  43. package/mpsGiftCard/types.d.ts +0 -30
  44. package/mpsGiftCard/types.js +0 -1
  45. package/mpsGiftCard/types.mjs +0 -4
package/api/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import generateBackoffWithEqualJitter from './generateBackoffWithEqualJitter';
4
4
  import generateBackoffWithVariableJitter from './generateBackoffWithVariableJitter';
5
5
  import isAcceptedResponse from './isAcceptedResponse';
6
6
  import isNoContentResponse from './isNoContentResponse';
7
+ import isPartialContentResponse from './isPartialContentResponse';
7
8
  import APIFilterBuilder from './APIFilterBuilder';
8
9
  import getMediaImageClosestSize from './getMediaImageClosestSize';
9
- export { getUrlAndParams, getEndpointWithVersion, generateBackoffWithEqualJitter, generateBackoffWithVariableJitter, isAcceptedResponse, isNoContentResponse, APIFilterBuilder, getMediaImageClosestSize, };
10
+ export { getUrlAndParams, getEndpointWithVersion, generateBackoffWithEqualJitter, generateBackoffWithVariableJitter, isAcceptedResponse, isNoContentResponse, isPartialContentResponse, APIFilterBuilder, getMediaImageClosestSize, };
package/api/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./getUrlAndParams.js"),t=require("./getEndpointWithVersion.js"),i=require("./generateBackoffWithEqualJitter.js"),r=require("./generateBackoffWithVariableJitter.js"),a=require("./isAcceptedResponse.js"),n=require("./isNoContentResponse.js"),o=require("./APIFilterBuilder.js"),s=require("./getMediaImageClosestSize.js");require("../number/randomIntFromInterval.js");require("./types.js");exports.getUrlAndParams=e;exports.getEndpointWithVersion=t;exports.generateBackoffWithEqualJitter=i;exports.generateBackoffWithVariableJitter=r;exports.isAcceptedResponse=a;exports.isNoContentResponse=n;exports.APIFilterBuilder=o;exports.getMediaImageClosestSize=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./getUrlAndParams.js"),t=require("./getEndpointWithVersion.js"),i=require("./generateBackoffWithEqualJitter.js"),r=require("./generateBackoffWithVariableJitter.js"),a=require("./isAcceptedResponse.js"),n=require("./isNoContentResponse.js"),s=require("./isPartialContentResponse.js"),o=require("./APIFilterBuilder.js"),p=require("./getMediaImageClosestSize.js");require("../number/randomIntFromInterval.js");require("axios");require("./types.js");exports.getUrlAndParams=e;exports.getEndpointWithVersion=t;exports.generateBackoffWithEqualJitter=i;exports.generateBackoffWithVariableJitter=r;exports.isAcceptedResponse=a;exports.isNoContentResponse=n;exports.isPartialContentResponse=s;exports.APIFilterBuilder=o;exports.getMediaImageClosestSize=p;
package/api/index.mjs CHANGED
@@ -1,20 +1,23 @@
1
- import { default as o } from "./getUrlAndParams.mjs";
2
- import { default as s } from "./getEndpointWithVersion.mjs";
1
+ import { default as f } from "./getUrlAndParams.mjs";
2
+ import { default as i } from "./getEndpointWithVersion.mjs";
3
3
  import { default as l } from "./generateBackoffWithEqualJitter.mjs";
4
- import { default as d } from "./generateBackoffWithVariableJitter.mjs";
5
- import { default as n } from "./isAcceptedResponse.mjs";
6
- import { default as x } from "./isNoContentResponse.mjs";
7
- import { default as c } from "./APIFilterBuilder.mjs";
8
- import { default as A } from "./getMediaImageClosestSize.mjs";
4
+ import { default as m } from "./generateBackoffWithVariableJitter.mjs";
5
+ import { default as u } from "./isAcceptedResponse.mjs";
6
+ import { default as g } from "./isNoContentResponse.mjs";
7
+ import { default as h } from "./isPartialContentResponse.mjs";
8
+ import { default as B } from "./APIFilterBuilder.mjs";
9
+ import { default as P } from "./getMediaImageClosestSize.mjs";
9
10
  import "../number/randomIntFromInterval.mjs";
11
+ import "axios";
10
12
  import "./types.mjs";
11
13
  export {
12
- c as APIFilterBuilder,
14
+ B as APIFilterBuilder,
13
15
  l as generateBackoffWithEqualJitter,
14
- d as generateBackoffWithVariableJitter,
15
- s as getEndpointWithVersion,
16
- A as getMediaImageClosestSize,
17
- o as getUrlAndParams,
18
- n as isAcceptedResponse,
19
- x as isNoContentResponse
16
+ m as generateBackoffWithVariableJitter,
17
+ i as getEndpointWithVersion,
18
+ P as getMediaImageClosestSize,
19
+ f as getUrlAndParams,
20
+ u as isAcceptedResponse,
21
+ g as isNoContentResponse,
22
+ h as isPartialContentResponse
20
23
  };
@@ -0,0 +1,3 @@
1
+ import { type AxiosResponse } from 'axios';
2
+ declare function isPartialContentResponse(response: unknown): response is AxiosResponse;
3
+ export default isPartialContentResponse;
@@ -0,0 +1 @@
1
+ "use strict";const a=require("axios");function i(t){return(t==null?void 0:t.status)===a.HttpStatusCode.PartialContent}module.exports=i;
@@ -0,0 +1,7 @@
1
+ import { HttpStatusCode as a } from "axios";
2
+ function u(t) {
3
+ return (t == null ? void 0 : t.status) === a.PartialContent;
4
+ }
5
+ export {
6
+ u as default
7
+ };
@@ -1,4 +1,4 @@
1
- import { CheckItemV2 } from '@ancon/wildcat-types';
1
+ import { CheckItem } from '@ancon/wildcat-types';
2
2
  import { OrganizedCheckItemModification } from './types';
3
3
  /**
4
4
  * Organizes all check item modifications including addon products into a array for easier visual representation.
@@ -7,4 +7,4 @@ import { OrganizedCheckItemModification } from './types';
7
7
  * @param addOnProducts - The list of check item add-on products.
8
8
  * @returns An array where the modifications are sorted by their modification kind and positions.
9
9
  */
10
- export default function getOrganizedCheckItemModifications(currency: string, modifications: CheckItemV2['modifications'] | undefined, addOnProducts: CheckItemV2['addOnProducts'] | undefined): OrganizedCheckItemModification[];
10
+ export default function getOrganizedCheckItemModifications(currency: string, modifications: CheckItem['modifications'], addOnProducts: CheckItem['addOnProducts']): OrganizedCheckItemModification[];
@@ -1 +1 @@
1
- "use strict";const h=require("@ancon/wildcat-types"),M=require("../toString-b771abdf.js"),P=require("../identity-58f9497d.js"),x=require("../_baseIteratee-374c60ca.js"),k=require("../_getTag-3d3032da.js"),$=require("../isObjectLike-963267e9.js"),O=require("./getUniqueCheckItemModificationId.js");require("../_baseIsEqual-7e335f42.js");require("../isObject-361bd834.js");function L(n){return function(i,r,e){for(var d=-1,t=Object(i),o=e(i),c=o.length;c--;){var a=o[n?c:++d];if(r(t[a],a,t)===!1)break}return i}}var E=L();const _=E;function G(n,i){return n&&_(n,i,k.keys)}function Q(n,i){return function(r,e){if(r==null)return r;if(!k.isArrayLike(r))return n(r,e);for(var d=r.length,t=i?d:-1,o=Object(r);(i?t--:++t<d)&&e(o[t],t,o)!==!1;);return r}}var U=Q(G);const Z=U;function z(n,i){var r=-1,e=k.isArrayLike(n)?Array(n.length):[];return Z(n,function(d,t,o){e[++r]=i(d,t,o)}),e}function V(n,i){var r=n.length;for(n.sort(i);r--;)n[r]=n[r].value;return n}function j(n,i){if(n!==i){var r=n!==void 0,e=n===null,d=n===n,t=M.isSymbol(n),o=i!==void 0,c=i===null,a=i===i,u=M.isSymbol(i);if(!c&&!u&&!t&&n>i||t&&o&&a&&!c&&!u||e&&o&&a||!r&&a||!d)return 1;if(!e&&!t&&!u&&n<i||u&&r&&d&&!e&&!t||c&&r&&d||!o&&d||!a)return-1}return 0}function H(n,i,r){for(var e=-1,d=n.criteria,t=i.criteria,o=d.length,c=r.length;++e<o;){var a=j(d[e],t[e]);if(a){if(e>=c)return a;var u=r[e];return a*(u=="desc"?-1:1)}}return n.index-i.index}function J(n,i,r){i.length?i=M.arrayMap(i,function(t){return $.isArray(t)?function(o){return P.baseGet(o,t.length===1?t[0]:t)}:t}):i=[P.identity];var e=-1;i=M.arrayMap(i,k.baseUnary(x.baseIteratee));var d=z(n,function(t,o,c){var a=M.arrayMap(i,function(u){return u(t)});return{criteria:a,index:++e,value:t}});return V(d,function(t,o){return H(t,o,r)})}function C(n,i,r,e){return n==null?[]:($.isArray(i)||(i=i==null?[]:[i]),r=e?void 0:r,$.isArray(r)||(r=r==null?[]:[r]),J(n,i,r))}function K(n,i,r){const{add:e,replace:d,remove:t}=(i??[]).reduce((a,u)=>{const{modification:A,position:s,freeAmount:f,name:y="",quantity:p,cost:g,replacementName:T}=u,m=g===0;if(u.modification===h.ModificationType.Add){(f>0||m)&&a.add.push({id:O(u,"-free"),modificationType:A,name:y,freeAmount:m?p:f,quantity:m?p:f,currency:n,position:s,cost:0});const q=p-f;q>0&&!m&&a.add.push({id:O(u),modificationType:A,name:y,quantity:q,freeAmount:0,currency:n,position:s,cost:g*q})}return u.modification===h.ModificationType.Replace&&a.replace.push({id:O(u),modificationType:A,name:y,replacementName:T,freeAmount:f,quantity:p,currency:n,position:s,cost:g}),u.modification===h.ModificationType.Remove&&a.remove.push({id:O(u),modificationType:A,name:y,freeAmount:f,quantity:p,currency:n,position:s,cost:g}),a},{add:[],replace:[],remove:[]}),o=(r??[]).reduce((a,u)=>{const{product:A,freeAmount:s=0,quantity:f,position:y,addOnGroupId:p,productPriceInclTax:g}=u,{hasVariants:T,variantName:m="",productName:q="",productId:B,variantId:F}=A??{},b=g.unitPrice===0;(s>0||b)&&a.push({id:`${p}-${B}-free`,modificationType:h.ModificationType.Add,name:T?m:q,freeAmount:b?f:s,quantity:b?f:s,currency:n,position:y,cost:0,variantId:F});const w=f-s;return w>0&&!b&&a.push({id:`${p}-${B}`,modificationType:h.ModificationType.Add,name:T?m:q,freeAmount:0,quantity:w,currency:n,position:y,cost:g.unitPrice*w,variantId:F}),a},[]);return[...C([...e,...o],["position"],["asc"]),...C(d,["position"],["asc"]),...C(t,["position"],["asc"])]}module.exports=K;
1
+ "use strict";const h=require("@ancon/wildcat-types"),M=require("../toString-b771abdf.js"),P=require("../identity-58f9497d.js"),x=require("../_baseIteratee-374c60ca.js"),k=require("../_getTag-3d3032da.js"),$=require("../isObjectLike-963267e9.js"),O=require("./getUniqueCheckItemModificationId.js");require("../_baseIsEqual-7e335f42.js");require("../isObject-361bd834.js");function L(n){return function(i,r,e){for(var d=-1,t=Object(i),o=e(i),c=o.length;c--;){var a=o[n?c:++d];if(r(t[a],a,t)===!1)break}return i}}var E=L();const _=E;function G(n,i){return n&&_(n,i,k.keys)}function Q(n,i){return function(r,e){if(r==null)return r;if(!k.isArrayLike(r))return n(r,e);for(var d=r.length,t=i?d:-1,o=Object(r);(i?t--:++t<d)&&e(o[t],t,o)!==!1;);return r}}var U=Q(G);const Z=U;function z(n,i){var r=-1,e=k.isArrayLike(n)?Array(n.length):[];return Z(n,function(d,t,o){e[++r]=i(d,t,o)}),e}function V(n,i){var r=n.length;for(n.sort(i);r--;)n[r]=n[r].value;return n}function j(n,i){if(n!==i){var r=n!==void 0,e=n===null,d=n===n,t=M.isSymbol(n),o=i!==void 0,c=i===null,a=i===i,u=M.isSymbol(i);if(!c&&!u&&!t&&n>i||t&&o&&a&&!c&&!u||e&&o&&a||!r&&a||!d)return 1;if(!e&&!t&&!u&&n<i||u&&r&&d&&!e&&!t||c&&r&&d||!o&&d||!a)return-1}return 0}function H(n,i,r){for(var e=-1,d=n.criteria,t=i.criteria,o=d.length,c=r.length;++e<o;){var a=j(d[e],t[e]);if(a){if(e>=c)return a;var u=r[e];return a*(u=="desc"?-1:1)}}return n.index-i.index}function J(n,i,r){i.length?i=M.arrayMap(i,function(t){return $.isArray(t)?function(o){return P.baseGet(o,t.length===1?t[0]:t)}:t}):i=[P.identity];var e=-1;i=M.arrayMap(i,k.baseUnary(x.baseIteratee));var d=z(n,function(t,o,c){var a=M.arrayMap(i,function(u){return u(t)});return{criteria:a,index:++e,value:t}});return V(d,function(t,o){return H(t,o,r)})}function C(n,i,r,e){return n==null?[]:($.isArray(i)||(i=i==null?[]:[i]),r=e?void 0:r,$.isArray(r)||(r=r==null?[]:[r]),J(n,i,r))}function K(n,i,r){const{add:e,replace:d,remove:t}=i.reduce((a,u)=>{const{modification:A,position:s,freeAmount:f,name:y,quantity:p,cost:g,replacementName:T}=u,m=g===0;if(u.modification===h.ModificationType.Add){(f>0||m)&&a.add.push({id:O(u,"-free"),modificationType:A,name:y,freeAmount:m?p:f,quantity:m?p:f,currency:n,position:s,cost:0});const q=p-f;q>0&&!m&&a.add.push({id:O(u),modificationType:A,name:y,quantity:q,freeAmount:0,currency:n,position:s,cost:g*q})}return u.modification===h.ModificationType.Replace&&a.replace.push({id:O(u),modificationType:A,name:y,replacementName:T,freeAmount:f,quantity:p,currency:n,position:s,cost:g}),u.modification===h.ModificationType.Remove&&a.remove.push({id:O(u),modificationType:A,name:y,freeAmount:f,quantity:p,currency:n,position:s,cost:g}),a},{add:[],replace:[],remove:[]}),o=(r||[]).reduce((a,u)=>{const{product:A,addOnFreeAmount:s,quantity:f,addOnPosition:y,addOnGroupId:p,productPriceInclTax:g}=u,{hasVariants:T,variantName:m,productName:q,productId:B,variantId:F}=A,b=g.unitPrice.amount===0;(s>0||b)&&a.push({id:`${p}-${B}-free`,modificationType:h.ModificationType.Add,name:T?m:q,freeAmount:b?f:s,quantity:b?f:s,currency:n,position:y,cost:0,variantId:F});const w=f-s;return w>0&&!b&&a.push({id:`${p}-${B}`,modificationType:h.ModificationType.Add,name:T?m:q,freeAmount:0,quantity:w,currency:n,position:y,cost:g.unitPrice.amount*w,variantId:F}),a},[]);return[...C([...e,...o],["position"],["asc"]),...C(d,["position"],["asc"]),...C(t,["position"],["asc"])]}module.exports=K;
@@ -8,10 +8,10 @@ import T from "./getUniqueCheckItemModificationId.mjs";
8
8
  import "../_baseIsEqual-4ee44a4c.mjs";
9
9
  import "../isObject-b8638513.mjs";
10
10
  function U(n) {
11
- return function(i, t, o) {
12
- for (var d = -1, r = Object(i), u = o(i), f = u.length; f--; ) {
13
- var a = u[n ? f : ++d];
14
- if (t(r[a], a, r) === !1)
11
+ return function(i, t, a) {
12
+ for (var e = -1, r = Object(i), u = a(i), f = u.length; f--; ) {
13
+ var o = u[n ? f : ++e];
14
+ if (t(r[o], o, r) === !1)
15
15
  break;
16
16
  }
17
17
  return i;
@@ -23,12 +23,12 @@ function V(n, i) {
23
23
  return n && z(n, i, L);
24
24
  }
25
25
  function H(n, i) {
26
- return function(t, o) {
26
+ return function(t, a) {
27
27
  if (t == null)
28
28
  return t;
29
29
  if (!P(t))
30
- return n(t, o);
31
- for (var d = t.length, r = i ? d : -1, u = Object(t); (i ? r-- : ++r < d) && o(u[r], r, u) !== !1; )
30
+ return n(t, a);
31
+ for (var e = t.length, r = i ? e : -1, u = Object(t); (i ? r-- : ++r < e) && a(u[r], r, u) !== !1; )
32
32
  ;
33
33
  return t;
34
34
  };
@@ -36,10 +36,10 @@ function H(n, i) {
36
36
  var J = H(V);
37
37
  const K = J;
38
38
  function W(n, i) {
39
- var t = -1, o = P(n) ? Array(n.length) : [];
40
- return K(n, function(d, r, u) {
41
- o[++t] = i(d, r, u);
42
- }), o;
39
+ var t = -1, a = P(n) ? Array(n.length) : [];
40
+ return K(n, function(e, r, u) {
41
+ a[++t] = i(e, r, u);
42
+ }), a;
43
43
  }
44
44
  function X(n, i) {
45
45
  var t = n.length;
@@ -49,22 +49,22 @@ function X(n, i) {
49
49
  }
50
50
  function Y(n, i) {
51
51
  if (n !== i) {
52
- var t = n !== void 0, o = n === null, d = n === n, r = F(n), u = i !== void 0, f = i === null, a = i === i, e = F(i);
53
- if (!f && !e && !r && n > i || r && u && a && !f && !e || o && u && a || !t && a || !d)
52
+ var t = n !== void 0, a = n === null, e = n === n, r = F(n), u = i !== void 0, f = i === null, o = i === i, d = F(i);
53
+ if (!f && !d && !r && n > i || r && u && o && !f && !d || a && u && o || !t && o || !e)
54
54
  return 1;
55
- if (!o && !r && !e && n < i || e && t && d && !o && !r || f && t && d || !u && d || !a)
55
+ if (!a && !r && !d && n < i || d && t && e && !a && !r || f && t && e || !u && e || !o)
56
56
  return -1;
57
57
  }
58
58
  return 0;
59
59
  }
60
60
  function _(n, i, t) {
61
- for (var o = -1, d = n.criteria, r = i.criteria, u = d.length, f = t.length; ++o < u; ) {
62
- var a = Y(d[o], r[o]);
63
- if (a) {
64
- if (o >= f)
65
- return a;
66
- var e = t[o];
67
- return a * (e == "desc" ? -1 : 1);
61
+ for (var a = -1, e = n.criteria, r = i.criteria, u = e.length, f = t.length; ++a < u; ) {
62
+ var o = Y(e[a], r[a]);
63
+ if (o) {
64
+ if (a >= f)
65
+ return o;
66
+ var d = t[a];
67
+ return o * (d == "desc" ? -1 : 1);
68
68
  }
69
69
  }
70
70
  return n.index - i.index;
@@ -75,110 +75,104 @@ function j(n, i, t) {
75
75
  return E(u, r.length === 1 ? r[0] : r);
76
76
  } : r;
77
77
  }) : i = [x];
78
- var o = -1;
78
+ var a = -1;
79
79
  i = q(i, Q(G));
80
- var d = W(n, function(r, u, f) {
81
- var a = q(i, function(e) {
82
- return e(r);
80
+ var e = W(n, function(r, u, f) {
81
+ var o = q(i, function(d) {
82
+ return d(r);
83
83
  });
84
- return { criteria: a, index: ++o, value: r };
84
+ return { criteria: o, index: ++a, value: r };
85
85
  });
86
- return X(d, function(r, u) {
86
+ return X(e, function(r, u) {
87
87
  return _(r, u, t);
88
88
  });
89
89
  }
90
- function C(n, i, t, o) {
91
- return n == null ? [] : ($(i) || (i = i == null ? [] : [i]), t = o ? void 0 : t, $(t) || (t = t == null ? [] : [t]), j(n, i, t));
90
+ function C(n, i, t, a) {
91
+ return n == null ? [] : ($(i) || (i = i == null ? [] : [i]), t = a ? void 0 : t, $(t) || (t = t == null ? [] : [t]), j(n, i, t));
92
92
  }
93
93
  function rn(n, i, t) {
94
- const { add: o, replace: d, remove: r } = (i ?? []).reduce(
95
- (a, e) => {
94
+ const { add: a, replace: e, remove: r } = i.reduce(
95
+ (o, d) => {
96
96
  const {
97
97
  modification: h,
98
- position: c,
99
- freeAmount: p,
100
- name: m = "",
98
+ position: p,
99
+ freeAmount: c,
100
+ name: m,
101
101
  quantity: s,
102
102
  cost: g,
103
103
  replacementName: O
104
- } = e, A = g === 0;
105
- if (e.modification === y.Add) {
106
- (p > 0 || A) && a.add.push({
107
- id: T(e, "-free"),
104
+ } = d, A = g === 0;
105
+ if (d.modification === y.Add) {
106
+ (c > 0 || A) && o.add.push({
107
+ id: T(d, "-free"),
108
108
  modificationType: h,
109
109
  name: m,
110
- freeAmount: A ? s : p,
111
- quantity: A ? s : p,
110
+ freeAmount: A ? s : c,
111
+ quantity: A ? s : c,
112
112
  currency: n,
113
- position: c,
113
+ position: p,
114
114
  cost: 0
115
115
  });
116
- const b = s - p;
117
- b > 0 && !A && a.add.push({
118
- id: T(e),
116
+ const b = s - c;
117
+ b > 0 && !A && o.add.push({
118
+ id: T(d),
119
119
  modificationType: h,
120
120
  name: m,
121
121
  quantity: b,
122
122
  freeAmount: 0,
123
123
  currency: n,
124
- position: c,
124
+ position: p,
125
125
  cost: g * b
126
126
  });
127
127
  }
128
- return e.modification === y.Replace && a.replace.push({
129
- id: T(e),
128
+ return d.modification === y.Replace && o.replace.push({
129
+ id: T(d),
130
130
  modificationType: h,
131
131
  name: m,
132
132
  replacementName: O,
133
- freeAmount: p,
133
+ freeAmount: c,
134
134
  quantity: s,
135
135
  currency: n,
136
- position: c,
136
+ position: p,
137
137
  cost: g
138
- }), e.modification === y.Remove && a.remove.push({
139
- id: T(e),
138
+ }), d.modification === y.Remove && o.remove.push({
139
+ id: T(d),
140
140
  modificationType: h,
141
141
  name: m,
142
- freeAmount: p,
142
+ freeAmount: c,
143
143
  quantity: s,
144
144
  currency: n,
145
- position: c,
145
+ position: p,
146
146
  cost: g
147
- }), a;
147
+ }), o;
148
148
  },
149
149
  {
150
150
  add: [],
151
151
  replace: [],
152
152
  remove: []
153
153
  }
154
- ), u = (t ?? []).reduce((a, e) => {
154
+ ), u = (t || []).reduce((o, d) => {
155
155
  const {
156
156
  product: h,
157
- freeAmount: c = 0,
158
- quantity: p,
159
- position: m,
157
+ addOnFreeAmount: p,
158
+ quantity: c,
159
+ addOnPosition: m,
160
160
  addOnGroupId: s,
161
161
  productPriceInclTax: g
162
- } = e, {
163
- hasVariants: O,
164
- variantName: A = "",
165
- productName: b = "",
166
- productId: w,
167
- variantId: B
168
- } = h ?? {}, M = g.unitPrice === 0;
169
- (c > 0 || M) && a.push({
162
+ } = d, { hasVariants: O, variantName: A, productName: b, productId: w, variantId: B } = h, M = g.unitPrice.amount === 0;
163
+ (p > 0 || M) && o.push({
170
164
  id: `${s}-${w}-free`,
171
165
  modificationType: y.Add,
172
166
  name: O ? A : b,
173
- freeAmount: M ? p : c,
174
- quantity: M ? p : c,
167
+ freeAmount: M ? c : p,
168
+ quantity: M ? c : p,
175
169
  currency: n,
176
170
  position: m,
177
171
  cost: 0,
178
172
  variantId: B
179
173
  });
180
- const k = p - c;
181
- return k > 0 && !M && a.push({
174
+ const k = c - p;
175
+ return k > 0 && !M && o.push({
182
176
  id: `${s}-${w}`,
183
177
  modificationType: y.Add,
184
178
  name: O ? A : b,
@@ -186,13 +180,13 @@ function rn(n, i, t) {
186
180
  quantity: k,
187
181
  currency: n,
188
182
  position: m,
189
- cost: g.unitPrice * k,
183
+ cost: g.unitPrice.amount * k,
190
184
  variantId: B
191
- }), a;
185
+ }), o;
192
186
  }, []);
193
187
  return [
194
- ...C([...o, ...u], ["position"], ["asc"]),
195
- ...C(d, ["position"], ["asc"]),
188
+ ...C([...a, ...u], ["position"], ["asc"]),
189
+ ...C(e, ["position"], ["asc"]),
196
190
  ...C(r, ["position"], ["asc"])
197
191
  ];
198
192
  }
@@ -1,8 +1,8 @@
1
- import { CheckItemModificationV2 } from '@ancon/wildcat-types';
1
+ import { CheckItemModification } from '@ancon/wildcat-types';
2
2
  /**
3
3
  * Generate a unique ID for a Check Item Modification
4
4
  * @param modification - Check Item Modification
5
5
  * @param suffix - Optional suffix to append to the ID
6
6
  * @returns Unique ID string
7
7
  */
8
- export default function getUniqueCheckItemModificationId(modification: CheckItemModificationV2, suffix?: string): string;
8
+ export default function getUniqueCheckItemModificationId(modification: CheckItemModification, suffix?: string): string;
@@ -1 +1 @@
1
- "use strict";function p(n,e){const{modification:i,ingredientId:o,replaceId:$,addOnGroupId:c,quantity:d,cost:a,freeAmount:r,name:t="",replacementName:m,position:u}=n;return`modification-${i}-${o}-${$??0}-${c??null}-${d}-${a}-${r}-${t}-${m??t}-${u}${e?`-${e}`:""}`}module.exports=p;
1
+ "use strict";function u(i,e){const{modification:n,ingredientId:o,replaceId:$,addOnGroupId:c,quantity:d,cost:a,freeAmount:r,name:t,replacementName:m,position:p}=i;return`modification-${n}-${o}-${$??0}-${c}-${d}-${a}-${r}-${t}-${m??t}-${p}${e?`-${e}`:""}`}module.exports=u;
@@ -1,4 +1,4 @@
1
- function p(n, e) {
1
+ function u(n, e) {
2
2
  const {
3
3
  modification: i,
4
4
  ingredientId: o,
@@ -7,12 +7,12 @@ function p(n, e) {
7
7
  quantity: d,
8
8
  cost: c,
9
9
  freeAmount: r,
10
- name: t = "",
10
+ name: t,
11
11
  replacementName: m,
12
- position: u
12
+ position: p
13
13
  } = n;
14
- return `modification-${i}-${o}-${$ ?? 0}-${a ?? null}-${d}-${c}-${r}-${t}-${m ?? t}-${u}${e ? `-${e}` : ""}`;
14
+ return `modification-${i}-${o}-${$ ?? 0}-${a}-${d}-${c}-${r}-${t}-${m ?? t}-${p}${e ? `-${e}` : ""}`;
15
15
  }
16
16
  export {
17
- p as default
17
+ u as default
18
18
  };
@@ -1,3 +1,4 @@
1
+ import { AxiosResponse } from 'axios';
1
2
  import { APIHeaders } from '@ancon/wildcat-types';
2
3
  import type { Logger } from '../logger';
3
4
  declare type HangfirePollerConfig = {
@@ -47,11 +48,12 @@ declare class HangfirePoller {
47
48
  private waitForNetworkOnline;
48
49
  private executeWorkerRequest;
49
50
  private deleteWorker;
50
- createWorker(groupId: string, { workerId, url, headers, onFinished, maxLifeTimeMillis, }: {
51
+ createWorker<TPartialContent = unknown>(groupId: string, { workerId, url, headers, onFinished, onPartialContent, maxLifeTimeMillis, }: {
51
52
  workerId: string;
52
53
  url: string;
53
54
  headers?: APIHeaders;
54
55
  onFinished?: (forced: boolean) => void | Promise<void>;
56
+ onPartialContent?: (response: AxiosResponse<TPartialContent>) => void | Promise<void>;
55
57
  /** Max lifetime in milliseconds. When exceeded the worker executes one final request and exits. */
56
58
  maxLifeTimeMillis?: number;
57
59
  }): Promise<unknown>;
@@ -1 +1 @@
1
- "use strict";var k=Object.defineProperty;var y=(s,e,r)=>e in s?k(s,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[e]=r;var o=(s,e,r)=>(y(s,typeof e!="symbol"?e+"":e,r),r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const I=require("axios"),d=require("@ancon/wildcat-types"),h=require("../error/createCodedError.js"),q=require("../error/isNotFoundError.js"),m=require("../error/serializeError.js"),w=require("../error/isErrorWithStatusCode.js"),G=require("../api/isNoContentResponse.js"),W=require("../shared/wait.js");require("../error/isCodedError.js");require("../error/isAPIError.js");class E{constructor(e){o(this,"busyWorkers",new Set);o(this,"enabledGroups",new Set);o(this,"groups",new Map);o(this,"workerByIdMap",new Map);o(this,"timer",null);o(this,"config",{pollerInterval:5e3,maxGroupsSize:50,maxWorkersSize:20,responseInterceptor:void 0,responseRejectionInterceptor:void 0,getIsNetworkOnline(){return!0},async getRequestHeaders(){return{}},debug(...e){console.log(...e)}});o(this,"axiosInstance");this.config={...this.config,...e??null},this.axiosInstance=I.create(),(this.config.responseInterceptor||this.config.responseRejectionInterceptor)&&this.axiosInstance.interceptors.response.use(this.config.responseInterceptor,this.config.responseRejectionInterceptor)}stopTimer(){this.timer!=null&&(this.config.debug("*stop timer*"),clearInterval(this.timer),this.timer=null)}startTimer(){if(this.timer!=null)throw h(new Error("Timer already started"),d.ErrorCode.GenericUnexpectedHangfireError);this.config.debug("*start timer*"),this.timer=setInterval(()=>{this.config.debug("*tick*",{busyWorkers:this.busyWorkers.size,enabledGroups:this.enabledGroups.size,groups:this.groups}),this.enabledGroups.forEach(e=>{const r=this.groups.get(e);r&&r.forEach(i=>this.executeWorkerRequest(i))}),this.groups.forEach((e,r)=>{this.enabledGroups.has(r)||e.forEach(i=>{i.maxLifeTimeMillis!=null&&Date.now()-i.createdAt>i.maxLifeTimeMillis&&this.executeWorkerRequest(i)})}),this.groups.size<1&&this.stopTimer()},this.config.pollerInterval)}async waitForNetworkOnline(e=5){let r=0;for(;!this.config.getIsNetworkOnline()&&r<e+1;)r+=1,await W(1e3)}async executeWorkerRequest(e,r=!1){var c,g,f,p,x;const i=e.maxLifeTimeMillis!=null&&Date.now()-e.createdAt>e.maxLifeTimeMillis,n=!r&&!i&&this.busyWorkers.has(e.workerId);if(this.config.debug("*executeWorkerRequest*",{workerId:e.workerId,isBusy:n,force:r}),n){this.config.debug("*executeWorkerRequest* worker is busy",e.workerId);return}this.busyWorkers.add(e.workerId),await this.waitForNetworkOnline(),this.config.debug("*executeWorkerRequest* request",{isNetworkOnline:this.config.getIsNetworkOnline()});const u={...await this.config.getRequestHeaders(),...e.headers},a=2;let t=0;for(;t<=a;)try{const l=await this.axiosInstance({url:e.url,method:"get",timeout:this.config.pollerInterval,headers:u});if(!G(l))e.resolve(l),(c=e.onFinished)==null||c.call(e,r),this.deleteWorker(e.groupId,e.workerId);else if(i){this.config.debug("*executeWorkerRequest* worker lifetime exceeded, forcing exit",e.workerId);const b=m(h(new Error("The Hangfire worker lifetime has been exceeded"),d.ErrorCode.GenericUnexpectedHangfireError));e.reject(b),(g=e.onFinished)==null||g.call(e,!0),this.deleteWorker(e.groupId,e.workerId)}else this.busyWorkers.delete(e.workerId);break}catch(l){if(w(l)){if(q(l)){this.config.debug("*executeWorkerRequest* worker is expired or invalid",e.workerId);const b=m(h(new Error("The Hangfire worker is expired or invalid"),d.ErrorCode.HangfireWorkerExpiredOrInvalid));e.reject(b),(f=e.onFinished)==null||f.call(e,r)}else e.reject(l),(p=e.onFinished)==null||p.call(e,r);this.deleteWorker(e.groupId,e.workerId);break}else if(this.config.debug("*executeWorkerRequest* not an api error"),(x=this.config.logger)==null||x.warn(`Hangfire worker request error: ${JSON.stringify({attempt:t,groupId:e.groupId,workerId:e.workerId,error:m(l)})}`,{CorrelationId:u["x-correlation-id"]}),r&&t<a)t+=1,this.config.debug(`*executeWorkerRequest* retrying non-API error (attempt ${t})`),await W(500);else{this.busyWorkers.delete(e.workerId);break}}}deleteWorker(e,r){const i=this.groups.get(e);i&&(this.config.debug("*delete worker*",i.size,i),i.delete(r),this.workerByIdMap.delete(r),this.busyWorkers.delete(r),i.size<1&&(this.groups.delete(e),this.enabledGroups.delete(e),this.enabledGroups.size<1&&this.stopTimer()))}createWorker(e,{workerId:r,url:i,headers:n,onFinished:u,maxLifeTimeMillis:a}){if(!this.groups.has(e)){if(this.groups.size>=this.config.maxGroupsSize){const c=h(new Error("Max number of Hangfire groups exceeded"),d.ErrorCode.GenericUnexpectedHangfireError,{count:this.groups.size});throw this.destroy(),c}this.groups.set(e,new Map)}const t=this.groups.get(e);return new Promise((c,g)=>{if(t.has(r))throw h(new Error("Duplicate Hangfire worker ID"),d.ErrorCode.GenericUnexpectedHangfireError);if(t.size>=this.config.maxWorkersSize){const p=h(new Error("Max number of Hangfire workers in group exceeded"),d.ErrorCode.GenericUnexpectedHangfireError,{groupId:e,count:t.size});throw g(p),this.destroy(),p}const f={workerId:r,groupId:e,url:i,resolve:c,reject:g,headers:n,onFinished:u,createdAt:Date.now(),maxLifeTimeMillis:a};t.set(r,f),this.workerByIdMap.set(r,f),this.enabledGroups.has(e)||this.enabledGroups.add(e),this.timer==null&&this.enabledGroups.size>0&&this.startTimer()})}triggerWorker(e){this.config.debug("*triggerWorker*");const r=this.workerByIdMap.get(e);r?this.executeWorkerRequest(r,!0):this.config.debug("*triggerWorker* worker not found",e)}triggerAllWorkers(){this.config.debug("*triggerAllWorkers*");for(const e of this.workerByIdMap.values())this.executeWorkerRequest(e)}enableWorkers(e){this.config.debug("*enable*",e),this.enabledGroups.add(e),this.groups.has(e)&&this.timer==null&&this.startTimer()}disableWorkers(e){if(this.config.debug("*disable*",e),this.config.maxParallelWorkers!=null){const i=[...this.enabledGroups].reduce((n,u)=>{var a;return n+(((a=this.groups.get(u))==null?void 0:a.size)??0)},0);if(i<=this.config.maxParallelWorkers){this.config.debug("*disable* skipped, parallel workers within limit",{totalEnabledWorkers:i,maxParallelWorkers:this.config.maxParallelWorkers});return}}this.enabledGroups.delete(e);const r=this.groups.size>0&&[...this.workerByIdMap.values()].some(i=>i.maxLifeTimeMillis!=null);this.enabledGroups.size<1&&!r&&this.stopTimer()}destroy(){this.config.debug("*destroy*"),this.groups.clear(),this.stopTimer()}}function z(s){return new E(s)}exports.HangfirePoller=E;exports.default=z;
1
+ "use strict";var I=Object.defineProperty;var k=(s,e,r)=>e in s?I(s,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[e]=r;var o=(s,e,r)=>(k(s,typeof e!="symbol"?e+"":e,r),r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const q=require("axios"),h=require("@ancon/wildcat-types"),g=require("../error/createCodedError.js"),G=require("../error/isNotFoundError.js"),x=require("../error/serializeError.js"),z=require("../error/isErrorWithStatusCode.js"),R=require("../api/isNoContentResponse.js"),M=require("../api/isPartialContentResponse.js"),E=require("../shared/wait.js");require("../error/isCodedError.js");require("../error/isAPIError.js");class y{constructor(e){o(this,"busyWorkers",new Set);o(this,"enabledGroups",new Set);o(this,"groups",new Map);o(this,"workerByIdMap",new Map);o(this,"timer",null);o(this,"config",{pollerInterval:5e3,maxGroupsSize:50,maxWorkersSize:20,responseInterceptor:void 0,responseRejectionInterceptor:void 0,getIsNetworkOnline(){return!0},async getRequestHeaders(){return{}},debug(...e){console.log(...e)}});o(this,"axiosInstance");this.config={...this.config,...e??null},this.axiosInstance=q.create(),(this.config.responseInterceptor||this.config.responseRejectionInterceptor)&&this.axiosInstance.interceptors.response.use(this.config.responseInterceptor,this.config.responseRejectionInterceptor)}stopTimer(){this.timer!=null&&(this.config.debug("*stop timer*"),clearInterval(this.timer),this.timer=null)}startTimer(){if(this.timer!=null)throw g(new Error("Timer already started"),h.ErrorCode.GenericUnexpectedHangfireError);this.config.debug("*start timer*"),this.timer=setInterval(()=>{this.config.debug("*tick*",{busyWorkers:this.busyWorkers.size,enabledGroups:this.enabledGroups.size,groups:this.groups}),this.enabledGroups.forEach(e=>{const r=this.groups.get(e);r&&r.forEach(i=>this.executeWorkerRequest(i))}),this.groups.forEach((e,r)=>{this.enabledGroups.has(r)||e.forEach(i=>{i.maxLifeTimeMillis!=null&&Date.now()-i.createdAt>i.maxLifeTimeMillis&&this.executeWorkerRequest(i)})}),this.groups.size<1&&this.stopTimer()},this.config.pollerInterval)}async waitForNetworkOnline(e=5){let r=0;for(;!this.config.getIsNetworkOnline()&&r<e+1;)r+=1,await E(1e3)}async executeWorkerRequest(e,r=!1){var u,d,f,p,b,W;const i=e.maxLifeTimeMillis!=null&&Date.now()-e.createdAt>e.maxLifeTimeMillis,n=!r&&!i&&this.busyWorkers.has(e.workerId);if(this.config.debug("*executeWorkerRequest*",{workerId:e.workerId,isBusy:n,force:r}),n){this.config.debug("*executeWorkerRequest* worker is busy",e.workerId);return}this.busyWorkers.add(e.workerId),await this.waitForNetworkOnline(),this.config.debug("*executeWorkerRequest* request",{isNetworkOnline:this.config.getIsNetworkOnline()});const c={...await this.config.getRequestHeaders(),...e.headers},a=2;let l=0;for(;l<=a;)try{const t=await this.axiosInstance({url:e.url,method:"get",timeout:this.config.pollerInterval,headers:c});if(!R(t))M(t)?(await((u=e.onPartialContent)==null?void 0:u.call(e,t)),this.busyWorkers.delete(e.workerId)):(e.resolve(t),(d=e.onFinished)==null||d.call(e,r),this.deleteWorker(e.groupId,e.workerId));else if(i){this.config.debug("*executeWorkerRequest* worker lifetime exceeded, forcing exit",e.workerId);const m=x(g(new Error("The Hangfire worker lifetime has been exceeded"),h.ErrorCode.GenericUnexpectedHangfireError));e.reject(m),(f=e.onFinished)==null||f.call(e,!0),this.deleteWorker(e.groupId,e.workerId)}else this.busyWorkers.delete(e.workerId);break}catch(t){if(z(t)){if(G(t)){this.config.debug("*executeWorkerRequest* worker is expired or invalid",e.workerId);const m=x(g(new Error("The Hangfire worker is expired or invalid"),h.ErrorCode.HangfireWorkerExpiredOrInvalid));e.reject(m),(p=e.onFinished)==null||p.call(e,r)}else e.reject(t),(b=e.onFinished)==null||b.call(e,r);this.deleteWorker(e.groupId,e.workerId);break}else if(this.config.debug("*executeWorkerRequest* not an api error"),(W=this.config.logger)==null||W.warn(`Hangfire worker request error: ${JSON.stringify({attempt:l,groupId:e.groupId,workerId:e.workerId,error:x(t)})}`,{CorrelationId:c["x-correlation-id"]}),r&&l<a)l+=1,this.config.debug(`*executeWorkerRequest* retrying non-API error (attempt ${l})`),await E(500);else{this.busyWorkers.delete(e.workerId);break}}}deleteWorker(e,r){const i=this.groups.get(e);i&&(this.config.debug("*delete worker*",i.size,i),i.delete(r),this.workerByIdMap.delete(r),this.busyWorkers.delete(r),i.size<1&&(this.groups.delete(e),this.enabledGroups.delete(e),this.enabledGroups.size<1&&this.stopTimer()))}createWorker(e,{workerId:r,url:i,headers:n,onFinished:c,onPartialContent:a,maxLifeTimeMillis:l}){if(!this.groups.has(e)){if(this.groups.size>=this.config.maxGroupsSize){const d=g(new Error("Max number of Hangfire groups exceeded"),h.ErrorCode.GenericUnexpectedHangfireError,{count:this.groups.size});throw this.destroy(),d}this.groups.set(e,new Map)}const u=this.groups.get(e);return new Promise((d,f)=>{if(u.has(r))throw g(new Error("Duplicate Hangfire worker ID"),h.ErrorCode.GenericUnexpectedHangfireError);if(u.size>=this.config.maxWorkersSize){const b=g(new Error("Max number of Hangfire workers in group exceeded"),h.ErrorCode.GenericUnexpectedHangfireError,{groupId:e,count:u.size});throw f(b),this.destroy(),b}const p={workerId:r,groupId:e,url:i,resolve:d,reject:f,headers:n,onFinished:c,onPartialContent:a,createdAt:Date.now(),maxLifeTimeMillis:l};u.set(r,p),this.workerByIdMap.set(r,p),this.enabledGroups.has(e)||this.enabledGroups.add(e),this.timer==null&&this.enabledGroups.size>0&&this.startTimer()})}triggerWorker(e){this.config.debug("*triggerWorker*");const r=this.workerByIdMap.get(e);r?this.executeWorkerRequest(r,!0):this.config.debug("*triggerWorker* worker not found",e)}triggerAllWorkers(){this.config.debug("*triggerAllWorkers*");for(const e of this.workerByIdMap.values())this.executeWorkerRequest(e)}enableWorkers(e){this.config.debug("*enable*",e),this.enabledGroups.add(e),this.groups.has(e)&&this.timer==null&&this.startTimer()}disableWorkers(e){if(this.config.debug("*disable*",e),this.config.maxParallelWorkers!=null){const i=[...this.enabledGroups].reduce((n,c)=>{var a;return n+(((a=this.groups.get(c))==null?void 0:a.size)??0)},0);if(i<=this.config.maxParallelWorkers){this.config.debug("*disable* skipped, parallel workers within limit",{totalEnabledWorkers:i,maxParallelWorkers:this.config.maxParallelWorkers});return}}this.enabledGroups.delete(e);const r=this.groups.size>0&&[...this.workerByIdMap.values()].some(i=>i.maxLifeTimeMillis!=null);this.enabledGroups.size<1&&!r&&this.stopTimer()}destroy(){this.config.debug("*destroy*"),this.groups.clear(),this.stopTimer()}}function T(s){return new y(s)}exports.HangfirePoller=y;exports.default=T;