@ancon/wildcat-utils 1.51.0-check-optimizations.2 → 1.51.0-check-optimizations.3

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.
@@ -0,0 +1,2 @@
1
+ declare function getMediaImageClosestSize(width?: number, height?: number): string;
2
+ export default getMediaImageClosestSize;
@@ -0,0 +1 @@
1
+ "use strict";var h=Object.defineProperty;var r=(t,e,i)=>e in t?h(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i;var a=(t,e,i)=>(r(t,typeof e!="symbol"?e+"":e,i),i);class s{constructor(e,i=e){a(this,"width");a(this,"height");this.width=e,this.height=i}toMediaApiValue(){return`${this.width}x${this.height}`}}const n=[new s(100),new s(200),new s(400),new s(600)];function u(t,e){if(t||e){const i=Math.max(t||0,e||0);for(const o of n)if(o.width>=i)return o.toMediaApiValue()}return n[n.length-1].toMediaApiValue()}module.exports=u;
@@ -0,0 +1,31 @@
1
+ var h = Object.defineProperty;
2
+ var r = (t, e, i) => e in t ? h(t, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : t[e] = i;
3
+ var s = (t, e, i) => (r(t, typeof e != "symbol" ? e + "" : e, i), i);
4
+ class a {
5
+ constructor(e, i = e) {
6
+ s(this, "width");
7
+ s(this, "height");
8
+ this.width = e, this.height = i;
9
+ }
10
+ toMediaApiValue() {
11
+ return `${this.width}x${this.height}`;
12
+ }
13
+ }
14
+ const n = [
15
+ new a(100),
16
+ new a(200),
17
+ new a(400),
18
+ new a(600)
19
+ ];
20
+ function d(t, e) {
21
+ if (t || e) {
22
+ const i = Math.max(t || 0, e || 0);
23
+ for (const o of n)
24
+ if (o.width >= i)
25
+ return o.toMediaApiValue();
26
+ }
27
+ return n[n.length - 1].toMediaApiValue();
28
+ }
29
+ export {
30
+ d as default
31
+ };
package/api/index.d.ts CHANGED
@@ -5,4 +5,5 @@ import generateBackoffWithVariableJitter from './generateBackoffWithVariableJitt
5
5
  import isAcceptedResponse from './isAcceptedResponse';
6
6
  import isNoContentResponse from './isNoContentResponse';
7
7
  import APIFilterBuilder from './APIFilterBuilder';
8
- export { getUrlAndParams, getEndpointWithVersion, generateBackoffWithEqualJitter, generateBackoffWithVariableJitter, isAcceptedResponse, isNoContentResponse, APIFilterBuilder, };
8
+ import getMediaImageClosestSize from './getMediaImageClosestSize';
9
+ export { getUrlAndParams, getEndpointWithVersion, generateBackoffWithEqualJitter, generateBackoffWithVariableJitter, isAcceptedResponse, isNoContentResponse, 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"),n=require("./isAcceptedResponse.js"),a=require("./isNoContentResponse.js"),o=require("./APIFilterBuilder.js");require("../number/randomIntFromInterval.js");require("./types.js");exports.getUrlAndParams=e;exports.getEndpointWithVersion=t;exports.generateBackoffWithEqualJitter=i;exports.generateBackoffWithVariableJitter=r;exports.isAcceptedResponse=n;exports.isNoContentResponse=a;exports.APIFilterBuilder=o;
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;
package/api/index.mjs CHANGED
@@ -1,18 +1,20 @@
1
- import { default as a } from "./getUrlAndParams.mjs";
1
+ import { default as o } from "./getUrlAndParams.mjs";
2
2
  import { default as s } from "./getEndpointWithVersion.mjs";
3
- import { default as p } from "./generateBackoffWithEqualJitter.mjs";
3
+ import { default as l } from "./generateBackoffWithEqualJitter.mjs";
4
4
  import { default as d } from "./generateBackoffWithVariableJitter.mjs";
5
5
  import { default as n } from "./isAcceptedResponse.mjs";
6
6
  import { default as x } from "./isNoContentResponse.mjs";
7
- import { default as g } from "./APIFilterBuilder.mjs";
7
+ import { default as c } from "./APIFilterBuilder.mjs";
8
+ import { default as A } from "./getMediaImageClosestSize.mjs";
8
9
  import "../number/randomIntFromInterval.mjs";
9
10
  import "./types.mjs";
10
11
  export {
11
- g as APIFilterBuilder,
12
- p as generateBackoffWithEqualJitter,
12
+ c as APIFilterBuilder,
13
+ l as generateBackoffWithEqualJitter,
13
14
  d as generateBackoffWithVariableJitter,
14
15
  s as getEndpointWithVersion,
15
- a as getUrlAndParams,
16
+ A as getMediaImageClosestSize,
17
+ o as getUrlAndParams,
16
18
  n as isAcceptedResponse,
17
19
  x as isNoContentResponse
18
20
  };
@@ -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 */
@@ -41,11 +47,13 @@ declare class HangfirePoller {
41
47
  private waitForNetworkOnline;
42
48
  private executeWorkerRequest;
43
49
  private deleteWorker;
44
- createWorker(groupId: string, { workerId, url, headers, onFinished, }: {
50
+ createWorker(groupId: string, { workerId, url, headers, onFinished, maxLifeTimeMillis, }: {
45
51
  workerId: string;
46
52
  url: string;
47
53
  headers?: APIHeaders;
48
54
  onFinished?: (forced: boolean) => void | Promise<void>;
55
+ /** Max lifetime in milliseconds. When exceeded the worker executes one final request and exits. */
56
+ maxLifeTimeMillis?: number;
49
57
  }): Promise<unknown>;
50
58
  /** Trigger a worker to execute immediately, ignoring busy state */
51
59
  triggerWorker(workerId: string): void;
@@ -1 +1 @@
1
- "use strict";var x=Object.defineProperty;var W=(i,e,r)=>e in i?x(i,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):i[e]=r;var o=(i,e,r)=>(W(i,typeof e!="symbol"?e+"":e,r),r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const y=require("axios"),l=require("@ancon/wildcat-types"),d=require("../error/createCodedError.js"),I=require("../error/isNotFoundError.js"),f=require("../error/serializeError.js"),w=require("../error/isErrorWithStatusCode.js"),q=require("../api/isNoContentResponse.js"),b=require("../shared/wait.js");require("../error/isCodedError.js");require("../error/isAPIError.js");class m{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=y.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 d(new Error("Timer already started"),l.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(t=>this.executeWorkerRequest(t))}),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 b(1e3)}async executeWorkerRequest(e,r=!1){var a,u,h,c;const t=r!==!0&&this.busyWorkers.has(e.workerId);if(this.config.debug("*executeWorkerRequest*",{workerId:e.workerId,isBusy:t,force:r}),t){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 g={...await this.config.getRequestHeaders(),...e.headers},p=2;let s=0;for(;s<=p;)try{const n=await this.axiosInstance({url:e.url,method:"get",timeout:this.config.pollerInterval,headers:g});q(n)?this.busyWorkers.delete(e.workerId):(e.resolve(n),(a=e.onFinished)==null||a.call(e,r),this.deleteWorker(e.groupId,e.workerId));break}catch(n){if(w(n)){if(I(n)){this.config.debug("*executeWorkerRequest* worker is expired or invalid",e.workerId);const k=f(d(new Error("The Hangfire worker is expired or invalid"),l.ErrorCode.HangfireWorkerExpiredOrInvalid));e.reject(k),(u=e.onFinished)==null||u.call(e,r)}else e.reject(n),(h=e.onFinished)==null||h.call(e,r);this.deleteWorker(e.groupId,e.workerId);break}else if(this.config.debug("*executeWorkerRequest* not an api error"),(c=this.config.logger)==null||c.warn(`Hangfire worker request error: ${JSON.stringify({attempt:s,groupId:e.groupId,workerId:e.workerId,error:f(n)})}`,{CorrelationId:g["x-correlation-id"]}),r&&s<p)s+=1,this.config.debug(`*executeWorkerRequest* retrying non-API error (attempt ${s})`),await b(500);else{this.busyWorkers.delete(e.workerId);break}}}deleteWorker(e,r){const t=this.groups.get(e);t&&(this.config.debug("*delete worker*",t.size,t),t.delete(r),this.workerByIdMap.delete(r),this.busyWorkers.delete(r),t.size<1&&(this.groups.delete(e),this.enabledGroups.delete(e),this.enabledGroups.size<1&&this.stopTimer()))}createWorker(e,{workerId:r,url:t,headers:g,onFinished:p}){if(!this.groups.has(e)){if(this.groups.size>=this.config.maxGroupsSize){const a=d(new Error("Max number of Hangfire groups exceeded"),l.ErrorCode.GenericUnexpectedHangfireError,{count:this.groups.size});throw this.destroy(),a}this.groups.set(e,new Map)}const s=this.groups.get(e);return new Promise((a,u)=>{if(s.has(r))throw d(new Error("Duplicate Hangfire worker ID"),l.ErrorCode.GenericUnexpectedHangfireError);if(s.size>=this.config.maxWorkersSize){const c=d(new Error("Max number of Hangfire workers in group exceeded"),l.ErrorCode.GenericUnexpectedHangfireError,{groupId:e,count:s.size});throw u(c),this.destroy(),c}const h={workerId:r,groupId:e,url:t,resolve:a,reject:u,headers:g,onFinished:p};s.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),this.enabledGroups.size<1&&this.stopTimer()}destroy(){this.config.debug("*destroy*"),this.groups.clear(),this.stopTimer()}}function E(i){return new m(i)}exports.HangfirePoller=m;exports.default=E;
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,17 +1,17 @@
1
- var x = Object.defineProperty;
2
- var k = (s, e, r) => e in s ? x(s, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : s[e] = r;
3
- var o = (s, e, r) => (k(s, typeof e != "symbol" ? e + "" : e, r), r);
4
- import W from "axios";
5
- import { ErrorCode as g } from "@ancon/wildcat-types";
6
- import l from "../error/createCodedError.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
7
  import y from "../error/isNotFoundError.mjs";
8
- import f from "../error/serializeError.mjs";
9
- import I from "../error/isErrorWithStatusCode.mjs";
8
+ import b from "../error/serializeError.mjs";
9
+ import G from "../error/isErrorWithStatusCode.mjs";
10
10
  import w from "../api/isNoContentResponse.mjs";
11
- import m from "../shared/wait.mjs";
11
+ import W from "../shared/wait.mjs";
12
12
  import "../error/isCodedError.mjs";
13
13
  import "../error/isAPIError.mjs";
14
- class E {
14
+ class z {
15
15
  constructor(e) {
16
16
  /** Workers currently executing a request */
17
17
  o(this, "busyWorkers", /* @__PURE__ */ new Set());
@@ -42,7 +42,7 @@ class E {
42
42
  this.config = {
43
43
  ...this.config,
44
44
  ...e ?? null
45
- }, this.axiosInstance = W.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 E {
52
52
  }
53
53
  startTimer() {
54
54
  if (this.timer != null)
55
- throw l(
55
+ throw d(
56
56
  new Error("Timer already started"),
57
- g.GenericUnexpectedHangfireError
57
+ c.GenericUnexpectedHangfireError
58
58
  );
59
59
  this.config.debug("*start timer*"), this.timer = setInterval(() => {
60
60
  this.config.debug("*tick*", {
@@ -62,24 +62,28 @@ class E {
62
62
  enabledGroups: this.enabledGroups.size,
63
63
  groups: this.groups
64
64
  }), this.enabledGroups.forEach((e) => {
65
- const r = this.groups.get(e);
66
- r && r.forEach((t) => this.executeWorkerRequest(t));
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
+ });
67
71
  }), this.groups.size < 1 && this.stopTimer();
68
72
  }, this.config.pollerInterval);
69
73
  }
70
74
  async waitForNetworkOnline(e = 5) {
71
- let r = 0;
72
- for (; !this.config.getIsNetworkOnline() && r < e + 1; )
73
- r += 1, await m(1e3);
75
+ let i = 0;
76
+ for (; !this.config.getIsNetworkOnline() && i < e + 1; )
77
+ i += 1, await W(1e3);
74
78
  }
75
- async executeWorkerRequest(e, r = !1) {
76
- var a, h, u, c;
77
- const t = r !== !0 && 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);
78
82
  if (this.config.debug("*executeWorkerRequest*", {
79
83
  workerId: e.workerId,
80
- isBusy: t,
81
- force: r
82
- }), t) {
84
+ isBusy: n,
85
+ force: i
86
+ }), n) {
83
87
  this.config.debug(
84
88
  "*executeWorkerRequest* worker is busy",
85
89
  e.workerId
@@ -89,112 +93,130 @@ class E {
89
93
  this.busyWorkers.add(e.workerId), await this.waitForNetworkOnline(), this.config.debug("*executeWorkerRequest* request", {
90
94
  isNetworkOnline: this.config.getIsNetworkOnline()
91
95
  });
92
- const d = {
96
+ const h = {
93
97
  ...await this.config.getRequestHeaders(),
94
98
  ...e.headers
95
- }, p = 2;
96
- let i = 0;
97
- for (; i <= p; )
99
+ }, a = 2;
100
+ let t = 0;
101
+ for (; t <= a; )
98
102
  try {
99
- const n = await this.axiosInstance({
103
+ const l = await this.axiosInstance({
100
104
  url: e.url,
101
105
  method: "get",
102
106
  timeout: this.config.pollerInterval,
103
- headers: d
107
+ headers: h
104
108
  });
105
- w(n) ? this.busyWorkers.delete(e.workerId) : (e.resolve(n), (a = e.onFinished) == null || a.call(e, r), this.deleteWorker(e.groupId, e.workerId));
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
+ this.config.debug(
113
+ "*executeWorkerRequest* worker lifetime exceeded, forcing exit",
114
+ e.workerId
115
+ );
116
+ const m = b(
117
+ d(
118
+ new Error("The Hangfire worker lifetime has been exceeded"),
119
+ c.GenericUnexpectedHangfireError
120
+ )
121
+ );
122
+ e.reject(m), (g = e.onFinished) == null || g.call(e, !0), this.deleteWorker(e.groupId, e.workerId);
123
+ } else
124
+ this.busyWorkers.delete(e.workerId);
106
125
  break;
107
- } catch (n) {
108
- if (I(n)) {
109
- if (y(n)) {
126
+ } catch (l) {
127
+ if (G(l)) {
128
+ if (y(l)) {
110
129
  this.config.debug(
111
130
  "*executeWorkerRequest* worker is expired or invalid",
112
131
  e.workerId
113
132
  );
114
- const b = f(
115
- l(
133
+ const m = b(
134
+ d(
116
135
  new Error("The Hangfire worker is expired or invalid"),
117
- g.HangfireWorkerExpiredOrInvalid
136
+ c.HangfireWorkerExpiredOrInvalid
118
137
  )
119
138
  );
120
- e.reject(b), (h = e.onFinished) == null || h.call(e, r);
139
+ e.reject(m), (f = e.onFinished) == null || f.call(e, i);
121
140
  } else
122
- e.reject(n), (u = e.onFinished) == null || u.call(e, r);
141
+ e.reject(l), (p = e.onFinished) == null || p.call(e, i);
123
142
  this.deleteWorker(e.groupId, e.workerId);
124
143
  break;
125
- } else if (this.config.debug("*executeWorkerRequest* not an api error"), (c = this.config.logger) == null || c.warn(
144
+ } else if (this.config.debug("*executeWorkerRequest* not an api error"), (x = this.config.logger) == null || x.warn(
126
145
  `Hangfire worker request error: ${JSON.stringify({
127
- attempt: i,
146
+ attempt: t,
128
147
  groupId: e.groupId,
129
148
  workerId: e.workerId,
130
- error: f(n)
149
+ error: b(l)
131
150
  })}`,
132
151
  {
133
- CorrelationId: d["x-correlation-id"]
152
+ CorrelationId: h["x-correlation-id"]
134
153
  }
135
- ), r && i < p)
136
- i += 1, this.config.debug(
137
- `*executeWorkerRequest* retrying non-API error (attempt ${i})`
138
- ), await m(500);
154
+ ), i && t < a)
155
+ t += 1, this.config.debug(
156
+ `*executeWorkerRequest* retrying non-API error (attempt ${t})`
157
+ ), await W(500);
139
158
  else {
140
159
  this.busyWorkers.delete(e.workerId);
141
160
  break;
142
161
  }
143
162
  }
144
163
  }
145
- deleteWorker(e, r) {
146
- const t = this.groups.get(e);
147
- t && (this.config.debug("*delete worker*", t.size, t), t.delete(r), this.workerByIdMap.delete(r), this.busyWorkers.delete(r), t.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()));
148
167
  }
149
168
  createWorker(e, {
150
- workerId: r,
151
- url: t,
152
- headers: d,
153
- onFinished: p
169
+ workerId: i,
170
+ url: r,
171
+ headers: n,
172
+ onFinished: h,
173
+ maxLifeTimeMillis: a
154
174
  }) {
155
175
  if (!this.groups.has(e)) {
156
176
  if (this.groups.size >= this.config.maxGroupsSize) {
157
- const a = l(
177
+ const u = d(
158
178
  new Error("Max number of Hangfire groups exceeded"),
159
- g.GenericUnexpectedHangfireError,
179
+ c.GenericUnexpectedHangfireError,
160
180
  { count: this.groups.size }
161
181
  );
162
- throw this.destroy(), a;
182
+ throw this.destroy(), u;
163
183
  }
164
184
  this.groups.set(e, /* @__PURE__ */ new Map());
165
185
  }
166
- const i = this.groups.get(e);
167
- return new Promise((a, h) => {
168
- if (i.has(r))
169
- throw l(
186
+ const t = this.groups.get(e);
187
+ return new Promise((u, g) => {
188
+ if (t.has(i))
189
+ throw d(
170
190
  new Error("Duplicate Hangfire worker ID"),
171
- g.GenericUnexpectedHangfireError
191
+ c.GenericUnexpectedHangfireError
172
192
  );
173
- if (i.size >= this.config.maxWorkersSize) {
174
- const c = l(
193
+ if (t.size >= this.config.maxWorkersSize) {
194
+ const p = d(
175
195
  new Error("Max number of Hangfire workers in group exceeded"),
176
- g.GenericUnexpectedHangfireError,
177
- { groupId: e, count: i.size }
196
+ c.GenericUnexpectedHangfireError,
197
+ { groupId: e, count: t.size }
178
198
  );
179
- throw h(c), this.destroy(), c;
199
+ throw g(p), this.destroy(), p;
180
200
  }
181
- const u = {
182
- workerId: r,
201
+ const f = {
202
+ workerId: i,
183
203
  groupId: e,
184
- url: t,
185
- resolve: a,
186
- reject: h,
187
- headers: d,
188
- onFinished: p
204
+ url: r,
205
+ resolve: u,
206
+ reject: g,
207
+ headers: n,
208
+ onFinished: h,
209
+ createdAt: Date.now(),
210
+ maxLifeTimeMillis: a
189
211
  };
190
- i.set(r, u), this.workerByIdMap.set(r, u), 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();
191
213
  });
192
214
  }
193
215
  /** Trigger a worker to execute immediately, ignoring busy state */
194
216
  triggerWorker(e) {
195
217
  this.config.debug("*triggerWorker*");
196
- const r = this.workerByIdMap.get(e);
197
- r ? this.executeWorkerRequest(r, !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);
198
220
  }
199
221
  /** Trigger all workers to execute immediately */
200
222
  triggerAllWorkers() {
@@ -207,16 +229,34 @@ class E {
207
229
  this.config.debug("*enable*", e), this.enabledGroups.add(e), this.groups.has(e) && this.timer == null && this.startTimer();
208
230
  }
209
231
  disableWorkers(e) {
210
- this.config.debug("*disable*", e), this.enabledGroups.delete(e), this.enabledGroups.size < 1 && 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();
211
251
  }
212
252
  destroy() {
213
253
  this.config.debug("*destroy*"), this.groups.clear(), this.stopTimer();
214
254
  }
215
255
  }
216
- function B(s) {
217
- return new E(s);
256
+ function A(s) {
257
+ return new z(s);
218
258
  }
219
259
  export {
220
- E as HangfirePoller,
221
- B as default
260
+ z as HangfirePoller,
261
+ A as default
222
262
  };
@@ -14,6 +14,8 @@ declare type MakeHangfireRequestOptions = {
14
14
  * @param forced Forced indicates it was triggered by an event rather than via polling
15
15
  */
16
16
  onWorkerFinished?: (forced: boolean) => void | Promise<void>;
17
+ /** Max lifetime of the worker in milliseconds. When exceeded the worker executes one final request and exits. */
18
+ maxLifeTimeMillis?: number;
17
19
  };
18
20
  /**
19
21
  *
@@ -1 +1 @@
1
- "use strict";const k=require("./isHangfireResponse.js");require("../api/isAcceptedResponse.js");const l=/v\d+\.\d+/;function q(a,d,u){const f=a.config.baseURL;let r=a.config.url;return r&&u&&(r=r.replace(l,`v${u}`)),`${f??""}/${r??""}/status/${d}`}function n(a){return async function(u,f,r,h,e){var R;const c=await u(f,r,e==null?void 0:e.headers);if(await((R=e==null?void 0:e.onInitResponse)==null?void 0:R.call(e)),k(c)){const g=c.data.id;return a.createWorker(h,{workerId:g,url:q(c,g,e==null?void 0:e.version),headers:e==null?void 0:e.headers,onFinished:e==null?void 0:e.onWorkerFinished})}return c}}module.exports=n;
1
+ "use strict";const h=require("./isHangfireResponse.js");require("../api/isAcceptedResponse.js");const k=/v\d+\.\d+/;function m(a,d,u){const f=a.config.baseURL;let r=a.config.url;return r&&u&&(r=r.replace(k,`v${u}`)),`${f??""}/${r??""}/status/${d}`}function q(a){return async function(u,f,r,g,e){var l;const c=await u(f,r,e==null?void 0:e.headers);if(await((l=e==null?void 0:e.onInitResponse)==null?void 0:l.call(e)),h(c)){const R=c.data.id;return a.createWorker(g,{workerId:R,url:m(c,R,e==null?void 0:e.version),headers:e==null?void 0:e.headers,onFinished:e==null?void 0:e.onWorkerFinished,maxLifeTimeMillis:e==null?void 0:e.maxLifeTimeMillis})}return c}}module.exports=q;
@@ -1,27 +1,28 @@
1
- import l from "./isHangfireResponse.mjs";
1
+ import g from "./isHangfireResponse.mjs";
2
2
  import "../api/isAcceptedResponse.mjs";
3
- const h = /v\d+\.\d+/;
4
- function m(a, d, u) {
5
- const f = a.config.baseURL;
3
+ const k = /v\d+\.\d+/;
4
+ function h(a, d, f) {
5
+ const c = a.config.baseURL;
6
6
  let r = a.config.url;
7
- return r && u && (r = r.replace(h, `v${u}`)), `${f ?? ""}/${r ?? ""}/status/${d}`;
7
+ return r && f && (r = r.replace(k, `v${f}`)), `${c ?? ""}/${r ?? ""}/status/${d}`;
8
8
  }
9
- function q(a) {
10
- return async function(u, f, r, k, e) {
11
- var R;
12
- const c = await u(f, r, e == null ? void 0 : e.headers);
13
- if (await ((R = e == null ? void 0 : e.onInitResponse) == null ? void 0 : R.call(e)), l(c)) {
14
- const g = c.data.id;
15
- return a.createWorker(k, {
16
- workerId: g,
17
- url: m(c, g, e == null ? void 0 : e.version),
9
+ function U(a) {
10
+ return async function(f, c, r, R, e) {
11
+ var l;
12
+ const u = await f(c, r, e == null ? void 0 : e.headers);
13
+ if (await ((l = e == null ? void 0 : e.onInitResponse) == null ? void 0 : l.call(e)), g(u)) {
14
+ const m = u.data.id;
15
+ return a.createWorker(R, {
16
+ workerId: m,
17
+ url: h(u, m, e == null ? void 0 : e.version),
18
18
  headers: e == null ? void 0 : e.headers,
19
- onFinished: e == null ? void 0 : e.onWorkerFinished
19
+ onFinished: e == null ? void 0 : e.onWorkerFinished,
20
+ maxLifeTimeMillis: e == null ? void 0 : e.maxLifeTimeMillis
20
21
  });
21
22
  }
22
- return c;
23
+ return u;
23
24
  };
24
25
  }
25
26
  export {
26
- q as default
27
+ U as default
27
28
  };
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"),V=require("./versioning/isVersionALessThanB.js"),z=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("./string/slugify.js"),$=require("./string/truncate.js"),ee=require("./string/getRandomAlphaNumericCode.js"),te=require("./string/getParsedJSONFromString.js"),re=require("./color/lighten.js"),oe=require("./color/brighten.js"),ie=require("./color/darken.js"),ue=require("./color/isDarkBackground.js"),se=require("./color/isColorsReadable.js"),ne=require("./color/isColorsEqual.js"),ce=require("./color/getLuminance.js"),ae=require("./color/toHsl.js"),le=require("./color/hslToHex.js"),de=require("./user/getFullName.js"),ge=require("./user/getFullAddressString.js"),qe=require("./user/getCustomerAddressFromGeocoderResult.js"),me=require("./user/getFormattedPhoneNumber.js"),_e=require("./user/getStructuredCustomerAddress.js"),ke=require("./logger/Logger.js"),he=require("./logger/types.js"),Oe=require("./logger/sanitizeAsStringDict.js"),Te=require("./logger/pascalCaseFormatter.js"),pe=require("./printing/getPrinterType.js"),Ce=require("./printing/isValidPrinter.js"),Pe=require("./printing/isValidNetworkPrinter.js"),Se=require("./printing/isValidStarCloudPrinter.js"),fe=require("./printing/isTerminalPrinter.js"),ye=require("./printing/isCloudPrintModeEnabled.js"),Ae=require("./printing/createStarCloudScanHook.js"),Ie=require("./number/randomIntFromInterval.js"),Fe=require("./tables/decodeTableQRPayload.js"),ve=require("./checkout/getCheckoutItemModifications.js"),Ee=require("./checkout/getCheckoutProductName.js"),t=require("./checkout/getCheckoutOrderStatusTexts.js"),De=require("./checkout/getCheckoutItemsMappedByTicketItemStatus.js"),be=require("./checkout/isCheckoutOrderSummary.js"),Me=require("./checkout/buildCheckoutRequestItem.js"),Re=require("./checkout/getCheckoutGrandTotalAmount.js"),Le=require("./checkout/getCheckoutRequestItemFromCheckoutItem.js"),Ne=require("./checkout/isCheckoutItemsAreEqual.js"),xe=require("./checkout/checkoutHasWallet.js"),Ge=require("./checkout/getWalletMetaFromCheckout.js"),Ue=require("./checkout/isPreOrderServiceTime.js"),We=require("./checkout/isPreOrderCheckout.js"),He=require("./checkout/isUpdatingCheckoutAllowed.js"),Be=require("./checkout/isCheckoutAlreadyPaidStatus.js"),r=require("./checkout/getCheckoutPaymentErrorTranslationTexts.js"),Ve=require("./checkout/isDeletingCheckoutAllowed.js"),ze=require("./checkout/getTotalCheckoutItemsQuantity.js"),we=require("./checkout/getCheckoutPenguinLockersMetaData.js"),Je=require("./checkout/getUniqueCheckoutPenguinDeliveryCodes.js"),Ke=require("./checkout/isWoltDeliveryInProgress.js"),Qe=require("./checkout/isWalletTopUpCheckoutItem.js"),Ze=require("./checkout/isWalletTopUpCheckout.js"),je=require("./checkout/getCheckoutWalletTopUpMetaData.js"),Xe=require("./checkout/isGiftCardCheckout.js"),Ye=require("./checkout/isGiftCardCheckoutItem.js"),$e=require("./checkout/getCheckoutGiftCardMetaData.js"),et=require("./checkout/getCheckoutGuestGroupsMetaData.js"),tt=require("./order/getCheckOrderItemsMappedByTicketItemStatus.js"),rt=require("./order/getCheckOrderMinimumStatusTicketItem.js"),ot=require("./order/getMultiProductSubProductsTicketItems.js"),it=require("./currency/getFormattedCurrency.js"),ut=require("./currency/getFormattedCurrencyPostfix.js"),st=require("./inventory/isDetailedProductOutOfStock.js"),nt=require("./inventory/isDetailedProductVariantOutOfStocks.js"),ct=require("./inventory/isMenuTreeProductOutOfStock.js"),at=require("./inventory/isDetailedProductUpSellsOutOfStock.js"),lt=require("./inventory/isUpSellProductOutStock.js"),dt=require("./inventory/isDetailedProductOutletStockOutOfStock.js"),gt=require("./inventory/getDetailedProductVariantStock.js"),qt=require("./inventory/isAddonProductOutOfStock.js"),mt=require("./signalr/createUseSignalRHook.js"),_t=require("./signalr/SignalR.js"),kt=require("./error/createCodedError.js"),ht=require("./error/isCodedError.js"),Ot=require("./error/isNetworkError.js"),Tt=require("./error/isLockedError.js"),pt=require("./error/isNotFoundError.js"),Ct=require("./error/isAPIError.js"),Pt=require("./error/isSerializedAPIError.js"),St=require("./error/isSerializedCodedError.js"),ft=require("./error/serializeError.js"),yt=require("./error/getErrorCode.js"),At=require("./error/isErrorWithStatusCode.js"),It=require("./error/isBadGatewayError.js"),Ft=require("./error/isServiceUnavailableError.js"),vt=require("./error/isTooManyRequestsError.js"),Et=require("./error/isUpgradeRequiredError.js"),Dt=require("./hangfire/isHangfireResponse.js"),bt=require("./hangfire/isHangfireWorkerExpiredOrInvalidError.js"),Mt=require("./hangfire/createHangfirePoller.js"),Rt=require("./hangfire/createMakeHangfireRequest.js"),Lt=require("./product/extractProductsFromMenuTree.js"),Nt=require("./product/calculateIngredientsCost.js"),xt=require("./product/calculateAddonGroupCost.js"),Gt=require("./product/getAddonGroupInfoBySettings.js"),Ut=require("./product/calculateWeightProductPrice.js"),Wt=require("./product/calculateProductWeightByPrice.js"),Ht=require("./codec/base64URLEncode.js"),Bt=require("./codec/base64URLDecode.js"),Vt=require("./hashing/getSHA256Hash.js"),zt=require("./preOrder/isPreOrderSharable.js"),wt=require("./preOrder/isPreOrderLink.js"),Jt=require("./preOrder/isGroupPreOrder.js"),Kt=require("./phoneNumber/isPhoneNumberValid.js"),Qt=require("./phoneNumber/formatPhoneNumber.js"),e=require("./license/getLicenseUIState.js"),Zt=require("./googleMap/getComponentNameFromGeocoderResult.js"),jt=require("./date/createLocalTimezoneDate.js"),Xt=require("./date/createLocalTimezoneMoment.js"),Yt=require("./date/getFormattedUTCDateTime.js"),$t=require("./date/convertToLocalTimezone.js"),er=require("./date/convertToSpecificTimezone.js"),tr=require("./date/getTimezoneUtcOffsetDifference.js"),rr=require("./date/isDSTShiftPresentInRange.js"),or=require("./time/toMinutes.js"),ir=require("./time/getNextTenthMinute.js"),ur=require("./time/getPrevNthMinute.js"),sr=require("./time/getTimeSpanParts.js"),nr=require("./time/getEndTimeSpanOfTimePeriod.js"),cr=require("./time/createTimeSpan.js"),ar=require("./time/formatTimeSpan.js"),lr=require("./time/getDurationBetweenTimeSpans.js"),dr=require("./time/convertSecondsToTimeSpan.js"),gr=require("./time/convertTimeSpanToSeconds.js"),qr=require("./ticketItem/isTicketItemReady.js"),mr=require("./ticketItem/isTicketItemClosed.js"),_r=require("./quantity/getFormattedQuantity.js"),kr=require("./checkAuditLog/isPayAndGoCheckAuditLogAction.js"),hr=require("./checkAuditLog/getCheckAuditLogProductName.js"),Or=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=V;exports.cleanVersionString=z;exports.getUrlAndParams=w;exports.getEndpointWithVersion=J;exports.generateBackoffWithEqualJitter=K;exports.generateBackoffWithVariableJitter=Q;exports.isAcceptedResponse=Z;exports.isNoContentResponse=j;exports.APIFilterBuilder=X;exports.slugify=Y;exports.truncate=$;exports.getRandomAlphaNumericCode=ee;exports.getParsedJSONFromString=te;exports.lighten=re;exports.brighten=oe;exports.darken=ie;exports.isDarkBackground=ue;exports.isColorsReadable=se;exports.isColorsEqual=ne;exports.getLuminance=ce;exports.toHsl=ae;exports.hslToHex=le;exports.getFullName=de;exports.getFullAddressString=ge;exports.getCustomerAddressFromGeocoderResult=qe;exports.getFormattedPhoneNumber=me;exports.getStructuredCustomerAddress=_e;exports.Logger=ke;exports.LogLevel=he.LogLevel;exports.sanitizeAsStringDict=Oe;exports.pascalCaseFormatter=Te;exports.getPrinterType=pe;exports.isValidPrinter=Ce;exports.isValidNetworkPrinter=Pe;exports.isValidStarCloudPrinter=Se;exports.isTerminalPrinter=fe;exports.isCloudPrintModeEnabled=ye;exports.createUseStarCloudScanHook=Ae;exports.randomIntFromInterval=Ie;exports.decodeTableQRPayload=Fe;exports.getCheckoutGroupedModifications=ve.default;exports.getCheckoutProductName=Ee;exports.TranslationKey=t.TranslationKey;exports.getCheckoutOrderStatusTexts=t.default;exports.getCheckoutItemsMappedByTicketItemStatus=De;exports.isCheckoutOrderSummary=be;exports.buildCheckoutRequestItem=Me;exports.getCheckoutGrandTotalAmount=Re;exports.getCheckoutRequestItemFromCheckoutItem=Le;exports.isCheckoutItemsAreEqual=Ne;exports.checkoutHasWallet=xe;exports.getWalletMetaFromCheckout=Ge;exports.isPreOrderServiceTime=Ue;exports.isPreOrderCheckout=We;exports.isUpdatingCheckoutAllowed=He;exports.isCheckoutAlreadyPaidStatus=Be;exports.CheckoutPaymentErrorTranslationKey=r.CheckoutPaymentErrorTranslationKey;exports.getCheckoutPaymentErrorTranslationTexts=r.default;exports.isDeletingCheckoutAllowed=Ve;exports.getTotalCheckoutItemsQuantity=ze;exports.getCheckoutPenguinLockersMetaData=we;exports.getUniqueCheckoutPenguinDeliveryCodes=Je;exports.isWoltDeliveryInProgress=Ke;exports.isWalletTopUpCheckoutItem=Qe;exports.isWalletTopUpCheckout=Ze;exports.getCheckoutWalletTopUpMetaData=je;exports.isGiftCardCheckout=Xe;exports.isGiftCardCheckoutItem=Ye;exports.getCheckoutGiftCardMetaData=$e;exports.getCheckoutGuestGroupsMetaData=et;exports.getCheckOrderItemsMappedByTicketItemStatus=tt;exports.getCheckOrderMinimumStatusTicketItem=rt;exports.getMultiProductSubProductsTicketItems=ot;exports.getFormattedCurrency=it;exports.getFormattedCurrencyPostfix=ut;exports.isDetailedProductOutOfStock=st;exports.isDetailedProductVariantOutOfStocks=nt;exports.isMenuTreeProductOutOfStock=ct;exports.isDetailedProductUpSellsOutOfStock=at;exports.isUpSellProductOutOfStock=lt;exports.isDetailedProductOutletStockOutOfStock=dt;exports.getDetailedProductVariantStock=gt;exports.isAddonProductOutOfStock=qt;exports.createUseSignalRHook=mt;exports.SignalR=_t;exports.createCodedError=kt;exports.isCodedError=ht;exports.isNetworkError=Ot;exports.isLockedError=Tt;exports.isNotFoundError=pt;exports.isAPIError=Ct;exports.isSerializedAPIError=Pt;exports.isSerializedCodedError=St;exports.serializeError=ft;exports.getErrorCode=yt;exports.isErrorWithStatusCode=At;exports.isBadGatewayError=It;exports.isServiceUnavailableError=Ft;exports.isTooManyRequestsError=vt;exports.isUpgradeRequiredError=Et;exports.isHangfireResponse=Dt;exports.isHangfireWorkerExpiredOrInvalidError=bt;exports.createHangfirePoller=Mt.default;exports.createMakeHangfireRequest=Rt;exports.extractProductsFromMenuTree=Lt;exports.calculateIngredientsCost=Nt;exports.calculateAddonGroupsCost=xt;exports.getAddonGroupInfoBySettings=Gt.default;exports.calculateWeightProductPrice=Ut;exports.calculateProductWeightByPrice=Wt;exports.base64URLEncode=Ht;exports.base64URLDecode=Bt;exports.getSHA256Hash=Vt;exports.isPreOrderSharable=zt;exports.isPreOrderLink=wt;exports.isGroupPreOrder=Jt;exports.isPhoneNumberValid=Kt;exports.formatPhoneNumber=Qt;exports.getLicenseUIState=e.default;exports.isLicenseExpired=e.isLicenseExpired;exports.isLicenseExtended=e.isLicenseExtended;exports.isLicenseTerminated=e.isLicenseTerminated;exports.getComponentNameFromGeocoderResult=Zt;exports.createLocalTimezoneDate=jt;exports.createLocalTimezoneMoment=Xt;exports.getFormattedUTCDateTime=Yt;exports.convertToLocalTimezone=$t;exports.convertToSpecificTimezone=er;exports.getTimezoneUtcOffsetDifference=tr;exports.isDSTShiftPresentInRange=rr;exports.toMinutes=or;exports.getNextTenthMinute=ir;exports.getPrevNthMinute=ur;exports.getTimeSpanParts=sr;exports.getEndTimeSpanOfTimePeriod=nr;exports.createTimeSpan=cr;exports.formatTimeSpan=ar;exports.getDurationBetweenTimeSpans=lr;exports.convertSecondsToTimeSpan=dr;exports.convertTimeSpanToSeconds=gr;exports.isTicketItemReady=qr;exports.isTicketItemClosed=mr;exports.getFormattedQuantity=_r;exports.isPayAndGoCheckAuditLogAction=kr;exports.getCheckAuditLogProductName=hr;exports.getZReportPaymentMethodDisplayName=Or;
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;