@capacitor-community/stripe-terminal 6.0.2 → 6.2.0

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 (36) hide show
  1. package/CapacitorCommunityStripeTerminal.podspec +1 -1
  2. package/README.md +767 -28
  3. package/android/build.gradle +1 -1
  4. package/android/src/main/java/com/getcapacitor/community/stripe/terminal/StripeTerminal.java +372 -51
  5. package/android/src/main/java/com/getcapacitor/community/stripe/terminal/StripeTerminalPlugin.java +61 -5
  6. package/android/src/main/java/com/getcapacitor/community/stripe/terminal/TerminalEvent.kt +14 -0
  7. package/android/src/main/java/com/getcapacitor/community/stripe/terminal/helper/TerminalMappers.java +96 -0
  8. package/dist/docs.json +1389 -111
  9. package/dist/esm/definitions.d.ts +263 -11
  10. package/dist/esm/definitions.js +1 -8
  11. package/dist/esm/definitions.js.map +1 -1
  12. package/dist/esm/events.enum.d.ts +15 -1
  13. package/dist/esm/events.enum.js +14 -0
  14. package/dist/esm/events.enum.js.map +1 -1
  15. package/dist/esm/stripe-types/proto.d.ts +501 -0
  16. package/dist/esm/stripe-types/proto.js +2 -0
  17. package/dist/esm/stripe-types/proto.js.map +1 -0
  18. package/dist/esm/stripe.enum.d.ts +154 -0
  19. package/dist/esm/stripe.enum.js +170 -0
  20. package/dist/esm/stripe.enum.js.map +1 -0
  21. package/dist/esm/terminalMappers.d.ts +23 -0
  22. package/dist/esm/terminalMappers.js +119 -0
  23. package/dist/esm/terminalMappers.js.map +1 -0
  24. package/dist/esm/web.d.ts +25 -2
  25. package/dist/esm/web.js +137 -13
  26. package/dist/esm/web.js.map +1 -1
  27. package/dist/plugin.cjs.js +428 -13
  28. package/dist/plugin.cjs.js.map +1 -1
  29. package/dist/plugin.js +429 -15
  30. package/dist/plugin.js.map +1 -1
  31. package/ios/Plugin/StripeTerminal.swift +345 -61
  32. package/ios/Plugin/StripeTerminalPlugin.m +7 -0
  33. package/ios/Plugin/StripeTerminalPlugin.swift +29 -4
  34. package/ios/Plugin/TerminalEvents.swift +14 -0
  35. package/ios/Plugin/TerminalMappers.swift +269 -0
  36. package/package.json +4 -1
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var core = require('@capacitor/core');
6
+ var terminalJs = require('@stripe/terminal-js');
6
7
 
7
8
  exports.TerminalEventsEnum = void 0;
8
9
  (function (TerminalEventsEnum) {
@@ -11,11 +12,25 @@ exports.TerminalEventsEnum = void 0;
11
12
  TerminalEventsEnum["CancelDiscoveredReaders"] = "terminalCancelDiscoveredReaders";
12
13
  TerminalEventsEnum["ConnectedReader"] = "terminalConnectedReader";
13
14
  TerminalEventsEnum["DisconnectedReader"] = "terminalDisconnectedReader";
15
+ TerminalEventsEnum["ConnectionStatusChange"] = "terminalConnectionStatusChange";
16
+ TerminalEventsEnum["UnexpectedReaderDisconnect"] = "terminalUnexpectedReaderDisconnect";
14
17
  TerminalEventsEnum["ConfirmedPaymentIntent"] = "terminalConfirmedPaymentIntent";
15
18
  TerminalEventsEnum["CollectedPaymentIntent"] = "terminalCollectedPaymentIntent";
16
19
  TerminalEventsEnum["Canceled"] = "terminalCanceled";
17
20
  TerminalEventsEnum["Failed"] = "terminalFailed";
18
21
  TerminalEventsEnum["RequestedConnectionToken"] = "terminalRequestedConnectionToken";
22
+ TerminalEventsEnum["ReportAvailableUpdate"] = "terminalReportAvailableUpdate";
23
+ TerminalEventsEnum["StartInstallingUpdate"] = "terminalStartInstallingUpdate";
24
+ TerminalEventsEnum["ReaderSoftwareUpdateProgress"] = "terminalReaderSoftwareUpdateProgress";
25
+ TerminalEventsEnum["FinishInstallingUpdate"] = "terminalFinishInstallingUpdate";
26
+ TerminalEventsEnum["BatteryLevel"] = "terminalBatteryLevel";
27
+ TerminalEventsEnum["ReaderEvent"] = "terminalReaderEvent";
28
+ TerminalEventsEnum["RequestDisplayMessage"] = "terminalRequestDisplayMessage";
29
+ TerminalEventsEnum["RequestReaderInput"] = "terminalRequestReaderInput";
30
+ TerminalEventsEnum["PaymentStatusChange"] = "terminalPaymentStatusChange";
31
+ TerminalEventsEnum["ReaderReconnectStarted"] = "terminalReaderReconnectStarted";
32
+ TerminalEventsEnum["ReaderReconnectSucceeded"] = "terminalReaderReconnectSucceeded";
33
+ TerminalEventsEnum["ReaderReconnectFailed"] = "terminalReaderReconnectFailed";
19
34
  })(exports.TerminalEventsEnum || (exports.TerminalEventsEnum = {}));
20
35
 
21
36
  exports.TerminalConnectTypes = void 0;
@@ -26,62 +41,462 @@ exports.TerminalConnectTypes = void 0;
26
41
  TerminalConnectTypes["Usb"] = "usb";
27
42
  TerminalConnectTypes["TapToPay"] = "tap-to-pay";
28
43
  })(exports.TerminalConnectTypes || (exports.TerminalConnectTypes = {}));
