@shopfront/bridge 1.16.0 → 1.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.idea/codeStyles/Project.xml +10 -0
  2. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  3. package/.idea/modules.xml +1 -1
  4. package/.idea/php.xml +18 -0
  5. package/.idea/{embedded-bridge.iml → shopfront-embedded-bridge.iml} +1 -3
  6. package/lib/APIs/Fulfilment/FulfilmentTypes.d.ts +43 -0
  7. package/lib/APIs/Fulfilment/FulfilmentTypes.js +2 -0
  8. package/lib/APIs/Sale/BaseSale.d.ts +147 -0
  9. package/lib/APIs/Sale/BaseSale.js +152 -0
  10. package/lib/APIs/Sale/CurrentSale.d.ts +132 -0
  11. package/lib/APIs/Sale/CurrentSale.js +210 -0
  12. package/lib/APIs/Sale/Exceptions.d.ts +6 -0
  13. package/lib/APIs/Sale/Exceptions.js +15 -0
  14. package/lib/APIs/Sale/Sale.d.ts +34 -0
  15. package/lib/APIs/Sale/Sale.js +116 -0
  16. package/lib/APIs/Sale/SaleCustomer.d.ts +10 -0
  17. package/lib/APIs/Sale/SaleCustomer.js +17 -0
  18. package/lib/APIs/Sale/SalePayment.d.ts +76 -0
  19. package/lib/APIs/Sale/SalePayment.js +114 -0
  20. package/lib/APIs/Sale/SaleProduct.d.ts +129 -0
  21. package/lib/APIs/Sale/SaleProduct.js +181 -0
  22. package/lib/APIs/Sale/ShopfrontSaleState.d.ts +57 -0
  23. package/lib/APIs/Sale/ShopfrontSaleState.js +2 -0
  24. package/lib/APIs/Sale/index.d.ts +9 -0
  25. package/lib/APIs/Sale/index.js +39 -0
  26. package/lib/Actions/SaleUpdate.d.ts +1 -1
  27. package/lib/Application.d.ts +21 -5
  28. package/lib/Application.js +88 -4
  29. package/lib/ApplicationEvents.d.ts +50 -2
  30. package/lib/ApplicationEvents.js +11 -0
  31. package/lib/EmitableEvents/Fulfilment/Options.d.ts +7 -0
  32. package/lib/EmitableEvents/Fulfilment/Options.js +11 -0
  33. package/lib/EmitableEvents/Fulfilment/OrderCancel.d.ts +6 -0
  34. package/lib/EmitableEvents/Fulfilment/OrderCancel.js +13 -0
  35. package/lib/EmitableEvents/Fulfilment/OrderCreate.d.ts +7 -0
  36. package/lib/EmitableEvents/Fulfilment/OrderCreate.js +13 -0
  37. package/lib/EmitableEvents/Fulfilment/OrderUpdate.d.ts +7 -0
  38. package/lib/EmitableEvents/Fulfilment/OrderUpdate.js +13 -0
  39. package/lib/EmitableEvents/Fulfilment/OrdersSync.d.ts +8 -0
  40. package/lib/EmitableEvents/Fulfilment/OrdersSync.js +14 -0
  41. package/lib/EmitableEvents/Fulfilment/RegisterIntent.d.ts +11 -0
  42. package/lib/EmitableEvents/Fulfilment/RegisterIntent.js +17 -0
  43. package/lib/EmitableEvents/Fulfilment/index.d.ts +7 -0
  44. package/lib/EmitableEvents/Fulfilment/index.js +15 -0
  45. package/lib/Events/FulfilmentCollectOrder.d.ts +6 -0
  46. package/lib/Events/FulfilmentCollectOrder.js +13 -0
  47. package/lib/Events/FulfilmentCompleteOrder.d.ts +6 -0
  48. package/lib/Events/FulfilmentCompleteOrder.js +13 -0
  49. package/lib/Events/FulfilmentGetOrder.d.ts +10 -0
  50. package/lib/Events/FulfilmentGetOrder.js +17 -0
  51. package/lib/Events/FulfilmentOrderApproval.d.ts +6 -0
  52. package/lib/Events/FulfilmentOrderApproval.js +13 -0
  53. package/lib/Events/FulfilmentProcessOrder.d.ts +14 -0
  54. package/lib/Events/FulfilmentProcessOrder.js +17 -0
  55. package/lib/Events/FulfilmentVoidOrder.d.ts +6 -0
  56. package/lib/Events/FulfilmentVoidOrder.js +13 -0
  57. package/lib/Utilities/SaleCreate.d.ts +26 -0
  58. package/lib/Utilities/SaleCreate.js +56 -0
  59. package/lib/Utilities/UUID.d.ts +12 -0
  60. package/lib/Utilities/UUID.js +46 -0
  61. package/lib/index.d.ts +3 -1
  62. package/lib/index.js +3 -2
  63. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { RequestButtons } from "./Events/RequestButtons";
5
5
  import { Callback } from "./Events/Callback";
