@shopfront/bridge 2.0.2 → 2.0.4
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.
- package/.github/workflows/npm-publish.yml +13 -2
- package/lib/Application.d.ts +2 -18
- package/lib/Application.js +1 -141
- package/lib/ApplicationEvents.d.ts +54 -5
- package/lib/BaseApplication.d.ts +11 -17
- package/lib/BaseApplication.js +197 -1
- package/lib/BaseBridge.d.ts +1 -0
- package/lib/BaseBridge.js +1 -3
- package/lib/Bridge.d.ts +0 -19
- package/lib/Bridge.js +2 -1
- package/lib/Events/DirectEvents/BaseDirectEvent.d.ts +13 -0
- package/lib/Events/DirectEvents/BaseDirectEvent.js +5 -0
- package/lib/Events/DirectEvents/SaleAddCustomer.d.ts +13 -0
- package/lib/Events/DirectEvents/SaleAddCustomer.js +24 -0
- package/lib/Events/DirectEvents/SaleAddProduct.d.ts +13 -0
- package/lib/Events/DirectEvents/SaleAddProduct.js +24 -0
- package/lib/Events/DirectEvents/SaleChangeQuantity.d.ts +13 -0
- package/lib/Events/DirectEvents/SaleChangeQuantity.js +24 -0
- package/lib/Events/DirectEvents/SaleClear.d.ts +13 -0
- package/lib/Events/DirectEvents/SaleClear.js +21 -0
- package/lib/Events/DirectEvents/SaleRemoveCustomer.d.ts +13 -0
- package/lib/Events/DirectEvents/SaleRemoveCustomer.js +21 -0
- package/lib/Events/DirectEvents/SaleRemoveProduct.d.ts +13 -0
- package/lib/Events/DirectEvents/SaleRemoveProduct.js +24 -0
- package/lib/Events/DirectEvents/SaleUpdateProducts.d.ts +13 -0
- package/lib/Events/DirectEvents/SaleUpdateProducts.js +24 -0
- package/lib/Events/DirectEvents/types/SaleEventData.d.ts +70 -0
- package/lib/Events/DirectEvents/types/SaleEventData.js +1 -0
- package/lib/Mocks/APIs/Sale/MockCurrentSale.d.ts +7 -2
- package/lib/Mocks/APIs/Sale/MockCurrentSale.js +94 -10
- package/lib/Mocks/MockApplication.d.ts +7 -20
- package/lib/Mocks/MockApplication.js +4 -156
- package/lib/Mocks/MockBridge.js +2 -0
- package/package.json +1 -1
- package/.idea/codeStyles/Project.xml +0 -10
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/git_toolbox_blame.xml +0 -6
- package/.idea/git_toolbox_prj.xml +0 -15
- package/.idea/inspectionProfiles/Project_Default.xml +0 -11
- package/.idea/jsLinters/eslint.xml +0 -6
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/php.xml +0 -33
- package/.idea/shopfront-embedded-bridge.iml +0 -10
- package/.idea/vcs.xml +0 -6
|
@@ -1,27 +1,5 @@
|
|
|
1
1
|
import { isDirectShopfrontEvent, ToShopfront, } from "../ApplicationEvents.js";
|
|
2
2
|
import { BaseApplication } from "../BaseApplication.js";
|
|
3
|
-
import { AudioPermissionChange } from "../Events/AudioPermissionChange.js";
|
|
4
|
-
import { AudioReady } from "../Events/AudioReady.js";
|
|
5
|
-
import { FormatIntegratedProduct } from "../Events/FormatIntegratedProduct.js";
|
|
6
|
-
import { FulfilmentCollectOrder } from "../Events/FulfilmentCollectOrder.js";
|
|
7
|
-
import { FulfilmentCompleteOrder } from "../Events/FulfilmentCompleteOrder.js";
|
|
8
|
-
import { FulfilmentGetOrder } from "../Events/FulfilmentGetOrder.js";
|
|
9
|
-
import { FulfilmentOrderApproval } from "../Events/FulfilmentOrderApproval.js";
|
|
10
|
-
import { FulfilmentProcessOrder } from "../Events/FulfilmentProcessOrder.js";
|
|
11
|
-
import { FulfilmentVoidOrder } from "../Events/FulfilmentVoidOrder.js";
|
|
12
|
-
import { GiftCardCodeCheck } from "../Events/GiftCardCodeCheck.js";
|
|
13
|
-
import { InternalPageMessage } from "../Events/InternalPageMessage.js";
|
|
14
|
-
import { PaymentMethodsEnabled } from "../Events/PaymentMethodsEnabled.js";
|
|
15
|
-
import { Ready } from "../Events/Ready.js";
|
|
16
|
-
import { RegisterChanged } from "../Events/RegisterChanged.js";
|
|
17
|
-
import { RequestButtons } from "../Events/RequestButtons.js";
|
|
18
|
-
import { RequestCustomerListOptions } from "../Events/RequestCustomerListOptions.js";
|
|
19
|
-
import { RequestSaleKeys } from "../Events/RequestSaleKeys.js";
|
|
20
|
-
import { RequestSellScreenOptions } from "../Events/RequestSellScreenOptions.js";
|
|
21
|
-
import { RequestSettings } from "../Events/RequestSettings.js";
|
|
22
|
-
import { RequestTableColumns } from "../Events/RequestTableColumns.js";
|
|
23
|
-
import { SaleComplete } from "../Events/SaleComplete.js";
|
|
24
|
-
import { UIPipeline } from "../Events/UIPipeline.js";
|
|
25
3
|
import ActionEventRegistrar from "../Utilities/ActionEventRegistrar.js";
|
|
26
4
|
import { MockCurrentSale } from "./APIs/Sale/MockCurrentSale.js";
|
|
27
5
|
import { MockDatabase } from "./Database/MockDatabase.js";
|
|
@@ -99,12 +77,11 @@ export class MockApplication extends BaseApplication {
|
|
|
99
77
|
if (isDirectShopfrontEvent(event)) {
|
|
100
78
|
const listeners = this.directListeners[event];
|
|
101
79
|
if (typeof listeners === "undefined") {
|
|
102
|
-
|
|
103
|
-
return;
|
|
80
|
+
return this.bridge.sendMessage(ToShopfront.NOT_LISTENING_TO_EVENT);
|
|
104
81
|
}
|
|
105
82
|
const results = [];
|
|
106
83
|
for (const e of listeners.values()) {
|
|
107
|
-
results.push(e());
|
|
84
|
+
results.push(e.emit(data));
|
|
108
85
|
}
|
|
109
86
|
await Promise.all(results);
|
|
110
87
|
return;
|
|
@@ -125,135 +102,6 @@ export class MockApplication extends BaseApplication {
|
|
|
125
102
|
await Promise.allSettled(results);
|
|
126
103
|
// The responses have been removed as we don't currently need them
|
|
127
104
|
}
|
|
128
|
-
/**
|
|
129
|
-
* @inheritDoc
|
|
130
|
-
*/
|
|
131
|
-
addEventListener(event, callback) {
|
|
132
|
-
if (isDirectShopfrontEvent(event)) {
|
|
133
|
-
if (typeof this.directListeners[event] === "undefined") {
|
|
134
|
-
this.directListeners[event] = new Set();
|
|
135
|
-
}
|
|
136
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
137
|
-
this.directListeners[event].add(callback);
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
141
|
-
let c;
|
|
142
|
-
switch (event) {
|
|
143
|
-
case "READY":
|
|
144
|
-
c = new Ready(callback);
|
|
145
|
-
this.listeners[event].set(callback, c);
|
|
146
|
-
break;
|
|
147
|
-
case "REQUEST_SETTINGS":
|
|
148
|
-
c = new RequestSettings(callback);
|
|
149
|
-
this.listeners[event].set(callback, c);
|
|
150
|
-
break;
|
|
151
|
-
case "REQUEST_BUTTONS":
|
|
152
|
-
c = new RequestButtons(callback);
|
|
153
|
-
this.listeners[event].set(callback, c);
|
|
154
|
-
break;
|
|
155
|
-
case "REQUEST_TABLE_COLUMNS":
|
|
156
|
-
c = new RequestTableColumns(callback);
|
|
157
|
-
this.listeners[event].set(callback, c);
|
|
158
|
-
break;
|
|
159
|
-
case "REQUEST_SELL_SCREEN_OPTIONS":
|
|
160
|
-
c = new RequestSellScreenOptions(callback);
|
|
161
|
-
this.listeners[event].set(callback, c);
|
|
162
|
-
break;
|
|
163
|
-
case "INTERNAL_PAGE_MESSAGE":
|
|
164
|
-
c = new InternalPageMessage(callback, this);
|
|
165
|
-
this.listeners[event].set(callback, c);
|
|
166
|
-
break;
|
|
167
|
-
case "REGISTER_CHANGED":
|
|
168
|
-
c = new RegisterChanged(callback);
|
|
169
|
-
this.listeners[event].set(callback, c);
|
|
170
|
-
break;
|
|
171
|
-
case "REQUEST_CUSTOMER_LIST_OPTIONS":
|
|
172
|
-
c = new RequestCustomerListOptions(callback);
|
|
173
|
-
this.listeners[event].set(callback, c);
|
|
174
|
-
break;
|
|
175
|
-
case "FORMAT_INTEGRATED_PRODUCT":
|
|
176
|
-
c = new FormatIntegratedProduct(callback);
|
|
177
|
-
this.listeners[event].set(callback, c);
|
|
178
|
-
break;
|
|
179
|
-
case "REQUEST_SALE_KEYS":
|
|
180
|
-
c = new RequestSaleKeys(callback);
|
|
181
|
-
this.listeners[event].set(callback, c);
|
|
182
|
-
break;
|
|
183
|
-
case "SALE_COMPLETE":
|
|
184
|
-
c = new SaleComplete(callback);
|
|
185
|
-
this.listeners[event].set(callback, c);
|
|
186
|
-
break;
|
|
187
|
-
case "UI_PIPELINE":
|
|
188
|
-
c = new UIPipeline(callback);
|
|
189
|
-
this.listeners[event].set(callback, c);
|
|
190
|
-
break;
|
|
191
|
-
case "PAYMENT_METHODS_ENABLED":
|
|
192
|
-
c = new PaymentMethodsEnabled(callback);
|
|
193
|
-
this.listeners[event].set(callback, c);
|
|
194
|
-
break;
|
|
195
|
-
case "AUDIO_READY":
|
|
196
|
-
c = new AudioReady(callback);
|
|
197
|
-
this.listeners[event].set(callback, c);
|
|
198
|
-
break;
|
|
199
|
-
case "AUDIO_PERMISSION_CHANGE":
|
|
200
|
-
c = new AudioPermissionChange(callback);
|
|
201
|
-
this.listeners[event].set(callback, c);
|
|
202
|
-
break;
|
|
203
|
-
case "FULFILMENT_GET_ORDER":
|
|
204
|
-
if (this.listeners[event].size !== 0) {
|
|
205
|
-
throw new TypeError("Application already has 'FULFILMENT_GET_ORDER' event listener registered.");
|
|
206
|
-
}
|
|
207
|
-
c = new FulfilmentGetOrder(callback);
|
|
208
|
-
this.listeners[event].set(callback, c);
|
|
209
|
-
break;
|
|
210
|
-
case "FULFILMENT_VOID_ORDER":
|
|
211
|
-
c = new FulfilmentVoidOrder(callback);
|
|
212
|
-
this.listeners[event].set(callback, c);
|
|
213
|
-
break;
|
|
214
|
-
case "FULFILMENT_PROCESS_ORDER":
|
|
215
|
-
c = new FulfilmentProcessOrder(callback);
|
|
216
|
-
this.listeners[event].set(callback, c);
|
|
217
|
-
break;
|
|
218
|
-
case "FULFILMENT_ORDER_APPROVAL":
|
|
219
|
-
c = new FulfilmentOrderApproval(callback);
|
|
220
|
-
this.listeners[event].set(callback, c);
|
|
221
|
-
break;
|
|
222
|
-
case "FULFILMENT_ORDER_COLLECTED":
|
|
223
|
-
c = new FulfilmentCollectOrder(callback);
|
|
224
|
-
this.listeners[event].set(callback, c);
|
|
225
|
-
break;
|
|
226
|
-
case "FULFILMENT_ORDER_COMPLETED":
|
|
227
|
-
c = new FulfilmentCompleteOrder(callback);
|
|
228
|
-
this.listeners[event].set(callback, c);
|
|
229
|
-
break;
|
|
230
|
-
case "GIFT_CARD_CODE_CHECK":
|
|
231
|
-
c = new GiftCardCodeCheck(callback);
|
|
232
|
-
this.listeners[event].set(callback, c);
|
|
233
|
-
break;
|
|
234
|
-
}
|
|
235
|
-
if (typeof c === "undefined") {
|
|
236
|
-
throw new TypeError(`${event} has not been defined`);
|
|
237
|
-
}
|
|
238
|
-
if (event === "READY" && this.isReady) {
|
|
239
|
-
c = c;
|
|
240
|
-
c.emit({
|
|
241
|
-
outlet: this.outlet,
|
|
242
|
-
register: this.register,
|
|
243
|
-
user: this.user,
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* @inheritDoc
|
|
249
|
-
*/
|
|
250
|
-
removeEventListener(event, callback) {
|
|
251
|
-
if (isDirectShopfrontEvent(event)) {
|
|
252
|
-
this.directListeners[event]?.delete(callback);
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
this.listeners[event].delete(callback);
|
|
256
|
-
}
|
|
257
105
|
/**
|
|
258
106
|
* @inheritDoc
|
|
259
107
|
*/
|
|
@@ -318,7 +166,6 @@ export class MockApplication extends BaseApplication {
|
|
|
318
166
|
const payments = sale.getPayments();
|
|
319
167
|
let totalPaid = 0;
|
|
320
168
|
for (const payment of payments) {
|
|
321
|
-
// TODO: Double check this is still the case
|
|
322
169
|
if (payment.getCashout()) {
|
|
323
170
|
return {
|
|
324
171
|
success: false,
|
|
@@ -473,7 +320,8 @@ export class MockApplication extends BaseApplication {
|
|
|
473
320
|
else {
|
|
474
321
|
params = data[0];
|
|
475
322
|
}
|
|
476
|
-
// We don't care about the Bridge
|
|
323
|
+
// We don't care about the Bridge param in FromShopfront events, as that is passed in by the `emit` method
|
|
324
|
+
// Direct events do not pass in a second parameter
|
|
477
325
|
}
|
|
478
326
|
await this.emit(event, params, "");
|
|
479
327
|
}
|
package/lib/Mocks/MockBridge.js
CHANGED
package/package.json
CHANGED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<component name="ProjectCodeStyleConfiguration">
|
|
2
|
-
<code_scheme name="Project" version="173">
|
|
3
|
-
<JSCodeStyleSettings version="0">
|
|
4
|
-
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
5
|
-
</JSCodeStyleSettings>
|
|
6
|
-
<TypeScriptCodeStyleSettings version="0">
|
|
7
|
-
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
8
|
-
</TypeScriptCodeStyleSettings>
|
|
9
|
-
</code_scheme>
|
|
10
|
-
</component>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="GitToolBoxProjectSettings">
|
|
4
|
-
<option name="commitMessageIssueKeyValidationOverride">
|
|
5
|
-
<BoolValueOverride>
|
|
6
|
-
<option name="enabled" value="true" />
|
|
7
|
-
</BoolValueOverride>
|
|
8
|
-
</option>
|
|
9
|
-
<option name="commitMessageValidationEnabledOverride">
|
|
10
|
-
<BoolValueOverride>
|
|
11
|
-
<option name="enabled" value="true" />
|
|
12
|
-
</BoolValueOverride>
|
|
13
|
-
</option>
|
|
14
|
-
</component>
|
|
15
|
-
</project>
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
<component name="InspectionProjectProfileManager">
|
|
2
|
-
<profile version="1.0">
|
|
3
|
-
<option name="myName" value="Project Default" />
|
|
4
|
-
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
|
5
|
-
<inspection_tool class="ImplicitTypeConversion" enabled="true" level="WARNING" enabled_by_default="true">
|
|
6
|
-
<option name="BITS" value="1720" />
|
|
7
|
-
<option name="FLAG_EXPLICIT_CONVERSION" value="true" />
|
|
8
|
-
<option name="IGNORE_NODESET_TO_BOOLEAN_VIA_STRING" value="true" />
|
|
9
|
-
</inspection_tool>
|
|
10
|
-
</profile>
|
|
11
|
-
</component>
|
package/.idea/misc.xml
DELETED
package/.idea/modules.xml
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/shopfront-embedded-bridge.iml" filepath="$PROJECT_DIR$/.idea/shopfront-embedded-bridge.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|
package/.idea/php.xml
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="MessDetectorOptionsConfiguration">
|
|
4
|
-
<option name="transferred" value="true" />
|
|
5
|
-
</component>
|
|
6
|
-
<component name="PHPCSFixerOptionsConfiguration">
|
|
7
|
-
<option name="transferred" value="true" />
|
|
8
|
-
</component>
|
|
9
|
-
<component name="PHPCodeSnifferOptionsConfiguration">
|
|
10
|
-
<option name="transferred" value="true" />
|
|
11
|
-
</component>
|
|
12
|
-
<component name="PhpCodeSniffer">
|
|
13
|
-
<phpcs_settings>
|
|
14
|
-
<phpcs_by_interpreter asDefaultInterpreter="true" interpreter_id="bb870563-23b2-4cfc-9ac5-70a3316d78e5" timeout="30000" />
|
|
15
|
-
</phpcs_settings>
|
|
16
|
-
</component>
|
|
17
|
-
<component name="PhpStan">
|
|
18
|
-
<PhpStan_settings>
|
|
19
|
-
<phpstan_by_interpreter asDefaultInterpreter="true" interpreter_id="bb870563-23b2-4cfc-9ac5-70a3316d78e5" timeout="60000" />
|
|
20
|
-
</PhpStan_settings>
|
|
21
|
-
</component>
|
|
22
|
-
<component name="PhpStanOptionsConfiguration">
|
|
23
|
-
<option name="transferred" value="true" />
|
|
24
|
-
</component>
|
|
25
|
-
<component name="Psalm">
|
|
26
|
-
<Psalm_settings>
|
|
27
|
-
<psalm_fixer_by_interpreter asDefaultInterpreter="true" interpreter_id="bb870563-23b2-4cfc-9ac5-70a3316d78e5" timeout="60000" />
|
|
28
|
-
</Psalm_settings>
|
|
29
|
-
</component>
|
|
30
|
-
<component name="PsalmOptionsConfiguration">
|
|
31
|
-
<option name="transferred" value="true" />
|
|
32
|
-
</component>
|
|
33
|
-
</project>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="WEB_MODULE" version="4">
|
|
3
|
-
<component name="NewModuleRootManager">
|
|
4
|
-
<content url="file://$MODULE_DIR$">
|
|
5
|
-
<excludeFolder url="file://$MODULE_DIR$/lib" />
|
|
6
|
-
</content>
|
|
7
|
-
<orderEntry type="inheritedJdk" />
|
|
8
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
9
|
-
</component>
|
|
10
|
-
</module>
|