44
+ /**
45
+ * Note: Don't need to use this enum. It's just for reference.
46
+ */
47
+ exports.DeviceType = void 0;
48
+ (function (DeviceType) {
49
+ DeviceType["cotsDevice"] = "cotsDevice";
50
+ DeviceType["wisePad3s"] = "wisePad3s";
51
+ DeviceType["appleBuiltIn"] = "appleBuiltIn";
52
+ DeviceType["chipper1X"] = "chipper1X";
53
+ DeviceType["chipper2X"] = "chipper2X";
54
+ DeviceType["etna"] = "etna";
55
+ DeviceType["stripeM2"] = "stripeM2";
56
+ DeviceType["stripeS700"] = "stripeS700";
57
+ DeviceType["stripeS700DevKit"] = "stripeS700Devkit";
58
+ DeviceType["verifoneP400"] = "verifoneP400";
59
+ DeviceType["wiseCube"] = "wiseCube";
60
+ DeviceType["wisePad3"] = "wisePad3";
61
+ DeviceType["wisePosE"] = "wisePosE";
62
+ DeviceType["wisePosEDevKit"] = "wisePosEDevkit";
63
+ DeviceType["unknown"] = "unknown";
64
+ })(exports.DeviceType || (exports.DeviceType = {}));
65
+ /**
66
+ * This group is useful for pick image.
67
+ * Reference: https://github.com/stripe/stripe-terminal-ios/blob/fc571ab441b14639243a11d19d8f62bbe93feea5/Example/Example/ReaderHeaderView.swift#L95-L113
68
+ */
69
+ exports.DeviceGroup = void 0;
70
+ (function (DeviceGroup) {
71
+ DeviceGroup["stripeM2"] = "stripe_m2";
72
+ DeviceGroup["chipper1X"] = "chipper";
73
+ DeviceGroup["chipper2X"] = "chipper";
74
+ DeviceGroup["wiseCube"] = "chipper";
75
+ DeviceGroup["verifoneP400"] = "verifone";
76
+ DeviceGroup["wisePad3s"] = "wisepad";
77
+ DeviceGroup["wisePad3"] = "wisepad";
78
+ DeviceGroup["wisePosEDevKit"] = "wisepose";
79
+ DeviceGroup["etna"] = "wisepose";
80
+ DeviceGroup["wisePosE"] = "wisepose";
81
+ DeviceGroup["stripeS700DevKit"] = "s700";
82
+ DeviceGroup["stripeS700"] = "s700";
83
+ DeviceGroup["appleBuiltIn"] = "apple";
84
+ DeviceGroup["cotsDevice"] = "unknown";
85
+ DeviceGroup["unknown"] = "unknown";
86
+ })(exports.DeviceGroup || (exports.DeviceGroup = {}));
87
+ exports.UpdateTimeEstimate = void 0;
88
+ (function (UpdateTimeEstimate) {
89
+ UpdateTimeEstimate["LessThanOneMinute"] = "LESS_THAN_ONE_MINUTE";
90
+ UpdateTimeEstimate["OneToTwoMinutes"] = "ONE_TO_TWO_MINUTES";
91
+ UpdateTimeEstimate["TwoToFiveMinutes"] = "TWO_TO_FIVE_MINUTES";
92
+ UpdateTimeEstimate["FiveToFifteenMinutes"] = "FIVE_TO_FIFTEEN_MINUTES";
93
+ })(exports.UpdateTimeEstimate || (exports.UpdateTimeEstimate = {}));
94
+ exports.SimulateReaderUpdate = void 0;
95
+ (function (SimulateReaderUpdate) {
96
+ SimulateReaderUpdate["UpdateAvailable"] = "UPDATE_AVAILABLE";
97
+ SimulateReaderUpdate["None"] = "NONE";
98
+ SimulateReaderUpdate["Required"] = "REQUIRED";
99
+ SimulateReaderUpdate["Random"] = "RANDOM";
100
+ SimulateReaderUpdate["LowBattery"] = "LOW_BATTERY";
101
+ SimulateReaderUpdate["LowBatterySucceedConnect"] = "LOW_BATTERY_SUCCEED_CONNECT";
102
+ })(exports.SimulateReaderUpdate || (exports.SimulateReaderUpdate = {}));
103
+ exports.SimulatedCardType = void 0;
104
+ (function (SimulatedCardType) {
105
+ SimulatedCardType["Visa"] = "VISA";
106
+ SimulatedCardType["VisaDebit"] = "VISA_DEBIT";
107
+ SimulatedCardType["Mastercard"] = "MASTERCARD";
108
+ SimulatedCardType["MastercardDebit"] = "MASTERCARD_DEBIT";
109
+ SimulatedCardType["MastercardPrepaid"] = "MASTERCARD_PREPAID";
110
+ SimulatedCardType["Amex"] = "AMEX";
111
+ SimulatedCardType["Amex2"] = "AMEX_2";
112
+ SimulatedCardType["Discover"] = "DISCOVER";
113
+ SimulatedCardType["Discover2"] = "DISCOVER_2";
114
+ SimulatedCardType["DinersClub"] = "DINERS";
115
+ SimulatedCardType["DinersClulb14Digits"] = "DINERS_14_DIGITS";
116
+ SimulatedCardType["JCB"] = "JCB";
117
+ SimulatedCardType["UnionPay"] = "UNION_PAY";
118
+ SimulatedCardType["Interac"] = "INTERAC";
119
+ SimulatedCardType["EftposAustraliaDebit"] = "EFTPOS_AU_DEBIT";
120
+ SimulatedCardType["VisaUsCommonDebit"] = "VISA_US_COMMON_DEBIT";
121
+ SimulatedCardType["ChargeDeclined"] = "CHARGE_DECLINED";
122
+ SimulatedCardType["ChargeDeclinedInsufficientFunds"] = "CHARGE_DECLINED_INSUFFICIENT_FUNDS";
123
+ SimulatedCardType["ChargeDeclinedLostCard"] = "CHARGE_DECLINED_LOST_CARD";
124
+ SimulatedCardType["ChargeDeclinedStolenCard"] = "CHARGE_DECLINED_STOLEN_CARD";
125
+ SimulatedCardType["ChargeDeclinedExpiredCard"] = "CHARGE_DECLINED_EXPIRED_CARD";
126
+ SimulatedCardType["ChargeDeclinedProcessingError"] = "CHARGE_DECLINED_PROCESSING_ERROR";
127
+ SimulatedCardType["EftposAustraliaVisaDebit"] = "EFTPOS_AU_VISA_DEBIT";
128
+ SimulatedCardType["EftposAustraliaMastercardDebit"] = "EFTPOS_AU_DEBIT_MASTERCARD";
129
+ SimulatedCardType["OfflinePinCVM"] = "OFFLINE_PIN_CVM";
130
+ SimulatedCardType["OfflinePinSCARetry"] = "OFFLINE_PIN_SCA_RETRY";
131
+ SimulatedCardType["OnlinePinCVM"] = "ONLINE_PIN_CVM";
132
+ SimulatedCardType["OnlinePinSCARetry"] = "ONLINE_PIN_SCA_RETRY";
133
+ })(exports.SimulatedCardType || (exports.SimulatedCardType = {}));
134
+ exports.BatteryStatus = void 0;
135
+ (function (BatteryStatus) {
136
+ BatteryStatus["Unknown"] = "UNKNOWN";
137
+ BatteryStatus["Critical"] = "CRITICAL";
138
+ BatteryStatus["Low"] = "LOW";
139
+ BatteryStatus["Nominal"] = "NOMINAL";
140
+ })(exports.BatteryStatus || (exports.BatteryStatus = {}));
141
+ exports.LocationStatus = void 0;
142
+ (function (LocationStatus) {
143
+ LocationStatus["NotSet"] = "NOT_SET";
144
+ LocationStatus["Set"] = "SET";
145
+ LocationStatus["Unknown"] = "UNKNOWN";
146
+ })(exports.LocationStatus || (exports.LocationStatus = {}));
147
+ exports.NetworkStatus = void 0;
148
+ (function (NetworkStatus) {
149
+ NetworkStatus["Unknown"] = "UNKNOWN";
150
+ NetworkStatus["Online"] = "ONLINE";
151
+ NetworkStatus["Offline"] = "OFFLINE";
152
+ })(exports.NetworkStatus || (exports.NetworkStatus = {}));
153
+ exports.ReaderEvent = void 0;
154
+ (function (ReaderEvent) {
155
+ ReaderEvent["Unknown"] = "UNKNOWN";
156
+ ReaderEvent["CardInserted"] = "CARD_INSERTED";
157
+ ReaderEvent["CardRemoved"] = "CARD_REMOVED";
158
+ })(exports.ReaderEvent || (exports.ReaderEvent = {}));
159
+ exports.ReaderDisplayMessage = void 0;
160
+ (function (ReaderDisplayMessage) {
161
+ ReaderDisplayMessage["CheckMobileDevice"] = "CHECK_MOBILE_DEVICE";
162
+ ReaderDisplayMessage["RetryCard"] = "RETRY_CARD";
163
+ ReaderDisplayMessage["InsertCard"] = "INSERT_CARD";
164
+ ReaderDisplayMessage["InsertOrSwipeCard"] = "INSERT_OR_SWIPE_CARD";
165
+ ReaderDisplayMessage["SwipeCard"] = "SWIPE_CARD";
166
+ ReaderDisplayMessage["RemoveCard"] = "REMOVE_CARD";
167
+ ReaderDisplayMessage["MultipleContactlessCardsDetected"] = "MULTIPLE_CONTACTLESS_CARDS_DETECTED";
168
+ ReaderDisplayMessage["TryAnotherReadMethod"] = "TRY_ANOTHER_READ_METHOD";
169
+ ReaderDisplayMessage["TryAnotherCard"] = "TRY_ANOTHER_CARD";
170
+ ReaderDisplayMessage["CardRemovedTooEarly"] = "CARD_REMOVED_TOO_EARLY";
171
+ })(exports.ReaderDisplayMessage || (exports.ReaderDisplayMessage = {}));
172
+ exports.ReaderInputOption = void 0;
173
+ (function (ReaderInputOption) {
174
+ ReaderInputOption["None"] = "NONE";
175
+ ReaderInputOption["Insert"] = "INSERT";
176
+ ReaderInputOption["Swipe"] = "SWIPE";
177
+ ReaderInputOption["Tap"] = "TAP";
178
+ ReaderInputOption["ManualEntry"] = "MANUAL_ENTRY";
179
+ })(exports.ReaderInputOption || (exports.ReaderInputOption = {}));
180
+ exports.PaymentStatus = void 0;
181
+ (function (PaymentStatus) {
182
+ PaymentStatus["Unknown"] = "UNKNOWN";
183
+ PaymentStatus["NotReady"] = "NOT_READY";
184
+ PaymentStatus["Ready"] = "READY";
185
+ PaymentStatus["WaitingForInput"] = "WAITING_FOR_INPUT";
186
+ PaymentStatus["Processing"] = "PROCESSING";
187
+ })(exports.PaymentStatus || (exports.PaymentStatus = {}));
188
+ exports.DisconnectReason = void 0;
189
+ (function (DisconnectReason) {
190
+ DisconnectReason["Unknown"] = "UNKNOWN";
191
+ DisconnectReason["DisconnectRequested"] = "DISCONNECT_REQUESTED";
192
+ DisconnectReason["RebootRequested"] = "REBOOT_REQUESTED";
193
+ DisconnectReason["SecurityReboot"] = "SECURITY_REBOOT";
194
+ DisconnectReason["CriticallyLowBattery"] = "CRITICALLY_LOW_BATTERY";
195
+ DisconnectReason["PoweredOff"] = "POWERED_OFF";
196
+ DisconnectReason["BluetoothDisabled"] = "BLUETOOTH_DISABLED";
197
+ })(exports.DisconnectReason || (exports.DisconnectReason = {}));
198
+ exports.ConnectionStatus = void 0;
199
+ (function (ConnectionStatus) {
200
+ ConnectionStatus["Unknown"] = "UNKNOWN";
201
+ ConnectionStatus["NotConnected"] = "NOT_CONNECTED";
202
+ ConnectionStatus["Connecting"] = "CONNECTING";
203
+ ConnectionStatus["Connected"] = "CONNECTED";
204
+ })(exports.ConnectionStatus || (exports.ConnectionStatus = {}));
29
205
 