6
6
  import { RequestTableColumns } from "./Events/RequestTableColumns";
7
7
  import { RequestSellScreenOptions, SellScreenOption } from "./Events/RequestSellScreenOptions";
8
- import { ShopfrontSaleState } from "./APIs/CurrentSale/ShopfrontSaleState";
8
+ import { ShopfrontSaleState } from "./APIs/Sale";
9
9
  import { InternalPageMessage } from "./Events/InternalPageMessage";
10
10
  import { InternalMessageSource } from "./APIs/InternalMessages/InternalMessageSource";
11
11
  import { RegisterChanged } from "./Events/RegisterChanged";
@@ -18,6 +18,14 @@ import { CompletedSale, SaleComplete } from "./Events/SaleComplete";
18
18
  import { UIPipeline } from "./Events/UIPipeline";
19
19
  import { PaymentMethodsEnabled } from "./Events/PaymentMethodsEnabled";
20
20
  import { AudioPermissionChange } from "./Events/AudioPermissionChange";
21
+ import { FulfilmentGetOrder } from "./Events/FulfilmentGetOrder";
22
+ import { FulfilmentVoidOrder } from "./Events/FulfilmentVoidOrder";
23
+ import { FulfilmentProcessOrder } from "./Events/FulfilmentProcessOrder";
24
+ import { FulfilmentOrderApproval } from "./Events/FulfilmentOrderApproval";
25
+ import { OrderDetails } from "./APIs/Fulfilment/FulfilmentTypes";
26
+ import { FulfilmentCollectOrder } from "./Events/FulfilmentCollectOrder";
27
+ import { FulfilmentCompleteOrder } from "./Events/FulfilmentCompleteOrder";
28
+ import { Sale } from "./APIs/Sale";
21
29
  export declare enum ToShopfront {
22
30
  READY = "READY",
23
31
  SERIALIZED = "SERIALIZED",
@@ -48,7 +56,15 @@ export declare enum ToShopfront {
48
56
  INTERNAL_PAGE_MESSAGE = "INTERNAL_PAGE_MESSAGE",
49
57
  TABLE_UPDATE = "TABLE_UPDATE",
50
58
  PIPELINE_TRIGGER = "PIPELINE_TRIGGER",
51
- SELL_SCREEN_PROMOTION_APPLICABLE = "SELL_SCREEN_PROMOTION_APPLICABLE"
59
+ SELL_SCREEN_PROMOTION_APPLICABLE = "SELL_SCREEN_PROMOTION_APPLICABLE",
60
+ FULFILMENT_OPT_IN = "FULFILMENT_OPT_IN",
61
+ FULFILMENT_OPTIONS = "FULFILMENT_OPTIONS",
62
+ FULFILMENT_ORDERS_SYNC = "FULFILMENT_ORDERS_SYNC",
63
+ FULFILMENT_ORDERS_CREATE = "FULFILMENT_ORDERS_CREATE",
64
+ FULFILMENT_ORDERS_UPDATE = "FULFILMENT_ORDERS_UPDATE",
65
+ FULFILMENT_ORDERS_CANCEL = "FULFILMENT_ORDERS_CANCEL",
66
+ CREATE_SALE = "CREATE_SALE",
67
+ FULFILMENT_GET_ORDER = "FULFILMENT_GET_ORDER"
52
68
  }
53
69
  export declare type SoundEvents = ToShopfront.AUDIO_REQUEST_PERMISSION | ToShopfront.AUDIO_PRELOAD | ToShopfront.AUDIO_PLAY;
54
70
  export interface FromShopfrontReturns {
@@ -98,6 +114,17 @@ export interface FromShopfrontReturns {
98
114
  UI_PIPELINE: Array<UIPipelineResponse>;
99
115
  PAYMENT_METHODS_ENABLED: Array<SellScreenPaymentMethod>;
100
116
  AUDIO_PERMISSION_CHANGE: void;
117
+ FULFILMENT_GET_ORDER: OrderDetails;
118
+ FULFILMENT_VOID_ORDER: void;
119
+ FULFILMENT_PROCESS_ORDER: void;
120
+ FULFILMENT_ORDER_APPROVAL: void;
121
+ FULFILMENT_ORDER_COLLECTED: void;
122
+ FULFILMENT_ORDER_COMPLETED: void;
123
+ RESPONSE_CREATE_SALE: {
124
+ requestId: string;
125
+ success: boolean;
126
+ message?: string;
127
+ };
101
128
  }
102
129
  export interface InternalPageMessageEvent {
103
130
  method: "REQUEST_SETTINGS" | "REQUEST_SELL_SCREEN_OPTIONS" | "EXTERNAL_APPLICATION";
@@ -119,6 +146,14 @@ export interface SaleCompletedEvent {
119
146
  export interface AudioPermissionChangeEvent {
120
147
  permitted: boolean;
121
148
  }
149
+ export interface FulfilmentProcessEvent {
150
+ id: string;
151
+ sale: Sale;
152
+ }
153
+ export interface FulfilmentApprovalEvent {
154
+ id: string;
155
+ approved: boolean;
156
+ }
122
157
  export declare type UIPipelineResponse = {
123
158
  name: string;
124
159
  content: string;
@@ -159,6 +194,12 @@ export interface FromShopfrontCallbacks {
159
194
  UI_PIPELINE: (event: Array<UIPipelineResponse>, context: UIPipelineContext) => MaybePromise<FromShopfrontReturns["UI_PIPELINE"]>;
160
195
  PAYMENT_METHODS_ENABLED: (event: Array<SellScreenPaymentMethod>, context: PaymentMethodEnabledContext) => MaybePromise<FromShopfrontReturns["PAYMENT_METHODS_ENABLED"]>;
161
196
  AUDIO_PERMISSION_CHANGE: (event: AudioPermissionChangeEvent) => MaybePromise<FromShopfrontReturns["AUDIO_PERMISSION_CHANGE"]>;
197
+ FULFILMENT_GET_ORDER: (id: string) => MaybePromise<FromShopfrontReturns["FULFILMENT_GET_ORDER"]>;
198
+ FULFILMENT_VOID_ORDER: (id: string) => MaybePromise<FromShopfrontReturns["FULFILMENT_VOID_ORDER"]>;
199
+ FULFILMENT_PROCESS_ORDER: (event: FulfilmentProcessEvent) => MaybePromise<FromShopfrontReturns["FULFILMENT_PROCESS_ORDER"]>;
200
+ FULFILMENT_ORDER_APPROVAL: (event: FulfilmentApprovalEvent) => MaybePromise<FromShopfrontReturns["FULFILMENT_ORDER_APPROVAL"]>;
201
+ FULFILMENT_ORDER_COLLECTED: (id: string) => MaybePromise<FromShopfrontReturns["FULFILMENT_ORDER_COLLECTED"]>;
202
+ FULFILMENT_ORDER_COMPLETED: (id: string) => MaybePromise<FromShopfrontReturns["FULFILMENT_ORDER_COMPLETED"]>;
162
203
  }
163
204
  export interface FromShopfront {
164
205
  READY: Ready;
@@ -176,6 +217,12 @@ export interface FromShopfront {
176
217
  UI_PIPELINE: UIPipeline;
177
218
  PAYMENT_METHODS_ENABLED: PaymentMethodsEnabled;
178
219
  AUDIO_PERMISSION_CHANGE: AudioPermissionChange;
220
+ FULFILMENT_GET_ORDER: FulfilmentGetOrder;
221
+ FULFILMENT_VOID_ORDER: FulfilmentVoidOrder;
222
+ FULFILMENT_PROCESS_ORDER: FulfilmentProcessOrder;
223
+ FULFILMENT_ORDER_APPROVAL: FulfilmentOrderApproval;
224
+ FULFILMENT_ORDER_COLLECTED: FulfilmentCollectOrder;
225
+ FULFILMENT_ORDER_COMPLETED: FulfilmentCompleteOrder;
179
226
  }
180
227
  export declare const directShopfrontEvents: readonly ["SALE_ADD_PRODUCT", "SALE_REMOVE_PRODUCT", "SALE_UPDATE_PRODUCTS", "SALE_CHANGE_QUANTITY", "SALE_ADD_CUSTOMER", "SALE_REMOVE_CUSTOMER", "SALE_CLEAR"];
181
228
  export declare type DirectShopfrontEvent = typeof directShopfrontEvents[number];
@@ -188,4 +235,5 @@ export interface FromShopfrontInternal {
188
235
  RESPONSE_OPTION: "RESPONSE_OPTION";
189
236
  RESPONSE_AUDIO_REQUEST: "RESPONSE_AUDIO_REQUEST";
190
237
  RESPONSE_SECURE_KEY: "RESPONSE_SECURE_KEY";
238
+ RESPONSE_CREATE_SALE: "RESPONSE_CREATE_SALE";
191
239
  }
@@ -35,6 +35,17 @@ var ToShopfront;
35
35
  ToShopfront["TABLE_UPDATE"] = "TABLE_UPDATE";
36
36
  ToShopfront["PIPELINE_TRIGGER"] = "PIPELINE_TRIGGER";
37
37
  ToShopfront["SELL_SCREEN_PROMOTION_APPLICABLE"] = "SELL_SCREEN_PROMOTION_APPLICABLE";
38
+ // Fulfilment Emitable Events
39
+ ToShopfront["FULFILMENT_OPT_IN"] = "FULFILMENT_OPT_IN";
40
+ ToShopfront["FULFILMENT_OPTIONS"] = "FULFILMENT_OPTIONS";
41
+ ToShopfront["FULFILMENT_ORDERS_SYNC"] = "FULFILMENT_ORDERS_SYNC";
42
+ ToShopfront["FULFILMENT_ORDERS_CREATE"] = "FULFILMENT_ORDERS_CREATE";
43
+ ToShopfront["FULFILMENT_ORDERS_UPDATE"] = "FULFILMENT_ORDERS_UPDATE";
44
+ ToShopfront["FULFILMENT_ORDERS_CANCEL"] = "FULFILMENT_ORDERS_CANCEL";
45
+ // Sale API events
46
+ ToShopfront["CREATE_SALE"] = "CREATE_SALE";
47
+ // Fulfilment Response Events
48
+ ToShopfront["FULFILMENT_GET_ORDER"] = "FULFILMENT_GET_ORDER";
38
49
  })(ToShopfront = exports.ToShopfront || (exports.ToShopfront = {}));
39
50
  exports.directShopfrontEvents = [
40
51
  "SALE_ADD_PRODUCT",
@@ -0,0 +1,7 @@
1
+ import { BaseEmitableEvent } from "../BaseEmitableEvent";
2
+ export interface FulfilmentOptions {
3
+ requireApproval: boolean;
4
+ }
5
+ export declare class Options extends BaseEmitableEvent<FulfilmentOptions> {
6
+ constructor(options: FulfilmentOptions);
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Options = void 0;
4
+ const BaseEmitableEvent_1 = require("../BaseEmitableEvent");
5
+ const ApplicationEvents_1 = require("../../ApplicationEvents");
6
+ class Options extends BaseEmitableEvent_1.BaseEmitableEvent {
7
+ constructor(options) {
8
+ super(ApplicationEvents_1.ToShopfront.FULFILMENT_OPTIONS, options);
9
+ }
10
+ }
11
+ exports.Options = Options;
@@ -0,0 +1,6 @@
1
+ import { BaseEmitableEvent } from "../BaseEmitableEvent";
2
+ export declare class OrderCancel extends BaseEmitableEvent<{
3
+ id: string;
4
+ }> {
5
+ constructor(id: string);
6
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderCancel = void 0;
4
+ const BaseEmitableEvent_1 = require("../BaseEmitableEvent");
5
+ const ApplicationEvents_1 = require("../../ApplicationEvents");
6
+ class OrderCancel extends BaseEmitableEvent_1.BaseEmitableEvent {
7
+ constructor(id) {
8
+ super(ApplicationEvents_1.ToShopfront.FULFILMENT_ORDERS_CANCEL, {
9
+ id,
10
+ });
11
+ }
12
+ }
13
+ exports.OrderCancel = OrderCancel;
@@ -0,0 +1,7 @@
1
+ import { BaseEmitableEvent } from "../BaseEmitableEvent";
2
+ import { OrderCreateDetails } from "../../APIs/Fulfilment/FulfilmentTypes";
3
+ export declare class OrderCreate extends BaseEmitableEvent<{
4
+ order: OrderCreateDetails;
5
+ }> {
6
+ constructor(order: OrderCreateDetails);
7
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderCreate = void 0;
4
+ const BaseEmitableEvent_1 = require("../BaseEmitableEvent");
5
+ const ApplicationEvents_1 = require("../../ApplicationEvents");
6
+ class OrderCreate extends BaseEmitableEvent_1.BaseEmitableEvent {
7
+ constructor(order) {
8
+ super(ApplicationEvents_1.ToShopfront.FULFILMENT_ORDERS_CREATE, {
9
+ order,
10
+ });
11
+ }
12
+ }
13
+ exports.OrderCreate = OrderCreate;
@@ -0,0 +1,7 @@
1
+ import { BaseEmitableEvent } from "../BaseEmitableEvent";
2
+ import { OrderSummaryDetails } from "../../APIs/Fulfilment/FulfilmentTypes";
3
+ export declare class OrderUpdate extends BaseEmitableEvent<{
4
+ order: OrderSummaryDetails;
5
+ }> {
6
+ constructor(order: OrderSummaryDetails);
7
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderUpdate = void 0;
4
+ const BaseEmitableEvent_1 = require("../BaseEmitableEvent");
5
+ const ApplicationEvents_1 = require("../../ApplicationEvents");
6
+ class OrderUpdate extends BaseEmitableEvent_1.BaseEmitableEvent {
7
+ constructor(order) {
8
+ super(ApplicationEvents_1.ToShopfront.FULFILMENT_ORDERS_UPDATE, {
9
+ order,
10
+ });
11
+ }
12
+ }
13
+ exports.OrderUpdate = OrderUpdate;
@@ -0,0 +1,8 @@
1
+ import { BaseEmitableEvent } from "../BaseEmitableEvent";
2
+ import { OrderCreateDetails } from "../../APIs/Fulfilment/FulfilmentTypes";
3
+ export declare class OrdersSync extends BaseEmitableEvent<{
4
+ orders: Array<OrderCreateDetails>;
5
+ merge: boolean;
6
+ }> {
7
+ constructor(orders: Array<OrderCreateDetails>, merge: boolean);
8
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrdersSync = void 0;
4
+ const BaseEmitableEvent_1 = require("../BaseEmitableEvent");
5
+ const ApplicationEvents_1 = require("../../ApplicationEvents");
6
+ class OrdersSync extends BaseEmitableEvent_1.BaseEmitableEvent {
7
+ constructor(orders, merge) {
8
+ super(ApplicationEvents_1.ToShopfront.FULFILMENT_ORDERS_SYNC, {
9
+ orders,
10
+ merge,
11
+ });
12
+ }
13
+ }
14
+ exports.OrdersSync = OrdersSync;
@@ -0,0 +1,11 @@
1
+ import { BaseEmitableEvent } from "../BaseEmitableEvent";
2
+ import { FulfilmentOptions } from "./Options";
3
+ /**
4
+ * Registers intent from the application to use the Fulfilment API
5
+ * this event is not required but recommended to show the Fulfilment UI in shopfront sooner
6
+ */
7
+ export declare class RegisterIntent extends BaseEmitableEvent<{
8
+ options?: FulfilmentOptions;
9
+ }> {
10
+ constructor(options: FulfilmentOptions);
11
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegisterIntent = void 0;
4
+ const BaseEmitableEvent_1 = require("../BaseEmitableEvent");
5
+ const ApplicationEvents_1 = require("../../ApplicationEvents");
6
+ /**
7
+ * Registers intent from the application to use the Fulfilment API
8
+ * this event is not required but recommended to show the Fulfilment UI in shopfront sooner
9
+ */
10
+ class RegisterIntent extends BaseEmitableEvent_1.BaseEmitableEvent {
11
+ constructor(options) {
12
+ super(ApplicationEvents_1.ToShopfront.FULFILMENT_OPT_IN, {
13
+ options,
14
+ });
15
+ }
16
+ }
17
+ exports.RegisterIntent = RegisterIntent;
@@ -0,0 +1,7 @@
1
+ export { OrderCancel } from "./OrderCancel";
2
+ export { OrderCreate } from "./OrderCreate";
3
+ export { OrderUpdate } from "./OrderUpdate";
4
+ export { OrdersSync } from "./OrdersSync";
5
+ export { Options, FulfilmentOptions } from "./Options";
6
+ export { RegisterIntent } from "./RegisterIntent";
7
+ export { OrderStatus, OrderCreateDetails, OrderSummaryDetails, OrderDetails, OrderItemMatch, OrderItem } from "../../APIs/Fulfilment/FulfilmentTypes";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegisterIntent = exports.Options = exports.OrdersSync = exports.OrderUpdate = exports.OrderCreate = exports.OrderCancel = void 0;
4
+ var OrderCancel_1 = require("./OrderCancel");
5
+ Object.defineProperty(exports, "OrderCancel", { enumerable: true, get: function () { return OrderCancel_1.OrderCancel; } });
6
+ var OrderCreate_1 = require("./OrderCreate");
7
+ Object.defineProperty(exports, "OrderCreate", { enumerable: true, get: function () { return OrderCreate_1.OrderCreate; } });
8
+ var OrderUpdate_1 = require("./OrderUpdate");
9
+ Object.defineProperty(exports, "OrderUpdate", { enumerable: true, get: function () { return OrderUpdate_1.OrderUpdate; } });
10
+ var OrdersSync_1 = require("./OrdersSync");
11
+ Object.defineProperty(exports, "OrdersSync", { enumerable: true, get: function () { return OrdersSync_1.OrdersSync; } });
12
+ var Options_1 = require("./Options");
13
+ Object.defineProperty(exports, "Options", { enumerable: true, get: function () { return Options_1.Options; } });
14
+ var RegisterIntent_1 = require("./RegisterIntent");
15
+ Object.defineProperty(exports, "RegisterIntent", { enumerable: true, get: function () { return RegisterIntent_1.RegisterIntent; } });
@@ -0,0 +1,6 @@
1
+ import { BaseEvent } from "./BaseEvent";
2
+ import { FromShopfrontCallbacks, FromShopfrontReturns } from "../ApplicationEvents";
3
+ export declare class FulfilmentCollectOrder extends BaseEvent {
4
+ constructor(callback: FromShopfrontCallbacks["FULFILMENT_ORDER_COLLECTED"]);
5
+ emit(data: string): Promise<FromShopfrontReturns["FULFILMENT_ORDER_COLLECTED"]>;
6
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FulfilmentCollectOrder = void 0;
4
+ const BaseEvent_1 = require("./BaseEvent");
5
+ class FulfilmentCollectOrder extends BaseEvent_1.BaseEvent {
6
+ constructor(callback) {
7
+ super(callback);
8
+ }
9
+ async emit(data) {
10
+ return this.callback(data, undefined);
11
+ }
12
+ }
13
+ exports.FulfilmentCollectOrder = FulfilmentCollectOrder;
@@ -0,0 +1,6 @@
1
+ import { BaseEvent } from "./BaseEvent";
2
+ import { FromShopfrontCallbacks, FromShopfrontReturns } from "../ApplicationEvents";
3
+ export declare class FulfilmentCompleteOrder extends BaseEvent {
4
+ constructor(callback: FromShopfrontCallbacks["FULFILMENT_ORDER_COMPLETED"]);
5
+ emit(data: string): Promise<FromShopfrontReturns["FULFILMENT_ORDER_COLLECTED"]>;
6
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FulfilmentCompleteOrder = void 0;
4
+ const BaseEvent_1 = require("./BaseEvent");
5
+ class FulfilmentCompleteOrder extends BaseEvent_1.BaseEvent {
6
+ constructor(callback) {
7
+ super(callback);
8
+ }
9
+ async emit(data) {
10
+ return this.callback(data, undefined);
11
+ }
12
+ }
13
+ exports.FulfilmentCompleteOrder = FulfilmentCompleteOrder;
@@ -0,0 +1,10 @@
1
+ import { BaseEvent } from "./BaseEvent";
2
+ import { FromShopfrontCallbacks, FromShopfrontReturns } from "../ApplicationEvents";
3
+ import { MaybePromise } from "../Utilities/MiscTypes";
4
+ import { Bridge } from "../Bridge";
5
+ import { OrderDetails } from "../APIs/Fulfilment/FulfilmentTypes";
6
+ export declare class FulfilmentGetOrder extends BaseEvent<string, MaybePromise<FromShopfrontReturns["FULFILMENT_GET_ORDER"]>, MaybePromise<FromShopfrontReturns["FULFILMENT_GET_ORDER"]>> {
7
+ constructor(callback: FromShopfrontCallbacks["FULFILMENT_GET_ORDER"]);
8
+ emit(data: string): Promise<FromShopfrontReturns["FULFILMENT_GET_ORDER"]>;
9
+ static respond(bridge: Bridge, order: OrderDetails, id: string): Promise<void>;
10
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FulfilmentGetOrder = void 0;
4
+ const BaseEvent_1 = require("./BaseEvent");
5
+ const ApplicationEvents_1 = require("../ApplicationEvents");
6
+ class FulfilmentGetOrder extends BaseEvent_1.BaseEvent {
7
+ constructor(callback) {
8
+ super(callback);
9
+ }
10
+ async emit(data) {
11
+ return this.callback(data, undefined);
12
+ }
13
+ static async respond(bridge, order, id) {
14
+ bridge.sendMessage(ApplicationEvents_1.ToShopfront.FULFILMENT_GET_ORDER, order, id);
15
+ }
16
+ }
17
+ exports.FulfilmentGetOrder = FulfilmentGetOrder;
@@ -0,0 +1,6 @@
1
+ import { BaseEvent } from "./BaseEvent";
2
+ import { FromShopfrontCallbacks, FromShopfrontReturns, FulfilmentApprovalEvent } from "../ApplicationEvents";
3
+ export declare class FulfilmentOrderApproval extends BaseEvent<FulfilmentApprovalEvent, FromShopfrontReturns["FULFILMENT_ORDER_APPROVAL"], FromShopfrontReturns["FULFILMENT_ORDER_APPROVAL"]> {
4
+ constructor(callback: FromShopfrontCallbacks["FULFILMENT_ORDER_APPROVAL"]);
5
+ emit(data: FulfilmentApprovalEvent): Promise<FromShopfrontReturns["FULFILMENT_ORDER_APPROVAL"]>;
6
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FulfilmentOrderApproval = void 0;
4
+ const BaseEvent_1 = require("./BaseEvent");
5
+ class FulfilmentOrderApproval extends BaseEvent_1.BaseEvent {
6
+ constructor(callback) {
7
+ super(callback);
8
+ }
9
+ async emit(data) {
10
+ return this.callback(data, undefined);
11
+ }
12
+ }
13
+ exports.FulfilmentOrderApproval = FulfilmentOrderApproval;
@@ -0,0 +1,14 @@
1
+ import { BaseEvent } from "./BaseEvent";
2
+ import { FromShopfrontCallbacks, FromShopfrontReturns, FulfilmentProcessEvent } from "../ApplicationEvents";
3
+ import { ShopfrontSaleState } from "../APIs/Sale";
4
+ import { MaybePromise } from "../Utilities/MiscTypes";
5
+ export declare class FulfilmentProcessOrder extends BaseEvent<{
6
+ id: string;
7
+ sale: ShopfrontSaleState;
8
+ }, MaybePromise<FromShopfrontReturns["FULFILMENT_PROCESS_ORDER"]>, MaybePromise<FromShopfrontReturns["FULFILMENT_PROCESS_ORDER"]>, FulfilmentProcessEvent> {
9
+ constructor(callback: FromShopfrontCallbacks["FULFILMENT_PROCESS_ORDER"]);
10
+ emit(data: {
11
+ id: string;
12
+ sale: ShopfrontSaleState;
13
+ }): Promise<FromShopfrontReturns["FULFILMENT_PROCESS_ORDER"]>;
14
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FulfilmentProcessOrder = void 0;
4
+ const BaseEvent_1 = require("./BaseEvent");
5
+ const Sale_1 = require("../APIs/Sale");
6
+ class FulfilmentProcessOrder extends BaseEvent_1.BaseEvent {
7
+ constructor(callback) {
8
+ super(callback);
9
+ }
10
+ async emit(data) {
11
+ return this.callback({
12
+ id: data.id,
13
+ sale: new Sale_1.Sale(Sale_1.Sale.buildSaleData(data.sale)),
14
+ }, undefined);
15
+ }
16
+ }
17
+ exports.FulfilmentProcessOrder = FulfilmentProcessOrder;
@@ -0,0 +1,6 @@
1
+ import { BaseEvent } from "./BaseEvent";
2
+ import { FromShopfrontCallbacks, FromShopfrontReturns } from "../ApplicationEvents";
3
+ export declare class FulfilmentVoidOrder extends BaseEvent {
4
+ constructor(callback: FromShopfrontCallbacks["FULFILMENT_VOID_ORDER"]);
5
+ emit(data: string): Promise<FromShopfrontReturns["FULFILMENT_VOID_ORDER"]>;
6
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FulfilmentVoidOrder = void 0;
4
+ const BaseEvent_1 = require("./BaseEvent");
5
+ class FulfilmentVoidOrder extends BaseEvent_1.BaseEvent {
6
+ constructor(callback) {
7
+ super(callback);
8
+ }
9
+ async emit(data) {
10
+ return this.callback(data, undefined);
11
+ }
12
+ }
13
+ exports.FulfilmentVoidOrder = FulfilmentVoidOrder;
@@ -0,0 +1,26 @@
1
+ import { Sale, ShopfrontSalePaymentStatus } from "../APIs/Sale";
2
+ import { BaseSaleData } from "../APIs/Sale/BaseSale";
3
+ export interface SaleProductData {
4
+ uuid: string;
5
+ caseQuantity: number;
6
+ quantity: number;
7
+ price: number;
8
+ metaData: Record<string, unknown>;
9
+ products: Array<SaleProductData>;
10
+ note: string;
11
+ }
12
+ export interface SalePaymentData {
13
+ method: string;
14
+ type: undefined | string;
15
+ amount: number;
16
+ status: undefined | ShopfrontSalePaymentStatus;
17
+ rounding: number;
18
+ cashout: number;
19
+ metaData: Record<string, unknown>;
20
+ }
21
+ export interface SaleData extends BaseSaleData {
22
+ customer: null | string;
23
+ payments: Array<SalePaymentData>;
24
+ products: Array<SaleProductData>;
25
+ }
26
+ export declare function buildSaleData(sale: Sale): SaleData;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSaleData = void 0;
4
+ function buildSaleProductData(product) {
5
+ const price = product.getPrice();
6
+ if (typeof price !== "number") {
7
+ throw new TypeError("Sale Product must have price when creating the sale.");
8
+ }
9
+ const caseQuantity = product.getCaseQuantity();
10
+ if (typeof caseQuantity !== "number") {
11
+ throw new TypeError("Sale Product must have case quantity when creating the sale.");
12
+ }
13
+ return {
14
+ uuid: product.getId(),
15
+ quantity: product.getQuantity(),
16
+ metaData: product.getMetaData(),
17
+ products: product.getContains().map(buildSaleProductData),
18
+ note: product.getNote(),
19
+ caseQuantity,
20
+ price,
21
+ };
22
+ }
23
+ function buildSaleData(sale) {
24
+ const customer = sale.getCustomer();
25
+ return {
26
+ register: sale.getRegister(),
27
+ clientId: sale.getClientId(),
28
+ notes: {
29
+ internal: sale.getInternalNote(),
30
+ sale: sale.getExternalNote(),
31
+ },
32
+ totals: {
33
+ sale: sale.getSaleTotal(),
34
+ paid: sale.getPaidTotal(),
35
+ savings: sale.getSavingsTotal(),
36
+ discount: sale.getDiscountTotal(),
37
+ },
38
+ linkedTo: sale.getLinkedTo(),
39
+ orderReference: sale.getOrderReference(),
40
+ refundReason: sale.getRefundReason(),
41
+ priceSet: sale.getPriceSet(),
42
+ metaData: sale.getMetaData(),
43
+ customer: customer ? customer.getId() : null,
44
+ products: sale.getProducts().map(buildSaleProductData),
45
+ payments: sale.getPayments().map(payment => ({
46
+ method: payment.getId(),
47
+ type: payment.getType(),
48
+ amount: payment.getAmount(),
49
+ status: payment.getStatus(),
50
+ rounding: payment.getRounding() || 0,
51
+ cashout: payment.getCashout() || 0,
52
+ metaData: payment.getMetaData()
53
+ })),
54
+ };
55
+ }
56
+ exports.buildSaleData = buildSaleData;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Fast UUID generator, RFC4122 version 4 compliant.
3
+ * @author Jeff Ward (jcward.com).
4
+ * @license MIT license
5
+ * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
6
+ **/
7
+ export default class UUID {
8
+ protected lut: Array<string>;
9
+ constructor();
10
+ generate(): string;
11
+ static generate(): string;
12
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Fast UUID generator, RFC4122 version 4 compliant.
5
+ * @author Jeff Ward (jcward.com).
6
+ * @license MIT license
7
+ * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
8
+ **/
9
+ class UUID {
10
+ constructor() {
11
+ this.lut = [];
12
+ for (let i = 0; i < 256; i++) {
13
+ this.lut[i] = (i < 16 ? "0" : "") + (i).toString(16);
14
+ }
15
+ this.generate = this.generate.bind(this);
16
+ }
17
+ generate() {
18
+ const d0 = Math.random() * 0xffffffff | 0;
19
+ const d1 = Math.random() * 0xffffffff | 0;
20
+ const d2 = Math.random() * 0xffffffff | 0;
21
+ const d3 = Math.random() * 0xffffffff | 0;
22
+ return this.lut[d0 & 0xff] +
23
+ this.lut[d0 >> 8 & 0xff] +
24
+ this.lut[d0 >> 16 & 0xff] +
25
+ this.lut[d0 >> 24 & 0xff] + "-" +
26
+ this.lut[d1 & 0xff] +
27
+ this.lut[d1 >> 8 & 0xff] + "-" +
28
+ this.lut[d1 >> 16 & 0x0f | 0x40] +
29
+ this.lut[d1 >> 24 & 0xff] + "-" +
30
+ this.lut[d2 & 0x3f | 0x80] +
31
+ this.lut[d2 >> 8 & 0xff] + "-" +
32
+ this.lut[d2 >> 16 & 0xff] +
33
+ this.lut[d2 >> 24 & 0xff] +
34
+ this.lut[d3 & 0xff] +
35
+ this.lut[d3 >> 8 & 0xff] +
36
+ this.lut[d3 >> 16 & 0xff] +
37
+ this.lut[d3 >> 24 & 0xff];
38
+ }
39
+ static generate() {
40
+ if (typeof self?.crypto?.randomUUID === "function") {
41
+ return self.crypto.randomUUID();
42
+ }
43
+ return (new UUID()).generate();
44
+ }
45
+ }
46
+ exports.default = UUID;
package/lib/index.d.ts CHANGED
@@ -6,7 +6,9 @@ export { Dialog } from "./Actions/Dialog";
6
6
  export { SaleKey } from "./Actions/SaleKey";
7
7
  export { SellScreenOption } from "./EmitableEvents/SellScreenOption";
8
8
  export { TableUpdate } from "./EmitableEvents/TableUpdate";
9
+ export { SaleData as SaleCreateData, SalePaymentData as SaleCreatePaymentData, SaleProductData as SaleCreateProductData } from "./Utilities/SaleCreate";
9
10
  export { SellScreenPromotionApplicable } from "./EmitableEvents/SellScreenPromotionApplicable";
10
11
  export { CompletedSale } from "./Events/SaleComplete";
11
12
  export { Application, ShopfrontEmbeddedVerificationToken, ShopfrontTokenDecodingError } from "./Application";
12
- export * as Sales from "./APIs/CurrentSale/index";
13
+ export * as Sales from "./APIs/Sale/index";
14
+ export * as Fulfilment from "./EmitableEvents/Fulfilment/index";
package/lib/index.js CHANGED
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Sales = exports.ShopfrontTokenDecodingError = exports.Application = exports.SellScreenPromotionApplicable = exports.TableUpdate = exports.SellScreenOption = exports.SaleKey = exports.Dialog = exports.Toast = exports.Redirect = exports.Button = exports.Bridge = void 0;
26
+ exports.Fulfilment = exports.Sales = exports.ShopfrontTokenDecodingError = exports.Application = exports.SellScreenPromotionApplicable = exports.TableUpdate = exports.SellScreenOption = exports.SaleKey = exports.Dialog = exports.Toast = exports.Redirect = exports.Button = exports.Bridge = void 0;
27
27
  var Bridge_1 = require("./Bridge");
28
28
  Object.defineProperty(exports, "Bridge", { enumerable: true, get: function () { return Bridge_1.Bridge; } });
29
29
  var Button_1 = require("./Actions/Button");
@@ -45,4 +45,5 @@ Object.defineProperty(exports, "SellScreenPromotionApplicable", { enumerable: tr
45
45
  var Application_1 = require("./Application");
46
46
  Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return Application_1.Application; } });
47
47
  Object.defineProperty(exports, "ShopfrontTokenDecodingError", { enumerable: true, get: function () { return Application_1.ShopfrontTokenDecodingError; } });
48
- exports.Sales = __importStar(require("./APIs/CurrentSale/index"));
48
+ exports.Sales = __importStar(require("./APIs/Sale/index"));
49
+ exports.Fulfilment = __importStar(require("./EmitableEvents/Fulfilment/index"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shopfront/bridge",
3
- "version": "1.16.0",
3
+ "version": "1.18.2",
4
4
  "main": "./lib/index.js",
5
5
  "license": "ISC",
6
6
  "description": "The bridge used to embed your application within Shopfront",