react-native-amwal-ecr 0.1.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 (57) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/LICENSE +20 -0
  3. package/README.md +278 -0
  4. package/RNAmwalEcr.podspec +27 -0
  5. package/android/build.gradle +53 -0
  6. package/android/src/main/AndroidManifest.xml +3 -0
  7. package/android/src/main/java/com/amwalecr/AmwalEcrModule.kt +325 -0
  8. package/android/src/main/java/com/amwalecr/AmwalEcrPackage.kt +31 -0
  9. package/android/src/main/java/com/amwalecr/EcrMapping.kt +135 -0
  10. package/docs/compatibility.md +22 -0
  11. package/ios/AmwalEcr.h +4 -0
  12. package/ios/AmwalEcr.mm +121 -0
  13. package/ios/AmwalEcr.swift +424 -0
  14. package/ios/EcrMapping.swift +142 -0
  15. package/lib/module/EcrOperation.js +18 -0
  16. package/lib/module/EcrOperation.js.map +1 -0
  17. package/lib/module/EcrTerminal.js +211 -0
  18. package/lib/module/EcrTerminal.js.map +1 -0
  19. package/lib/module/NativeAmwalEcr.js +5 -0
  20. package/lib/module/NativeAmwalEcr.js.map +1 -0
  21. package/lib/module/index.js +6 -0
  22. package/lib/module/index.js.map +1 -0
  23. package/lib/module/native.js +16 -0
  24. package/lib/module/native.js.map +1 -0
  25. package/lib/module/native.native.js +4 -0
  26. package/lib/module/native.native.js.map +1 -0
  27. package/lib/module/normalize.js +87 -0
  28. package/lib/module/normalize.js.map +1 -0
  29. package/lib/module/package.json +1 -0
  30. package/lib/module/types.js +2 -0
  31. package/lib/module/types.js.map +1 -0
  32. package/lib/typescript/package.json +1 -0
  33. package/lib/typescript/src/EcrOperation.d.ts +10 -0
  34. package/lib/typescript/src/EcrOperation.d.ts.map +1 -0
  35. package/lib/typescript/src/EcrTerminal.d.ts +34 -0
  36. package/lib/typescript/src/EcrTerminal.d.ts.map +1 -0
  37. package/lib/typescript/src/NativeAmwalEcr.d.ts +14 -0
  38. package/lib/typescript/src/NativeAmwalEcr.d.ts.map +1 -0
  39. package/lib/typescript/src/index.d.ts +5 -0
  40. package/lib/typescript/src/index.d.ts.map +1 -0
  41. package/lib/typescript/src/native.d.ts +3 -0
  42. package/lib/typescript/src/native.d.ts.map +1 -0
  43. package/lib/typescript/src/native.native.d.ts +2 -0
  44. package/lib/typescript/src/native.native.d.ts.map +1 -0
  45. package/lib/typescript/src/normalize.d.ts +5 -0
  46. package/lib/typescript/src/normalize.d.ts.map +1 -0
  47. package/lib/typescript/src/types.d.ts +157 -0
  48. package/lib/typescript/src/types.d.ts.map +1 -0
  49. package/package.json +153 -0
  50. package/src/EcrOperation.ts +25 -0
  51. package/src/EcrTerminal.ts +344 -0
  52. package/src/NativeAmwalEcr.ts +28 -0
  53. package/src/index.tsx +34 -0
  54. package/src/native.native.ts +1 -0
  55. package/src/native.ts +18 -0
  56. package/src/normalize.ts +116 -0
  57. package/src/types.ts +189 -0
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+
3
+ import { EcrOperation } from "./EcrOperation.js";
4
+ import { nativeEcr } from './native';
5
+ import { normalizeInquiry, normalizeReceipt, normalizeResult } from "./normalize.js";
6
+ const DEFAULT_CONFIG = {
7
+ ecrId: 'ECR01',
8
+ currencyCode: '512',
9
+ minorUnitDigits: 3,
10
+ port: 9100,
11
+ connectTimeoutMs: 10_000,
12
+ responseTimeoutMs: 120_000,
13
+ probeTimeoutMs: 3_000,
14
+ secureHashKey: '',
15
+ autoInquireOnFailure: true,
16
+ merchantId: '',
17
+ terminalId: '',
18
+ environment: 'SIT'
19
+ };
20
+ const ENVIRONMENTS = ['SIT', 'UAT', 'PROD'];
21
+ let operationSequence = 0;
22
+ function newOperationId() {
23
+ operationSequence = (operationSequence + 1) % Number.MAX_SAFE_INTEGER;
24
+ return `ecr-${Date.now().toString(36)}-${operationSequence.toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
25
+ }
26
+ function requireText(value, label) {
27
+ const trimmed = value.trim();
28
+ if (!trimmed) {
29
+ throw new TypeError(`${label} is required.`);
30
+ }
31
+ return trimmed;
32
+ }
33
+ function requireAmount(amount) {
34
+ const trimmed = amount.trim();
35
+ if (!/^\d+(\.\d+)?$/.test(trimmed)) {
36
+ throw new TypeError(`"${amount}" is not a plain decimal amount. Use a string such as "1.234".`);
37
+ }
38
+ return trimmed;
39
+ }
40
+ function requireDate(value, required) {
41
+ const trimmed = value.trim();
42
+ if (!trimmed && !required) return '';
43
+ if (!/^\d{8}$/.test(trimmed)) {
44
+ throw new TypeError('transactionDate must use yyyyMMdd, for example 20260902.');
45
+ }
46
+ return trimmed;
47
+ }
48
+ function requireReference(value, label) {
49
+ const trimmed = value?.trim() ?? '';
50
+ if (!trimmed) return '';
51
+ if (trimmed.length > 32 || /[\s&=]/.test(trimmed)) {
52
+ throw new TypeError(`${label} must be at most 32 characters and cannot contain whitespace, "&", or "=".`);
53
+ }
54
+ return trimmed;
55
+ }
56
+ function positiveInteger(value, label) {
57
+ if (!Number.isInteger(value) || value <= 0) {
58
+ throw new TypeError(`${label} must be a positive whole number.`);
59
+ }
60
+ return value;
61
+ }
62
+ function normalizeConfig(config = {}) {
63
+ const normalized = {
64
+ ...DEFAULT_CONFIG,
65
+ ...config
66
+ };
67
+ if (normalized.minorUnitDigits < 0 || normalized.minorUnitDigits > 4) {
68
+ throw new TypeError('minorUnitDigits must be between 0 and 4.');
69
+ }
70
+ if (normalized.port < 1 || normalized.port > 65_535) {
71
+ throw new TypeError('port must be between 1 and 65535.');
72
+ }
73
+ positiveInteger(normalized.connectTimeoutMs, 'connectTimeoutMs');
74
+ positiveInteger(normalized.responseTimeoutMs, 'responseTimeoutMs');
75
+ positiveInteger(normalized.probeTimeoutMs, 'probeTimeoutMs');
76
+ if (normalized.secureHashKey && (normalized.secureHashKey.length < 16 || normalized.secureHashKey.length % 2 !== 0 || !/^[0-9a-fA-F]+$/.test(normalized.secureHashKey))) {
77
+ throw new TypeError('secureHashKey must be an even-length hexadecimal string of at least 16 characters, or empty.');
78
+ }
79
+ const environment = String(normalized.environment).toUpperCase();
80
+ if (!ENVIRONMENTS.includes(environment)) {
81
+ throw new TypeError(`environment must be one of ${ENVIRONMENTS.join(', ')}.`);
82
+ }
83
+ normalized.environment = environment;
84
+ return normalized;
85
+ }
86
+ /**
87
+ * One Amwal POS terminal reachable from the mobile device's local network.
88
+ *
89
+ * Amounts are decimal strings, never JavaScript numbers. A failed exchange is
90
+ * not a decline: when `outcomeIsUnknown` is true, inquire by the same merchant
91
+ * reference before considering another money-moving request.
92
+ */
93
+ export class EcrTerminal {
94
+ constructor(options) {
95
+ this.serialNumber = options.serialNumber?.trim() ?? '';
96
+ this.transport = options.transport ?? 'wifi';
97
+ this.config = normalizeConfig(options.config);
98
+ if (this.transport === 'webService') {
99
+ // The payment host addresses the terminal; there is no IP to dial.
100
+ this.host = options.host?.trim() ?? '';
101
+ requireText(this.config.merchantId, 'config.merchantId');
102
+ requireText(this.config.terminalId, 'config.terminalId');
103
+ } else {
104
+ this.host = requireText(options.host ?? '', 'host');
105
+ }
106
+ }
107
+ isReachable() {
108
+ if (!this.isIpTransport) return Promise.resolve(false);
109
+ return nativeEcr.isReachable(this.request(newOperationId()));
110
+ }
111
+ sale(amount, options = {}) {
112
+ return this.startSale(amount, options).result;
113
+ }
114
+ startSale(amount, options = {}) {
115
+ return this.startResult('sale', {
116
+ amount: requireAmount(amount),
117
+ merchantReferenceId: requireReference(options.merchantReferenceId, 'merchantReferenceId'),
118
+ operationId: options.operationId
119
+ });
120
+ }
121
+ voidTransaction(receiptNumber, options = {}) {
122
+ return this.startVoid(receiptNumber, options).result;
123
+ }
124
+ startVoid(receiptNumber, options = {}) {
125
+ return this.startResult('voidTransaction', {
126
+ receiptNumber: requireText(receiptNumber, 'receiptNumber'),
127
+ originalTerminalId: options.originalTerminalId?.trim() ?? '',
128
+ merchantReferenceId: requireReference(options.merchantReferenceId, 'merchantReferenceId'),
129
+ operationId: options.operationId
130
+ });
131
+ }
132
+ refund(amount, options) {
133
+ return this.startRefund(amount, options).result;
134
+ }
135
+ startRefund(amount, options) {
136
+ return this.startResult('refund', {
137
+ amount: requireAmount(amount),
138
+ receiptNumber: requireText(options.receiptNumber, 'receiptNumber'),
139
+ transactionDate: requireDate(options.transactionDate, true),
140
+ originalTerminalId: options.originalTerminalId?.trim() ?? '',
141
+ merchantReferenceId: requireReference(options.merchantReferenceId, 'merchantReferenceId'),
142
+ operationId: options.operationId
143
+ });
144
+ }
145
+ inquire(options) {
146
+ return this.startInquire(options).result;
147
+ }
148
+ startInquire(options) {
149
+ return this.startOperation('inquire', {
150
+ receiptNumber: requireText(options.receiptNumber, 'receiptNumber'),
151
+ transactionDate: requireDate(options.transactionDate, true),
152
+ originalTerminalId: options.originalTerminalId?.trim() ?? '',
153
+ merchantReferenceId: requireReference(options.merchantReferenceId, 'merchantReferenceId'),
154
+ operationId: options.operationId
155
+ }, normalizeInquiry);
156
+ }
157
+ inquireByReference(originalMerchantReference, options = {}) {
158
+ return this.startInquireByReference(originalMerchantReference, options).result;
159
+ }
160
+ startInquireByReference(originalMerchantReference, options = {}) {
161
+ const originalReference = requireReference(originalMerchantReference, 'originalMerchantReference');
162
+ requireText(originalReference, 'originalMerchantReference');
163
+ return this.startOperation('inquireByReference', {
164
+ originalMerchantReference: originalReference,
165
+ transactionDate: requireDate(options.transactionDate ?? '', false),
166
+ originalTerminalId: options.originalTerminalId?.trim() ?? '',
167
+ merchantReferenceId: requireReference(options.merchantReferenceId, 'merchantReferenceId'),
168
+ operationId: options.operationId
169
+ }, normalizeInquiry);
170
+ }
171
+ receipt(options) {
172
+ return this.startReceipt(options).result;
173
+ }
174
+ startReceipt(options) {
175
+ return this.startOperation('receipt', {
176
+ receiptNumber: requireText(options.receiptNumber, 'receiptNumber'),
177
+ transactionDate: requireDate(options.transactionDate, true),
178
+ originalTerminalId: options.originalTerminalId?.trim() ?? '',
179
+ merchantReferenceId: requireReference(options.merchantReferenceId, 'merchantReferenceId'),
180
+ operationId: options.operationId
181
+ }, normalizeReceipt);
182
+ }
183
+ get isIpTransport() {
184
+ return this.transport === 'ethernet' || this.transport === 'wifi';
185
+ }
186
+ request(operationId, values = {}) {
187
+ return {
188
+ operationId: requireText(operationId, 'operationId'),
189
+ host: this.host,
190
+ serialNumber: this.serialNumber,
191
+ transport: this.transport,
192
+ config: this.config,
193
+ ...values
194
+ };
195
+ }
196
+ startResult(method, values) {
197
+ return this.startOperation(method, values, normalizeResult);
198
+ }
199
+ startOperation(method, values, normalize) {
200
+ const suppliedId = values.operationId;
201
+ const operationId = typeof suppliedId === 'string' && suppliedId.trim() ? suppliedId.trim() : newOperationId();
202
+ const requestValues = {
203
+ ...values
204
+ };
205
+ delete requestValues.operationId;
206
+ const request = this.request(operationId, requestValues);
207
+ const result = nativeEcr[method](request).then(normalize);
208
+ return new EcrOperation(operationId, result, id => nativeEcr.cancel(id));
209
+ }
210
+ }
211
+ //# sourceMappingURL=EcrTerminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EcrOperation","nativeEcr","normalizeInquiry","normalizeReceipt","normalizeResult","DEFAULT_CONFIG","ecrId","currencyCode","minorUnitDigits","port","connectTimeoutMs","responseTimeoutMs","probeTimeoutMs","secureHashKey","autoInquireOnFailure","merchantId","terminalId","environment","ENVIRONMENTS","operationSequence","newOperationId","Number","MAX_SAFE_INTEGER","Date","now","toString","Math","random","slice","requireText","value","label","trimmed","trim","TypeError","requireAmount","amount","test","requireDate","required","requireReference","length","positiveInteger","isInteger","normalizeConfig","config","normalized","String","toUpperCase","includes","join","EcrTerminal","constructor","options","serialNumber","transport","host","isReachable","isIpTransport","Promise","resolve","request","sale","startSale","result","startResult","merchantReferenceId","operationId","voidTransaction","receiptNumber","startVoid","originalTerminalId","refund","startRefund","transactionDate","inquire","startInquire","startOperation","inquireByReference","originalMerchantReference","startInquireByReference","originalReference","receipt","startReceipt","values","method","normalize","suppliedId","requestValues","then","id","cancel"],"sourceRoot":"../../src","sources":["EcrTerminal.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.getEnforcing('AmwalEcr');
5
+ //# sourceMappingURL=NativeAmwalEcr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAmwalEcr.ts"],"mappings":";;AAAA,SACEA,mBAAmB,QAGd,cAAc;AAuBrB,eAAeA,mBAAmB,CAACC,YAAY,CAAO,UAAU,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export { EcrOperation } from "./EcrOperation.js";
4
+ export { EcrTerminal } from "./EcrTerminal.js";
5
+ export { normalizeInquiry, normalizeReceipt, normalizeResult } from "./normalize.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EcrOperation","EcrTerminal","normalizeInquiry","normalizeReceipt","normalizeResult"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,eAAe,QACV,gBAAa","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ const unsupported = () => {
4
+ throw new Error("'react-native-amwal-ecr' is only supported on Android and iOS.");
5
+ };
6
+ export const nativeEcr = {
7
+ isReachable: async () => unsupported(),
8
+ sale: async () => unsupported(),
9
+ voidTransaction: async () => unsupported(),
10
+ refund: async () => unsupported(),
11
+ inquire: async () => unsupported(),
12
+ inquireByReference: async () => unsupported(),
13
+ receipt: async () => unsupported(),
14
+ cancel: async () => unsupported()
15
+ };
16
+ //# sourceMappingURL=native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["unsupported","Error","nativeEcr","isReachable","sale","voidTransaction","refund","inquire","inquireByReference","receipt","cancel"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":";;AAEA,MAAMA,WAAW,GAAGA,CAAA,KAAa;EAC/B,MAAM,IAAIC,KAAK,CACb,gEACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,SAAgC,GAAG;EAC9CC,WAAW,EAAE,MAAAA,CAAA,KAAYH,WAAW,CAAC,CAAC;EACtCI,IAAI,EAAE,MAAAA,CAAA,KAAYJ,WAAW,CAAC,CAAC;EAC/BK,eAAe,EAAE,MAAAA,CAAA,KAAYL,WAAW,CAAC,CAAC;EAC1CM,MAAM,EAAE,MAAAA,CAAA,KAAYN,WAAW,CAAC,CAAC;EACjCO,OAAO,EAAE,MAAAA,CAAA,KAAYP,WAAW,CAAC,CAAC;EAClCQ,kBAAkB,EAAE,MAAAA,CAAA,KAAYR,WAAW,CAAC,CAAC;EAC7CS,OAAO,EAAE,MAAAA,CAAA,KAAYT,WAAW,CAAC,CAAC;EAClCU,MAAM,EAAE,MAAAA,CAAA,KAAYV,WAAW,CAAC;AAClC,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { default as nativeEcr } from "./NativeAmwalEcr.js";
4
+ //# sourceMappingURL=native.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","nativeEcr"],"sourceRoot":"../../src","sources":["native.native.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,SAAS,QAAQ,qBAAkB","ignoreList":[]}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ const knownFailures = new Set(['unreachable', 'timeout', 'malformed', 'connectionLost', 'unauthenticated', 'cancelled', 'unsupported']);
4
+ function record(value, label) {
5
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
6
+ throw new Error(`The native ECR host returned an invalid ${label}.`);
7
+ }
8
+ return value;
9
+ }
10
+ function failure(value) {
11
+ const raw = record(value, 'failure');
12
+ const rawKind = String(raw.kind ?? 'malformed');
13
+ const kind = knownFailures.has(rawKind) ? rawKind : 'malformed';
14
+ return {
15
+ kind,
16
+ message: String(raw.message ?? 'The native ECR host did not explain the failure.'),
17
+ outcomeIsUnknown: kind !== 'unreachable' && kind !== 'unsupported'
18
+ };
19
+ }
20
+ export function normalizeInquiry(value) {
21
+ const raw = record(value, 'inquiry');
22
+ switch (raw.outcome) {
23
+ case 'found':
24
+ case 'notFound':
25
+ return raw;
26
+ case 'failed':
27
+ return {
28
+ ...raw,
29
+ failure: failure(raw.failure)
30
+ };
31
+ default:
32
+ throw new Error('The native ECR host returned an unknown inquiry outcome.');
33
+ }
34
+ }
35
+ export function normalizeReceipt(value) {
36
+ const raw = record(value, 'receipt');
37
+ switch (raw.outcome) {
38
+ case 'ready':
39
+ case 'unavailable':
40
+ return raw;
41
+ case 'failed':
42
+ return {
43
+ ...raw,
44
+ failure: failure(raw.failure)
45
+ };
46
+ default:
47
+ throw new Error('The native ECR host returned an unknown receipt outcome.');
48
+ }
49
+ }
50
+ export function normalizeResult(value) {
51
+ const raw = record(value, 'transaction result');
52
+ switch (raw.outcome) {
53
+ case 'approved':
54
+ return {
55
+ ...raw,
56
+ outcomeIsUnknown: false,
57
+ nextStep: 'NONE'
58
+ };
59
+ case 'declined':
60
+ {
61
+ const nextStep = raw.nextStep === 'INQUIRE_BY_MERCHANT_REFERENCE' ? 'INQUIRE_BY_MERCHANT_REFERENCE' : 'NONE';
62
+ return {
63
+ ...raw,
64
+ nextStep,
65
+ outcomeIsUnknown: raw.responseCode === '91' || nextStep === 'INQUIRE_BY_MERCHANT_REFERENCE'
66
+ };
67
+ }
68
+ case 'failed':
69
+ {
70
+ const recovered = raw.recovered ? normalizeInquiry(raw.recovered) : undefined;
71
+ const mappedFailure = failure(raw.failure);
72
+ const settled = recovered?.outcome === 'found';
73
+ const outcomeIsUnknown = mappedFailure.outcomeIsUnknown && !settled;
74
+ return {
75
+ ...raw,
76
+ failure: mappedFailure,
77
+ recovered,
78
+ settled,
79
+ outcomeIsUnknown,
80
+ nextStep: outcomeIsUnknown ? 'INQUIRE_BY_MERCHANT_REFERENCE' : 'NONE'
81
+ };
82
+ }
83
+ default:
84
+ throw new Error('The native ECR host returned an unknown transaction outcome.');
85
+ }
86
+ }
87
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["knownFailures","Set","record","value","label","Array","isArray","Error","failure","raw","rawKind","String","kind","has","message","outcomeIsUnknown","normalizeInquiry","outcome","normalizeReceipt","normalizeResult","nextStep","responseCode","recovered","undefined","mappedFailure","settled"],"sourceRoot":"../../src","sources":["normalize.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,10 @@
1
+ export declare class EcrOperation<T> {
2
+ readonly operationId: string;
3
+ readonly result: Promise<T>;
4
+ private readonly onCancel;
5
+ private cancelRequested;
6
+ constructor(operationId: string, result: Promise<T>, onCancel: (operationId: string) => Promise<boolean>);
7
+ get isCancelRequested(): boolean;
8
+ cancel(): Promise<boolean>;
9
+ }
10
+ //# sourceMappingURL=EcrOperation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EcrOperation.d.ts","sourceRoot":"","sources":["../../../src/EcrOperation.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAY,CAAC,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IACrE,OAAO,CAAC,eAAe,CAAS;gBAG9B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC;IAOrD,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;CAI3B"}
@@ -0,0 +1,34 @@
1
+ import { EcrOperation } from './EcrOperation.js';
2
+ import type { EcrConfig, EcrDatedTransactionOptions, EcrInquiry, EcrInquiryByReferenceOptions, EcrOriginalTransactionOptions, EcrReceipt, EcrReferenceOptions, EcrRefundOptions, EcrResult, EcrTerminalOptions, EcrTransport } from './types.js';
3
+ /**
4
+ * One Amwal POS terminal reachable from the mobile device's local network.
5
+ *
6
+ * Amounts are decimal strings, never JavaScript numbers. A failed exchange is
7
+ * not a decline: when `outcomeIsUnknown` is true, inquire by the same merchant
8
+ * reference before considering another money-moving request.
9
+ */
10
+ export declare class EcrTerminal {
11
+ readonly host: string;
12
+ readonly serialNumber: string;
13
+ readonly transport: EcrTransport;
14
+ readonly config: Required<EcrConfig>;
15
+ constructor(options: EcrTerminalOptions);
16
+ isReachable(): Promise<boolean>;
17
+ sale(amount: string, options?: EcrReferenceOptions): Promise<EcrResult>;
18
+ startSale(amount: string, options?: EcrReferenceOptions): EcrOperation<EcrResult>;
19
+ voidTransaction(receiptNumber: string, options?: EcrOriginalTransactionOptions): Promise<EcrResult>;
20
+ startVoid(receiptNumber: string, options?: EcrOriginalTransactionOptions): EcrOperation<EcrResult>;
21
+ refund(amount: string, options: EcrRefundOptions): Promise<EcrResult>;
22
+ startRefund(amount: string, options: EcrRefundOptions): EcrOperation<EcrResult>;
23
+ inquire(options: EcrDatedTransactionOptions): Promise<EcrInquiry>;
24
+ startInquire(options: EcrDatedTransactionOptions): EcrOperation<EcrInquiry>;
25
+ inquireByReference(originalMerchantReference: string, options?: EcrInquiryByReferenceOptions): Promise<EcrInquiry>;
26
+ startInquireByReference(originalMerchantReference: string, options?: EcrInquiryByReferenceOptions): EcrOperation<EcrInquiry>;
27
+ receipt(options: EcrDatedTransactionOptions): Promise<EcrReceipt>;
28
+ startReceipt(options: EcrDatedTransactionOptions): EcrOperation<EcrReceipt>;
29
+ private get isIpTransport();
30
+ private request;
31
+ private startResult;
32
+ private startOperation;
33
+ }
34
+ //# sourceMappingURL=EcrTerminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EcrTerminal.d.ts","sourceRoot":"","sources":["../../../src/EcrTerminal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAO9C,OAAO,KAAK,EACV,SAAS,EACT,0BAA0B,EAE1B,UAAU,EACV,4BAA4B,EAC5B,6BAA6B,EAC7B,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACb,MAAM,YAAS,CAAC;AA4GjB;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAEzB,OAAO,EAAE,kBAAkB;IAcvC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3E,SAAS,CACP,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,mBAAwB,GAChC,YAAY,CAAC,SAAS,CAAC;IAW1B,eAAe,CACb,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,SAAS,CAAC;IAIrB,SAAS,CACP,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,6BAAkC,GAC1C,YAAY,CAAC,SAAS,CAAC;IAY1B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIrE,WAAW,CACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,GACxB,YAAY,CAAC,SAAS,CAAC;IAc1B,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC;IAIjE,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,YAAY,CAAC,UAAU,CAAC;IAiB3E,kBAAkB,CAChB,yBAAyB,EAAE,MAAM,EACjC,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,UAAU,CAAC;IAKtB,uBAAuB,CACrB,yBAAyB,EAAE,MAAM,EACjC,OAAO,GAAE,4BAAiC,GACzC,YAAY,CAAC,UAAU,CAAC;IAsB3B,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,UAAU,CAAC;IAIjE,YAAY,CAAC,OAAO,EAAE,0BAA0B,GAAG,YAAY,CAAC,UAAU,CAAC;IAiB3E,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,cAAc;CAsBvB"}
@@ -0,0 +1,14 @@
1
+ import { type CodegenTypes, type TurboModule } from 'react-native';
2
+ export interface Spec extends TurboModule {
3
+ isReachable(request: CodegenTypes.UnsafeObject): Promise<boolean>;
4
+ sale(request: CodegenTypes.UnsafeObject): Promise<CodegenTypes.UnsafeObject>;
5
+ voidTransaction(request: CodegenTypes.UnsafeObject): Promise<CodegenTypes.UnsafeObject>;
6
+ refund(request: CodegenTypes.UnsafeObject): Promise<CodegenTypes.UnsafeObject>;
7
+ inquire(request: CodegenTypes.UnsafeObject): Promise<CodegenTypes.UnsafeObject>;
8
+ inquireByReference(request: CodegenTypes.UnsafeObject): Promise<CodegenTypes.UnsafeObject>;
9
+ receipt(request: CodegenTypes.UnsafeObject): Promise<CodegenTypes.UnsafeObject>;
10
+ cancel(operationId: string): Promise<boolean>;
11
+ }
12
+ declare const _default: Spec;
13
+ export default _default;
14
+ //# sourceMappingURL=NativeAmwalEcr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeAmwalEcr.d.ts","sourceRoot":"","sources":["../../../src/NativeAmwalEcr.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC7E,eAAe,CACb,OAAO,EAAE,YAAY,CAAC,YAAY,GACjC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,CACJ,OAAO,EAAE,YAAY,CAAC,YAAY,GACjC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtC,OAAO,CACL,OAAO,EAAE,YAAY,CAAC,YAAY,GACjC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtC,kBAAkB,CAChB,OAAO,EAAE,YAAY,CAAC,YAAY,GACjC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtC,OAAO,CACL,OAAO,EAAE,YAAY,CAAC,YAAY,GACjC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;;AAED,wBAAkE"}
@@ -0,0 +1,5 @@
1
+ export { EcrOperation } from './EcrOperation.js';
2
+ export { EcrTerminal } from './EcrTerminal.js';
3
+ export { normalizeInquiry, normalizeReceipt, normalizeResult, } from './normalize.js';
4
+ export type { EcrApproved, EcrConfig, EcrDatedTransactionOptions, EcrDeclined, EcrEnvironment, EcrFailed, EcrFailure, EcrFailureKind, EcrInquiry, EcrInquiryByReferenceOptions, EcrInquiryFailed, EcrInquiryFound, EcrInquiryNotFound, EcrNextStep, EcrOriginalTransactionOptions, EcrReceipt, EcrReceiptFailed, EcrReceiptReady, EcrReceiptUnavailable, EcrReferenceOptions, EcrRefundOptions, EcrResult, EcrTerminalOptions, EcrTransaction, EcrTransport, } from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAe,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAa,CAAC;AACrB,YAAY,EACV,WAAW,EACX,SAAS,EACT,0BAA0B,EAC1B,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,cAAc,EACd,UAAU,EACV,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,6BAA6B,EAC7B,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,YAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type NativeAmwalEcr from './NativeAmwalEcr.js';
2
+ export declare const nativeEcr: typeof NativeAmwalEcr;
3
+ //# sourceMappingURL=native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,qBAAkB,CAAC;AAQnD,eAAO,MAAM,SAAS,EAAE,OAAO,cAS9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as nativeEcr } from './NativeAmwalEcr.js';
2
+ //# sourceMappingURL=native.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.native.d.ts","sourceRoot":"","sources":["../../../src/native.native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { EcrInquiry, EcrReceipt, EcrResult } from './types.js';
2
+ export declare function normalizeInquiry(value: unknown): EcrInquiry;
3
+ export declare function normalizeReceipt(value: unknown): EcrReceipt;
4
+ export declare function normalizeResult(value: unknown): EcrResult;
5
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,UAAU,EACV,UAAU,EACV,SAAS,EACV,MAAM,YAAS,CAAC;AAoCjB,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAa3D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAa3D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CA2CzD"}