30
206
  const StripeTerminal = core.registerPlugin('StripeTerminal', {
31
207
  web: () => Promise.resolve().then(function () { return web; }).then(m => new m.StripeTerminalWeb()),
32
208
  });
33
209
 
210
+ const mapFromCartToICart = (cart) => {
211
+ return {
212
+ line_items: cart.lineItems.map((item) => ({
213
+ description: item.displayName,
214
+ quantity: item.quantity,
215
+ amount: item.amount,
216
+ })),
217
+ tax: cart.tax,
218
+ total: cart.total,
219
+ currency: cart.currency,
220
+ };
221
+ };
222
+ const mapFromConnectionStatus = (connectionStatus) => {
223
+ switch (connectionStatus) {
224
+ case ConnectionStatus.CONNECTED:
225
+ return 'CONNECTED';
226
+ case ConnectionStatus.CONNECTING:
227
+ return 'CONNECTING';
228
+ case ConnectionStatus.NOT_CONNECTED:
229
+ return 'NOT_CONNECTED';
230
+ default:
231
+ return 'UNKNOWN';
232
+ }
233
+ };
234
+ const mapFromPaymentStatus = (paymentStatus) => {
235
+ switch (paymentStatus) {
236
+ case PaymentStatus.NOT_READY:
237
+ return 'NOT_READY';
238
+ case PaymentStatus.READY:
239
+ return 'READY';
240
+ case PaymentStatus.PROCESSING:
241
+ return 'PROCESSING';
242
+ case PaymentStatus.WAITING_FOR_INPUT:
243
+ return 'WAITING_FOR_INPUT';
244
+ default:
245
+ return 'UNKNOWN';
246
+ }
247
+ };
248
+ const convertReaderInterface = (reader) => {
249
+ let location = undefined;
250
+ if (reader.location.id) {
251
+ location = reader.location;
252
+ }
253
+ return {
254
+ baseUrl: '',
255
+ bootloaderVersion: '',
256
+ configVersion: '',
257
+ emvKeyProfileId: '',
258
+ firmwareVersion: '',
259
+ hardwareVersion: '',
260
+ macKeyProfileId: '',
261
+ pinKeyProfileId: '',
262
+ pinKeysetId: '',
263
+ settingsVersion: '',
264
+ trackKeyProfileId: '',
265
+ label: reader.label,
266
+ batteryLevel: 0,
267
+ batteryStatus: exports.BatteryStatus.Unknown,
268
+ simulated: !reader.livemode,
269
+ serialNumber: reader.serial_number,
270
+ isCharging: 0,
271
+ id: 0,
272
+ availableUpdate: undefined,
273
+ locationId: reader.location.id,
274
+ ipAddress: reader.ip_address || '',
275
+ status: mapFromReaderNetworkStatus(reader.status),
276
+ location: location || undefined,
277
+ locationStatus: exports.LocationStatus.Unknown,
278
+ deviceType: mapFromDeviceType(reader.device_type),
279
+ deviceSoftwareVersion: reader.device_sw_version,
280
+ };
281
+ };
282
+ const mapFromDeviceType = (type) => {
283
+ switch (type) {
284
+ case 'bbpos_chipper2x':
285
+ return exports.DeviceType.chipper2X;
286
+ case 'stripe_m2':
287
+ return exports.DeviceType.stripeM2;
288
+ case 'verifone_P400':
289
+ return exports.DeviceType.verifoneP400;
290
+ case 'bbpos_wisepad3':
291
+ return exports.DeviceType.wisePad3;
292
+ case 'bbpos_wisepos_e':
293
+ return exports.DeviceType.wisePosE;
294
+ case 'stripe_s700':
295
+ return exports.DeviceType.stripeS700;
296
+ default:
297
+ return exports.DeviceType.unknown;
298
+ }
299
+ };
300
+ const mapFromReaderNetworkStatus = (status) => {
301
+ switch (status) {
302
+ case 'offline':
303
+ return exports.NetworkStatus.Offline;
304
+ case 'online':
305
+ return exports.NetworkStatus.Online;
306
+ default:
307
+ return exports.NetworkStatus.Unknown;
308
+ }
309
+ };
310
+ var PaymentStatus;
311
+ (function (PaymentStatus) {
312
+ PaymentStatus["NOT_READY"] = "not_ready";
313
+ PaymentStatus["READY"] = "ready";
314
+ PaymentStatus["WAITING_FOR_INPUT"] = "waiting_for_input";
315
+ PaymentStatus["PROCESSING"] = "processing";
316
+ })(PaymentStatus || (PaymentStatus = {}));
317
+ var ConnectionStatus;
318
+ (function (ConnectionStatus) {
319
+ ConnectionStatus["CONNECTING"] = "connecting";
320
+ ConnectionStatus["CONNECTED"] = "connected";
321
+ ConnectionStatus["NOT_CONNECTED"] = "not_connected";
322
+ })(ConnectionStatus || (ConnectionStatus = {}));
323
+ // import {
324
+ // ConnectionStatus,
325
+ // PaymentStatus,
326
+ // } from '@stripe/terminal-js/types/terminal';
327
+
34
328
  class StripeTerminalWeb extends core.WebPlugin {
35
329
  constructor() {
36
330
  super(...arguments);
331
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
332
+ // @ts-ignore
333
+ this.stripeTerminal = undefined;
334
+ this.tokenProviderPromiseResolve = undefined;
335
+ this.discoveredReaders = [];
336
+ this.cachedFindReaders = [];
337
+ this.cachedPaymentIntent = undefined;
338
+ this.isTest = false;
37
339
  this.collect = 'deprecated';
38
340
  this.cancelCollect = 'deprecated';
39
341
  }
40
342
  async initialize(options) {
41
- console.log('initialize', options);
343
+ if (this.stripeTerminal !== undefined) {
344
+ throw new Error('Stripe Terminal has already been initialized');
345
+ }
346
+ this.isTest = options.isTest;
347
+ const stripeTerminal = await terminalJs.loadStripeTerminal();
348
+ this.stripeTerminal = stripeTerminal === null || stripeTerminal === void 0 ? void 0 : stripeTerminal.create({
349
+ onFetchConnectionToken: async () => {
350
+ this.notifyListeners(exports.TerminalEventsEnum.RequestedConnectionToken, null);
351
+ if (options.tokenProviderEndpoint) {
352
+ const response = await fetch(options.tokenProviderEndpoint, {
353
+ method: 'POST',
354
+ headers: {
355
+ 'Content-Type': 'application/json',
356
+ },
357
+ });
358
+ const data = await response.json();
359
+ return data.secret;
360
+ }
361
+ else {
362
+ return new Promise(resolve => (this.tokenProviderPromiseResolve = resolve));
363
+ }
364
+ },
365
+ onConnectionStatusChange: status => {
366
+ this.notifyListeners(exports.TerminalEventsEnum.ConnectionStatusChange, {
367
+ status: mapFromConnectionStatus(status.status),
368
+ });
369
+ },
370
+ onPaymentStatusChange: status => {
371
+ this.notifyListeners(exports.TerminalEventsEnum.PaymentStatusChange, {
372
+ status: mapFromPaymentStatus(status.status),
373
+ });
374
+ },
375
+ onUnexpectedReaderDisconnect: () => {
376
+ this.notifyListeners(exports.TerminalEventsEnum.UnexpectedReaderDisconnect, {
377
+ reader: null,
378
+ });
379
+ },
380
+ });
42
381
  this.notifyListeners(exports.TerminalEventsEnum.Loaded, null);
43
382
  }
44
383
  async discoverReaders(options) {
45
- console.log('discoverReaders', options);
384
+ if (this.stripeTerminal === undefined) {
385
+ throw new Error('Stripe Terminal has not been initialized');
386
+ }
387
+ if (options.type !== exports.TerminalConnectTypes.Internet) {
388
+ this.unavailable(`${options.type} is selected. Web platform is supported only internet connection.`);
389
+ }
390
+ const discoverResult = await this.stripeTerminal.discoverReaders({
391
+ simulated: this.isTest,
392
+ location: options.locationId,
393
+ });
394
+ if (discoverResult.error) {
395
+ throw new Error(discoverResult.error.message);
396
+ }
397
+ this.cachedFindReaders = discoverResult.discoveredReaders;
398
+ this.discoveredReaders = discoverResult.discoveredReaders.map(reader => convertReaderInterface(reader));
46
399
  this.notifyListeners(exports.TerminalEventsEnum.DiscoveredReaders, {
47
- readers: [],
400
+ readers: this.discoveredReaders,
48
401
  });
49
402
  return {
50
- readers: [],
403
+ readers: this.discoveredReaders,
51
404
  };
52
405
  }
406
+ /**
407
+ * This method is not supported in the web platform.
408
+ */
53
409
  async cancelDiscoverReaders() {
54
410
  console.log('cancelDiscoverReaders');
55
- this.notifyListeners(exports.TerminalEventsEnum.CancelDiscoveredReaders, null);
56
411
  }
57
- async setConnectionToken() {
58
- console.log('setConnectionToken');
412
+ async setConnectionToken(options) {
413
+ if (this.tokenProviderPromiseResolve === undefined) {
414
+ return;
415
+ }
416
+ console.log('setConnectionToken', options);
417
+ this.tokenProviderPromiseResolve(options.token);
418
+ }
419
+ async setSimulatorConfiguration(options) {
420
+ console.log('setSimulatorConfiguration', options);
59
421
  }
60
422
  async connectReader(options) {
61
- console.log('connectReader', options);
423
+ var _a;
424
+ const reader = this.cachedFindReaders.find(reader => reader.serial_number === options.reader.serialNumber);
425
+ if (reader === undefined) {
426
+ throw new Error('reader is not match from descovered readers.');
427
+ }
428
+ const connectedResult = await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.connectReader(reader));
429
+ if (connectedResult.error) {
430
+ throw new Error(connectedResult.error.message);
431
+ }
62
432
  this.notifyListeners(exports.TerminalEventsEnum.ConnectedReader, null);
63
433
  }
64
434
  async getConnectedReader() {
435
+ var _a;
436
+ const reader = (_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.getConnectedReader();
437
+ if (reader === undefined) {
438
+ return {
439
+ reader: null,
440
+ };
441
+ }
65
442
  return {
66
- reader: null,
443
+ reader: convertReaderInterface(reader),
67
444
  };
68
445
  }
69
446
  async disconnectReader() {
70
- console.log('disconnectReader');
447
+ var _a;
448
+ await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.disconnectReader());
71
449
  this.notifyListeners(exports.TerminalEventsEnum.DisconnectedReader, null);
72
450
  }
73
451
  async collectPaymentMethod(options) {
74
- console.log('collectPaymentMethod', options);
452
+ var _a;
453
+ const collectResult = await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.collectPaymentMethod(options.paymentIntent));
454
+ if (collectResult.error) {
455
+ throw new Error(collectResult.error.message);
456
+ }
457
+ this.cachedPaymentIntent = collectResult.paymentIntent;
75
458
  this.notifyListeners(exports.TerminalEventsEnum.CollectedPaymentIntent, null);
76
459
  }
