@ancon/wildcat-utils 1.50.27 → 1.50.29

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.
@@ -7,6 +7,12 @@ declare type HangfirePollerConfig = {
7
7
  maxGroupsSize: number;
8
8
  /** Max number of simultaneous workers per group */
9
9
  maxWorkersSize: number;
10
+ /**
11
+ * Max number of parallel workers across all enabled groups.
12
+ * When set, `disableWorkers()` is a no-op unless the total enabled worker
13
+ * count exceeds this limit.
14
+ */
15
+ maxParallelWorkers?: number;
10
16
  /** Successful response interceptor */
11
17
  responseInterceptor?: (response: any) => any;
12
18
  /** Failed response interceptor */
@@ -1 +1 @@
1
- "use strict";var y=Object.defineProperty;var I=(s,e,r)=>e in s?y(s,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[e]=r;var o=(s,e,r)=>(I(s,typeof e!="symbol"?e+"":e,r),r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const k=require("axios"),u=require("@ancon/wildcat-types"),c=require("../error/createCodedError.js"),q=require("../error/isNotFoundError.js"),x=require("../error/serializeError.js"),G=require("../error/isErrorWithStatusCode.js"),w=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=k.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 c(new Error("Timer already started"),u.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 a,d,h,g,m;const i=e.maxLifeTimeMillis!=null&&Date.now()-e.createdAt>e.maxLifeTimeMillis,l=!r&&!i&&this.busyWorkers.has(e.workerId);if(this.config.debug("*executeWorkerRequest*",{workerId:e.workerId,isBusy:l,force:r}),l){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 f={...await this.config.getRequestHeaders(),...e.headers},p=2;let t=0;for(;t<=p;)try{const n=await this.axiosInstance({url:e.url,method:"get",timeout:this.config.pollerInterval,headers:f});if(!w(n))e.resolve(n),(a=e.onFinished)==null||a.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=x(c(new Error("The Hangfire worker lifetime has been exceeded"),u.ErrorCode.GenericUnexpectedHangfireError));e.reject(b),(d=e.onFinished)==null||d.call(e,!0),this.deleteWorker(e.groupId,e.workerId)}else this.busyWorkers.delete(e.workerId);break}catch(n){if(G(n)){if(q(n)){this.config.debug("*executeWorkerRequest* worker is expired or invalid",e.workerId);const b=x(c(new Error("The Hangfire worker is expired or invalid"),u.ErrorCode.HangfireWorkerExpiredOrInvalid));e.reject(b),(h=e.onFinished)==null||h.call(e,r)}else e.reject(n),(g=e.onFinished)==null||g.call(e,r);this.deleteWorker(e.groupId,e.workerId);break}else if(this.config.debug("*executeWorkerRequest* not an api error"),(m=this.config.logger)==null||m.warn(`Hangfire worker request error: ${JSON.stringify({attempt:t,groupId:e.groupId,workerId:e.workerId,error:x(n)})}`,{CorrelationId:f["x-correlation-id"]}),r&&t<p)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:l,onFinished:f,maxLifeTimeMillis:p}){if(!this.groups.has(e)){if(this.groups.size>=this.config.maxGroupsSize){const a=c(new Error("Max number of Hangfire groups exceeded"),u.ErrorCode.GenericUnexpectedHangfireError,{count:this.groups.size});throw this.destroy(),a}this.groups.set(e,new Map)}const t=this.groups.get(e);return new Promise((a,d)=>{if(t.has(r))throw c(new Error("Duplicate Hangfire worker ID"),u.ErrorCode.GenericUnexpectedHangfireError);if(t.size>=this.config.maxWorkersSize){const g=c(new Error("Max number of Hangfire workers in group exceeded"),u.ErrorCode.GenericUnexpectedHangfireError,{groupId:e,count:t.size});throw d(g),this.destroy(),g}const h={workerId:r,groupId:e,url:i,resolve:a,reject:d,headers:l,onFinished:f,createdAt:Date.now(),maxLifeTimeMillis:p};t.set(r,h),this.workerByIdMap.set(r,h),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){this.config.debug("*disable*",e),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 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,10 +1,10 @@
1
- var I = Object.defineProperty;
2
- var E = (s, e, t) => e in s ? I(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
- var o = (s, e, t) => (E(s, typeof e != "symbol" ? e + "" : e, t), t);
4
- import y from "axios";
5
- import { ErrorCode as h } from "@ancon/wildcat-types";
6
- import u from "../error/createCodedError.mjs";
7
- import k from "../error/isNotFoundError.mjs";
1
+ var k = Object.defineProperty;
2
+ var E = (s, e, i) => e in s ? k(s, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : s[e] = i;
3
+ var o = (s, e, i) => (E(s, typeof e != "symbol" ? e + "" : e, i), i);
4
+ import I from "axios";
5
+ import { ErrorCode as c } from "@ancon/wildcat-types";
6
+ import d from "../error/createCodedError.mjs";
7
+ import y from "../error/isNotFoundError.mjs";
8
8
  import b from "../error/serializeError.mjs";
9
9
  import G from "../error/isErrorWithStatusCode.mjs";
10
10
  import w from "../api/isNoContentResponse.mjs";
@@ -42,7 +42,7 @@ class z {
42
42
  this.config = {
43
43
  ...this.config,
44
44
  ...e ?? null
45
- }, this.axiosInstance = y.create(), (this.config.responseInterceptor || this.config.responseRejectionInterceptor) && this.axiosInstance.interceptors.response.use(
45
+ }, this.axiosInstance = I.create(), (this.config.responseInterceptor || this.config.responseRejectionInterceptor) && this.axiosInstance.interceptors.response.use(
46
46
  this.config.responseInterceptor,
47
47
  this.config.responseRejectionInterceptor
48
48
  );
@@ -52,9 +52,9 @@ class z {
52
52
  }
53
53
  startTimer() {
54
54
  if (this.timer != null)
55
- throw u(
55
+ throw d(
56
56
  new Error("Timer already started"),
57
- h.GenericUnexpectedHangfireError
57
+ c.GenericUnexpectedHangfireError
58
58
  );
59
59
  this.config.debug("*start timer*"), this.timer = setInterval(() => {
60
60
  this.config.debug("*tick*", {
@@ -62,28 +62,28 @@ class z {
62
62
  enabledGroups: this.enabledGroups.size,
63
63
  groups: this.groups
64
64
  }), this.enabledGroups.forEach((e) => {
65
- const t = this.groups.get(e);
66
- t && t.forEach((i) => this.executeWorkerRequest(i));
67
- }), this.groups.forEach((e, t) => {
68
- this.enabledGroups.has(t) || e.forEach((i) => {
69
- i.maxLifeTimeMillis != null && Date.now() - i.createdAt > i.maxLifeTimeMillis && this.executeWorkerRequest(i);
65
+ const i = this.groups.get(e);
66
+ i && i.forEach((r) => this.executeWorkerRequest(r));
67
+ }), this.groups.forEach((e, i) => {
68
+ this.enabledGroups.has(i) || e.forEach((r) => {
69
+ r.maxLifeTimeMillis != null && Date.now() - r.createdAt > r.maxLifeTimeMillis && this.executeWorkerRequest(r);
70
70
  });
71
71
  }), this.groups.size < 1 && this.stopTimer();
72
72
  }, this.config.pollerInterval);
73
73
  }
74
74
  async waitForNetworkOnline(e = 5) {
75
- let t = 0;
76
- for (; !this.config.getIsNetworkOnline() && t < e + 1; )
77
- t += 1, await W(1e3);
75
+ let i = 0;
76
+ for (; !this.config.getIsNetworkOnline() && i < e + 1; )
77
+ i += 1, await W(1e3);
78
78
  }
79
- async executeWorkerRequest(e, t = !1) {
80
- var a, c, d, g, x;
81
- const i = e.maxLifeTimeMillis != null && Date.now() - e.createdAt > e.maxLifeTimeMillis, l = !t && !i && this.busyWorkers.has(e.workerId);
79
+ async executeWorkerRequest(e, i = !1) {
80
+ var u, g, f, p, x;
81
+ const r = e.maxLifeTimeMillis != null && Date.now() - e.createdAt > e.maxLifeTimeMillis, n = !i && !r && this.busyWorkers.has(e.workerId);
82
82
  if (this.config.debug("*executeWorkerRequest*", {
83
83
  workerId: e.workerId,
84
- isBusy: l,
85
- force: t
86
- }), l) {
84
+ isBusy: n,
85
+ force: i
86
+ }), n) {
87
87
  this.config.debug(
88
88
  "*executeWorkerRequest* worker is busy",
89
89
  e.workerId
@@ -93,67 +93,67 @@ class z {
93
93
  this.busyWorkers.add(e.workerId), await this.waitForNetworkOnline(), this.config.debug("*executeWorkerRequest* request", {
94
94
  isNetworkOnline: this.config.getIsNetworkOnline()
95
95
  });
96
- const f = {
96
+ const h = {
97
97
  ...await this.config.getRequestHeaders(),
98
98
  ...e.headers
99
- }, p = 2;
100
- let r = 0;
101
- for (; r <= p; )
99
+ }, a = 2;
100
+ let t = 0;
101
+ for (; t <= a; )
102
102
  try {
103
- const n = await this.axiosInstance({
103
+ const l = await this.axiosInstance({
104
104
  url: e.url,
105
105
  method: "get",
106
106
  timeout: this.config.pollerInterval,
107
- headers: f
107
+ headers: h
108
108
  });
109
- if (!w(n))
110
- e.resolve(n), (a = e.onFinished) == null || a.call(e, t), this.deleteWorker(e.groupId, e.workerId);
111
- else if (i) {
109
+ if (!w(l))
110
+ e.resolve(l), (u = e.onFinished) == null || u.call(e, i), this.deleteWorker(e.groupId, e.workerId);
111
+ else if (r) {
112
112
  this.config.debug(
113
113
  "*executeWorkerRequest* worker lifetime exceeded, forcing exit",
114
114
  e.workerId
115
115
  );
116
116
  const m = b(
117
- u(
117
+ d(
118
118
  new Error("The Hangfire worker lifetime has been exceeded"),
119
- h.GenericUnexpectedHangfireError
119
+ c.GenericUnexpectedHangfireError
120
120
  )
121
121
  );
122
- e.reject(m), (c = e.onFinished) == null || c.call(e, !0), this.deleteWorker(e.groupId, e.workerId);
122
+ e.reject(m), (g = e.onFinished) == null || g.call(e, !0), this.deleteWorker(e.groupId, e.workerId);
123
123
  } else
124
124
  this.busyWorkers.delete(e.workerId);
125
125
  break;
126
- } catch (n) {
127
- if (G(n)) {
128
- if (k(n)) {
126
+ } catch (l) {
127
+ if (G(l)) {
128
+ if (y(l)) {
129
129
  this.config.debug(
130
130
  "*executeWorkerRequest* worker is expired or invalid",
131
131
  e.workerId
132
132
  );
133
133
  const m = b(
134
- u(
134
+ d(
135
135
  new Error("The Hangfire worker is expired or invalid"),
136
- h.HangfireWorkerExpiredOrInvalid
136
+ c.HangfireWorkerExpiredOrInvalid
137
137
  )
138
138
  );
139
- e.reject(m), (d = e.onFinished) == null || d.call(e, t);
139
+ e.reject(m), (f = e.onFinished) == null || f.call(e, i);
140
140
  } else
141
- e.reject(n), (g = e.onFinished) == null || g.call(e, t);
141
+ e.reject(l), (p = e.onFinished) == null || p.call(e, i);
142
142
  this.deleteWorker(e.groupId, e.workerId);
143
143
  break;
144
144
  } else if (this.config.debug("*executeWorkerRequest* not an api error"), (x = this.config.logger) == null || x.warn(
145
145
  `Hangfire worker request error: ${JSON.stringify({
146
- attempt: r,
146
+ attempt: t,
147
147
  groupId: e.groupId,
148
148
  workerId: e.workerId,
149
- error: b(n)
149
+ error: b(l)
150
150
  })}`,
151
151
  {
152
- CorrelationId: f["x-correlation-id"]
152
+ CorrelationId: h["x-correlation-id"]
153
153
  }
154
- ), t && r < p)
155
- r += 1, this.config.debug(
156
- `*executeWorkerRequest* retrying non-API error (attempt ${r})`
154
+ ), i && t < a)
155
+ t += 1, this.config.debug(
156
+ `*executeWorkerRequest* retrying non-API error (attempt ${t})`
157
157
  ), await W(500);
158
158
  else {
159
159
  this.busyWorkers.delete(e.workerId);
@@ -161,62 +161,62 @@ class z {
161
161
  }
162
162
  }
163
163
  }
164
- deleteWorker(e, t) {
165
- const i = this.groups.get(e);
166
- i && (this.config.debug("*delete worker*", i.size, i), i.delete(t), this.workerByIdMap.delete(t), this.busyWorkers.delete(t), i.size < 1 && (this.groups.delete(e), this.enabledGroups.delete(e), this.enabledGroups.size < 1 && this.stopTimer()));
164
+ deleteWorker(e, i) {
165
+ const r = this.groups.get(e);
166
+ r && (this.config.debug("*delete worker*", r.size, r), r.delete(i), this.workerByIdMap.delete(i), this.busyWorkers.delete(i), r.size < 1 && (this.groups.delete(e), this.enabledGroups.delete(e), this.enabledGroups.size < 1 && this.stopTimer()));
167
167
  }
168
168
  createWorker(e, {
169
- workerId: t,
170
- url: i,
171
- headers: l,
172
- onFinished: f,
173
- maxLifeTimeMillis: p
169
+ workerId: i,
170
+ url: r,
171
+ headers: n,
172
+ onFinished: h,
173
+ maxLifeTimeMillis: a
174
174
  }) {
175
175
  if (!this.groups.has(e)) {
176
176
  if (this.groups.size >= this.config.maxGroupsSize) {
177
- const a = u(
177
+ const u = d(
178
178
  new Error("Max number of Hangfire groups exceeded"),
179
- h.GenericUnexpectedHangfireError,
179
+ c.GenericUnexpectedHangfireError,
180
180
  { count: this.groups.size }
181
181
  );
182
- throw this.destroy(), a;
182
+ throw this.destroy(), u;
183
183
  }
184
184
  this.groups.set(e, /* @__PURE__ */ new Map());
185
185
  }
186
- const r = this.groups.get(e);
187
- return new Promise((a, c) => {
188
- if (r.has(t))
189
- throw u(
186
+ const t = this.groups.get(e);
187
+ return new Promise((u, g) => {
188
+ if (t.has(i))
189
+ throw d(
190
190
  new Error("Duplicate Hangfire worker ID"),
191
- h.GenericUnexpectedHangfireError
191
+ c.GenericUnexpectedHangfireError
192
192
  );
193
- if (r.size >= this.config.maxWorkersSize) {
194
- const g = u(
193
+ if (t.size >= this.config.maxWorkersSize) {
194
+ const p = d(
195
195
  new Error("Max number of Hangfire workers in group exceeded"),
196
- h.GenericUnexpectedHangfireError,
197
- { groupId: e, count: r.size }
196
+ c.GenericUnexpectedHangfireError,
197
+ { groupId: e, count: t.size }
198
198
  );
199
- throw c(g), this.destroy(), g;
199
+ throw g(p), this.destroy(), p;
200
200
  }
201
- const d = {
202
- workerId: t,
201
+ const f = {
202
+ workerId: i,
203
203
  groupId: e,
204
- url: i,
205
- resolve: a,
206
- reject: c,
207
- headers: l,
208
- onFinished: f,
204
+ url: r,
205
+ resolve: u,
206
+ reject: g,
207
+ headers: n,
208
+ onFinished: h,
209
209
  createdAt: Date.now(),
210
- maxLifeTimeMillis: p
210
+ maxLifeTimeMillis: a
211
211
  };
212
- r.set(t, d), this.workerByIdMap.set(t, d), this.enabledGroups.has(e) || this.enabledGroups.add(e), this.timer == null && this.enabledGroups.size > 0 && this.startTimer();
212
+ t.set(i, f), this.workerByIdMap.set(i, f), this.enabledGroups.has(e) || this.enabledGroups.add(e), this.timer == null && this.enabledGroups.size > 0 && this.startTimer();
213
213
  });
214
214
  }
215
215
  /** Trigger a worker to execute immediately, ignoring busy state */
216
216
  triggerWorker(e) {
217
217
  this.config.debug("*triggerWorker*");
218
- const t = this.workerByIdMap.get(e);
219
- t ? this.executeWorkerRequest(t, !0) : this.config.debug("*triggerWorker* worker not found", e);
218
+ const i = this.workerByIdMap.get(e);
219
+ i ? this.executeWorkerRequest(i, !0) : this.config.debug("*triggerWorker* worker not found", e);
220
220
  }
221
221
  /** Trigger all workers to execute immediately */
222
222
  triggerAllWorkers() {
@@ -229,18 +229,34 @@ class z {
229
229
  this.config.debug("*enable*", e), this.enabledGroups.add(e), this.groups.has(e) && this.timer == null && this.startTimer();
230
230
  }
231
231
  disableWorkers(e) {
232
- this.config.debug("*disable*", e), this.enabledGroups.delete(e);
233
- const t = this.groups.size > 0 && [...this.workerByIdMap.values()].some((i) => i.maxLifeTimeMillis != null);
234
- this.enabledGroups.size < 1 && !t && this.stopTimer();
232
+ if (this.config.debug("*disable*", e), this.config.maxParallelWorkers != null) {
233
+ const r = [...this.enabledGroups].reduce(
234
+ (n, h) => {
235
+ var a;
236
+ return n + (((a = this.groups.get(h)) == null ? void 0 : a.size) ?? 0);
237
+ },
238
+ 0
239
+ );
240
+ if (r <= this.config.maxParallelWorkers) {
241
+ this.config.debug("*disable* skipped, parallel workers within limit", {
242
+ totalEnabledWorkers: r,
243
+ maxParallelWorkers: this.config.maxParallelWorkers
244
+ });
245
+ return;
246
+ }
247
+ }
248
+ this.enabledGroups.delete(e);
249
+ const i = this.groups.size > 0 && [...this.workerByIdMap.values()].some((r) => r.maxLifeTimeMillis != null);
250
+ this.enabledGroups.size < 1 && !i && this.stopTimer();
235
251
  }
236
252
  destroy() {
237
253
  this.config.debug("*destroy*"), this.groups.clear(), this.stopTimer();
238
254
  }
239
255
  }
240
- function B(s) {
256
+ function A(s) {
241
257
  return new z(s);
242
258
  }
243
259
  export {
244
260
  z as HangfirePoller,
245
- B as default
261
+ A as default
246
262
  };
package/index.d.ts CHANGED
@@ -29,3 +29,4 @@ export * from './ticketItem';
29
29
  export * from './quantity';
30
30
  export * from './checkAuditLog';
31
31
  export * from './zReport';
32
+ export * from './multilingual';
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./shared/isWithinFlag.js"),i=require("./shared/generateId.js"),u=require("./shared/wait.js"),s=require("./shared/kiloGramToGram.js"),n=require("./shared/gramToKiloGram.js"),c=require("./shared/hooks/usePrevious.js"),a=require("./shared/hooks/useMountedRef.js"),l=require("./outlet/getListOutletOpeningHoursTable.js"),d=require("./outlet/getOutletTagInformation.js"),g=require("./outlet/getOutletAvailabilityInfo.js"),q=require("./outlet/getOutletOfflineOrderFormats.js"),m=require("./outlet/getOutletAvailableOrderFormats.js"),_=require("./outlet/getOutletFormattedDistance.js"),k=require("./outlet/isOutletAcceptingPreOrders.js"),h=require("./outlet/isOutletAcceptingPreOrdersWhenClosed.js"),O=require("./outlet/getOutletDeliveryFee.js"),T=require("./outlet/getOutletTodayOpeningTimes.js"),p=require("./outlet/getOutletOrderFormats.js"),C=require("./outlet/serviceDateTimesFromOpeningHours.js"),P=require("./outlet/getPickerIntervalsForDay.js"),S=require("./outlet/getServiceIntervalRange.js"),f=require("./outlet/getServiceIntervalsForOrderFormat.js"),y=require("./outlet/getOutletFormattedAddress.js"),A=require("./outlet/getPartitionedOutletsList.js"),I=require("./outlet/getOutletPickerTimesForWeek.js"),F=require("./outlet/getOutletPickerTimesForDay.js"),v=require("./outlet/getOutletOrderPrepTime.js"),E=require("./outlet/getStructuredOutletAddress.js"),D=require("./outlet/getOutletNextOpeningTimeText.js"),b=require("./outlet/getOutletCurrentClosingTimeText.js"),M=require("./outlet/getOutletNextReadyToOrderTime.js"),R=require("./outlet/getOutletNextOpeningTagInformation.js"),L=require("./outlet/getOutletCurrentAvailabilityInfo.js"),N=require("./outlet/getExpressAvailableOrderFormats.js"),x=require("./outlet/getExpressNextAvailabilityShiftTime.js"),G=require("./outlet/getOrderFormatAOTipSettings.js"),U=require("./outlet/isAOTippingEnabledForOrderFormat.js"),W=require("./outlet/isMenuTreeHierarchyProductAvailable.js"),H=require("./outlet/getOutletMenuProductsSortCriteria.js"),B=require("./outlet/getOutletNextServiceTimeOffset.js"),z=require("./versioning/isVersionALessThanB.js"),V=require("./versioning/cleanVersionString.js"),w=require("./api/getUrlAndParams.js"),J=require("./api/getEndpointWithVersion.js"),K=require("./api/generateBackoffWithEqualJitter.js"),Q=require("./api/generateBackoffWithVariableJitter.js"),Z=require("./api/isAcceptedResponse.js"),j=require("./api/isNoContentResponse.js"),X=require("./api/APIFilterBuilder.js"),Y=require("./api/getMediaImageClosestSize.js"),$=require("./string/slugify.js"),ee=require("./string/truncate.js"),te=require("./string/getRandomAlphaNumericCode.js"),re=require("./string/getParsedJSONFromString.js"),oe=require("./color/lighten.js"),ie=require("./color/brighten.js"),ue=require("./color/darken.js"),se=require("./color/isDarkBackground.js"),ne=require("./color/isColorsReadable.js"),ce=require("./color/isColorsEqual.js"),ae=require("./color/getLuminance.js"),le=require("./color/toHsl.js"),de=require("./color/hslToHex.js"),ge=require("./user/getFullName.js"),qe=require("./user/getFullAddressString.js"),me=require("./user/getCustomerAddressFromGeocoderResult.js"),_e=require("./user/getFormattedPhoneNumber.js"),ke=require("./user/getStructuredCustomerAddress.js"),he=require("./logger/Logger.js"),Oe=require("./logger/types.js"),Te=require("./logger/sanitizeAsStringDict.js"),pe=require("./logger/pascalCaseFormatter.js"),Ce=require("./printing/getPrinterType.js"),Pe=require("./printing/isValidPrinter.js"),Se=require("./printing/isValidNetworkPrinter.js"),fe=require("./printing/isValidStarCloudPrinter.js"),ye=require("./printing/isTerminalPrinter.js"),Ae=require("./printing/isCloudPrintModeEnabled.js"),Ie=require("./printing/createStarCloudScanHook.js"),Fe=require("./number/randomIntFromInterval.js"),ve=require("./tables/decodeTableQRPayload.js"),Ee=require("./checkout/getCheckoutItemModifications.js"),De=require("./checkout/getCheckoutProductName.js"),t=require("./checkout/getCheckoutOrderStatusTexts.js"),be=require("./checkout/getCheckoutItemsMappedByTicketItemStatus.js"),Me=require("./checkout/isCheckoutOrderSummary.js"),Re=require("./checkout/buildCheckoutRequestItem.js"),Le=require("./checkout/getCheckoutGrandTotalAmount.js"),Ne=require("./checkout/getCheckoutRequestItemFromCheckoutItem.js"),xe=require("./checkout/isCheckoutItemsAreEqual.js"),Ge=require("./checkout/checkoutHasWallet.js"),Ue=require("./checkout/getWalletMetaFromCheckout.js"),We=require("./checkout/isPreOrderServiceTime.js"),He=require("./checkout/isPreOrderCheckout.js"),Be=require("./checkout/isUpdatingCheckoutAllowed.js"),ze=require("./checkout/isCheckoutAlreadyPaidStatus.js"),r=require("./checkout/getCheckoutPaymentErrorTranslationTexts.js"),Ve=require("./checkout/isDeletingCheckoutAllowed.js"),we=require("./checkout/getTotalCheckoutItemsQuantity.js"),Je=require("./checkout/getCheckoutPenguinLockersMetaData.js"),Ke=require("./checkout/getUniqueCheckoutPenguinDeliveryCodes.js"),Qe=require("./checkout/isWoltDeliveryInProgress.js"),Ze=require("./checkout/isWalletTopUpCheckoutItem.js"),je=require("./checkout/isWalletTopUpCheckout.js"),Xe=require("./checkout/getCheckoutWalletTopUpMetaData.js"),Ye=require("./checkout/isGiftCardCheckout.js"),$e=require("./checkout/isGiftCardCheckoutItem.js"),et=require("./checkout/getCheckoutGiftCardMetaData.js"),tt=require("./checkout/getCheckoutGuestGroupsMetaData.js"),rt=require("./order/getCheckOrderItemsMappedByTicketItemStatus.js"),ot=require("./order/getCheckOrderMinimumStatusTicketItem.js"),it=require("./order/getMultiProductSubProductsTicketItems.js"),ut=require("./currency/getFormattedCurrency.js"),st=require("./currency/getFormattedCurrencyPostfix.js"),nt=require("./inventory/isDetailedProductOutOfStock.js"),ct=require("./inventory/isDetailedProductVariantOutOfStocks.js"),at=require("./inventory/isMenuTreeProductOutOfStock.js"),lt=require("./inventory/isDetailedProductUpSellsOutOfStock.js"),dt=require("./inventory/isUpSellProductOutStock.js"),gt=require("./inventory/isDetailedProductOutletStockOutOfStock.js"),qt=require("./inventory/getDetailedProductVariantStock.js"),mt=require("./inventory/isAddonProductOutOfStock.js"),_t=require("./signalr/createUseSignalRHook.js"),kt=require("./signalr/SignalR.js"),ht=require("./error/createCodedError.js"),Ot=require("./error/isCodedError.js"),Tt=require("./error/isNetworkError.js"),pt=require("./error/isLockedError.js"),Ct=require("./error/isNotFoundError.js"),Pt=require("./error/isAPIError.js"),St=require("./error/isSerializedAPIError.js"),ft=require("./error/isSerializedCodedError.js"),yt=require("./error/serializeError.js"),At=require("./error/getErrorCode.js"),It=require("./error/isErrorWithStatusCode.js"),Ft=require("./error/isBadGatewayError.js"),vt=require("./error/isServiceUnavailableError.js"),Et=require("./error/isTooManyRequestsError.js"),Dt=require("./error/isUpgradeRequiredError.js"),bt=require("./hangfire/isHangfireResponse.js"),Mt=require("./hangfire/isHangfireWorkerExpiredOrInvalidError.js"),Rt=require("./hangfire/createHangfirePoller.js"),Lt=require("./hangfire/createMakeHangfireRequest.js"),Nt=require("./product/extractProductsFromMenuTree.js"),xt=require("./product/calculateIngredientsCost.js"),Gt=require("./product/calculateAddonGroupCost.js"),Ut=require("./product/getAddonGroupInfoBySettings.js"),Wt=require("./product/calculateWeightProductPrice.js"),Ht=require("./product/calculateProductWeightByPrice.js"),Bt=require("./codec/base64URLEncode.js"),zt=require("./codec/base64URLDecode.js"),Vt=require("./hashing/getSHA256Hash.js"),wt=require("./preOrder/isPreOrderSharable.js"),Jt=require("./preOrder/isPreOrderLink.js"),Kt=require("./preOrder/isGroupPreOrder.js"),Qt=require("./phoneNumber/isPhoneNumberValid.js"),Zt=require("./phoneNumber/formatPhoneNumber.js"),e=require("./license/getLicenseUIState.js"),jt=require("./googleMap/getComponentNameFromGeocoderResult.js"),Xt=require("./date/createLocalTimezoneDate.js"),Yt=require("./date/createLocalTimezoneMoment.js"),$t=require("./date/getFormattedUTCDateTime.js"),er=require("./date/convertToLocalTimezone.js"),tr=require("./date/convertToSpecificTimezone.js"),rr=require("./date/getTimezoneUtcOffsetDifference.js"),or=require("./date/isDSTShiftPresentInRange.js"),ir=require("./time/toMinutes.js"),ur=require("./time/getNextTenthMinute.js"),sr=require("./time/getPrevNthMinute.js"),nr=require("./time/getTimeSpanParts.js"),cr=require("./time/getEndTimeSpanOfTimePeriod.js"),ar=require("./time/createTimeSpan.js"),lr=require("./time/formatTimeSpan.js"),dr=require("./time/getDurationBetweenTimeSpans.js"),gr=require("./time/convertSecondsToTimeSpan.js"),qr=require("./time/convertTimeSpanToSeconds.js"),mr=require("./ticketItem/isTicketItemReady.js"),_r=require("./ticketItem/isTicketItemClosed.js"),kr=require("./quantity/getFormattedQuantity.js"),hr=require("./checkAuditLog/isPayAndGoCheckAuditLogAction.js"),Or=require("./checkAuditLog/getCheckAuditLogProductName.js"),Tr=require("./zReport/getZReportPaymentMethodDisplayName.js");require("react");require("moment");require("@ancon/wildcat-types");require("./outlet/constants.js");require("./outlet/getOutletCurrentActiveOperatingHour.js");require("./outlet/getTimezoneAdjustedServiceInterval.js");require("./outlet/getServiceIntervalTimeSpanMoment.js");require("./outlet/searchNextOpeningMoment.js");require("./_baseIteratee-374c60ca.js");require("./_getTag-3d3032da.js");require("./isObjectLike-963267e9.js");require("./isObject-361bd834.js");require("./_baseIsEqual-7e335f42.js");require("./identity-58f9497d.js");require("./toString-b771abdf.js");require("./noop-7ea3b37b.js");require("./_baseSlice-e1b41ceb.js");require("./shared/constants.js");require("./outlet/types.js");require("./outlet/getSettingsForOrderFormat.js");require("./outlet/getServiceIntervalStart.js");require("./outlet/generatePickerTimesForDay.js");require("./outlet/getServiceIntervalEnd.js");require("./outlet/hoursAndMinutesToMinutes.js");require("./outlet/getExpressServiceIntervalStart.js");require("./outlet/getExpressServiceIntervalEnd.js");require("compare-versions");require("./api/types.js");require("tinycolor2");require("dayjs");require("@ancon/wildcat-printing");require("./printing/types.js");require("axios");require("react-redux");require("@microsoft/signalr");require("google-libphonenumber");require("./license/types.js");exports.isWithinFlag=o;exports.generateId=i;exports.wait=u;exports.kiloGramToGram=s;exports.gramToKiloGram=n;exports.usePrevious=c;exports.useMountedRef=a;exports.getListOutletOpeningHoursTable=l;exports.getOutletTagInformation=d.default;exports.getOutletAvailabilityInfo=g.default;exports.getOutletOfflineOrderFormats=q;exports.getOutletAvailableOrderFormats=m;exports.getOutletFormattedDistance=_;exports.isOutletAcceptingPreOrders=k;exports.isOutletAcceptingPreOrdersWhenClosed=h;exports.getOutletDeliveryFee=O;exports.getOutletTodayOpeningTimes=T;exports.getOutletOrderFormats=p;exports.serviceDateTimesFromOpeningHours=C;exports.getPickerIntervalsForDay=P;exports.getServiceIntervalRange=S;exports.getServiceIntervalsForOrderFormat=f;exports.getOutletFormattedAddress=y;exports.getPartitionedOutletsList=A;exports.getOutletPickerTimesForWeek=I;exports.getOutletPickerTimesForDay=F;exports.getOutletOrderPreparationTime=v;exports.getStructuredOutletAddress=E;exports.getOutletNextOpeningTimeText=D;exports.getOutletCurrentClosingTimeText=b;exports.getOutletNextReadyToOrderTime=M;exports.getOutletNextOpeningTagInformation=R;exports.getOutletCurrentAvailabilityInfo=L;exports.getExpressAvailableOrderFormats=N;exports.getExpressNextAvailabilityShiftTime=x;exports.getOrderFormatAOTipSettings=G.default;exports.isAOTippingEnabledForOrderFormat=U;exports.isMenuTreeHierarchyProductAvailable=W;exports.getOutletMenuProductsSortCriteria=H;exports.getOutletNextServiceTimeOffset=B;exports.isVersionALessThanB=z;exports.cleanVersionString=V;exports.getUrlAndParams=w;exports.getEndpointWithVersion=J;exports.generateBackoffWithEqualJitter=K;exports.generateBackoffWithVariableJitter=Q;exports.isAcceptedResponse=Z;exports.isNoContentResponse=j;exports.APIFilterBuilder=X;exports.getMediaImageClosestSize=Y;exports.slugify=$;exports.truncate=ee;exports.getRandomAlphaNumericCode=te;exports.getParsedJSONFromString=re;exports.lighten=oe;exports.brighten=ie;exports.darken=ue;exports.isDarkBackground=se;exports.isColorsReadable=ne;exports.isColorsEqual=ce;exports.getLuminance=ae;exports.toHsl=le;exports.hslToHex=de;exports.getFullName=ge;exports.getFullAddressString=qe;exports.getCustomerAddressFromGeocoderResult=me;exports.getFormattedPhoneNumber=_e;exports.getStructuredCustomerAddress=ke;exports.Logger=he;exports.LogLevel=Oe.LogLevel;exports.sanitizeAsStringDict=Te;exports.pascalCaseFormatter=pe;exports.getPrinterType=Ce;exports.isValidPrinter=Pe;exports.isValidNetworkPrinter=Se;exports.isValidStarCloudPrinter=fe;exports.isTerminalPrinter=ye;exports.isCloudPrintModeEnabled=Ae;exports.createUseStarCloudScanHook=Ie;exports.randomIntFromInterval=Fe;exports.decodeTableQRPayload=ve;exports.getCheckoutGroupedModifications=Ee.default;exports.getCheckoutProductName=De;exports.TranslationKey=t.TranslationKey;exports.getCheckoutOrderStatusTexts=t.default;exports.getCheckoutItemsMappedByTicketItemStatus=be;exports.isCheckoutOrderSummary=Me;exports.buildCheckoutRequestItem=Re;exports.getCheckoutGrandTotalAmount=Le;exports.getCheckoutRequestItemFromCheckoutItem=Ne;exports.isCheckoutItemsAreEqual=xe;exports.checkoutHasWallet=Ge;exports.getWalletMetaFromCheckout=Ue;exports.isPreOrderServiceTime=We;exports.isPreOrderCheckout=He;exports.isUpdatingCheckoutAllowed=Be;exports.isCheckoutAlreadyPaidStatus=ze;exports.CheckoutPaymentErrorTranslationKey=r.CheckoutPaymentErrorTranslationKey;exports.getCheckoutPaymentErrorTranslationTexts=r.default;exports.isDeletingCheckoutAllowed=Ve;exports.getTotalCheckoutItemsQuantity=we;exports.getCheckoutPenguinLockersMetaData=Je;exports.getUniqueCheckoutPenguinDeliveryCodes=Ke;exports.isWoltDeliveryInProgress=Qe;exports.isWalletTopUpCheckoutItem=Ze;exports.isWalletTopUpCheckout=je;exports.getCheckoutWalletTopUpMetaData=Xe;exports.isGiftCardCheckout=Ye;exports.isGiftCardCheckoutItem=$e;exports.getCheckoutGiftCardMetaData=et;exports.getCheckoutGuestGroupsMetaData=tt;exports.getCheckOrderItemsMappedByTicketItemStatus=rt;exports.getCheckOrderMinimumStatusTicketItem=ot;exports.getMultiProductSubProductsTicketItems=it;exports.getFormattedCurrency=ut;exports.getFormattedCurrencyPostfix=st;exports.isDetailedProductOutOfStock=nt;exports.isDetailedProductVariantOutOfStocks=ct;exports.isMenuTreeProductOutOfStock=at;exports.isDetailedProductUpSellsOutOfStock=lt;exports.isUpSellProductOutOfStock=dt;exports.isDetailedProductOutletStockOutOfStock=gt;exports.getDetailedProductVariantStock=qt;exports.isAddonProductOutOfStock=mt;exports.createUseSignalRHook=_t;exports.SignalR=kt;exports.createCodedError=ht;exports.isCodedError=Ot;exports.isNetworkError=Tt;exports.isLockedError=pt;exports.isNotFoundError=Ct;exports.isAPIError=Pt;exports.isSerializedAPIError=St;exports.isSerializedCodedError=ft;exports.serializeError=yt;exports.getErrorCode=At;exports.isErrorWithStatusCode=It;exports.isBadGatewayError=Ft;exports.isServiceUnavailableError=vt;exports.isTooManyRequestsError=Et;exports.isUpgradeRequiredError=Dt;exports.isHangfireResponse=bt;exports.isHangfireWorkerExpiredOrInvalidError=Mt;exports.createHangfirePoller=Rt.default;exports.createMakeHangfireRequest=Lt;exports.extractProductsFromMenuTree=Nt;exports.calculateIngredientsCost=xt;exports.calculateAddonGroupsCost=Gt;exports.getAddonGroupInfoBySettings=Ut.default;exports.calculateWeightProductPrice=Wt;exports.calculateProductWeightByPrice=Ht;exports.base64URLEncode=Bt;exports.base64URLDecode=zt;exports.getSHA256Hash=Vt;exports.isPreOrderSharable=wt;exports.isPreOrderLink=Jt;exports.isGroupPreOrder=Kt;exports.isPhoneNumberValid=Qt;exports.formatPhoneNumber=Zt;exports.getLicenseUIState=e.default;exports.isLicenseExpired=e.isLicenseExpired;exports.isLicenseExtended=e.isLicenseExtended;exports.isLicenseTerminated=e.isLicenseTerminated;exports.getComponentNameFromGeocoderResult=jt;exports.createLocalTimezoneDate=Xt;exports.createLocalTimezoneMoment=Yt;exports.getFormattedUTCDateTime=$t;exports.convertToLocalTimezone=er;exports.convertToSpecificTimezone=tr;exports.getTimezoneUtcOffsetDifference=rr;exports.isDSTShiftPresentInRange=or;exports.toMinutes=ir;exports.getNextTenthMinute=ur;exports.getPrevNthMinute=sr;exports.getTimeSpanParts=nr;exports.getEndTimeSpanOfTimePeriod=cr;exports.createTimeSpan=ar;exports.formatTimeSpan=lr;exports.getDurationBetweenTimeSpans=dr;exports.convertSecondsToTimeSpan=gr;exports.convertTimeSpanToSeconds=qr;exports.isTicketItemReady=mr;exports.isTicketItemClosed=_r;exports.getFormattedQuantity=kr;exports.isPayAndGoCheckAuditLogAction=hr;exports.getCheckAuditLogProductName=Or;exports.getZReportPaymentMethodDisplayName=Tr;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./shared/isWithinFlag.js"),i=require("./shared/generateId.js"),u=require("./shared/wait.js"),s=require("./shared/kiloGramToGram.js"),n=require("./shared/gramToKiloGram.js"),c=require("./shared/hooks/usePrevious.js"),a=require("./shared/hooks/useMountedRef.js"),l=require("./outlet/getListOutletOpeningHoursTable.js"),d=require("./outlet/getOutletTagInformation.js"),g=require("./outlet/getOutletAvailabilityInfo.js"),q=require("./outlet/getOutletOfflineOrderFormats.js"),m=require("./outlet/getOutletAvailableOrderFormats.js"),_=require("./outlet/getOutletFormattedDistance.js"),k=require("./outlet/isOutletAcceptingPreOrders.js"),h=require("./outlet/isOutletAcceptingPreOrdersWhenClosed.js"),O=require("./outlet/getOutletDeliveryFee.js"),T=require("./outlet/getOutletTodayOpeningTimes.js"),p=require("./outlet/getOutletOrderFormats.js"),C=require("./outlet/serviceDateTimesFromOpeningHours.js"),P=require("./outlet/getPickerIntervalsForDay.js"),S=require("./outlet/getServiceIntervalRange.js"),f=require("./outlet/getServiceIntervalsForOrderFormat.js"),y=require("./outlet/getOutletFormattedAddress.js"),A=require("./outlet/getPartitionedOutletsList.js"),I=require("./outlet/getOutletPickerTimesForWeek.js"),F=require("./outlet/getOutletPickerTimesForDay.js"),v=require("./outlet/getOutletOrderPrepTime.js"),E=require("./outlet/getStructuredOutletAddress.js"),D=require("./outlet/getOutletNextOpeningTimeText.js"),b=require("./outlet/getOutletCurrentClosingTimeText.js"),M=require("./outlet/getOutletNextReadyToOrderTime.js"),R=require("./outlet/getOutletNextOpeningTagInformation.js"),L=require("./outlet/getOutletCurrentAvailabilityInfo.js"),N=require("./outlet/getExpressAvailableOrderFormats.js"),x=require("./outlet/getExpressNextAvailabilityShiftTime.js"),G=require("./outlet/getOrderFormatAOTipSettings.js"),U=require("./outlet/isAOTippingEnabledForOrderFormat.js"),W=require("./outlet/isMenuTreeHierarchyProductAvailable.js"),H=require("./outlet/getOutletMenuProductsSortCriteria.js"),z=require("./outlet/getOutletNextServiceTimeOffset.js"),B=require("./versioning/isVersionALessThanB.js"),V=require("./versioning/cleanVersionString.js"),w=require("./api/getUrlAndParams.js"),J=require("./api/getEndpointWithVersion.js"),K=require("./api/generateBackoffWithEqualJitter.js"),Q=require("./api/generateBackoffWithVariableJitter.js"),Z=require("./api/isAcceptedResponse.js"),j=require("./api/isNoContentResponse.js"),X=require("./api/APIFilterBuilder.js"),Y=require("./api/getMediaImageClosestSize.js"),$=require("./string/slugify.js"),ee=require("./string/truncate.js"),te=require("./string/getRandomAlphaNumericCode.js"),re=require("./string/getParsedJSONFromString.js"),oe=require("./color/lighten.js"),ie=require("./color/brighten.js"),ue=require("./color/darken.js"),se=require("./color/isDarkBackground.js"),ne=require("./color/isColorsReadable.js"),ce=require("./color/isColorsEqual.js"),ae=require("./color/getLuminance.js"),le=require("./color/toHsl.js"),de=require("./color/hslToHex.js"),ge=require("./user/getFullName.js"),qe=require("./user/getFullAddressString.js"),me=require("./user/getCustomerAddressFromGeocoderResult.js"),_e=require("./user/getFormattedPhoneNumber.js"),ke=require("./user/getStructuredCustomerAddress.js"),he=require("./logger/Logger.js"),Oe=require("./logger/types.js"),Te=require("./logger/sanitizeAsStringDict.js"),pe=require("./logger/pascalCaseFormatter.js"),Ce=require("./printing/getPrinterType.js"),Pe=require("./printing/isValidPrinter.js"),Se=require("./printing/isValidNetworkPrinter.js"),fe=require("./printing/isValidStarCloudPrinter.js"),ye=require("./printing/isTerminalPrinter.js"),Ae=require("./printing/isCloudPrintModeEnabled.js"),Ie=require("./printing/createStarCloudScanHook.js"),Fe=require("./number/randomIntFromInterval.js"),ve=require("./tables/decodeTableQRPayload.js"),Ee=require("./checkout/getCheckoutItemModifications.js"),De=require("./checkout/getCheckoutProductName.js"),t=require("./checkout/getCheckoutOrderStatusTexts.js"),be=require("./checkout/getCheckoutItemsMappedByTicketItemStatus.js"),Me=require("./checkout/isCheckoutOrderSummary.js"),Re=require("./checkout/buildCheckoutRequestItem.js"),Le=require("./checkout/getCheckoutGrandTotalAmount.js"),Ne=require("./checkout/getCheckoutRequestItemFromCheckoutItem.js"),xe=require("./checkout/isCheckoutItemsAreEqual.js"),Ge=require("./checkout/checkoutHasWallet.js"),Ue=require("./checkout/getWalletMetaFromCheckout.js"),We=require("./checkout/isPreOrderServiceTime.js"),He=require("./checkout/isPreOrderCheckout.js"),ze=require("./checkout/isUpdatingCheckoutAllowed.js"),Be=require("./checkout/isCheckoutAlreadyPaidStatus.js"),r=require("./checkout/getCheckoutPaymentErrorTranslationTexts.js"),Ve=require("./checkout/isDeletingCheckoutAllowed.js"),we=require("./checkout/getTotalCheckoutItemsQuantity.js"),Je=require("./checkout/getCheckoutPenguinLockersMetaData.js"),Ke=require("./checkout/getUniqueCheckoutPenguinDeliveryCodes.js"),Qe=require("./checkout/isWoltDeliveryInProgress.js"),Ze=require("./checkout/isWalletTopUpCheckoutItem.js"),je=require("./checkout/isWalletTopUpCheckout.js"),Xe=require("./checkout/getCheckoutWalletTopUpMetaData.js"),Ye=require("./checkout/isGiftCardCheckout.js"),$e=require("./checkout/isGiftCardCheckoutItem.js"),et=require("./checkout/getCheckoutGiftCardMetaData.js"),tt=require("./checkout/getCheckoutGuestGroupsMetaData.js"),rt=require("./order/getCheckOrderItemsMappedByTicketItemStatus.js"),ot=require("./order/getCheckOrderMinimumStatusTicketItem.js"),it=require("./order/getMultiProductSubProductsTicketItems.js"),ut=require("./currency/getFormattedCurrency.js"),st=require("./currency/getFormattedCurrencyPostfix.js"),nt=require("./inventory/isDetailedProductOutOfStock.js"),ct=require("./inventory/isDetailedProductVariantOutOfStocks.js"),at=require("./inventory/isMenuTreeProductOutOfStock.js"),lt=require("./inventory/isDetailedProductUpSellsOutOfStock.js"),dt=require("./inventory/isUpSellProductOutStock.js"),gt=require("./inventory/isDetailedProductOutletStockOutOfStock.js"),qt=require("./inventory/getDetailedProductVariantStock.js"),mt=require("./inventory/isAddonProductOutOfStock.js"),_t=require("./signalr/createUseSignalRHook.js"),kt=require("./signalr/SignalR.js"),ht=require("./error/createCodedError.js"),Ot=require("./error/isCodedError.js"),Tt=require("./error/isNetworkError.js"),pt=require("./error/isLockedError.js"),Ct=require("./error/isNotFoundError.js"),Pt=require("./error/isAPIError.js"),St=require("./error/isSerializedAPIError.js"),ft=require("./error/isSerializedCodedError.js"),yt=require("./error/serializeError.js"),At=require("./error/getErrorCode.js"),It=require("./error/isErrorWithStatusCode.js"),Ft=require("./error/isBadGatewayError.js"),vt=require("./error/isServiceUnavailableError.js"),Et=require("./error/isTooManyRequestsError.js"),Dt=require("./error/isUpgradeRequiredError.js"),bt=require("./hangfire/isHangfireResponse.js"),Mt=require("./hangfire/isHangfireWorkerExpiredOrInvalidError.js"),Rt=require("./hangfire/createHangfirePoller.js"),Lt=require("./hangfire/createMakeHangfireRequest.js"),Nt=require("./product/extractProductsFromMenuTree.js"),xt=require("./product/calculateIngredientsCost.js"),Gt=require("./product/calculateAddonGroupCost.js"),Ut=require("./product/getAddonGroupInfoBySettings.js"),Wt=require("./product/calculateWeightProductPrice.js"),Ht=require("./product/calculateProductWeightByPrice.js"),zt=require("./codec/base64URLEncode.js"),Bt=require("./codec/base64URLDecode.js"),Vt=require("./hashing/getSHA256Hash.js"),wt=require("./preOrder/isPreOrderSharable.js"),Jt=require("./preOrder/isPreOrderLink.js"),Kt=require("./preOrder/isGroupPreOrder.js"),Qt=require("./phoneNumber/isPhoneNumberValid.js"),Zt=require("./phoneNumber/formatPhoneNumber.js"),e=require("./license/getLicenseUIState.js"),jt=require("./googleMap/getComponentNameFromGeocoderResult.js"),Xt=require("./date/createLocalTimezoneDate.js"),Yt=require("./date/createLocalTimezoneMoment.js"),$t=require("./date/getFormattedUTCDateTime.js"),er=require("./date/convertToLocalTimezone.js"),tr=require("./date/convertToSpecificTimezone.js"),rr=require("./date/getTimezoneUtcOffsetDifference.js"),or=require("./date/isDSTShiftPresentInRange.js"),ir=require("./time/toMinutes.js"),ur=require("./time/getNextTenthMinute.js"),sr=require("./time/getPrevNthMinute.js"),nr=require("./time/getTimeSpanParts.js"),cr=require("./time/getEndTimeSpanOfTimePeriod.js"),ar=require("./time/createTimeSpan.js"),lr=require("./time/formatTimeSpan.js"),dr=require("./time/getDurationBetweenTimeSpans.js"),gr=require("./time/convertSecondsToTimeSpan.js"),qr=require("./time/convertTimeSpanToSeconds.js"),mr=require("./ticketItem/isTicketItemReady.js"),_r=require("./ticketItem/isTicketItemClosed.js"),kr=require("./quantity/getFormattedQuantity.js"),hr=require("./checkAuditLog/isPayAndGoCheckAuditLogAction.js"),Or=require("./checkAuditLog/getCheckAuditLogProductName.js"),Tr=require("./zReport/getZReportPaymentMethodDisplayName.js"),pr=require("./multilingual/createLocalizedCheckDetails.js");require("react");require("moment");require("@ancon/wildcat-types");require("./outlet/constants.js");require("./outlet/getOutletCurrentActiveOperatingHour.js");require("./outlet/getTimezoneAdjustedServiceInterval.js");require("./outlet/getServiceIntervalTimeSpanMoment.js");require("./outlet/searchNextOpeningMoment.js");require("./_baseIteratee-374c60ca.js");require("./_getTag-3d3032da.js");require("./isObjectLike-963267e9.js");require("./isObject-361bd834.js");require("./_baseIsEqual-7e335f42.js");require("./identity-58f9497d.js");require("./toString-b771abdf.js");require("./noop-7ea3b37b.js");require("./_baseSlice-e1b41ceb.js");require("./shared/constants.js");require("./outlet/types.js");require("./outlet/getSettingsForOrderFormat.js");require("./outlet/getServiceIntervalStart.js");require("./outlet/generatePickerTimesForDay.js");require("./outlet/getServiceIntervalEnd.js");require("./outlet/hoursAndMinutesToMinutes.js");require("./outlet/getExpressServiceIntervalStart.js");require("./outlet/getExpressServiceIntervalEnd.js");require("compare-versions");require("./api/types.js");require("tinycolor2");require("dayjs");require("@ancon/wildcat-printing");require("./printing/types.js");require("axios");require("react-redux");require("@microsoft/signalr");require("google-libphonenumber");require("./license/types.js");exports.isWithinFlag=o;exports.generateId=i;exports.wait=u;exports.kiloGramToGram=s;exports.gramToKiloGram=n;exports.usePrevious=c;exports.useMountedRef=a;exports.getListOutletOpeningHoursTable=l;exports.getOutletTagInformation=d.default;exports.getOutletAvailabilityInfo=g.default;exports.getOutletOfflineOrderFormats=q;exports.getOutletAvailableOrderFormats=m;exports.getOutletFormattedDistance=_;exports.isOutletAcceptingPreOrders=k;exports.isOutletAcceptingPreOrdersWhenClosed=h;exports.getOutletDeliveryFee=O;exports.getOutletTodayOpeningTimes=T;exports.getOutletOrderFormats=p;exports.serviceDateTimesFromOpeningHours=C;exports.getPickerIntervalsForDay=P;exports.getServiceIntervalRange=S;exports.getServiceIntervalsForOrderFormat=f;exports.getOutletFormattedAddress=y;exports.getPartitionedOutletsList=A;exports.getOutletPickerTimesForWeek=I;exports.getOutletPickerTimesForDay=F;exports.getOutletOrderPreparationTime=v;exports.getStructuredOutletAddress=E;exports.getOutletNextOpeningTimeText=D;exports.getOutletCurrentClosingTimeText=b;exports.getOutletNextReadyToOrderTime=M;exports.getOutletNextOpeningTagInformation=R;exports.getOutletCurrentAvailabilityInfo=L;exports.getExpressAvailableOrderFormats=N;exports.getExpressNextAvailabilityShiftTime=x;exports.getOrderFormatAOTipSettings=G.default;exports.isAOTippingEnabledForOrderFormat=U;exports.isMenuTreeHierarchyProductAvailable=W;exports.getOutletMenuProductsSortCriteria=H;exports.getOutletNextServiceTimeOffset=z;exports.isVersionALessThanB=B;exports.cleanVersionString=V;exports.getUrlAndParams=w;exports.getEndpointWithVersion=J;exports.generateBackoffWithEqualJitter=K;exports.generateBackoffWithVariableJitter=Q;exports.isAcceptedResponse=Z;exports.isNoContentResponse=j;exports.APIFilterBuilder=X;exports.getMediaImageClosestSize=Y;exports.slugify=$;exports.truncate=ee;exports.getRandomAlphaNumericCode=te;exports.getParsedJSONFromString=re;exports.lighten=oe;exports.brighten=ie;exports.darken=ue;exports.isDarkBackground=se;exports.isColorsReadable=ne;exports.isColorsEqual=ce;exports.getLuminance=ae;exports.toHsl=le;exports.hslToHex=de;exports.getFullName=ge;exports.getFullAddressString=qe;exports.getCustomerAddressFromGeocoderResult=me;exports.getFormattedPhoneNumber=_e;exports.getStructuredCustomerAddress=ke;exports.Logger=he;exports.LogLevel=Oe.LogLevel;exports.sanitizeAsStringDict=Te;exports.pascalCaseFormatter=pe;exports.getPrinterType=Ce;exports.isValidPrinter=Pe;exports.isValidNetworkPrinter=Se;exports.isValidStarCloudPrinter=fe;exports.isTerminalPrinter=ye;exports.isCloudPrintModeEnabled=Ae;exports.createUseStarCloudScanHook=Ie;exports.randomIntFromInterval=Fe;exports.decodeTableQRPayload=ve;exports.getCheckoutGroupedModifications=Ee.default;exports.getCheckoutProductName=De;exports.TranslationKey=t.TranslationKey;exports.getCheckoutOrderStatusTexts=t.default;exports.getCheckoutItemsMappedByTicketItemStatus=be;exports.isCheckoutOrderSummary=Me;exports.buildCheckoutRequestItem=Re;exports.getCheckoutGrandTotalAmount=Le;exports.getCheckoutRequestItemFromCheckoutItem=Ne;exports.isCheckoutItemsAreEqual=xe;exports.checkoutHasWallet=Ge;exports.getWalletMetaFromCheckout=Ue;exports.isPreOrderServiceTime=We;exports.isPreOrderCheckout=He;exports.isUpdatingCheckoutAllowed=ze;exports.isCheckoutAlreadyPaidStatus=Be;exports.CheckoutPaymentErrorTranslationKey=r.CheckoutPaymentErrorTranslationKey;exports.getCheckoutPaymentErrorTranslationTexts=r.default;exports.isDeletingCheckoutAllowed=Ve;exports.getTotalCheckoutItemsQuantity=we;exports.getCheckoutPenguinLockersMetaData=Je;exports.getUniqueCheckoutPenguinDeliveryCodes=Ke;exports.isWoltDeliveryInProgress=Qe;exports.isWalletTopUpCheckoutItem=Ze;exports.isWalletTopUpCheckout=je;exports.getCheckoutWalletTopUpMetaData=Xe;exports.isGiftCardCheckout=Ye;exports.isGiftCardCheckoutItem=$e;exports.getCheckoutGiftCardMetaData=et;exports.getCheckoutGuestGroupsMetaData=tt;exports.getCheckOrderItemsMappedByTicketItemStatus=rt;exports.getCheckOrderMinimumStatusTicketItem=ot;exports.getMultiProductSubProductsTicketItems=it;exports.getFormattedCurrency=ut;exports.getFormattedCurrencyPostfix=st;exports.isDetailedProductOutOfStock=nt;exports.isDetailedProductVariantOutOfStocks=ct;exports.isMenuTreeProductOutOfStock=at;exports.isDetailedProductUpSellsOutOfStock=lt;exports.isUpSellProductOutOfStock=dt;exports.isDetailedProductOutletStockOutOfStock=gt;exports.getDetailedProductVariantStock=qt;exports.isAddonProductOutOfStock=mt;exports.createUseSignalRHook=_t;exports.SignalR=kt;exports.createCodedError=ht;exports.isCodedError=Ot;exports.isNetworkError=Tt;exports.isLockedError=pt;exports.isNotFoundError=Ct;exports.isAPIError=Pt;exports.isSerializedAPIError=St;exports.isSerializedCodedError=ft;exports.serializeError=yt;exports.getErrorCode=At;exports.isErrorWithStatusCode=It;exports.isBadGatewayError=Ft;exports.isServiceUnavailableError=vt;exports.isTooManyRequestsError=Et;exports.isUpgradeRequiredError=Dt;exports.isHangfireResponse=bt;exports.isHangfireWorkerExpiredOrInvalidError=Mt;exports.createHangfirePoller=Rt.default;exports.createMakeHangfireRequest=Lt;exports.extractProductsFromMenuTree=Nt;exports.calculateIngredientsCost=xt;exports.calculateAddonGroupsCost=Gt;exports.getAddonGroupInfoBySettings=Ut.default;exports.calculateWeightProductPrice=Wt;exports.calculateProductWeightByPrice=Ht;exports.base64URLEncode=zt;exports.base64URLDecode=Bt;exports.getSHA256Hash=Vt;exports.isPreOrderSharable=wt;exports.isPreOrderLink=Jt;exports.isGroupPreOrder=Kt;exports.isPhoneNumberValid=Qt;exports.formatPhoneNumber=Zt;exports.getLicenseUIState=e.default;exports.isLicenseExpired=e.isLicenseExpired;exports.isLicenseExtended=e.isLicenseExtended;exports.isLicenseTerminated=e.isLicenseTerminated;exports.getComponentNameFromGeocoderResult=jt;exports.createLocalTimezoneDate=Xt;exports.createLocalTimezoneMoment=Yt;exports.getFormattedUTCDateTime=$t;exports.convertToLocalTimezone=er;exports.convertToSpecificTimezone=tr;exports.getTimezoneUtcOffsetDifference=rr;exports.isDSTShiftPresentInRange=or;exports.toMinutes=ir;exports.getNextTenthMinute=ur;exports.getPrevNthMinute=sr;exports.getTimeSpanParts=nr;exports.getEndTimeSpanOfTimePeriod=cr;exports.createTimeSpan=ar;exports.formatTimeSpan=lr;exports.getDurationBetweenTimeSpans=dr;exports.convertSecondsToTimeSpan=gr;exports.convertTimeSpanToSeconds=qr;exports.isTicketItemReady=mr;exports.isTicketItemClosed=_r;exports.getFormattedQuantity=kr;exports.isPayAndGoCheckAuditLogAction=hr;exports.getCheckAuditLogProductName=Or;exports.getZReportPaymentMethodDisplayName=Tr;exports.createLocalizedCheckDetails=pr;
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { default as H } from "./shared/isWithinFlag.mjs";
2
- import { default as z } from "./shared/generateId.mjs";
2
+ import { default as B } from "./shared/generateId.mjs";
3
3
  import { default as q } from "./shared/wait.mjs";
4
4
  import { default as J } from "./shared/kiloGramToGram.mjs";
5
5
  import { default as Q } from "./shared/gramToKiloGram.mjs";
@@ -26,7 +26,7 @@ import { default as be } from "./outlet/getOutletPickerTimesForWeek.mjs";
26
26
  import { default as Ne } from "./outlet/getOutletPickerTimesForDay.mjs";
27
27
  import { default as Ue } from "./outlet/getOutletOrderPrepTime.mjs";
28
28
  import { default as He } from "./outlet/getStructuredOutletAddress.mjs";
29
- import { default as ze } from "./outlet/getOutletNextOpeningTimeText.mjs";
29
+ import { default as Be } from "./outlet/getOutletNextOpeningTimeText.mjs";
30
30
  import { default as qe } from "./outlet/getOutletCurrentClosingTimeText.mjs";
31
31
  import { default as Je } from "./outlet/getOutletNextReadyToOrderTime.mjs";
32
32
  import { default as Qe } from "./outlet/getOutletNextOpeningTagInformation.mjs";
@@ -53,7 +53,7 @@ import { default as bt } from "./string/truncate.mjs";
53
53
  import { default as Nt } from "./string/getRandomAlphaNumericCode.mjs";
54
54
  import { default as Ut } from "./string/getParsedJSONFromString.mjs";
55
55
  import { default as Ht } from "./color/lighten.mjs";
56
- import { default as zt } from "./color/brighten.mjs";
56
+ import { default as Bt } from "./color/brighten.mjs";
57
57
  import { default as qt } from "./color/darken.mjs";
58
58
  import { default as Jt } from "./color/isDarkBackground.mjs";
59
59
  import { default as Qt } from "./color/isColorsReadable.mjs";
@@ -80,7 +80,7 @@ import { default as br } from "./printing/createStarCloudScanHook.mjs";
80
80
  import { default as Nr } from "./number/randomIntFromInterval.mjs";
81
81
  import { default as Ur } from "./tables/decodeTableQRPayload.mjs";
82
82
  import { default as Hr } from "./checkout/getCheckoutItemModifications.mjs";
83
- import { default as zr } from "./checkout/getCheckoutProductName.mjs";
83
+ import { default as Br } from "./checkout/getCheckoutProductName.mjs";
84
84
  import { TranslationKey as qr, default as wr } from "./checkout/getCheckoutOrderStatusTexts.mjs";
85
85
  import { default as Kr } from "./checkout/getCheckoutItemsMappedByTicketItemStatus.mjs";
86
86
  import { default as Zr } from "./checkout/isCheckoutOrderSummary.mjs";
@@ -105,7 +105,7 @@ import { default as Ro } from "./checkout/isWalletTopUpCheckout.mjs";
105
105
  import { default as Lo } from "./checkout/getCheckoutWalletTopUpMetaData.mjs";
106
106
  import { default as Go } from "./checkout/isGiftCardCheckout.mjs";
107
107
  import { default as Wo } from "./checkout/isGiftCardCheckoutItem.mjs";
108
- import { default as Bo } from "./checkout/getCheckoutGiftCardMetaData.mjs";
108
+ import { default as zo } from "./checkout/getCheckoutGiftCardMetaData.mjs";
109
109
  import { default as Vo } from "./checkout/getCheckoutGuestGroupsMetaData.mjs";
110
110
  import { default as wo } from "./order/getCheckOrderItemsMappedByTicketItemStatus.mjs";
111
111
  import { default as Ko } from "./order/getCheckOrderMinimumStatusTicketItem.mjs";
@@ -132,7 +132,7 @@ import { default as Ra } from "./error/isSerializedAPIError.mjs";
132
132
  import { default as La } from "./error/isSerializedCodedError.mjs";
133
133
  import { default as Ga } from "./error/serializeError.mjs";
134
134
  import { default as Wa } from "./error/getErrorCode.mjs";
135
- import { default as Ba } from "./error/isErrorWithStatusCode.mjs";
135
+ import { default as za } from "./error/isErrorWithStatusCode.mjs";
136
136
  import { default as Va } from "./error/isBadGatewayError.mjs";
137
137
  import { default as wa } from "./error/isServiceUnavailableError.mjs";
138
138
  import { default as Ka } from "./error/isTooManyRequestsError.mjs";
@@ -157,7 +157,7 @@ import { default as vf } from "./phoneNumber/isPhoneNumberValid.mjs";
157
157
  import { default as Mf } from "./phoneNumber/formatPhoneNumber.mjs";
158
158
  import { default as bf, isLicenseExpired as Lf, isLicenseExtended as Nf, isLicenseTerminated as Gf } from "./license/getLicenseUIState.mjs";
159
159
  import { default as Wf } from "./googleMap/getComponentNameFromGeocoderResult.mjs";
160
- import { default as Bf } from "./date/createLocalTimezoneDate.mjs";
160
+ import { default as zf } from "./date/createLocalTimezoneDate.mjs";
161
161
  import { default as Vf } from "./date/createLocalTimezoneMoment.mjs";
162
162
  import { default as wf } from "./date/getFormattedUTCDateTime.mjs";
163
163
  import { default as Kf } from "./date/convertToLocalTimezone.mjs";
@@ -180,6 +180,7 @@ import { default as As } from "./quantity/getFormattedQuantity.mjs";
180
180
  import { default as ys } from "./checkAuditLog/isPayAndGoCheckAuditLogAction.mjs";
181
181
  import { default as Es } from "./checkAuditLog/getCheckAuditLogProductName.mjs";
182
182
  import { default as Ds } from "./zReport/getZReportPaymentMethodDisplayName.mjs";
183
+ import { default as Rs } from "./multilingual/createLocalizedCheckDetails.mjs";
183
184
  import "react";
184
185
  import "moment";
185
186
  import "@ancon/wildcat-types";
@@ -226,7 +227,7 @@ export {
226
227
  qr as TranslationKey,
227
228
  kf as base64URLDecode,
228
229
  Of as base64URLEncode,
229
- zt as brighten,
230
+ Bt as brighten,
230
231
  Xr as buildCheckoutRequestItem,
231
232
  df as calculateAddonGroupsCost,
232
233
  sf as calculateIngredientsCost,
@@ -240,8 +241,9 @@ export {
240
241
  Zf as convertToSpecificTimezone,
241
242
  Ca as createCodedError,
242
243
  ef as createHangfirePoller,
243
- Bf as createLocalTimezoneDate,
244
+ zf as createLocalTimezoneDate,
244
245
  Vf as createLocalTimezoneMoment,
246
+ Rs as createLocalizedCheckDetails,
245
247
  rf as createMakeHangfireRequest,
246
248
  ms as createTimeSpan,
247
249
  ga as createUseSignalRHook,
@@ -253,12 +255,12 @@ export {
253
255
  ps as formatTimeSpan,
254
256
  kt as generateBackoffWithEqualJitter,
255
257
  Pt as generateBackoffWithVariableJitter,
256
- z as generateId,
258
+ B as generateId,
257
259
  mf as getAddonGroupInfoBySettings,
258
260
  Es as getCheckAuditLogProductName,
259
261
  wo as getCheckOrderItemsMappedByTicketItemStatus,
260
262
  Ko as getCheckOrderMinimumStatusTicketItem,
261
- Bo as getCheckoutGiftCardMetaData,
263
+ zo as getCheckoutGiftCardMetaData,
262
264
  _r as getCheckoutGrandTotalAmount,
263
265
  Hr as getCheckoutGroupedModifications,
264
266
  Vo as getCheckoutGuestGroupsMetaData,
@@ -266,7 +268,7 @@ export {
266
268
  wr as getCheckoutOrderStatusTexts,
267
269
  To as getCheckoutPaymentErrorTranslationTexts,
268
270
  Ao as getCheckoutPenguinLockersMetaData,
269
- zr as getCheckoutProductName,
271
+ Br as getCheckoutProductName,
270
272
  eo as getCheckoutRequestItemFromCheckoutItem,
271
273
  Lo as getCheckoutWalletTopUpMetaData,
272
274
  Wf as getComponentNameFromGeocoderResult,
@@ -301,7 +303,7 @@ export {
301
303
  le as getOutletFormattedDistance,
302
304
  ut as getOutletMenuProductsSortCriteria,
303
305
  Qe as getOutletNextOpeningTagInformation,
304
- ze as getOutletNextOpeningTimeText,
306
+ Be as getOutletNextOpeningTimeText,
305
307
  Je as getOutletNextReadyToOrderTime,
306
308
  lt as getOutletNextServiceTimeOffset,
307
309
  fe as getOutletOfflineOrderFormats,
@@ -350,7 +352,7 @@ export {
350
352
  ma as isDetailedProductOutletStockOutOfStock,
351
353
  sa as isDetailedProductUpSellsOutOfStock,
352
354
  ra as isDetailedProductVariantOutOfStocks,
353
- Ba as isErrorWithStatusCode,
355
+ za as isErrorWithStatusCode,
354
356
  Go as isGiftCardCheckout,
355
357
  Wo as isGiftCardCheckoutItem,
356
358
  Ff as isGroupPreOrder,
@@ -0,0 +1,16 @@
1
+ import { CheckDetails } from '@ancon/wildcat-types';
2
+ /**
3
+ * This creates localized check details by replacing following properties with localized values based on current app language.
4
+ * Affected properties on each check item (and its sub-items):
5
+ * - Product Name
6
+ * - Variant Name
7
+ * - Modification Name
8
+ * - Replacement Name
9
+ * - Add-on Product Name and Variant Name
10
+ *
11
+ * @param checkDetails - check details to be localized
12
+ * @param locale - locale to be used for localization
13
+ * @returns localized check details
14
+ */
15
+ declare function createLocalizedCheckDetails(checkDetails: CheckDetails, locale: string): CheckDetails;
16
+ export default createLocalizedCheckDetails;
@@ -0,0 +1 @@
1
+ "use strict";const l=require("@ancon/wildcat-types");function u(e){switch(e){case"sv":return l.IETFLanguageTag.Swedish;case"nb":return l.IETFLanguageTag.Norwegian;case"en":return l.IETFLanguageTag.English;default:return null}}function s(e,c){var i,o;const t=e,a=(i=e.localizedProductNames)==null?void 0:i[c],n=(o=e.localizedVariantNames)==null?void 0:o[c];return a&&(t.productName=a),n&&(t.variantName=n),t}function m(e,c){var i,o;const t=e,a=(i=e.localizedNames)==null?void 0:i[c],n=(o=e.localizedReplacementNames)==null?void 0:o[c];return a&&(t.name=a),n&&(t.replacementName=n),t}function z(e,c){const t=e;return t.product=s(e.product,c),t}function d(e,c){const t=e,{product:a,modifications:n,addOnProducts:i,subCheckItems:o}=e;return t.product=s(a,c),n.length&&(t.modifications=n.map(r=>m(r,c))),i!=null&&i.length&&(t.addOnProducts=i.map(r=>z(r,c))),o.length&&(t.subCheckItems=o.map(r=>d(r,c))),t}function f(e,c){const t=u(c);if(t){const a=e;return a.items=e.items.map(n=>d(n,t)),a}return e}module.exports=f;
@@ -0,0 +1,53 @@
1
+ import { IETFLanguageTag as r } from "@ancon/wildcat-types";
2
+ function u(e) {
3
+ switch (e) {
4
+ case "sv":
5
+ return r.Swedish;
6
+ case "nb":
7
+ return r.Norwegian;
8
+ case "en":
9
+ return r.English;
10
+ default:
11
+ return null;
12
+ }
13
+ }
14
+ function d(e, c) {
15
+ var i, n;
16
+ const t = e, a = (i = e.localizedProductNames) == null ? void 0 : i[c], o = (n = e.localizedVariantNames) == null ? void 0 : n[c];
17
+ return a && (t.productName = a), o && (t.variantName = o), t;
18
+ }
19
+ function m(e, c) {
20
+ var i, n;
21
+ const t = e, a = (i = e.localizedNames) == null ? void 0 : i[c], o = (n = e.localizedReplacementNames) == null ? void 0 : n[c];
22
+ return a && (t.name = a), o && (t.replacementName = o), t;
23
+ }
24
+ function f(e, c) {
25
+ const t = e;
26
+ return t.product = d(
27
+ e.product,
28
+ c
29
+ ), t;
30
+ }
31
+ function s(e, c) {
32
+ const t = e, { product: a, modifications: o, addOnProducts: i, subCheckItems: n } = e;
33
+ return t.product = d(a, c), o.length && (t.modifications = o.map(
34
+ (l) => m(l, c)
35
+ )), i != null && i.length && (t.addOnProducts = i.map(
36
+ (l) => f(l, c)
37
+ )), n.length && (t.subCheckItems = n.map(
38
+ (l) => s(l, c)
39
+ )), t;
40
+ }
41
+ function p(e, c) {
42
+ const t = u(c);
43
+ if (t) {
44
+ const a = e;
45
+ return a.items = e.items.map(
46
+ (o) => s(o, t)
47
+ ), a;
48
+ }
49
+ return e;
50
+ }
51
+ export {
52
+ p as default
53
+ };
@@ -0,0 +1,2 @@
1
+ import createLocalizedCheckDetails from './createLocalizedCheckDetails';
2
+ export { createLocalizedCheckDetails };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./createLocalizedCheckDetails.js");require("@ancon/wildcat-types");exports.createLocalizedCheckDetails=e;
@@ -0,0 +1,5 @@
1
+ import { default as o } from "./createLocalizedCheckDetails.mjs";
2
+ import "@ancon/wildcat-types";
3
+ export {
4
+ o as createLocalizedCheckDetails
5
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ancon/wildcat-utils",
3
- "version": "1.50.27",
3
+ "version": "1.50.29",
4
4
  "private": false,
5
5
  "main": "index.js",
6
6
  "module": "index.mjs",
@@ -671,6 +671,16 @@
671
671
  "require": "./logger/types.js",
672
672
  "types": "./logger/types.d.ts"
673
673
  },
674
+ "./multilingual/createLocalizedCheckDetails": {
675
+ "import": "./multilingual/createLocalizedCheckDetails.mjs",
676
+ "require": "./multilingual/createLocalizedCheckDetails.js",
677
+ "types": "./multilingual/createLocalizedCheckDetails.d.ts"
678
+ },
679
+ "./multilingual": {
680
+ "import": "./multilingual/index.mjs",
681
+ "require": "./multilingual/index.js",
682
+ "types": "./multilingual/index.d.ts"
683
+ },
674
684
  "./number": {
675
685
  "import": "./number/index.mjs",
676
686
  "require": "./number/index.js",