@ancon/wildcat-utils 1.40.20 → 1.40.22

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.
@@ -41,6 +41,7 @@ declare enum TranslationKey {
41
41
  ProcessingPayment = "processingPayment",
42
42
  YourOrderIsBeingPrepared = "yourOrderIsBeingPrepared",
43
43
  YourOrderIsReadyToCollect = "yourOrderIsReadyToCollect",
44
+ YourOrderIsReadyHostWillCollect = "yourOrderIsReadyHostWillCollect",
44
45
  YourOrderIsBeingDelivered = "yourOrderIsBeingDelivered",
45
46
  YourOrderHasBeenCompleted = "yourOrderHasBeenCompleted",
46
47
  YourOrderWillArriveAtYourTable = "yourOrderWillArriveAtYourTable",
@@ -52,7 +53,9 @@ declare enum TranslationKey {
52
53
  YourOrderHasBeenAcceptedPickupTime = "yourOrderHasBeenAcceptedPickupTime",
53
54
  DeliveryWasCompleted = "deliveryWasCompleted",
54
55
  OneItemIsReadyToCollect = "oneItemIsReadyToCollect",
56
+ OneItemIsReadyHostWillCollect = "oneItemIsReadyHostWillCollect",
55
57
  MultipleItemsAreReadyToCollect = "multipleItemsAreReadyToCollect",
58
+ MultipleItemsAreReadyHostWillCollect = "multipleItemsAreReadyHostWillCollect",
56
59
  EnjoyMealWhileOtherItemsBeingPrepared = "enjoyMealWhileOtherItemsBeingPrepared",
57
60
  ThereWasAnError = "thereWasAnError",
58
61
  YourOrderReadyToPickupFromLocker = "yourOrderReadyToPickupFromLocker"
@@ -1,5 +1,5 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("@ancon/wildcat-types"),A=require("./getCheckoutItemsMappedByTicketItemStatus.js");var f=(e=>(e.OrderConfirmedHostWillApproveAndProcess="orderConfirmedHostWillApproveAndProcess",e.OrderConfirmedRestaurantAdminWillAcceptSoon="orderConfirmedRestaurantAdminWillAcceptSoon",e.YourOrderHasBeenApprovedByHost="yourOrderHasBeenApprovedByHost",e.OrderCanceledHostWillUpdateAndProcessAgain="orderCanceledHostWillUpdateAndProcessAgain",e.OrderCanceledYouCanManageYourOrderAgain="orderCanceledYouCanManageYourOrderAgain",e.YourOrderIsBeingProcessed="yourOrderIsBeingProcessed",e.YourOrderWasCancelled="yourOrderWasCancelled",e.ProcessingPayment="processingPayment",e.YourOrderIsBeingPrepared="yourOrderIsBeingPrepared",e.YourOrderIsReadyToCollect="yourOrderIsReadyToCollect",e.YourOrderIsBeingDelivered="yourOrderIsBeingDelivered",e.YourOrderHasBeenCompleted="yourOrderHasBeenCompleted",e.YourOrderWillArriveAtYourTable="yourOrderWillArriveAtYourTable",e.ModifiedDeliveryStartTime="modifiedDeliveryStartTime",e.ModifiedPickUpTime="modifiedPickUpTime",e.YourOrderHasBeenAcceptedEstimatedDeliveryStartTime="yourOrderHasBeenAcceptedEstimatedDeliveryStartTime",e.YourOrderIsBeingPreparedEstimatedDeliveryStartTime="yourOrderIsBeingPreparedEstimatedDeliveryStartTime",e.YourOrderHasBeenAcceptedEstimatedTime="yourOrderHasBeenAcceptedEstimatedTime",e.YourOrderHasBeenAcceptedPickupTime="yourOrderHasBeenAcceptedPickupTime",e.DeliveryWasCompleted="deliveryWasCompleted",e.OneItemIsReadyToCollect="oneItemIsReadyToCollect",e.MultipleItemsAreReadyToCollect="multipleItemsAreReadyToCollect",e.EnjoyMealWhileOtherItemsBeingPrepared="enjoyMealWhileOtherItemsBeingPrepared",e.ThereWasAnError="thereWasAnError",e.YourOrderReadyToPickupFromLocker="yourOrderReadyToPickupFromLocker",e))(f||{});function v(e){switch(e){case r.CheckoutStatus.Error:return"thereWasAnError";case r.CheckoutStatus.Created:case r.CheckoutStatus.Ready:case r.CheckoutStatus.Processing:case r.CheckoutStatus.Authorized:return"yourOrderIsBeingProcessed";case r.CheckoutStatus.Canceled:return"yourOrderWasCancelled";case r.CheckoutStatus.Received:return"processingPayment";default:return null}}function T(e){switch(e){case r.TicketStatus.Pending:case r.TicketStatus.PendingAccept:return"yourOrderIsBeingProcessed";case r.TicketStatus.Preparing:return"yourOrderIsBeingPrepared";case r.TicketStatus.Ready:return"yourOrderIsReadyToCollect";case r.TicketStatus.Closed:return"yourOrderHasBeenCompleted";case r.TicketStatus.Canceled:return"yourOrderWasCancelled";default:throw new Error(`Unhandled ticket status "${e}" in getTranslationKeyByTicketStatus()`)}}function B(e){const{isHost:o,preOrderStatus:d,preOrderAttendeeStatus:i,preOrderCancelInfo:a}=e;if(i===r.AttendeePreOrderStatus.Confirmed)switch(d){case r.PreOrderStatus.Started:{const{cancelActor:s,canceledAt:t}=a??{};return!!s&&!!t?o?"orderCanceledYouCanManageYourOrderAgain":"orderCanceledHostWillUpdateAndProcessAgain":"orderConfirmedHostWillApproveAndProcess"}case r.PreOrderStatus.Waiting:return o?"orderConfirmedRestaurantAdminWillAcceptSoon":"yourOrderHasBeenApprovedByHost"}return null}function I(e,{checkoutStatus:o,ticketStatus:d,customersFetchTableOrders:i}){const a=(e==null?void 0:e.orderFormat)===r.OrderFormat.Delivery,s=(e==null?void 0:e.orderFormat)===r.OrderFormat.TakeAway,t=(e==null?void 0:e.orderFormat)===r.OrderFormat.TableOrder;if(a||s||t&&!i)return!1;const n=o!=null,u=d!=null;if(n){const l=o===r.CheckoutStatus.Captured,c=o===r.CheckoutStatus.InProgress;return l||c}if(u){const l=d===r.TicketStatus.Preparing,c=d===r.TicketStatus.Ready;return l||c}return!1}function k(e,{checkoutStatus:o,ticketStatus:d,customersFetchTableOrders:i,pickupTimeUpdated:a,preOrderOptions:s},t){if(t&&I(e,{checkoutStatus:o,ticketStatus:d,customersFetchTableOrders:i})){if(t.ready>0)return t.ready<2?["oneItemIsReadyToCollect"]:["multipleItemsAreReadyToCollect",{count:t.ready}];if(t.done>0&&t.done<t.all)return["enjoyMealWhileOtherItemsBeingPrepared",{count:Math.max(0,t.all-t.done-t.ready)}]}if(d!=null)return[T(d)];if(s&&(o===r.CheckoutStatus.Created||o===r.CheckoutStatus.Authorized)){const C=B(s);if(C)return[C]}const n=(e==null?void 0:e.orderFormat)===r.OrderFormat.Delivery,u=v(o);if(u)return[u];const l=o===r.CheckoutStatus.Captured,c=o===r.CheckoutStatus.InProgress,m=o===r.CheckoutStatus.Done,P=o===r.CheckoutStatus.DeliveryInProgress,h=o===r.CheckoutStatus.ReadyToCollect,p=(e==null?void 0:e.orderFormat)===r.OrderFormat.EatIn,y=(e==null?void 0:e.orderFormat)===r.OrderFormat.TakeAway,O=(e==null?void 0:e.orderFormat)===r.OrderFormat.TableOrder,g=(e==null?void 0:e.orderFormat)===r.OrderFormat.BoxPickup;if(l)return O&&!i?["yourOrderWillArriveAtYourTable"]:n?a?["modifiedDeliveryStartTime"]:["yourOrderHasBeenAcceptedEstimatedDeliveryStartTime"]:a?["modifiedPickUpTime"]:["yourOrderHasBeenAcceptedPickupTime"];if(c){if(n)return a?["modifiedDeliveryStartTime"]:["yourOrderIsBeingPreparedEstimatedDeliveryStartTime"];if(t&&(p||y)){if(t.ready===t.all)return["yourOrderIsReadyToCollect"];if(t.done===t.all)return["yourOrderHasBeenCompleted"]}if(O){if(t){if(t.ready===t.all)return i?["yourOrderIsReadyToCollect"]:["yourOrderWillArriveAtYourTable"];if(t.done===t.all)return i?["yourOrderHasBeenCompleted"]:["yourOrderWillArriveAtYourTable"]}return a?["modifiedPickUpTime"]:i?["yourOrderIsBeingPrepared"]:["yourOrderWillArriveAtYourTable"]}return a?["modifiedPickUpTime"]:["yourOrderIsBeingPrepared"]}if(m)return p||y?["yourOrderHasBeenCompleted"]:n?["deliveryWasCompleted"]:["yourOrderHasBeenCompleted"];if(P&&g)switch(e==null?void 0:e.deliveryStatus){case r.CheckoutDeliveryStatus.PickedUp:return["yourOrderHasBeenCompleted"];case r.CheckoutDeliveryStatus.Delivered:return["yourOrderReadyToPickupFromLocker"];default:return["yourOrderIsBeingPrepared"]}if(h)return n?["yourOrderIsBeingDelivered"]:g?["yourOrderReadyToPickupFromLocker"]:["yourOrderIsReadyToCollect"];throw new Error("Could not resolve translation key in getTranslationKey()")}const S={orderConfirmedHostWillApproveAndProcess:()=>({title:`Order confirmed!
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("@ancon/wildcat-types"),I=require("./getCheckoutItemsMappedByTicketItemStatus.js");var m=(e=>(e.OrderConfirmedHostWillApproveAndProcess="orderConfirmedHostWillApproveAndProcess",e.OrderConfirmedRestaurantAdminWillAcceptSoon="orderConfirmedRestaurantAdminWillAcceptSoon",e.YourOrderHasBeenApprovedByHost="yourOrderHasBeenApprovedByHost",e.OrderCanceledHostWillUpdateAndProcessAgain="orderCanceledHostWillUpdateAndProcessAgain",e.OrderCanceledYouCanManageYourOrderAgain="orderCanceledYouCanManageYourOrderAgain",e.YourOrderIsBeingProcessed="yourOrderIsBeingProcessed",e.YourOrderWasCancelled="yourOrderWasCancelled",e.ProcessingPayment="processingPayment",e.YourOrderIsBeingPrepared="yourOrderIsBeingPrepared",e.YourOrderIsReadyToCollect="yourOrderIsReadyToCollect",e.YourOrderIsReadyHostWillCollect="yourOrderIsReadyHostWillCollect",e.YourOrderIsBeingDelivered="yourOrderIsBeingDelivered",e.YourOrderHasBeenCompleted="yourOrderHasBeenCompleted",e.YourOrderWillArriveAtYourTable="yourOrderWillArriveAtYourTable",e.ModifiedDeliveryStartTime="modifiedDeliveryStartTime",e.ModifiedPickUpTime="modifiedPickUpTime",e.YourOrderHasBeenAcceptedEstimatedDeliveryStartTime="yourOrderHasBeenAcceptedEstimatedDeliveryStartTime",e.YourOrderIsBeingPreparedEstimatedDeliveryStartTime="yourOrderIsBeingPreparedEstimatedDeliveryStartTime",e.YourOrderHasBeenAcceptedEstimatedTime="yourOrderHasBeenAcceptedEstimatedTime",e.YourOrderHasBeenAcceptedPickupTime="yourOrderHasBeenAcceptedPickupTime",e.DeliveryWasCompleted="deliveryWasCompleted",e.OneItemIsReadyToCollect="oneItemIsReadyToCollect",e.OneItemIsReadyHostWillCollect="oneItemIsReadyHostWillCollect",e.MultipleItemsAreReadyToCollect="multipleItemsAreReadyToCollect",e.MultipleItemsAreReadyHostWillCollect="multipleItemsAreReadyHostWillCollect",e.EnjoyMealWhileOtherItemsBeingPrepared="enjoyMealWhileOtherItemsBeingPrepared",e.ThereWasAnError="thereWasAnError",e.YourOrderReadyToPickupFromLocker="yourOrderReadyToPickupFromLocker",e))(m||{});function v(e){switch(e){case t.CheckoutStatus.Error:return"thereWasAnError";case t.CheckoutStatus.Created:case t.CheckoutStatus.Ready:case t.CheckoutStatus.Processing:case t.CheckoutStatus.Authorized:return"yourOrderIsBeingProcessed";case t.CheckoutStatus.Canceled:return"yourOrderWasCancelled";case t.CheckoutStatus.Received:return"processingPayment";default:return null}}function B(e){switch(e){case t.TicketStatus.Pending:case t.TicketStatus.PendingAccept:return"yourOrderIsBeingProcessed";case t.TicketStatus.Preparing:return"yourOrderIsBeingPrepared";case t.TicketStatus.Ready:return"yourOrderIsReadyToCollect";case t.TicketStatus.Closed:return"yourOrderHasBeenCompleted";case t.TicketStatus.Canceled:return"yourOrderWasCancelled";default:throw new Error(`Unhandled ticket status "${e}" in getTranslationKeyByTicketStatus()`)}}function T(e){const{isHost:o,preOrderStatus:d,preOrderAttendeeStatus:l,preOrderCancelInfo:a}=e;if(l===t.AttendeePreOrderStatus.Confirmed)switch(d){case t.PreOrderStatus.Started:{const{cancelActor:i,canceledAt:r}=a??{};return!!i&&!!r?o?"orderCanceledYouCanManageYourOrderAgain":"orderCanceledHostWillUpdateAndProcessAgain":"orderConfirmedHostWillApproveAndProcess"}case t.PreOrderStatus.Waiting:return o?"orderConfirmedRestaurantAdminWillAcceptSoon":"yourOrderHasBeenApprovedByHost"}return null}function k(e,{checkoutStatus:o,ticketStatus:d,customersFetchTableOrders:l}){const a=(e==null?void 0:e.orderFormat)===t.OrderFormat.Delivery,i=(e==null?void 0:e.orderFormat)===t.OrderFormat.TakeAway,r=(e==null?void 0:e.orderFormat)===t.OrderFormat.TableOrder;if(a||i||r&&!l)return!1;const s=o!=null,n=d!=null;if(s){const c=o===t.CheckoutStatus.Captured,u=o===t.CheckoutStatus.InProgress;return c||u}if(n){const c=d===t.TicketStatus.Preparing,u=d===t.TicketStatus.Ready;return c||u}return!1}function H(e,{checkoutStatus:o,ticketStatus:d,customersFetchTableOrders:l,pickupTimeUpdated:a,preOrderOptions:i},r){const s=i&&!i.isHost;if(r&&k(e,{checkoutStatus:o,ticketStatus:d,customersFetchTableOrders:l})){if(r.ready>0)return r.ready<2?s?["oneItemIsReadyHostWillCollect"]:["oneItemIsReadyToCollect"]:s?r.ready===r.all?["yourOrderIsReadyHostWillCollect"]:["multipleItemsAreReadyHostWillCollect",{count:r.ready}]:["multipleItemsAreReadyToCollect",{count:r.ready}];if(r.done>0&&r.done<r.all)return["enjoyMealWhileOtherItemsBeingPrepared",{count:Math.max(0,r.all-r.done-r.ready)}]}if(d!=null)return[B(d)];if(i&&(o===t.CheckoutStatus.Created||o===t.CheckoutStatus.Authorized)){const g=T(i);if(g)return[g]}const n=(e==null?void 0:e.orderFormat)===t.OrderFormat.Delivery,c=v(o);if(c)return[c];const u=o===t.CheckoutStatus.Captured,f=o===t.CheckoutStatus.InProgress,h=o===t.CheckoutStatus.Done,P=o===t.CheckoutStatus.DeliveryInProgress,A=o===t.CheckoutStatus.ReadyToCollect,p=(e==null?void 0:e.orderFormat)===t.OrderFormat.EatIn,y=(e==null?void 0:e.orderFormat)===t.OrderFormat.TakeAway,O=(e==null?void 0:e.orderFormat)===t.OrderFormat.TableOrder,C=(e==null?void 0:e.orderFormat)===t.OrderFormat.BoxPickup;if(u){if(O&&!l)return["yourOrderWillArriveAtYourTable"];if(n)return a?["modifiedDeliveryStartTime"]:["yourOrderHasBeenAcceptedEstimatedDeliveryStartTime"];if(a)return["modifiedPickUpTime"];if(r&&s&&(p||y)){if(r.ready===r.all)return["yourOrderIsReadyHostWillCollect"];if(r.done===r.all)return["yourOrderHasBeenCompleted"]}return["yourOrderHasBeenAcceptedPickupTime"]}if(f){if(n)return a?["modifiedDeliveryStartTime"]:["yourOrderIsBeingPreparedEstimatedDeliveryStartTime"];if(r&&(p||y)){if(r.ready===r.all)return["yourOrderIsReadyToCollect"];if(r.done===r.all)return["yourOrderHasBeenCompleted"]}if(O){if(r){if(r.ready===r.all)return l?["yourOrderIsReadyToCollect"]:["yourOrderWillArriveAtYourTable"];if(r.done===r.all)return l?["yourOrderHasBeenCompleted"]:["yourOrderWillArriveAtYourTable"]}return a?["modifiedPickUpTime"]:l?["yourOrderIsBeingPrepared"]:["yourOrderWillArriveAtYourTable"]}return a?["modifiedPickUpTime"]:["yourOrderIsBeingPrepared"]}if(h)return p||y?["yourOrderHasBeenCompleted"]:n?["deliveryWasCompleted"]:["yourOrderHasBeenCompleted"];if(P&&C)switch(e==null?void 0:e.deliveryStatus){case t.CheckoutDeliveryStatus.PickedUp:return["yourOrderHasBeenCompleted"];case t.CheckoutDeliveryStatus.Delivered:return["yourOrderReadyToPickupFromLocker"];default:return["yourOrderIsBeingPrepared"]}if(A)return n?["yourOrderIsBeingDelivered"]:C?["yourOrderReadyToPickupFromLocker"]:r&&s&&(p||y)&&r.done===r.all?["yourOrderHasBeenCompleted"]:["yourOrderIsReadyToCollect"];throw new Error("Could not resolve translation key in getTranslationKey()")}const S={orderConfirmedHostWillApproveAndProcess:()=>({title:`Order confirmed!
2
2
  The host will approve and process the pre-order.`,message:"Please contact the host if you want to edit your order."}),orderConfirmedRestaurantAdminWillAcceptSoon:()=>({title:`Order confirmed!
3
3
  The restaurant admin will accept your pre-order soon.`}),yourOrderHasBeenApprovedByHost:()=>({title:"Your order has been approved by host!",message:"The restaurant admin will accept and process the pre-order"}),orderCanceledHostWillUpdateAndProcessAgain:()=>({title:`Order canceled!
4
4
  The host will update and process the pre-order again.`,message:"Please contact the host if you want to edit your order."}),orderCanceledYouCanManageYourOrderAgain:()=>({title:`Order canceled!
5
- You can manage your order.`,message:"Please update and process the pre-order again."}),yourOrderIsBeingProcessed:()=>({title:"Your order is being processed"}),yourOrderWasCancelled:()=>({title:"Your order was canceled",message:"Sorry. Your order could not go through."}),processingPayment:()=>({title:"Processing payment",message:"Please wait while your payment is being processed"}),yourOrderIsBeingPrepared:()=>({title:"Your order is now being prepared!",message:"We will let you know when it is ready for pickup."}),yourOrderIsReadyToCollect:()=>({title:"Your order is ready to be collected!",message:"Please go ahead and show this screen at the collection point"}),yourOrderIsBeingDelivered:()=>({title:"Your order is being delivered",message:"It will arrive at your door shortly. Enjoy your meal!"}),yourOrderHasBeenCompleted:()=>({title:"Enjoy your meal!",message:"Your order has been completed!"}),yourOrderWillArriveAtYourTable:()=>({title:"Your order has been accepted!",message:"It will arrive at your table shortly"}),modifiedDeliveryStartTime:()=>({title:"Your delivery time was modified",message:"Delivery will start at approximately 00:00."}),modifiedPickUpTime:()=>({title:"Your pickup time was modified",message:"Pickup time: 00:00"}),yourOrderHasBeenAcceptedEstimatedDeliveryStartTime:()=>({title:"Your order has been accepted",message:"Estimated delivery start time: 00:00"}),yourOrderIsBeingPreparedEstimatedDeliveryStartTime:()=>({title:"Your order is now being prepared!",message:"Estimated delivery start time: 00:00"}),yourOrderHasBeenAcceptedEstimatedTime:()=>({title:"Your order has been accepted",message:"Estimated time: 00:00"}),yourOrderHasBeenAcceptedPickupTime:()=>({title:"Your order has been accepted",message:"Pickup time: 00:00"}),deliveryWasCompleted:()=>({title:"Your order was completed",message:"Enjoy your meal!"}),oneItemIsReadyToCollect:()=>({title:"One item is ready to pick up!",message:"Please allow cashier or waiter to confirm that the prepared item has been successfully issued."}),multipleItemsAreReadyToCollect:()=>({title:"Multiple items are ready to pick up!",message:"Please allow cashier or waiter to confirm that the prepared items have been successfully issued."}),enjoyMealWhileOtherItemsBeingPrepared:({meta:e})=>({title:"Enjoy your meal while the rest of the items are being prepared!",message:`${e.count} more items are being prepared`}),thereWasAnError:()=>({title:"Checkout error",message:"There was an error with the checkout"}),yourOrderReadyToPickupFromLocker:()=>({title:"Your order is ready to pick up from the locker!"})};function Y(e,o){if(o)return;const d=A(e);return{all:d.all.length,ready:d.ready.length,done:d.done.length}}function w(e,o,d=S){const{isSkipTicketStatus:i}=o,a=Y((e==null?void 0:e.items)??[],i),[s,t]=k(e,o,a),n=d[s]({key:s,meta:t});if(!n)throw new Error("Could not resolve translation in getOrderStatusTexts()");return[n,s]}exports.TranslationKey=f;exports.default=w;
5
+ You can manage your order.`,message:"Please update and process the pre-order again."}),yourOrderIsBeingProcessed:()=>({title:"Your order is being processed"}),yourOrderWasCancelled:()=>({title:"Your order was canceled",message:"Sorry. Your order could not go through."}),processingPayment:()=>({title:"Processing payment",message:"Please wait while your payment is being processed"}),yourOrderIsBeingPrepared:()=>({title:"Your order is now being prepared!",message:"We will let you know when it is ready for pickup."}),yourOrderIsReadyToCollect:()=>({title:"Your order is ready to be collected!",message:"Please go ahead and show this screen at the collection point"}),yourOrderIsReadyHostWillCollect:()=>({title:"Your order is ready to be collected!",message:"Host will collect your order at the collection point"}),yourOrderIsBeingDelivered:()=>({title:"Your order is being delivered",message:"It will arrive at your door shortly. Enjoy your meal!"}),yourOrderHasBeenCompleted:()=>({title:"Enjoy your meal!",message:"Your order has been completed!"}),yourOrderWillArriveAtYourTable:()=>({title:"Your order has been accepted!",message:"It will arrive at your table shortly"}),modifiedDeliveryStartTime:()=>({title:"Your delivery time was modified",message:"Delivery will start at approximately 00:00."}),modifiedPickUpTime:()=>({title:"Your pickup time was modified",message:"Pickup time: 00:00"}),yourOrderHasBeenAcceptedEstimatedDeliveryStartTime:()=>({title:"Your order has been accepted",message:"Estimated delivery start time: 00:00"}),yourOrderIsBeingPreparedEstimatedDeliveryStartTime:()=>({title:"Your order is now being prepared!",message:"Estimated delivery start time: 00:00"}),yourOrderHasBeenAcceptedEstimatedTime:()=>({title:"Your order has been accepted",message:"Estimated time: 00:00"}),yourOrderHasBeenAcceptedPickupTime:()=>({title:"Your order has been accepted",message:"Pickup time: 00:00"}),deliveryWasCompleted:()=>({title:"Your order was completed",message:"Enjoy your meal!"}),oneItemIsReadyToCollect:()=>({title:"One item is ready to pick up!",message:"Please allow cashier or waiter to confirm that the prepared item has been successfully issued."}),oneItemIsReadyHostWillCollect:()=>({title:"One item is ready to pick up!",message:"Host will collect your order and confirm that the prepared item has been successfully issued."}),multipleItemsAreReadyToCollect:()=>({title:"Multiple items are ready to pick up!",message:"Please allow cashier or waiter to confirm that the prepared items have been successfully issued."}),multipleItemsAreReadyHostWillCollect:()=>({title:"Multiple items are ready to pick up!",message:"Host will collect your order and confirm that the prepared items have been successfully issued."}),enjoyMealWhileOtherItemsBeingPrepared:({meta:e})=>({title:"Enjoy your meal while the rest of the items are being prepared!",message:`${e.count} more items are being prepared`}),thereWasAnError:()=>({title:"Checkout error",message:"There was an error with the checkout"}),yourOrderReadyToPickupFromLocker:()=>({title:"Your order is ready to pick up from the locker!"})};function W(e,o){if(o)return;const d=I(e);return{all:d.all.length,ready:d.ready.length,done:d.done.length}}function Y(e,o,d=S){const{isSkipTicketStatus:l}=o,a=W((e==null?void 0:e.items)??[],l),[i,r]=H(e,o,a),s=d[i]({key:i,meta:r});if(!s)throw new Error("Could not resolve translation in getOrderStatusTexts()");return[s,i]}exports.TranslationKey=m;exports.default=Y;
@@ -1,7 +1,7 @@
1
- import { CheckoutStatus as o, OrderFormat as c, CheckoutDeliveryStatus as C, TicketStatus as s, AttendeePreOrderStatus as I, PreOrderStatus as A } from "@ancon/wildcat-types";
2
- import T from "./getCheckoutItemsMappedByTicketItemStatus.mjs";
3
- var Y = /* @__PURE__ */ ((e) => (e.OrderConfirmedHostWillApproveAndProcess = "orderConfirmedHostWillApproveAndProcess", e.OrderConfirmedRestaurantAdminWillAcceptSoon = "orderConfirmedRestaurantAdminWillAcceptSoon", e.YourOrderHasBeenApprovedByHost = "yourOrderHasBeenApprovedByHost", e.OrderCanceledHostWillUpdateAndProcessAgain = "orderCanceledHostWillUpdateAndProcessAgain", e.OrderCanceledYouCanManageYourOrderAgain = "orderCanceledYouCanManageYourOrderAgain", e.YourOrderIsBeingProcessed = "yourOrderIsBeingProcessed", e.YourOrderWasCancelled = "yourOrderWasCancelled", e.ProcessingPayment = "processingPayment", e.YourOrderIsBeingPrepared = "yourOrderIsBeingPrepared", e.YourOrderIsReadyToCollect = "yourOrderIsReadyToCollect", e.YourOrderIsBeingDelivered = "yourOrderIsBeingDelivered", e.YourOrderHasBeenCompleted = "yourOrderHasBeenCompleted", e.YourOrderWillArriveAtYourTable = "yourOrderWillArriveAtYourTable", e.ModifiedDeliveryStartTime = "modifiedDeliveryStartTime", e.ModifiedPickUpTime = "modifiedPickUpTime", e.YourOrderHasBeenAcceptedEstimatedDeliveryStartTime = "yourOrderHasBeenAcceptedEstimatedDeliveryStartTime", e.YourOrderIsBeingPreparedEstimatedDeliveryStartTime = "yourOrderIsBeingPreparedEstimatedDeliveryStartTime", e.YourOrderHasBeenAcceptedEstimatedTime = "yourOrderHasBeenAcceptedEstimatedTime", e.YourOrderHasBeenAcceptedPickupTime = "yourOrderHasBeenAcceptedPickupTime", e.DeliveryWasCompleted = "deliveryWasCompleted", e.OneItemIsReadyToCollect = "oneItemIsReadyToCollect", e.MultipleItemsAreReadyToCollect = "multipleItemsAreReadyToCollect", e.EnjoyMealWhileOtherItemsBeingPrepared = "enjoyMealWhileOtherItemsBeingPrepared", e.ThereWasAnError = "thereWasAnError", e.YourOrderReadyToPickupFromLocker = "yourOrderReadyToPickupFromLocker", e))(Y || {});
4
- function w(e) {
1
+ import { CheckoutStatus as o, OrderFormat as c, CheckoutDeliveryStatus as P, TicketStatus as n, AttendeePreOrderStatus as H, PreOrderStatus as A } from "@ancon/wildcat-types";
2
+ import W from "./getCheckoutItemsMappedByTicketItemStatus.mjs";
3
+ var T = /* @__PURE__ */ ((e) => (e.OrderConfirmedHostWillApproveAndProcess = "orderConfirmedHostWillApproveAndProcess", e.OrderConfirmedRestaurantAdminWillAcceptSoon = "orderConfirmedRestaurantAdminWillAcceptSoon", e.YourOrderHasBeenApprovedByHost = "yourOrderHasBeenApprovedByHost", e.OrderCanceledHostWillUpdateAndProcessAgain = "orderCanceledHostWillUpdateAndProcessAgain", e.OrderCanceledYouCanManageYourOrderAgain = "orderCanceledYouCanManageYourOrderAgain", e.YourOrderIsBeingProcessed = "yourOrderIsBeingProcessed", e.YourOrderWasCancelled = "yourOrderWasCancelled", e.ProcessingPayment = "processingPayment", e.YourOrderIsBeingPrepared = "yourOrderIsBeingPrepared", e.YourOrderIsReadyToCollect = "yourOrderIsReadyToCollect", e.YourOrderIsReadyHostWillCollect = "yourOrderIsReadyHostWillCollect", e.YourOrderIsBeingDelivered = "yourOrderIsBeingDelivered", e.YourOrderHasBeenCompleted = "yourOrderHasBeenCompleted", e.YourOrderWillArriveAtYourTable = "yourOrderWillArriveAtYourTable", e.ModifiedDeliveryStartTime = "modifiedDeliveryStartTime", e.ModifiedPickUpTime = "modifiedPickUpTime", e.YourOrderHasBeenAcceptedEstimatedDeliveryStartTime = "yourOrderHasBeenAcceptedEstimatedDeliveryStartTime", e.YourOrderIsBeingPreparedEstimatedDeliveryStartTime = "yourOrderIsBeingPreparedEstimatedDeliveryStartTime", e.YourOrderHasBeenAcceptedEstimatedTime = "yourOrderHasBeenAcceptedEstimatedTime", e.YourOrderHasBeenAcceptedPickupTime = "yourOrderHasBeenAcceptedPickupTime", e.DeliveryWasCompleted = "deliveryWasCompleted", e.OneItemIsReadyToCollect = "oneItemIsReadyToCollect", e.OneItemIsReadyHostWillCollect = "oneItemIsReadyHostWillCollect", e.MultipleItemsAreReadyToCollect = "multipleItemsAreReadyToCollect", e.MultipleItemsAreReadyHostWillCollect = "multipleItemsAreReadyHostWillCollect", e.EnjoyMealWhileOtherItemsBeingPrepared = "enjoyMealWhileOtherItemsBeingPrepared", e.ThereWasAnError = "thereWasAnError", e.YourOrderReadyToPickupFromLocker = "yourOrderReadyToPickupFromLocker", e))(T || {});
4
+ function Y(e) {
5
5
  switch (e) {
6
6
  case o.Error:
7
7
  return "thereWasAnError";
@@ -18,18 +18,18 @@ function w(e) {
18
18
  return null;
19
19
  }
20
20
  }
21
- function W(e) {
21
+ function w(e) {
22
22
  switch (e) {
23
- case s.Pending:
24
- case s.PendingAccept:
23
+ case n.Pending:
24
+ case n.PendingAccept:
25
25
  return "yourOrderIsBeingProcessed";
26
- case s.Preparing:
26
+ case n.Preparing:
27
27
  return "yourOrderIsBeingPrepared";
28
- case s.Ready:
28
+ case n.Ready:
29
29
  return "yourOrderIsReadyToCollect";
30
- case s.Closed:
30
+ case n.Closed:
31
31
  return "yourOrderHasBeenCompleted";
32
- case s.Canceled:
32
+ case n.Canceled:
33
33
  return "yourOrderWasCancelled";
34
34
  default:
35
35
  throw new Error(
@@ -37,13 +37,13 @@ function W(e) {
37
37
  );
38
38
  }
39
39
  }
40
- function H(e) {
41
- const { isHost: t, preOrderStatus: d, preOrderAttendeeStatus: i, preOrderCancelInfo: a } = e;
42
- if (i === I.Confirmed)
40
+ function R(e) {
41
+ const { isHost: t, preOrderStatus: d, preOrderAttendeeStatus: l, preOrderCancelInfo: a } = e;
42
+ if (l === H.Confirmed)
43
43
  switch (d) {
44
44
  case A.Started: {
45
- const { cancelActor: n, canceledAt: r } = a ?? {};
46
- return !!n && !!r ? t ? "orderCanceledYouCanManageYourOrderAgain" : "orderCanceledHostWillUpdateAndProcessAgain" : "orderConfirmedHostWillApproveAndProcess";
45
+ const { cancelActor: i, canceledAt: r } = a ?? {};
46
+ return !!i && !!r ? t ? "orderCanceledYouCanManageYourOrderAgain" : "orderCanceledHostWillUpdateAndProcessAgain" : "orderConfirmedHostWillApproveAndProcess";
47
47
  }
48
48
  case A.Waiting:
49
49
  return t ? "orderConfirmedRestaurantAdminWillAcceptSoon" : "yourOrderHasBeenApprovedByHost";
@@ -53,38 +53,48 @@ function H(e) {
53
53
  function k(e, {
54
54
  checkoutStatus: t,
55
55
  ticketStatus: d,
56
- customersFetchTableOrders: i
56
+ customersFetchTableOrders: l
57
57
  }) {
58
- const a = (e == null ? void 0 : e.orderFormat) === c.Delivery, n = (e == null ? void 0 : e.orderFormat) === c.TakeAway, r = (e == null ? void 0 : e.orderFormat) === c.TableOrder;
59
- if (a || n || r && !i)
58
+ const a = (e == null ? void 0 : e.orderFormat) === c.Delivery, i = (e == null ? void 0 : e.orderFormat) === c.TakeAway, r = (e == null ? void 0 : e.orderFormat) === c.TableOrder;
59
+ if (a || i || r && !l)
60
60
  return !1;
61
- const l = t != null, y = d != null;
62
- if (l) {
63
- const u = t === o.Captured, p = t === o.InProgress;
64
- return u || p;
61
+ const s = t != null, u = d != null;
62
+ if (s) {
63
+ const p = t === o.Captured, y = t === o.InProgress;
64
+ return p || y;
65
65
  }
66
- if (y) {
67
- const u = d === s.Preparing, p = d === s.Ready;
68
- return u || p;
66
+ if (u) {
67
+ const p = d === n.Preparing, y = d === n.Ready;
68
+ return p || y;
69
69
  }
70
70
  return !1;
71
71
  }
72
- function R(e, {
72
+ function b(e, {
73
73
  checkoutStatus: t,
74
74
  ticketStatus: d,
75
- customersFetchTableOrders: i,
75
+ customersFetchTableOrders: l,
76
76
  pickupTimeUpdated: a,
77
- preOrderOptions: n
77
+ preOrderOptions: i
78
78
  }, r) {
79
+ const s = i && !i.isHost;
79
80
  if (r && k(e, {
80
81
  checkoutStatus: t,
81
82
  ticketStatus: d,
82
- customersFetchTableOrders: i
83
+ customersFetchTableOrders: l
83
84
  })) {
84
85
  if (r.ready > 0)
85
- return r.ready < 2 ? [
86
+ return r.ready < 2 ? s ? [
87
+ "oneItemIsReadyHostWillCollect"
88
+ /* OneItemIsReadyHostWillCollect */
89
+ ] : [
86
90
  "oneItemIsReadyToCollect"
87
91
  /* OneItemIsReadyToCollect */
92
+ ] : s ? r.ready === r.all ? [
93
+ "yourOrderIsReadyHostWillCollect"
94
+ /* YourOrderIsReadyHostWillCollect */
95
+ ] : [
96
+ "multipleItemsAreReadyHostWillCollect",
97
+ { count: r.ready }
88
98
  ] : [
89
99
  "multipleItemsAreReadyToCollect",
90
100
  { count: r.ready }
@@ -96,35 +106,54 @@ function R(e, {
96
106
  ];
97
107
  }
98
108
  if (d != null)
99
- return [W(d)];
100
- if (n && (t === o.Created || t === o.Authorized)) {
101
- const m = H(n);
102
- if (m)
103
- return [m];
109
+ return [w(d)];
110
+ if (i && (t === o.Created || t === o.Authorized)) {
111
+ const C = R(i);
112
+ if (C)
113
+ return [C];
104
114
  }
105
- const l = (e == null ? void 0 : e.orderFormat) === c.Delivery, y = w(t);
106
- if (y)
107
- return [y];
108
- const u = t === o.Captured, p = t === o.InProgress, h = t === o.Done, B = t === o.DeliveryInProgress, v = t === o.ReadyToCollect, g = (e == null ? void 0 : e.orderFormat) === c.EatIn, O = (e == null ? void 0 : e.orderFormat) === c.TakeAway, f = (e == null ? void 0 : e.orderFormat) === c.TableOrder, P = (e == null ? void 0 : e.orderFormat) === c.BoxPickup;
109
- if (u)
110
- return f && !i ? [
111
- "yourOrderWillArriveAtYourTable"
112
- /* YourOrderWillArriveAtYourTable */
113
- ] : l ? a ? [
114
- "modifiedDeliveryStartTime"
115
- /* ModifiedDeliveryStartTime */
116
- ] : [
117
- "yourOrderHasBeenAcceptedEstimatedDeliveryStartTime"
118
- /* YourOrderHasBeenAcceptedEstimatedDeliveryStartTime */
119
- ] : a ? [
120
- "modifiedPickUpTime"
121
- /* ModifiedPickUpTime */
122
- ] : [
115
+ const u = (e == null ? void 0 : e.orderFormat) === c.Delivery, p = Y(t);
116
+ if (p)
117
+ return [p];
118
+ const y = t === o.Captured, I = t === o.InProgress, h = t === o.Done, B = t === o.DeliveryInProgress, v = t === o.ReadyToCollect, f = (e == null ? void 0 : e.orderFormat) === c.EatIn, g = (e == null ? void 0 : e.orderFormat) === c.TakeAway, O = (e == null ? void 0 : e.orderFormat) === c.TableOrder, m = (e == null ? void 0 : e.orderFormat) === c.BoxPickup;
119
+ if (y) {
120
+ if (O && !l)
121
+ return [
122
+ "yourOrderWillArriveAtYourTable"
123
+ /* YourOrderWillArriveAtYourTable */
124
+ ];
125
+ if (u)
126
+ return a ? [
127
+ "modifiedDeliveryStartTime"
128
+ /* ModifiedDeliveryStartTime */
129
+ ] : [
130
+ "yourOrderHasBeenAcceptedEstimatedDeliveryStartTime"
131
+ /* YourOrderHasBeenAcceptedEstimatedDeliveryStartTime */
132
+ ];
133
+ if (a)
134
+ return [
135
+ "modifiedPickUpTime"
136
+ /* ModifiedPickUpTime */
137
+ ];
138
+ if (r && s && (f || g)) {
139
+ if (r.ready === r.all)
140
+ return [
141
+ "yourOrderIsReadyHostWillCollect"
142
+ /* YourOrderIsReadyHostWillCollect */
143
+ ];
144
+ if (r.done === r.all)
145
+ return [
146
+ "yourOrderHasBeenCompleted"
147
+ /* YourOrderHasBeenCompleted */
148
+ ];
149
+ }
150
+ return [
123
151
  "yourOrderHasBeenAcceptedPickupTime"
124
152
  /* YourOrderHasBeenAcceptedPickupTime */
125
153
  ];
126
- if (p) {
127
- if (l)
154
+ }
155
+ if (I) {
156
+ if (u)
128
157
  return a ? [
129
158
  "modifiedDeliveryStartTime"
130
159
  /* ModifiedDeliveryStartTime */
@@ -132,7 +161,7 @@ function R(e, {
132
161
  "yourOrderIsBeingPreparedEstimatedDeliveryStartTime"
133
162
  /* YourOrderIsBeingPreparedEstimatedDeliveryStartTime */
134
163
  ];
135
- if (r && (g || O)) {
164
+ if (r && (f || g)) {
136
165
  if (r.ready === r.all)
137
166
  return [
138
167
  "yourOrderIsReadyToCollect"
@@ -144,10 +173,10 @@ function R(e, {
144
173
  /* YourOrderHasBeenCompleted */
145
174
  ];
146
175
  }
147
- if (f) {
176
+ if (O) {
148
177
  if (r) {
149
178
  if (r.ready === r.all)
150
- return i ? [
179
+ return l ? [
151
180
  "yourOrderIsReadyToCollect"
152
181
  /* YourOrderIsReadyToCollect */
153
182
  ] : [
@@ -155,7 +184,7 @@ function R(e, {
155
184
  /* YourOrderWillArriveAtYourTable */
156
185
  ];
157
186
  if (r.done === r.all)
158
- return i ? [
187
+ return l ? [
159
188
  "yourOrderHasBeenCompleted"
160
189
  /* YourOrderHasBeenCompleted */
161
190
  ] : [
@@ -166,7 +195,7 @@ function R(e, {
166
195
  return a ? [
167
196
  "modifiedPickUpTime"
168
197
  /* ModifiedPickUpTime */
169
- ] : i ? [
198
+ ] : l ? [
170
199
  "yourOrderIsBeingPrepared"
171
200
  /* YourOrderIsBeingPrepared */
172
201
  ] : [
@@ -183,24 +212,24 @@ function R(e, {
183
212
  ];
184
213
  }
185
214
  if (h)
186
- return g || O ? [
215
+ return f || g ? [
187
216
  "yourOrderHasBeenCompleted"
188
217
  /* YourOrderHasBeenCompleted */
189
- ] : l ? [
218
+ ] : u ? [
190
219
  "deliveryWasCompleted"
191
220
  /* DeliveryWasCompleted */
192
221
  ] : [
193
222
  "yourOrderHasBeenCompleted"
194
223
  /* YourOrderHasBeenCompleted */
195
224
  ];
196
- if (B && P)
225
+ if (B && m)
197
226
  switch (e == null ? void 0 : e.deliveryStatus) {
198
- case C.PickedUp:
227
+ case P.PickedUp:
199
228
  return [
200
229
  "yourOrderHasBeenCompleted"
201
230
  /* YourOrderHasBeenCompleted */
202
231
  ];
203
- case C.Delivered:
232
+ case P.Delivered:
204
233
  return [
205
234
  "yourOrderReadyToPickupFromLocker"
206
235
  /* YourOrderReadyToPickupFromLocker */
@@ -212,12 +241,15 @@ function R(e, {
212
241
  ];
213
242
  }
214
243
  if (v)
215
- return l ? [
244
+ return u ? [
216
245
  "yourOrderIsBeingDelivered"
217
246
  /* YourOrderIsBeingDelivered */
218
- ] : P ? [
247
+ ] : m ? [
219
248
  "yourOrderReadyToPickupFromLocker"
220
249
  /* YourOrderReadyToPickupFromLocker */
250
+ ] : r && s && (f || g) && r.done === r.all ? [
251
+ "yourOrderHasBeenCompleted"
252
+ /* YourOrderHasBeenCompleted */
221
253
  ] : [
222
254
  "yourOrderIsReadyToCollect"
223
255
  /* YourOrderIsReadyToCollect */
@@ -267,6 +299,10 @@ You can manage your order.`,
267
299
  title: "Your order is ready to be collected!",
268
300
  message: "Please go ahead and show this screen at the collection point"
269
301
  }),
302
+ yourOrderIsReadyHostWillCollect: () => ({
303
+ title: "Your order is ready to be collected!",
304
+ message: "Host will collect your order at the collection point"
305
+ }),
270
306
  yourOrderIsBeingDelivered: () => ({
271
307
  title: "Your order is being delivered",
272
308
  message: "It will arrive at your door shortly. Enjoy your meal!"
@@ -311,10 +347,18 @@ You can manage your order.`,
311
347
  title: "One item is ready to pick up!",
312
348
  message: "Please allow cashier or waiter to confirm that the prepared item has been successfully issued."
313
349
  }),
350
+ oneItemIsReadyHostWillCollect: () => ({
351
+ title: "One item is ready to pick up!",
352
+ message: "Host will collect your order and confirm that the prepared item has been successfully issued."
353
+ }),
314
354
  multipleItemsAreReadyToCollect: () => ({
315
355
  title: "Multiple items are ready to pick up!",
316
356
  message: "Please allow cashier or waiter to confirm that the prepared items have been successfully issued."
317
357
  }),
358
+ multipleItemsAreReadyHostWillCollect: () => ({
359
+ title: "Multiple items are ready to pick up!",
360
+ message: "Host will collect your order and confirm that the prepared items have been successfully issued."
361
+ }),
318
362
  enjoyMealWhileOtherItemsBeingPrepared: ({ meta: e }) => ({
319
363
  title: "Enjoy your meal while the rest of the items are being prepared!",
320
364
  message: `${e.count} more items are being prepared`
@@ -330,23 +374,23 @@ You can manage your order.`,
330
374
  function E(e, t) {
331
375
  if (t)
332
376
  return;
333
- const d = T(e);
377
+ const d = W(e);
334
378
  return {
335
379
  all: d.all.length,
336
380
  ready: d.ready.length,
337
381
  done: d.done.length
338
382
  };
339
383
  }
340
- function M(e, t, d = D) {
341
- const { isSkipTicketStatus: i } = t, a = E(
384
+ function F(e, t, d = D) {
385
+ const { isSkipTicketStatus: l } = t, a = E(
342
386
  (e == null ? void 0 : e.items) ?? [],
343
- i
344
- ), [n, r] = R(e, t, a), l = d[n]({ key: n, meta: r });
345
- if (!l)
387
+ l
388
+ ), [i, r] = b(e, t, a), s = d[i]({ key: i, meta: r });
389
+ if (!s)
346
390
  throw new Error("Could not resolve translation in getOrderStatusTexts()");
347
- return [l, n];
391
+ return [s, i];
348
392
  }
349
393
  export {
350
- Y as TranslationKey,
351
- M as default
394
+ T as TranslationKey,
395
+ F as default
352
396
  };
@@ -35,6 +35,7 @@ declare class HangfirePoller {
35
35
  url: string;
36
36
  headers: APIHeaders;
37
37
  }): Promise<unknown>;
38
+ /** Trigger a worker to execute immediately, ignoring busy state */
38
39
  triggerWorker(workerId: string): void;
39
40
  /** May be called either before or after `createWorker()` */
40
41
  enableWorkers(groupId: string): void;
@@ -1 +1 @@
1
- "use strict";var f=Object.defineProperty;var p=(t,e,r)=>e in t?f(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var i=(t,e,r)=>(p(t,typeof e!="symbol"?e+"":e,r),r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("axios"),n=require("@ancon/wildcat-types"),a=require("../error/createCodedError.js"),m=require("../api/isNoContentResponse.js");class c{constructor(e){i(this,"busyWorkers",new Set);i(this,"enabledGroups",new Set);i(this,"groups",new Map);i(this,"workerByIdMap",new Map);i(this,"timer",null);i(this,"config",{maxGroupsSize:50,maxWorkersSize:20,getIsNetworkOnline(){return!0},async getRequestHeaders(){return{}},debug(...e){console.log(...e)}});this.config={...this.config,...e??null}}stopTimer(){this.timer!=null&&(this.config.debug("*stop timer*"),clearInterval(this.timer),this.timer=null)}startTimer(){if(this.timer!=null)throw a(new Error("Timer already started"),n.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(s=>this.executeWorkerRequest(s))}),this.groups.size<1&&this.stopTimer()},5e3)}async executeWorkerRequest(e){const r=this.config.getIsNetworkOnline();!this.busyWorkers.has(e.workerId)&&r&&(this.busyWorkers.add(e.workerId),b({url:e.url,method:"get",headers:{...await this.config.getRequestHeaders(),...e.headers}}).then(s=>{s&&!m(s)?(e.resolve(s),this.deleteWorker(e.groupId,e.workerId)):this.busyWorkers.delete(e.workerId)}).catch(s=>{e.reject(s),this.deleteWorker(e.groupId,e.workerId)}))}deleteWorker(e,r){const s=this.groups.get(e);s&&(this.config.debug("*delete worker*",s.size,s),s.delete(r),this.workerByIdMap.delete(r),this.busyWorkers.delete(r),s.size<1&&(this.groups.delete(e),this.enabledGroups.delete(e),this.enabledGroups.size<1&&this.stopTimer()))}createWorker(e,{workerId:r,url:s,headers:g}){if(!this.groups.has(e)){if(this.groups.size>=this.config.maxGroupsSize){const u=a(new Error("Max number of Hangfire groups exceeded"),n.ErrorCode.GenericUnexpectedHangfireError,{count:this.groups.size});throw this.destroy(),u}this.groups.set(e,new Map)}const o=this.groups.get(e);return new Promise((u,h)=>{if(o.has(r))throw a(new Error("Duplicate Hangfire worker ID"),n.ErrorCode.GenericUnexpectedHangfireError);if(o.size>=this.config.maxWorkersSize){const d=a(new Error("Max number of Hangfire workers in group exceeded"),n.ErrorCode.GenericUnexpectedHangfireError,{groupId:e,count:o.size});throw h(d),this.destroy(),d}const l={workerId:r,groupId:e,url:s,resolve:u,reject:h,headers:g};o.set(r,l),this.workerByIdMap.set(r,l),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)}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 k(t){return new c(t)}exports.HangfirePoller=c;exports.default=k;
1
+ "use strict";var f=Object.defineProperty;var p=(i,e,r)=>e in i?f(i,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):i[e]=r;var o=(i,e,r)=>(p(i,typeof e!="symbol"?e+"":e,r),r);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("axios"),n=require("@ancon/wildcat-types"),u=require("../error/createCodedError.js"),m=require("../api/isNoContentResponse.js");class g{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",{maxGroupsSize:50,maxWorkersSize:20,getIsNetworkOnline(){return!0},async getRequestHeaders(){return{}},debug(...e){console.log(...e)}});this.config={...this.config,...e??null}}stopTimer(){this.timer!=null&&(this.config.debug("*stop timer*"),clearInterval(this.timer),this.timer=null)}startTimer(){if(this.timer!=null)throw u(new Error("Timer already started"),n.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(s=>this.executeWorkerRequest(s))}),this.groups.size<1&&this.stopTimer()},5e3)}async executeWorkerRequest(e,r=!1){const s=this.config.getIsNetworkOnline();!(r!==!0&&this.busyWorkers.has(e.workerId))&&s&&(this.busyWorkers.add(e.workerId),b({url:e.url,method:"get",headers:{...await this.config.getRequestHeaders(),...e.headers}}).then(t=>{t&&!m(t)?(e.resolve(t),this.deleteWorker(e.groupId,e.workerId)):this.busyWorkers.delete(e.workerId)}).catch(t=>{e.reject(t),this.deleteWorker(e.groupId,e.workerId)}))}deleteWorker(e,r){const s=this.groups.get(e);s&&(this.config.debug("*delete worker*",s.size,s),s.delete(r),this.workerByIdMap.delete(r),this.busyWorkers.delete(r),s.size<1&&(this.groups.delete(e),this.enabledGroups.delete(e),this.enabledGroups.size<1&&this.stopTimer()))}createWorker(e,{workerId:r,url:s,headers:h}){if(!this.groups.has(e)){if(this.groups.size>=this.config.maxGroupsSize){const a=u(new Error("Max number of Hangfire groups exceeded"),n.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,l)=>{if(t.has(r))throw u(new Error("Duplicate Hangfire worker ID"),n.ErrorCode.GenericUnexpectedHangfireError);if(t.size>=this.config.maxWorkersSize){const c=u(new Error("Max number of Hangfire workers in group exceeded"),n.ErrorCode.GenericUnexpectedHangfireError,{groupId:e,count:t.size});throw l(c),this.destroy(),c}const d={workerId:r,groupId:e,url:s,resolve:a,reject:l,headers:h};t.set(r,d),this.workerByIdMap.set(r,d),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)}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 k(i){return new g(i)}exports.HangfirePoller=g;exports.default=k;
@@ -1,6 +1,6 @@
1
- var c = Object.defineProperty;
2
- var f = (t, e, r) => e in t ? c(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
- var i = (t, e, r) => (f(t, typeof e != "symbol" ? e + "" : e, r), r);
1
+ var g = Object.defineProperty;
2
+ var f = (i, e, r) => e in i ? g(i, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : i[e] = r;
3
+ var o = (i, e, r) => (f(i, typeof e != "symbol" ? e + "" : e, r), r);
4
4
  import p from "axios";
5
5
  import { ErrorCode as n } from "@ancon/wildcat-types";
6
6
  import h from "../error/createCodedError.mjs";
@@ -8,15 +8,15 @@ import m from "../api/isNoContentResponse.mjs";
8
8
  class b {
9
9
  constructor(e) {
10
10
  /** Workers currently executing a request */
11
- i(this, "busyWorkers", /* @__PURE__ */ new Set());
11
+ o(this, "busyWorkers", /* @__PURE__ */ new Set());
12
12
  /** Groups with enabled workers */
13
- i(this, "enabledGroups", /* @__PURE__ */ new Set());
13
+ o(this, "enabledGroups", /* @__PURE__ */ new Set());
14
14
  /** Workers are grouped by entity ID (check ID or order ID) */
15
- i(this, "groups", /* @__PURE__ */ new Map());
15
+ o(this, "groups", /* @__PURE__ */ new Map());
16
16
  /** Workers mapped by worker ID */
17
- i(this, "workerByIdMap", /* @__PURE__ */ new Map());
18
- i(this, "timer", null);
19
- i(this, "config", {
17
+ o(this, "workerByIdMap", /* @__PURE__ */ new Map());
18
+ o(this, "timer", null);
19
+ o(this, "config", {
20
20
  maxGroupsSize: 50,
21
21
  maxWorkersSize: 20,
22
22
  getIsNetworkOnline() {
@@ -54,19 +54,19 @@ class b {
54
54
  }), this.groups.size < 1 && this.stopTimer();
55
55
  }, 5e3);
56
56
  }
57
- async executeWorkerRequest(e) {
58
- const r = this.config.getIsNetworkOnline();
59
- !this.busyWorkers.has(e.workerId) && r && (this.busyWorkers.add(e.workerId), p({
57
+ async executeWorkerRequest(e, r = !1) {
58
+ const s = this.config.getIsNetworkOnline();
59
+ !(r !== !0 && this.busyWorkers.has(e.workerId)) && s && (this.busyWorkers.add(e.workerId), p({
60
60
  url: e.url,
61
61
  method: "get",
62
62
  headers: {
63
63
  ...await this.config.getRequestHeaders(),
64
64
  ...e.headers
65
65
  }
66
- }).then((s) => {
67
- s && !m(s) ? (e.resolve(s), this.deleteWorker(e.groupId, e.workerId)) : this.busyWorkers.delete(e.workerId);
68
- }).catch((s) => {
69
- e.reject(s), this.deleteWorker(e.groupId, e.workerId);
66
+ }).then((t) => {
67
+ t && !m(t) ? (e.resolve(t), this.deleteWorker(e.groupId, e.workerId)) : this.busyWorkers.delete(e.workerId);
68
+ }).catch((t) => {
69
+ e.reject(t), this.deleteWorker(e.groupId, e.workerId);
70
70
  }));
71
71
  }
72
72
  deleteWorker(e, r) {
@@ -76,7 +76,7 @@ class b {
76
76
  createWorker(e, {
77
77
  workerId: r,
78
78
  url: s,
79
- headers: g
79
+ headers: u
80
80
  }) {
81
81
  if (!this.groups.has(e)) {
82
82
  if (this.groups.size >= this.config.maxGroupsSize) {
@@ -89,36 +89,37 @@ class b {
89
89
  }
90
90
  this.groups.set(e, /* @__PURE__ */ new Map());
91
91
  }
92
- const o = this.groups.get(e);
93
- return new Promise((a, u) => {
94
- if (o.has(r))
92
+ const t = this.groups.get(e);
93
+ return new Promise((a, l) => {
94
+ if (t.has(r))
95
95
  throw h(
96
96
  new Error("Duplicate Hangfire worker ID"),
97
97
  n.GenericUnexpectedHangfireError
98
98
  );
99
- if (o.size >= this.config.maxWorkersSize) {
100
- const d = h(
99
+ if (t.size >= this.config.maxWorkersSize) {
100
+ const c = h(
101
101
  new Error("Max number of Hangfire workers in group exceeded"),
102
102
  n.GenericUnexpectedHangfireError,
103
- { groupId: e, count: o.size }
103
+ { groupId: e, count: t.size }
104
104
  );
105
- throw u(d), this.destroy(), d;
105
+ throw l(c), this.destroy(), c;
106
106
  }
107
- const l = {
107
+ const d = {
108
108
  workerId: r,
109
109
  groupId: e,
110
110
  url: s,
111
111
  resolve: a,
112
- reject: u,
113
- headers: g
112
+ reject: l,
113
+ headers: u
114
114
  };
115
- o.set(r, l), this.workerByIdMap.set(r, l), this.enabledGroups.has(e) || this.enabledGroups.add(e), this.timer == null && this.enabledGroups.size > 0 && this.startTimer();
115
+ t.set(r, d), this.workerByIdMap.set(r, d), this.enabledGroups.has(e) || this.enabledGroups.add(e), this.timer == null && this.enabledGroups.size > 0 && this.startTimer();
116
116
  });
117
117
  }
118
+ /** Trigger a worker to execute immediately, ignoring busy state */
118
119
  triggerWorker(e) {
119
120
  this.config.debug("*triggerWorker*");
120
121
  const r = this.workerByIdMap.get(e);
121
- r && this.executeWorkerRequest(r);
122
+ r && this.executeWorkerRequest(r, !0);
122
123
  }
123
124
  /** May be called either before or after `createWorker()` */
124
125
  enableWorkers(e) {
@@ -131,8 +132,8 @@ class b {
131
132
  this.config.debug("*destroy*"), this.groups.clear(), this.stopTimer();
132
133
  }
133
134
  }
134
- function x(t) {
135
- return new b(t);
135
+ function x(i) {
136
+ return new b(i);
136
137
  }
137
138
  export {
138
139
  b as HangfirePoller,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ancon/wildcat-utils",
3
- "version": "1.40.20",
3
+ "version": "1.40.22",
4
4
  "private": false,
5
5
  "main": "index.js",
6
6
  "module": "index.mjs",