77
460
  async cancelCollectPaymentMethod() {
78
- console.log('cancelCollectPaymentMethod');
461
+ var _a;
462
+ await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.cancelCollectPaymentMethod());
79
463
  this.notifyListeners(exports.TerminalEventsEnum.Canceled, null);
80
464
  }
81
465
  async confirmPaymentIntent() {
82
- console.log('confirmPaymentIntent');
466
+ var _a;
467
+ if (this.cachedPaymentIntent === undefined) {
468
+ throw new Error('PaymentIntent is not cached.');
469
+ }
470
+ const processResult = await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.processPayment(this.cachedPaymentIntent));
471
+ if (processResult.error) {
472
+ throw new Error(processResult.error.message);
473
+ }
83
474
  this.notifyListeners(exports.TerminalEventsEnum.ConfirmedPaymentIntent, null);
84
475
  }
476
+ async installAvailableUpdate() {
477
+ console.log('installAvailableUpdate');
478
+ }
479
+ async cancelInstallUpdate() {
480
+ console.log('cancelInstallUpdate');
481
+ }
482
+ async setReaderDisplay(options) {
483
+ var _a;
484
+ await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.setReaderDisplay({
485
+ type: "cart",
486
+ cart: mapFromCartToICart(options),
487
+ }));
488
+ console.log('setReaderDisplay', options);
489
+ }
490
+ async clearReaderDisplay() {
491
+ var _a;
492
+ await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.clearReaderDisplay());
493
+ }
494
+ async rebootReader() {
495
+ console.log('rebootReader');
496
+ }
497
+ async cancelReaderReconnection() {
498
+ console.log('cancelReaderReconnection');
499
+ }
85
500
  }
86
501
 
87
502
  var web = /*#__PURE__*/Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/events.enum.js","esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["export var TerminalEventsEnum;\n(function (TerminalEventsEnum) {\n TerminalEventsEnum[\"Loaded\"] = \"terminalLoaded\";\n TerminalEventsEnum[\"DiscoveredReaders\"] = \"terminalDiscoveredReaders\";\n TerminalEventsEnum[\"CancelDiscoveredReaders\"] = \"terminalCancelDiscoveredReaders\";\n TerminalEventsEnum[\"ConnectedReader\"] = \"terminalConnectedReader\";\n TerminalEventsEnum[\"DisconnectedReader\"] = \"terminalDisconnectedReader\";\n TerminalEventsEnum[\"ConfirmedPaymentIntent\"] = \"terminalConfirmedPaymentIntent\";\n TerminalEventsEnum[\"CollectedPaymentIntent\"] = \"terminalCollectedPaymentIntent\";\n TerminalEventsEnum[\"Canceled\"] = \"terminalCanceled\";\n TerminalEventsEnum[\"Failed\"] = \"terminalFailed\";\n TerminalEventsEnum[\"RequestedConnectionToken\"] = \"terminalRequestedConnectionToken\";\n})(TerminalEventsEnum || (TerminalEventsEnum = {}));\n//# sourceMappingURL=events.enum.js.map","export var TerminalConnectTypes;\n(function (TerminalConnectTypes) {\n TerminalConnectTypes[\"Simulated\"] = \"simulated\";\n TerminalConnectTypes[\"Internet\"] = \"internet\";\n TerminalConnectTypes[\"Bluetooth\"] = \"bluetooth\";\n TerminalConnectTypes[\"Usb\"] = \"usb\";\n TerminalConnectTypes[\"TapToPay\"] = \"tap-to-pay\";\n})(TerminalConnectTypes || (TerminalConnectTypes = {}));\nexport * from './events.enum';\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst StripeTerminal = registerPlugin('StripeTerminal', {\n web: () => import('./web').then(m => new m.StripeTerminalWeb()),\n});\nexport * from './definitions';\nexport { StripeTerminal };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nimport { TerminalEventsEnum } from './events.enum';\nexport class StripeTerminalWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.collect = 'deprecated';\n this.cancelCollect = 'deprecated';\n }\n async initialize(options) {\n console.log('initialize', options);\n this.notifyListeners(TerminalEventsEnum.Loaded, null);\n }\n async discoverReaders(options) {\n console.log('discoverReaders', options);\n this.notifyListeners(TerminalEventsEnum.DiscoveredReaders, {\n readers: [],\n });\n return {\n readers: [],\n };\n }\n async cancelDiscoverReaders() {\n console.log('cancelDiscoverReaders');\n this.notifyListeners(TerminalEventsEnum.CancelDiscoveredReaders, null);\n }\n async setConnectionToken() {\n console.log('setConnectionToken');\n }\n async connectReader(options) {\n console.log('connectReader', options);\n this.notifyListeners(TerminalEventsEnum.ConnectedReader, null);\n }\n async getConnectedReader() {\n return {\n reader: null,\n };\n }\n async disconnectReader() {\n console.log('disconnectReader');\n this.notifyListeners(TerminalEventsEnum.DisconnectedReader, null);\n }\n async collectPaymentMethod(options) {\n console.log('collectPaymentMethod', options);\n this.notifyListeners(TerminalEventsEnum.CollectedPaymentIntent, null);\n }\n async cancelCollectPaymentMethod() {\n console.log('cancelCollectPaymentMethod');\n this.notifyListeners(TerminalEventsEnum.Canceled, null);\n }\n async confirmPaymentIntent() {\n console.log('confirmPaymentIntent');\n this.notifyListeners(TerminalEventsEnum.ConfirmedPaymentIntent, null);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["TerminalEventsEnum","TerminalConnectTypes","registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/events.enum.js","esm/stripe.enum.js","esm/index.js","esm/terminalMappers.js","esm/web.js"],"sourcesContent":["export var TerminalEventsEnum;\n(function (TerminalEventsEnum) {\n TerminalEventsEnum[\"Loaded\"] = \"terminalLoaded\";\n TerminalEventsEnum[\"DiscoveredReaders\"] = \"terminalDiscoveredReaders\";\n TerminalEventsEnum[\"CancelDiscoveredReaders\"] = \"terminalCancelDiscoveredReaders\";\n TerminalEventsEnum[\"ConnectedReader\"] = \"terminalConnectedReader\";\n TerminalEventsEnum[\"DisconnectedReader\"] = \"terminalDisconnectedReader\";\n TerminalEventsEnum[\"ConnectionStatusChange\"] = \"terminalConnectionStatusChange\";\n TerminalEventsEnum[\"UnexpectedReaderDisconnect\"] = \"terminalUnexpectedReaderDisconnect\";\n TerminalEventsEnum[\"ConfirmedPaymentIntent\"] = \"terminalConfirmedPaymentIntent\";\n TerminalEventsEnum[\"CollectedPaymentIntent\"] = \"terminalCollectedPaymentIntent\";\n TerminalEventsEnum[\"Canceled\"] = \"terminalCanceled\";\n TerminalEventsEnum[\"Failed\"] = \"terminalFailed\";\n TerminalEventsEnum[\"RequestedConnectionToken\"] = \"terminalRequestedConnectionToken\";\n TerminalEventsEnum[\"ReportAvailableUpdate\"] = \"terminalReportAvailableUpdate\";\n TerminalEventsEnum[\"StartInstallingUpdate\"] = \"terminalStartInstallingUpdate\";\n TerminalEventsEnum[\"ReaderSoftwareUpdateProgress\"] = \"terminalReaderSoftwareUpdateProgress\";\n TerminalEventsEnum[\"FinishInstallingUpdate\"] = \"terminalFinishInstallingUpdate\";\n TerminalEventsEnum[\"BatteryLevel\"] = \"terminalBatteryLevel\";\n TerminalEventsEnum[\"ReaderEvent\"] = \"terminalReaderEvent\";\n TerminalEventsEnum[\"RequestDisplayMessage\"] = \"terminalRequestDisplayMessage\";\n TerminalEventsEnum[\"RequestReaderInput\"] = \"terminalRequestReaderInput\";\n TerminalEventsEnum[\"PaymentStatusChange\"] = \"terminalPaymentStatusChange\";\n TerminalEventsEnum[\"ReaderReconnectStarted\"] = \"terminalReaderReconnectStarted\";\n TerminalEventsEnum[\"ReaderReconnectSucceeded\"] = \"terminalReaderReconnectSucceeded\";\n TerminalEventsEnum[\"ReaderReconnectFailed\"] = \"terminalReaderReconnectFailed\";\n})(TerminalEventsEnum || (TerminalEventsEnum = {}));\n//# sourceMappingURL=events.enum.js.map","export var TerminalConnectTypes;\n(function (TerminalConnectTypes) {\n TerminalConnectTypes[\"Simulated\"] = \"simulated\";\n TerminalConnectTypes[\"Internet\"] = \"internet\";\n TerminalConnectTypes[\"Bluetooth\"] = \"bluetooth\";\n TerminalConnectTypes[\"Usb\"] = \"usb\";\n TerminalConnectTypes[\"TapToPay\"] = \"tap-to-pay\";\n})(TerminalConnectTypes || (TerminalConnectTypes = {}));\n/**\n * Note: Don't need to use this enum. It's just for reference.\n */\nexport var DeviceType;\n(function (DeviceType) {\n DeviceType[\"cotsDevice\"] = \"cotsDevice\";\n DeviceType[\"wisePad3s\"] = \"wisePad3s\";\n DeviceType[\"appleBuiltIn\"] = \"appleBuiltIn\";\n DeviceType[\"chipper1X\"] = \"chipper1X\";\n DeviceType[\"chipper2X\"] = \"chipper2X\";\n DeviceType[\"etna\"] = \"etna\";\n DeviceType[\"stripeM2\"] = \"stripeM2\";\n DeviceType[\"stripeS700\"] = \"stripeS700\";\n DeviceType[\"stripeS700DevKit\"] = \"stripeS700Devkit\";\n DeviceType[\"verifoneP400\"] = \"verifoneP400\";\n DeviceType[\"wiseCube\"] = \"wiseCube\";\n DeviceType[\"wisePad3\"] = \"wisePad3\";\n DeviceType[\"wisePosE\"] = \"wisePosE\";\n DeviceType[\"wisePosEDevKit\"] = \"wisePosEDevkit\";\n DeviceType[\"unknown\"] = \"unknown\";\n})(DeviceType || (DeviceType = {}));\n/**\n * This group is useful for pick image.\n * Reference: https://github.com/stripe/stripe-terminal-ios/blob/fc571ab441b14639243a11d19d8f62bbe93feea5/Example/Example/ReaderHeaderView.swift#L95-L113\n */\nexport var DeviceGroup;\n(function (DeviceGroup) {\n DeviceGroup[\"stripeM2\"] = \"stripe_m2\";\n DeviceGroup[\"chipper1X\"] = \"chipper\";\n DeviceGroup[\"chipper2X\"] = \"chipper\";\n DeviceGroup[\"wiseCube\"] = \"chipper\";\n DeviceGroup[\"verifoneP400\"] = \"verifone\";\n DeviceGroup[\"wisePad3s\"] = \"wisepad\";\n DeviceGroup[\"wisePad3\"] = \"wisepad\";\n DeviceGroup[\"wisePosEDevKit\"] = \"wisepose\";\n DeviceGroup[\"etna\"] = \"wisepose\";\n DeviceGroup[\"wisePosE\"] = \"wisepose\";\n DeviceGroup[\"stripeS700DevKit\"] = \"s700\";\n DeviceGroup[\"stripeS700\"] = \"s700\";\n DeviceGroup[\"appleBuiltIn\"] = \"apple\";\n DeviceGroup[\"cotsDevice\"] = \"unknown\";\n DeviceGroup[\"unknown\"] = \"unknown\";\n})(DeviceGroup || (DeviceGroup = {}));\nexport var UpdateTimeEstimate;\n(function (UpdateTimeEstimate) {\n UpdateTimeEstimate[\"LessThanOneMinute\"] = \"LESS_THAN_ONE_MINUTE\";\n UpdateTimeEstimate[\"OneToTwoMinutes\"] = \"ONE_TO_TWO_MINUTES\";\n UpdateTimeEstimate[\"TwoToFiveMinutes\"] = \"TWO_TO_FIVE_MINUTES\";\n UpdateTimeEstimate[\"FiveToFifteenMinutes\"] = \"FIVE_TO_FIFTEEN_MINUTES\";\n})(UpdateTimeEstimate || (UpdateTimeEstimate = {}));\nexport var SimulateReaderUpdate;\n(function (SimulateReaderUpdate) {\n SimulateReaderUpdate[\"UpdateAvailable\"] = \"UPDATE_AVAILABLE\";\n SimulateReaderUpdate[\"None\"] = \"NONE\";\n SimulateReaderUpdate[\"Required\"] = \"REQUIRED\";\n SimulateReaderUpdate[\"Random\"] = \"RANDOM\";\n SimulateReaderUpdate[\"LowBattery\"] = \"LOW_BATTERY\";\n SimulateReaderUpdate[\"LowBatterySucceedConnect\"] = \"LOW_BATTERY_SUCCEED_CONNECT\";\n})(SimulateReaderUpdate || (SimulateReaderUpdate = {}));\nexport var SimulatedCardType;\n(function (SimulatedCardType) {\n SimulatedCardType[\"Visa\"] = \"VISA\";\n SimulatedCardType[\"VisaDebit\"] = \"VISA_DEBIT\";\n SimulatedCardType[\"Mastercard\"] = \"MASTERCARD\";\n SimulatedCardType[\"MastercardDebit\"] = \"MASTERCARD_DEBIT\";\n SimulatedCardType[\"MastercardPrepaid\"] = \"MASTERCARD_PREPAID\";\n SimulatedCardType[\"Amex\"] = \"AMEX\";\n SimulatedCardType[\"Amex2\"] = \"AMEX_2\";\n SimulatedCardType[\"Discover\"] = \"DISCOVER\";\n SimulatedCardType[\"Discover2\"] = \"DISCOVER_2\";\n SimulatedCardType[\"DinersClub\"] = \"DINERS\";\n SimulatedCardType[\"DinersClulb14Digits\"] = \"DINERS_14_DIGITS\";\n SimulatedCardType[\"JCB\"] = \"JCB\";\n SimulatedCardType[\"UnionPay\"] = \"UNION_PAY\";\n SimulatedCardType[\"Interac\"] = \"INTERAC\";\n SimulatedCardType[\"EftposAustraliaDebit\"] = \"EFTPOS_AU_DEBIT\";\n SimulatedCardType[\"VisaUsCommonDebit\"] = \"VISA_US_COMMON_DEBIT\";\n SimulatedCardType[\"ChargeDeclined\"] = \"CHARGE_DECLINED\";\n SimulatedCardType[\"ChargeDeclinedInsufficientFunds\"] = \"CHARGE_DECLINED_INSUFFICIENT_FUNDS\";\n SimulatedCardType[\"ChargeDeclinedLostCard\"] = \"CHARGE_DECLINED_LOST_CARD\";\n SimulatedCardType[\"ChargeDeclinedStolenCard\"] = \"CHARGE_DECLINED_STOLEN_CARD\";\n SimulatedCardType[\"ChargeDeclinedExpiredCard\"] = \"CHARGE_DECLINED_EXPIRED_CARD\";\n SimulatedCardType[\"ChargeDeclinedProcessingError\"] = \"CHARGE_DECLINED_PROCESSING_ERROR\";\n SimulatedCardType[\"EftposAustraliaVisaDebit\"] = \"EFTPOS_AU_VISA_DEBIT\";\n SimulatedCardType[\"EftposAustraliaMastercardDebit\"] = \"EFTPOS_AU_DEBIT_MASTERCARD\";\n SimulatedCardType[\"OfflinePinCVM\"] = \"OFFLINE_PIN_CVM\";\n SimulatedCardType[\"OfflinePinSCARetry\"] = \"OFFLINE_PIN_SCA_RETRY\";\n SimulatedCardType[\"OnlinePinCVM\"] = \"ONLINE_PIN_CVM\";\n SimulatedCardType[\"OnlinePinSCARetry\"] = \"ONLINE_PIN_SCA_RETRY\";\n})(SimulatedCardType || (SimulatedCardType = {}));\nexport var BatteryStatus;\n(function (BatteryStatus) {\n BatteryStatus[\"Unknown\"] = \"UNKNOWN\";\n BatteryStatus[\"Critical\"] = \"CRITICAL\";\n BatteryStatus[\"Low\"] = \"LOW\";\n BatteryStatus[\"Nominal\"] = \"NOMINAL\";\n})(BatteryStatus || (BatteryStatus = {}));\nexport var LocationStatus;\n(function (LocationStatus) {\n LocationStatus[\"NotSet\"] = \"NOT_SET\";\n LocationStatus[\"Set\"] = \"SET\";\n LocationStatus[\"Unknown\"] = \"UNKNOWN\";\n})(LocationStatus || (LocationStatus = {}));\nexport var NetworkStatus;\n(function (NetworkStatus) {\n NetworkStatus[\"Unknown\"] = \"UNKNOWN\";\n NetworkStatus[\"Online\"] = \"ONLINE\";\n NetworkStatus[\"Offline\"] = \"OFFLINE\";\n})(NetworkStatus || (NetworkStatus = {}));\nexport var ReaderEvent;\n(function (ReaderEvent) {\n ReaderEvent[\"Unknown\"] = \"UNKNOWN\";\n ReaderEvent[\"CardInserted\"] = \"CARD_INSERTED\";\n ReaderEvent[\"CardRemoved\"] = \"CARD_REMOVED\";\n})(ReaderEvent || (ReaderEvent = {}));\nexport var ReaderDisplayMessage;\n(function (ReaderDisplayMessage) {\n ReaderDisplayMessage[\"CheckMobileDevice\"] = \"CHECK_MOBILE_DEVICE\";\n ReaderDisplayMessage[\"RetryCard\"] = \"RETRY_CARD\";\n ReaderDisplayMessage[\"InsertCard\"] = \"INSERT_CARD\";\n ReaderDisplayMessage[\"InsertOrSwipeCard\"] = \"INSERT_OR_SWIPE_CARD\";\n ReaderDisplayMessage[\"SwipeCard\"] = \"SWIPE_CARD\";\n ReaderDisplayMessage[\"RemoveCard\"] = \"REMOVE_CARD\";\n ReaderDisplayMessage[\"MultipleContactlessCardsDetected\"] = \"MULTIPLE_CONTACTLESS_CARDS_DETECTED\";\n ReaderDisplayMessage[\"TryAnotherReadMethod\"] = \"TRY_ANOTHER_READ_METHOD\";\n ReaderDisplayMessage[\"TryAnotherCard\"] = \"TRY_ANOTHER_CARD\";\n ReaderDisplayMessage[\"CardRemovedTooEarly\"] = \"CARD_REMOVED_TOO_EARLY\";\n})(ReaderDisplayMessage || (ReaderDisplayMessage = {}));\nexport var ReaderInputOption;\n(function (ReaderInputOption) {\n ReaderInputOption[\"None\"] = \"NONE\";\n ReaderInputOption[\"Insert\"] = \"INSERT\";\n ReaderInputOption[\"Swipe\"] = \"SWIPE\";\n ReaderInputOption[\"Tap\"] = \"TAP\";\n ReaderInputOption[\"ManualEntry\"] = \"MANUAL_ENTRY\";\n})(ReaderInputOption || (ReaderInputOption = {}));\nexport var PaymentStatus;\n(function (PaymentStatus) {\n PaymentStatus[\"Unknown\"] = \"UNKNOWN\";\n PaymentStatus[\"NotReady\"] = \"NOT_READY\";\n PaymentStatus[\"Ready\"] = \"READY\";\n PaymentStatus[\"WaitingForInput\"] = \"WAITING_FOR_INPUT\";\n PaymentStatus[\"Processing\"] = \"PROCESSING\";\n})(PaymentStatus || (PaymentStatus = {}));\nexport var DisconnectReason;\n(function (DisconnectReason) {\n DisconnectReason[\"Unknown\"] = \"UNKNOWN\";\n DisconnectReason[\"DisconnectRequested\"] = \"DISCONNECT_REQUESTED\";\n DisconnectReason[\"RebootRequested\"] = \"REBOOT_REQUESTED\";\n DisconnectReason[\"SecurityReboot\"] = \"SECURITY_REBOOT\";\n DisconnectReason[\"CriticallyLowBattery\"] = \"CRITICALLY_LOW_BATTERY\";\n DisconnectReason[\"PoweredOff\"] = \"POWERED_OFF\";\n DisconnectReason[\"BluetoothDisabled\"] = \"BLUETOOTH_DISABLED\";\n})(DisconnectReason || (DisconnectReason = {}));\nexport var ConnectionStatus;\n(function (ConnectionStatus) {\n ConnectionStatus[\"Unknown\"] = \"UNKNOWN\";\n ConnectionStatus[\"NotConnected\"] = \"NOT_CONNECTED\";\n ConnectionStatus[\"Connecting\"] = \"CONNECTING\";\n ConnectionStatus[\"Connected\"] = \"CONNECTED\";\n})(ConnectionStatus || (ConnectionStatus = {}));\n//# sourceMappingURL=stripe.enum.js.map","import { registerPlugin } from '@capacitor/core';\nconst StripeTerminal = registerPlugin('StripeTerminal', {\n web: () => import('./web').then(m => new m.StripeTerminalWeb()),\n});\nexport * from './definitions';\nexport { StripeTerminal };\n//# sourceMappingURL=index.js.map","import { BatteryStatus, DeviceType, LocationStatus, NetworkStatus, } from './definitions';\nexport const mapFromCartToICart = (cart) => {\n return {\n line_items: cart.lineItems.map((item) => ({\n description: item.displayName,\n quantity: item.quantity,\n amount: item.amount,\n })),\n tax: cart.tax,\n total: cart.total,\n currency: cart.currency,\n };\n};\nexport const mapFromConnectionStatus = (connectionStatus) => {\n switch (connectionStatus) {\n case ConnectionStatus.CONNECTED:\n return 'CONNECTED';\n case ConnectionStatus.CONNECTING:\n return 'CONNECTING';\n case ConnectionStatus.NOT_CONNECTED:\n return 'NOT_CONNECTED';\n default:\n return 'UNKNOWN';\n }\n};\nexport const mapFromPaymentStatus = (paymentStatus) => {\n switch (paymentStatus) {\n case PaymentStatus.NOT_READY:\n return 'NOT_READY';\n case PaymentStatus.READY:\n return 'READY';\n case PaymentStatus.PROCESSING:\n return 'PROCESSING';\n case PaymentStatus.WAITING_FOR_INPUT:\n return 'WAITING_FOR_INPUT';\n default:\n return 'UNKNOWN';\n }\n};\nexport const convertReaderInterface = (reader) => {\n let location = undefined;\n if (reader.location.id) {\n location = reader.location;\n }\n return {\n baseUrl: '',\n bootloaderVersion: '',\n configVersion: '',\n emvKeyProfileId: '',\n firmwareVersion: '',\n hardwareVersion: '',\n macKeyProfileId: '',\n pinKeyProfileId: '',\n pinKeysetId: '',\n settingsVersion: '',\n trackKeyProfileId: '',\n label: reader.label,\n batteryLevel: 0,\n batteryStatus: BatteryStatus.Unknown,\n simulated: !reader.livemode,\n serialNumber: reader.serial_number,\n isCharging: 0,\n id: 0,\n availableUpdate: undefined,\n locationId: reader.location.id,\n ipAddress: reader.ip_address || '',\n status: mapFromReaderNetworkStatus(reader.status),\n location: location || undefined,\n locationStatus: LocationStatus.Unknown,\n deviceType: mapFromDeviceType(reader.device_type),\n deviceSoftwareVersion: reader.device_sw_version,\n };\n};\nexport const mapFromDeviceType = (type) => {\n switch (type) {\n case 'bbpos_chipper2x':\n return DeviceType.chipper2X;\n case 'stripe_m2':\n return DeviceType.stripeM2;\n case 'verifone_P400':\n return DeviceType.verifoneP400;\n case 'bbpos_wisepad3':\n return DeviceType.wisePad3;\n case 'bbpos_wisepos_e':\n return DeviceType.wisePosE;\n case 'stripe_s700':\n return DeviceType.stripeS700;\n default:\n return DeviceType.unknown;\n }\n};\nexport const mapFromReaderNetworkStatus = (status) => {\n switch (status) {\n case 'offline':\n return NetworkStatus.Offline;\n case 'online':\n return NetworkStatus.Online;\n default:\n return NetworkStatus.Unknown;\n }\n};\nexport var PaymentStatus;\n(function (PaymentStatus) {\n PaymentStatus[\"NOT_READY\"] = \"not_ready\";\n PaymentStatus[\"READY\"] = \"ready\";\n PaymentStatus[\"WAITING_FOR_INPUT\"] = \"waiting_for_input\";\n PaymentStatus[\"PROCESSING\"] = \"processing\";\n})(PaymentStatus || (PaymentStatus = {}));\nexport var ConnectionStatus;\n(function (ConnectionStatus) {\n ConnectionStatus[\"CONNECTING\"] = \"connecting\";\n ConnectionStatus[\"CONNECTED\"] = \"connected\";\n ConnectionStatus[\"NOT_CONNECTED\"] = \"not_connected\";\n})(ConnectionStatus || (ConnectionStatus = {}));\n// import {\n// ConnectionStatus,\n// PaymentStatus,\n// } from '@stripe/terminal-js/types/terminal';\n//# sourceMappingURL=terminalMappers.js.map","import { WebPlugin } from '@capacitor/core';\nimport { loadStripeTerminal } from '@stripe/terminal-js';\nimport { TerminalConnectTypes } from './definitions';\nimport { TerminalEventsEnum } from './events.enum';\nimport { convertReaderInterface, mapFromCartToICart, mapFromConnectionStatus, mapFromPaymentStatus, } from './terminalMappers';\nexport class StripeTerminalWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.stripeTerminal = undefined;\n this.tokenProviderPromiseResolve = undefined;\n this.discoveredReaders = [];\n this.cachedFindReaders = [];\n this.cachedPaymentIntent = undefined;\n this.isTest = false;\n this.collect = 'deprecated';\n this.cancelCollect = 'deprecated';\n }\n async initialize(options) {\n if (this.stripeTerminal !== undefined) {\n throw new Error('Stripe Terminal has already been initialized');\n }\n this.isTest = options.isTest;\n const stripeTerminal = await loadStripeTerminal();\n this.stripeTerminal = stripeTerminal === null || stripeTerminal === void 0 ? void 0 : stripeTerminal.create({\n onFetchConnectionToken: async () => {\n this.notifyListeners(TerminalEventsEnum.RequestedConnectionToken, null);\n if (options.tokenProviderEndpoint) {\n const response = await fetch(options.tokenProviderEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n const data = await response.json();\n return data.secret;\n }\n else {\n return new Promise(resolve => (this.tokenProviderPromiseResolve = resolve));\n }\n },\n onConnectionStatusChange: status => {\n this.notifyListeners(TerminalEventsEnum.ConnectionStatusChange, {\n status: mapFromConnectionStatus(status.status),\n });\n },\n onPaymentStatusChange: status => {\n this.notifyListeners(TerminalEventsEnum.PaymentStatusChange, {\n status: mapFromPaymentStatus(status.status),\n });\n },\n onUnexpectedReaderDisconnect: () => {\n this.notifyListeners(TerminalEventsEnum.UnexpectedReaderDisconnect, {\n reader: null,\n });\n },\n });\n this.notifyListeners(TerminalEventsEnum.Loaded, null);\n }\n async discoverReaders(options) {\n if (this.stripeTerminal === undefined) {\n throw new Error('Stripe Terminal has not been initialized');\n }\n if (options.type !== TerminalConnectTypes.Internet) {\n this.unavailable(`${options.type} is selected. Web platform is supported only internet connection.`);\n }\n const discoverResult = await this.stripeTerminal.discoverReaders({\n simulated: this.isTest,\n location: options.locationId,\n });\n if (discoverResult.error) {\n throw new Error(discoverResult.error.message);\n }\n this.cachedFindReaders = discoverResult.discoveredReaders;\n this.discoveredReaders = discoverResult.discoveredReaders.map(reader => convertReaderInterface(reader));\n this.notifyListeners(TerminalEventsEnum.DiscoveredReaders, {\n readers: this.discoveredReaders,\n });\n return {\n readers: this.discoveredReaders,\n };\n }\n /**\n * This method is not supported in the web platform.\n */\n async cancelDiscoverReaders() {\n console.log('cancelDiscoverReaders');\n }\n async setConnectionToken(options) {\n if (this.tokenProviderPromiseResolve === undefined) {\n return;\n }\n console.log('setConnectionToken', options);\n this.tokenProviderPromiseResolve(options.token);\n }\n async setSimulatorConfiguration(options) {\n console.log('setSimulatorConfiguration', options);\n }\n async connectReader(options) {\n var _a;\n const reader = this.cachedFindReaders.find(reader => reader.serial_number === options.reader.serialNumber);\n if (reader === undefined) {\n throw new Error('reader is not match from descovered readers.');\n }\n const connectedResult = await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.connectReader(reader));\n if (connectedResult.error) {\n throw new Error(connectedResult.error.message);\n }\n this.notifyListeners(TerminalEventsEnum.ConnectedReader, null);\n }\n async getConnectedReader() {\n var _a;\n const reader = (_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.getConnectedReader();\n if (reader === undefined) {\n return {\n reader: null,\n };\n }\n return {\n reader: convertReaderInterface(reader),\n };\n }\n async disconnectReader() {\n var _a;\n await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.disconnectReader());\n this.notifyListeners(TerminalEventsEnum.DisconnectedReader, null);\n }\n async collectPaymentMethod(options) {\n var _a;\n const collectResult = await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.collectPaymentMethod(options.paymentIntent));\n if (collectResult.error) {\n throw new Error(collectResult.error.message);\n }\n this.cachedPaymentIntent = collectResult.paymentIntent;\n this.notifyListeners(TerminalEventsEnum.CollectedPaymentIntent, null);\n }\n async cancelCollectPaymentMethod() {\n var _a;\n await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.cancelCollectPaymentMethod());\n this.notifyListeners(TerminalEventsEnum.Canceled, null);\n }\n async confirmPaymentIntent() {\n var _a;\n if (this.cachedPaymentIntent === undefined) {\n throw new Error('PaymentIntent is not cached.');\n }\n const processResult = await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.processPayment(this.cachedPaymentIntent));\n if (processResult.error) {\n throw new Error(processResult.error.message);\n }\n this.notifyListeners(TerminalEventsEnum.ConfirmedPaymentIntent, null);\n }\n async installAvailableUpdate() {\n console.log('installAvailableUpdate');\n }\n async cancelInstallUpdate() {\n console.log('cancelInstallUpdate');\n }\n async setReaderDisplay(options) {\n var _a;\n await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.setReaderDisplay({\n type: \"cart\",\n cart: mapFromCartToICart(options),\n }));\n console.log('setReaderDisplay', options);\n }\n async clearReaderDisplay() {\n var _a;\n await ((_a = this.stripeTerminal) === null || _a === void 0 ? void 0 : _a.clearReaderDisplay());\n }\n async rebootReader() {\n console.log('rebootReader');\n }\n async cancelReaderReconnection() {\n console.log('cancelReaderReconnection');\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["TerminalEventsEnum","TerminalConnectTypes","DeviceType","DeviceGroup","UpdateTimeEstimate","SimulateReaderUpdate","SimulatedCardType","BatteryStatus","LocationStatus","NetworkStatus","ReaderEvent","ReaderDisplayMessage","ReaderInputOption","PaymentStatus","DisconnectReason","ConnectionStatus","registerPlugin","WebPlugin","loadStripeTerminal"],"mappings":"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"}