react-native-nfc-manager 4.0.0-beta.1 → 4.0.0-beta.11
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/README.md +146 -49
- package/android/src/main/java/community/revteltech/nfc/MifareClassicHandler.java +419 -0
- package/android/src/main/java/community/revteltech/nfc/MifareUltralightHandler.java +84 -0
- package/android/src/main/java/community/revteltech/nfc/NdefHandler.java +397 -0
- package/android/src/main/java/community/revteltech/nfc/NfcAdapterStateChangedReceiver.java +48 -0
- package/android/src/main/java/community/revteltech/nfc/NfcErrorCodes.java +16 -0
- package/android/src/main/java/community/revteltech/nfc/NfcManager.java +348 -1087
- package/android/src/main/java/community/revteltech/nfc/NfcManagerIOSStubBase.java +130 -0
- package/android/src/main/java/community/revteltech/nfc/NfcTechIoRouter.java +258 -0
- package/android/src/main/java/community/revteltech/nfc/TagTechnologyRequest.java +19 -7
- package/android/src/main/java/community/revteltech/nfc/Util.java +275 -2
- package/app.plugin.js +8 -9
- package/dist/ndef-lib/constants.js +67 -0
- package/dist/ndef-lib/constants.js.map +1 -0
- package/dist/ndef-lib/index.js +79 -0
- package/dist/ndef-lib/index.js.map +1 -0
- package/dist/ndef-lib/ndef-text.js +29 -0
- package/dist/ndef-lib/ndef-text.js.map +1 -0
- package/dist/ndef-lib/ndef-uri.js +40 -0
- package/dist/ndef-lib/ndef-uri.js.map +1 -0
- package/dist/ndef-lib/ndef-wifi-simple.js +100 -0
- package/dist/ndef-lib/ndef-wifi-simple.js.map +1 -0
- package/dist/ndef-lib/ndef.js +152 -0
- package/dist/ndef-lib/ndef.js.map +1 -0
- package/dist/ndef-lib/stringifier.js +155 -0
- package/dist/ndef-lib/stringifier.js.map +1 -0
- package/dist/ndef-lib/util.js +134 -0
- package/dist/ndef-lib/util.js.map +1 -0
- package/dist/specs/NativeNfcManager.js +5 -0
- package/dist/specs/NativeNfcManager.js.map +1 -0
- package/dist/src/NativeNfcManager.js +55 -0
- package/dist/src/NativeNfcManager.js.map +1 -0
- package/dist/src/NfcError.js +220 -0
- package/dist/src/NfcError.js.map +1 -0
- package/dist/src/NfcManager.js +175 -0
- package/dist/src/NfcManager.js.map +1 -0
- package/dist/src/NfcManagerAndroid.js +112 -0
- package/dist/src/NfcManagerAndroid.js.map +1 -0
- package/dist/src/NfcManagerIOS.js +119 -0
- package/dist/src/NfcManagerIOS.js.map +1 -0
- package/dist/src/NfcTech/Iso15693HandlerIOS.js +99 -0
- package/dist/src/NfcTech/Iso15693HandlerIOS.js.map +1 -0
- package/dist/src/NfcTech/IsoDepHandler.js +29 -0
- package/dist/src/NfcTech/IsoDepHandler.js.map +1 -0
- package/dist/src/NfcTech/MifareClassicHandlerAndroid.js +68 -0
- package/dist/src/NfcTech/MifareClassicHandlerAndroid.js.map +1 -0
- package/dist/src/NfcTech/MifareUltralightHandlerAndroid.js +23 -0
- package/dist/src/NfcTech/MifareUltralightHandlerAndroid.js.map +1 -0
- package/dist/src/NfcTech/NdefFormatableHandlerAndroid.js +16 -0
- package/dist/src/NfcTech/NdefFormatableHandlerAndroid.js.map +1 -0
- package/dist/src/NfcTech/NdefHandler.js +54 -0
- package/dist/src/NfcTech/NdefHandler.js.map +1 -0
- package/dist/src/NfcTech/NfcAHandler.js +16 -0
- package/dist/src/NfcTech/NfcAHandler.js.map +1 -0
- package/dist/src/NfcTech/NfcVHandler.js +33 -0
- package/dist/src/NfcTech/NfcVHandler.js.map +1 -0
- package/dist/src/index.js +53 -0
- package/dist/src/index.js.map +1 -0
- package/index.d.ts +110 -46
- package/ios/NfcManager.h +2 -11
- package/ios/NfcManager.mm +264 -438
- package/ios/RNNfcBridgeUtil.h +28 -0
- package/ios/RNNfcBridgeUtil.mm +52 -0
- package/ios/RNNfcManager+Felica.swift +61 -0
- package/ios/RNNfcManager+Iso15693.swift +895 -0
- package/ios/RNNfcManager+IsoDep.swift +145 -0
- package/ios/RNNfcManager+Mifare.swift +61 -0
- package/ios/RNNfcManager+Ndef.swift +120 -0
- package/ios/RNNfcManager.h +251 -0
- package/ios/RNNfcManager.swift +648 -0
- package/ios/RNNfcSessionDelegateProxy.swift +104 -0
- package/ios/RNNfcSwiftUtil.swift +34 -0
- package/ndef-lib/{constants.js → constants.ts} +2 -0
- package/ndef-lib/{index.js → index.ts} +23 -12
- package/ndef-lib/{ndef-text.js → ndef-text.ts} +7 -2
- package/ndef-lib/{ndef-uri.js → ndef-uri.ts} +8 -3
- package/ndef-lib/{ndef-wifi-simple.js → ndef-wifi-simple.ts} +34 -11
- package/ndef-lib/{ndef.js → ndef.ts} +53 -25
- package/ndef-lib/{stringifier.js → stringifier.ts} +27 -10
- package/ndef-lib/{util.js → util.ts} +23 -9
- package/package.json +39 -21
- package/react-native-nfc-manager.podspec +3 -2
- package/specs/NativeNfcManager.ts +18 -4
- package/src/NativeNfcManager.ts +84 -0
- package/src/{NfcError.js → NfcError.ts} +6 -17
- package/src/{NfcManager.js → NfcManager.ts} +51 -34
- package/src/{NfcManagerAndroid.js → NfcManagerAndroid.ts} +27 -8
- package/src/{NfcManagerIOS.js → NfcManagerIOS.ts} +31 -10
- package/src/NfcTech/{Iso15693HandlerIOS.js → Iso15693HandlerIOS.ts} +64 -36
- package/src/NfcTech/{IsoDepHandler.js → IsoDepHandler.ts} +8 -5
- package/src/NfcTech/{MifareClassicHandlerAndroid.js → MifareClassicHandlerAndroid.ts} +33 -24
- package/src/NfcTech/{MifareUltralightHandlerAndroid.js → MifareUltralightHandlerAndroid.ts} +14 -5
- package/src/NfcTech/{NdefFormatableHandlerAndroid.js → NdefFormatableHandlerAndroid.ts} +9 -2
- package/src/NfcTech/{NdefHandler.js → NdefHandler.ts} +19 -6
- package/src/NfcTech/{NfcAHandler.js → NfcAHandler.ts} +6 -3
- package/src/NfcTech/{NfcVHandler.js → NfcVHandler.ts} +8 -5
- package/src/__mocks__/{NativeNfcManager.js → NativeNfcManager.ts} +4 -1
- package/src/{index.js → index.ts} +1 -1
- package/android/src/main/java/community/revteltech/nfc/JsonConvert.java +0 -141
- package/android/src/main/java/community/revteltech/nfc/MifareUtil.java +0 -84
- package/ios/NfcManager+Felica.mm +0 -43
- package/ios/NfcManager+Iso15693.mm +0 -600
- package/ios/NfcManager+IsoDep.mm +0 -83
- package/ios/NfcManager+Mifare.mm +0 -43
- package/ios/Util.mm +0 -55
- package/specs/NativeNfcManager.d.ts +0 -6
- package/specs/NativeNfcManager.js +0 -3
- package/specs/NativeNfcManager.js.map +0 -1
- package/src/NativeNfcManager.js +0 -37
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var util = require('./util');
|
|
4
|
+
const CREDENTIAL_FIELD_ID = [0x10, 0x0e];
|
|
5
|
+
const SSID_FIELD_ID = [0x10, 0x45];
|
|
6
|
+
const AUTH_TYPE_FIELD_ID = [0x10, 0x03];
|
|
7
|
+
const NETWORK_KEY_FIELD_ID = [0x10, 0x27];
|
|
8
|
+
const AUTH_TYPES = {
|
|
9
|
+
OPEN: [0x00, 0x00],
|
|
10
|
+
WPA2_PSK: [0x00, 0x20],
|
|
11
|
+
};
|
|
12
|
+
function _getLengthBytes(valueBytes) {
|
|
13
|
+
if (valueBytes.length > 255) {
|
|
14
|
+
return [Math.floor(valueBytes.length / 256), valueBytes.length % 256];
|
|
15
|
+
}
|
|
16
|
+
return [0x0, valueBytes.length];
|
|
17
|
+
}
|
|
18
|
+
function _arrayEqual(arr1, arr2) {
|
|
19
|
+
if (arr1.length !== arr2.length) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
for (let i = 0; i < arr1.length; i++) {
|
|
23
|
+
if (arr1[i] !== arr2[i]) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
function _getNextTLV(bytes) {
|
|
30
|
+
const type = bytes.slice(0, 2);
|
|
31
|
+
const length = bytes.slice(2, 4);
|
|
32
|
+
const value = bytes.slice(4, 4 + (length[0] * 256 + length[1]));
|
|
33
|
+
return {
|
|
34
|
+
type,
|
|
35
|
+
length,
|
|
36
|
+
value,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// @returns an string of wifi credentials
|
|
40
|
+
function decode(bytes) {
|
|
41
|
+
let result = {};
|
|
42
|
+
while (bytes.length > 0) {
|
|
43
|
+
let { type, value } = _getNextTLV(bytes);
|
|
44
|
+
bytes = bytes.slice(4 + value.length, bytes.length);
|
|
45
|
+
if (_arrayEqual(CREDENTIAL_FIELD_ID, type)) {
|
|
46
|
+
let credential = value;
|
|
47
|
+
while (credential.length > 0) {
|
|
48
|
+
let tlv = _getNextTLV(credential);
|
|
49
|
+
credential = credential.slice(4 + tlv.value.length, credential.length);
|
|
50
|
+
if (_arrayEqual(AUTH_TYPE_FIELD_ID, tlv.type)) {
|
|
51
|
+
result.authType = tlv.value;
|
|
52
|
+
}
|
|
53
|
+
else if (_arrayEqual(SSID_FIELD_ID, tlv.type)) {
|
|
54
|
+
result.ssid = util.bytesToString(tlv.value);
|
|
55
|
+
}
|
|
56
|
+
else if (_arrayEqual(NETWORK_KEY_FIELD_ID, tlv.type)) {
|
|
57
|
+
result.networkKey = util.bytesToString(tlv.value);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
// encode wifi object payload
|
|
65
|
+
// @returns an array of bytes
|
|
66
|
+
function encode({ ssid, networkKey, authType = AUTH_TYPES.WPA2_PSK }) {
|
|
67
|
+
if (typeof ssid !== 'string' || typeof networkKey !== 'string') {
|
|
68
|
+
throw new Error('');
|
|
69
|
+
}
|
|
70
|
+
const ssidBytes = util.stringToBytes(ssid);
|
|
71
|
+
const networkKeyBytes = util.stringToBytes(networkKey);
|
|
72
|
+
// build seperated TLV
|
|
73
|
+
const authTypeTLV = [
|
|
74
|
+
...AUTH_TYPE_FIELD_ID,
|
|
75
|
+
0x0,
|
|
76
|
+
authType.length,
|
|
77
|
+
...authType,
|
|
78
|
+
];
|
|
79
|
+
const ssidTLV = [...SSID_FIELD_ID, 0x0, ssidBytes.length, ...ssidBytes];
|
|
80
|
+
const networkKeyTLV = [
|
|
81
|
+
...NETWORK_KEY_FIELD_ID,
|
|
82
|
+
0x0,
|
|
83
|
+
networkKeyBytes.length,
|
|
84
|
+
...networkKeyBytes,
|
|
85
|
+
];
|
|
86
|
+
// build credential TLV
|
|
87
|
+
const credentialValue = [...authTypeTLV, ...ssidTLV, ...networkKeyTLV];
|
|
88
|
+
const credentialTLV = [
|
|
89
|
+
...CREDENTIAL_FIELD_ID,
|
|
90
|
+
..._getLengthBytes(credentialValue),
|
|
91
|
+
...credentialValue,
|
|
92
|
+
];
|
|
93
|
+
return credentialTLV;
|
|
94
|
+
}
|
|
95
|
+
module.exports = {
|
|
96
|
+
encodePayload: encode,
|
|
97
|
+
decodePayload: decode,
|
|
98
|
+
authTypes: AUTH_TYPES,
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=ndef-wifi-simple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ndef-wifi-simple.js","sourceRoot":"","sources":["../../ndef-lib/ndef-wifi-simple.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const util = require('./util');
|
|
4
|
+
function createNdefRecord(tnf, type, id, payload) {
|
|
5
|
+
if (tnf === undefined ||
|
|
6
|
+
type === undefined ||
|
|
7
|
+
id === undefined ||
|
|
8
|
+
payload === undefined) {
|
|
9
|
+
throw new Error('missing required param');
|
|
10
|
+
}
|
|
11
|
+
// store type as String so it's easier to compare
|
|
12
|
+
if (type instanceof Array) {
|
|
13
|
+
type = util.bytesToString(type);
|
|
14
|
+
}
|
|
15
|
+
// in the future, id could be a String
|
|
16
|
+
if (!(id instanceof Array)) {
|
|
17
|
+
id = util.stringToBytes(id);
|
|
18
|
+
}
|
|
19
|
+
// Payload must be binary
|
|
20
|
+
if (!(payload instanceof Array)) {
|
|
21
|
+
payload = util.stringToBytes(payload);
|
|
22
|
+
}
|
|
23
|
+
const idBytes = id;
|
|
24
|
+
const payloadBytes = payload;
|
|
25
|
+
return {
|
|
26
|
+
tnf,
|
|
27
|
+
type,
|
|
28
|
+
id: idBytes,
|
|
29
|
+
payload: payloadBytes,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function encodeNdefMessage(ndefRecords) {
|
|
33
|
+
const encodeTnf = ({ mb, me, cf, sr, il, tnf }) => {
|
|
34
|
+
let value = tnf;
|
|
35
|
+
if (mb) {
|
|
36
|
+
value = value | 0x80;
|
|
37
|
+
}
|
|
38
|
+
if (me) {
|
|
39
|
+
value = value | 0x40;
|
|
40
|
+
}
|
|
41
|
+
// note if cf: me, mb, li must be false and tnf must be 0x6
|
|
42
|
+
if (cf) {
|
|
43
|
+
value = value | 0x20;
|
|
44
|
+
}
|
|
45
|
+
if (sr) {
|
|
46
|
+
value = value | 0x10;
|
|
47
|
+
}
|
|
48
|
+
if (il) {
|
|
49
|
+
value = value | 0x8;
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
};
|
|
53
|
+
let encoded = [], tnf_byte, record_type, payload_length, id_length, i, mb, me, // messageBegin, messageEnd
|
|
54
|
+
cf = false, // chunkFlag TODO implement
|
|
55
|
+
sr, // boolean shortRecord
|
|
56
|
+
il; // boolean idLengthFieldIsPresent
|
|
57
|
+
for (i = 0; i < ndefRecords.length; i++) {
|
|
58
|
+
mb = i === 0;
|
|
59
|
+
me = i === ndefRecords.length - 1;
|
|
60
|
+
sr = ndefRecords[i].payload.length < 0xff;
|
|
61
|
+
il = ndefRecords[i].id.length > 0;
|
|
62
|
+
tnf_byte = encodeTnf({ mb, me, cf, sr, il, tnf: ndefRecords[i].tnf });
|
|
63
|
+
encoded.push(tnf_byte);
|
|
64
|
+
// type is stored as String, converting to bytes for storage
|
|
65
|
+
record_type = util.stringToBytes(ndefRecords[i].type);
|
|
66
|
+
encoded.push(record_type.length);
|
|
67
|
+
if (sr) {
|
|
68
|
+
payload_length = ndefRecords[i].payload.length;
|
|
69
|
+
encoded.push(payload_length);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
payload_length = ndefRecords[i].payload.length;
|
|
73
|
+
// 4 bytes
|
|
74
|
+
encoded.push(payload_length >> 24);
|
|
75
|
+
encoded.push(payload_length >> 16);
|
|
76
|
+
encoded.push(payload_length >> 8);
|
|
77
|
+
encoded.push(payload_length & 0xff);
|
|
78
|
+
}
|
|
79
|
+
if (il) {
|
|
80
|
+
id_length = ndefRecords[i].id.length;
|
|
81
|
+
encoded.push(id_length);
|
|
82
|
+
}
|
|
83
|
+
encoded = encoded.concat(record_type);
|
|
84
|
+
if (il) {
|
|
85
|
+
encoded = encoded.concat(ndefRecords[i].id);
|
|
86
|
+
}
|
|
87
|
+
encoded = encoded.concat(ndefRecords[i].payload);
|
|
88
|
+
}
|
|
89
|
+
return encoded;
|
|
90
|
+
}
|
|
91
|
+
function decodeNdefMessage(ndefBytes) {
|
|
92
|
+
const decodeTnf = (tnf_byte) => ({
|
|
93
|
+
mb: (tnf_byte & 0x80) !== 0,
|
|
94
|
+
me: (tnf_byte & 0x40) !== 0,
|
|
95
|
+
cf: (tnf_byte & 0x20) !== 0,
|
|
96
|
+
sr: (tnf_byte & 0x10) !== 0,
|
|
97
|
+
il: (tnf_byte & 0x8) !== 0,
|
|
98
|
+
tnf: tnf_byte & 0x7,
|
|
99
|
+
});
|
|
100
|
+
// Buffer extends Uint8Array; copy only the supplied view before parsing.
|
|
101
|
+
let bytes;
|
|
102
|
+
if (Array.isArray(ndefBytes) || ndefBytes instanceof Uint8Array) {
|
|
103
|
+
bytes = Array.from(ndefBytes);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
throw new Error('ndef.decodeMessage requires a Buffer, Uint8Array, or an Array of bytes');
|
|
107
|
+
}
|
|
108
|
+
let ndef_message = [], tnf_byte, header, type_length = 0, payload_length = 0, id_length = 0, record_type = [], id = [], payload = [];
|
|
109
|
+
while (bytes.length) {
|
|
110
|
+
tnf_byte = bytes.shift();
|
|
111
|
+
header = decodeTnf(tnf_byte);
|
|
112
|
+
type_length = bytes.shift();
|
|
113
|
+
if (header.sr) {
|
|
114
|
+
payload_length = bytes.shift();
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
// next 4 bytes are length
|
|
118
|
+
payload_length =
|
|
119
|
+
((0xff & bytes.shift()) << 24) |
|
|
120
|
+
((0xff & bytes.shift()) << 16) |
|
|
121
|
+
((0xff & bytes.shift()) << 8) |
|
|
122
|
+
(0xff & bytes.shift());
|
|
123
|
+
}
|
|
124
|
+
id_length = header.il ? bytes.shift() : 0;
|
|
125
|
+
record_type = bytes.splice(0, type_length);
|
|
126
|
+
id = bytes.splice(0, id_length);
|
|
127
|
+
payload = bytes.splice(0, payload_length);
|
|
128
|
+
ndef_message.push(createNdefRecord(header.tnf, record_type, id, payload));
|
|
129
|
+
if (header.me) {
|
|
130
|
+
break;
|
|
131
|
+
} // last message
|
|
132
|
+
}
|
|
133
|
+
return ndef_message;
|
|
134
|
+
}
|
|
135
|
+
function equalToRecordType(record, tnf, type) {
|
|
136
|
+
if (record.tnf === tnf) {
|
|
137
|
+
if (Array.isArray(record.type)) {
|
|
138
|
+
return util.bytesToString(record.type) === type;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return record.type === type;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return record.tnf === tnf && record.type === type;
|
|
145
|
+
}
|
|
146
|
+
module.exports = {
|
|
147
|
+
createNdefRecord,
|
|
148
|
+
encodeNdefMessage,
|
|
149
|
+
decodeNdefMessage,
|
|
150
|
+
equalToRecordType,
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=ndef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ndef.js","sourceRoot":"","sources":["../../ndef-lib/ndef.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const ndef = require('./ndef');
|
|
4
|
+
const constants = require('./constants');
|
|
5
|
+
// Convert NDEF records and messages to strings
|
|
6
|
+
// This works OK for demos, but real code proably needs
|
|
7
|
+
// a custom implementation. It would be nice to make
|
|
8
|
+
// smarter record objects that can print themselves
|
|
9
|
+
let stringifier = {
|
|
10
|
+
stringify: function (data, separator) {
|
|
11
|
+
if (Array.isArray(data)) {
|
|
12
|
+
const records = typeof data[0] === 'number'
|
|
13
|
+
? ndef.decodeMessage(data)
|
|
14
|
+
: data;
|
|
15
|
+
if (typeof data[0] === 'number') {
|
|
16
|
+
// guessing this message bytes
|
|
17
|
+
data = records;
|
|
18
|
+
}
|
|
19
|
+
return stringifier.printRecords(records, separator);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return stringifier.printRecord(data, separator);
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
// @message - NDEF Message (array of NDEF Records)
|
|
26
|
+
// @separator - line separator, optional, defaults to \n
|
|
27
|
+
// @returns string with NDEF Message
|
|
28
|
+
printRecords: function (message, separator) {
|
|
29
|
+
if (!separator) {
|
|
30
|
+
separator = '\n';
|
|
31
|
+
}
|
|
32
|
+
let result = '';
|
|
33
|
+
// Print out the payload for each record
|
|
34
|
+
message.forEach(function (record) {
|
|
35
|
+
result += stringifier.printRecord(record, separator);
|
|
36
|
+
result += separator;
|
|
37
|
+
});
|
|
38
|
+
return result.slice(0, -1 * separator.length);
|
|
39
|
+
},
|
|
40
|
+
// @record - NDEF Record
|
|
41
|
+
// @separator - line separator, optional, defaults to \n
|
|
42
|
+
// @returns string with NDEF Record
|
|
43
|
+
printRecord: function (record, separator) {
|
|
44
|
+
let result = '';
|
|
45
|
+
if (!separator) {
|
|
46
|
+
separator = '\n';
|
|
47
|
+
}
|
|
48
|
+
switch (record.tnf) {
|
|
49
|
+
case constants.TNF_EMPTY:
|
|
50
|
+
result += 'Empty Record';
|
|
51
|
+
result += separator;
|
|
52
|
+
break;
|
|
53
|
+
case constants.TNF_WELL_KNOWN:
|
|
54
|
+
result += stringifier.printWellKnown(record, separator);
|
|
55
|
+
break;
|
|
56
|
+
case constants.TNF_MIME_MEDIA:
|
|
57
|
+
result += 'MIME Media';
|
|
58
|
+
result += separator;
|
|
59
|
+
result += s(record.type);
|
|
60
|
+
result += separator;
|
|
61
|
+
result += s(record.payload); // might be binary
|
|
62
|
+
break;
|
|
63
|
+
case constants.TNF_ABSOLUTE_URI:
|
|
64
|
+
result += 'Absolute URI';
|
|
65
|
+
result += separator;
|
|
66
|
+
result += s(record.type);
|
|
67
|
+
result += separator;
|
|
68
|
+
result += s(record.payload); // might be binary
|
|
69
|
+
break;
|
|
70
|
+
case constants.TNF_EXTERNAL_TYPE:
|
|
71
|
+
// AAR contains strings, other types could
|
|
72
|
+
// contain binary data
|
|
73
|
+
result += 'External';
|
|
74
|
+
result += separator;
|
|
75
|
+
result += s(record.type);
|
|
76
|
+
result += separator;
|
|
77
|
+
result += s(record.payload);
|
|
78
|
+
break;
|
|
79
|
+
default:
|
|
80
|
+
result += s("Can't process TNF " + record.tnf);
|
|
81
|
+
}
|
|
82
|
+
result += separator;
|
|
83
|
+
return result;
|
|
84
|
+
},
|
|
85
|
+
printWellKnown: function (record, separator) {
|
|
86
|
+
let result = '';
|
|
87
|
+
if (record.tnf !== constants.TNF_WELL_KNOWN) {
|
|
88
|
+
return 'ERROR expecting TNF Well Known';
|
|
89
|
+
}
|
|
90
|
+
switch (record.type) {
|
|
91
|
+
case constants.RTD_TEXT:
|
|
92
|
+
result += 'Text Record';
|
|
93
|
+
result += separator;
|
|
94
|
+
result += ndef.text.decodePayload(record.payload);
|
|
95
|
+
break;
|
|
96
|
+
case constants.RTD_URI:
|
|
97
|
+
result += 'URI Record';
|
|
98
|
+
result += separator;
|
|
99
|
+
result += ndef.uri.decodePayload(record.payload);
|
|
100
|
+
break;
|
|
101
|
+
case constants.RTD_SMART_POSTER:
|
|
102
|
+
result += 'Smart Poster';
|
|
103
|
+
result += separator;
|
|
104
|
+
// the payload of a smartposter is a NDEF message
|
|
105
|
+
result += stringifier.printRecords(ndef.decodeMessage(record.payload));
|
|
106
|
+
break;
|
|
107
|
+
default:
|
|
108
|
+
// attempt to display other types
|
|
109
|
+
result += record.type + ' Record';
|
|
110
|
+
result += separator;
|
|
111
|
+
result += s(record.payload);
|
|
112
|
+
}
|
|
113
|
+
return result;
|
|
114
|
+
},
|
|
115
|
+
tnfToString: function (tnf) {
|
|
116
|
+
let value = tnf;
|
|
117
|
+
switch (tnf) {
|
|
118
|
+
case constants.TNF_EMPTY:
|
|
119
|
+
value = 'Empty';
|
|
120
|
+
break;
|
|
121
|
+
case constants.TNF_WELL_KNOWN:
|
|
122
|
+
value = 'Well Known';
|
|
123
|
+
break;
|
|
124
|
+
case constants.TNF_MIME_MEDIA:
|
|
125
|
+
value = 'Mime Media';
|
|
126
|
+
break;
|
|
127
|
+
case constants.TNF_ABSOLUTE_URI:
|
|
128
|
+
value = 'Absolute URI';
|
|
129
|
+
break;
|
|
130
|
+
case constants.TNF_EXTERNAL_TYPE:
|
|
131
|
+
value = 'External';
|
|
132
|
+
break;
|
|
133
|
+
case constants.TNF_UNKNOWN:
|
|
134
|
+
value = 'Unknown';
|
|
135
|
+
break;
|
|
136
|
+
case constants.TNF_UNCHANGED:
|
|
137
|
+
value = 'Unchanged';
|
|
138
|
+
break;
|
|
139
|
+
case constants.TNF_RESERVED:
|
|
140
|
+
value = 'Reserved';
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
return value;
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
function s(bytes) {
|
|
147
|
+
if (typeof bytes === 'string') {
|
|
148
|
+
return bytes;
|
|
149
|
+
}
|
|
150
|
+
return bytes.reduce(function (acc, byte) {
|
|
151
|
+
return acc + String.fromCharCode(byte);
|
|
152
|
+
}, '');
|
|
153
|
+
}
|
|
154
|
+
module.exports = stringifier;
|
|
155
|
+
//# sourceMappingURL=stringifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringifier.js","sourceRoot":"","sources":["../../ndef-lib/stringifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ndef-util.js
|
|
3
|
+
// Copyright 2013 Don Coleman
|
|
4
|
+
//
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
// https://weblog.rogueamoeba.com/2017/02/27/javascript-correctly-converting-a-byte-array-to-a-utf-8-string/
|
|
7
|
+
function _utf8ArrayToStr(data) {
|
|
8
|
+
const extraByteMap = [1, 1, 1, 1, 2, 2, 3, 0];
|
|
9
|
+
var count = data.length;
|
|
10
|
+
var str = '';
|
|
11
|
+
for (var index = 0; index < count;) {
|
|
12
|
+
var ch = data[index++];
|
|
13
|
+
if (ch & 0x80) {
|
|
14
|
+
var extra = extraByteMap[(ch >> 3) & 0x07];
|
|
15
|
+
if (!(ch & 0x40) || !extra || index + extra > count) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
ch = ch & (0x3f >> extra);
|
|
19
|
+
for (; extra > 0; extra -= 1) {
|
|
20
|
+
var chx = data[index++];
|
|
21
|
+
if ((chx & 0xc0) !== 0x80) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
ch = (ch << 6) | (chx & 0x3f);
|
|
25
|
+
}
|
|
26
|
+
// A four-byte sequence can decode above the Unicode maximum, which is
|
|
27
|
+
// not a valid code point. Reject it like the other malformed cases
|
|
28
|
+
// rather than letting String.fromCodePoint throw a RangeError.
|
|
29
|
+
if (ch > 0x10ffff) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// fromCharCode truncates to 16 bits, which silently corrupts anything
|
|
34
|
+
// outside the BMP: U+1F4A9 would come back as U+F4A9.
|
|
35
|
+
str += String.fromCodePoint(ch);
|
|
36
|
+
}
|
|
37
|
+
return str;
|
|
38
|
+
}
|
|
39
|
+
// https://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array
|
|
40
|
+
function _toUTF8Array(str) {
|
|
41
|
+
var out = [], p = 0;
|
|
42
|
+
for (var i = 0; i < str.length; i++) {
|
|
43
|
+
var c = str.charCodeAt(i);
|
|
44
|
+
if (c < 128) {
|
|
45
|
+
out[p++] = c;
|
|
46
|
+
}
|
|
47
|
+
else if (c < 2048) {
|
|
48
|
+
out[p++] = (c >> 6) | 192;
|
|
49
|
+
out[p++] = (c & 63) | 128;
|
|
50
|
+
}
|
|
51
|
+
else if ((c & 0xfc00) === 0xd800 &&
|
|
52
|
+
i + 1 < str.length &&
|
|
53
|
+
(str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {
|
|
54
|
+
// Surrogate Pair
|
|
55
|
+
c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);
|
|
56
|
+
out[p++] = (c >> 18) | 240;
|
|
57
|
+
out[p++] = ((c >> 12) & 63) | 128;
|
|
58
|
+
out[p++] = ((c >> 6) & 63) | 128;
|
|
59
|
+
out[p++] = (c & 63) | 128;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
out[p++] = (c >> 12) | 224;
|
|
63
|
+
out[p++] = ((c >> 6) & 63) | 128;
|
|
64
|
+
out[p++] = (c & 63) | 128;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return out;
|
|
68
|
+
}
|
|
69
|
+
function stringToBytes(string) {
|
|
70
|
+
return _toUTF8Array(string);
|
|
71
|
+
// var bytes = Buffer(string).toJSON();
|
|
72
|
+
// if (bytes.hasOwnProperty('data')) {
|
|
73
|
+
// // Node 0.12.x
|
|
74
|
+
// return bytes.data;
|
|
75
|
+
// } else {
|
|
76
|
+
// // Node 0.10.x
|
|
77
|
+
// return bytes;
|
|
78
|
+
// }
|
|
79
|
+
}
|
|
80
|
+
function bytesToString(bytes) {
|
|
81
|
+
if (typeof bytes === 'string') {
|
|
82
|
+
return bytes;
|
|
83
|
+
}
|
|
84
|
+
return _utf8ArrayToStr(bytes);
|
|
85
|
+
// return Buffer(bytes).toString();
|
|
86
|
+
}
|
|
87
|
+
// useful for readable version of Tag UID
|
|
88
|
+
function bytesToHexString(bytes) {
|
|
89
|
+
var dec, hexstring, bytesAsHexString = '';
|
|
90
|
+
for (var i = 0; i < bytes.length; i++) {
|
|
91
|
+
if (bytes[i] >= 0) {
|
|
92
|
+
dec = bytes[i];
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
dec = 256 + bytes[i];
|
|
96
|
+
}
|
|
97
|
+
hexstring = dec.toString(16);
|
|
98
|
+
// zero padding
|
|
99
|
+
if (hexstring.length === 1) {
|
|
100
|
+
hexstring = '0' + hexstring;
|
|
101
|
+
}
|
|
102
|
+
bytesAsHexString += hexstring;
|
|
103
|
+
}
|
|
104
|
+
return bytesAsHexString;
|
|
105
|
+
}
|
|
106
|
+
// i must be <= 256
|
|
107
|
+
function toHex(i) {
|
|
108
|
+
var hex;
|
|
109
|
+
if (i < 0) {
|
|
110
|
+
i += 256;
|
|
111
|
+
}
|
|
112
|
+
hex = i.toString(16);
|
|
113
|
+
// zero padding
|
|
114
|
+
if (hex.length === 1) {
|
|
115
|
+
hex = '0' + hex;
|
|
116
|
+
}
|
|
117
|
+
return hex;
|
|
118
|
+
}
|
|
119
|
+
function toPrintable(i) {
|
|
120
|
+
if (i >= 0x20 && i <= 0x7f) {
|
|
121
|
+
return String.fromCharCode(i);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
return '.';
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
module.exports = {
|
|
128
|
+
stringToBytes: stringToBytes,
|
|
129
|
+
bytesToString: bytesToString,
|
|
130
|
+
bytesToHexString: bytesToHexString,
|
|
131
|
+
toHex: toHex,
|
|
132
|
+
toPrintable: toPrintable,
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../ndef-lib/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeNfcManager.js","sourceRoot":"","sources":["../../specs/NativeNfcManager.ts"],"names":[],"mappings":";;AAEA,+CAAiD;AA4FjD,kBAAe,kCAAmB,CAAC,YAAY,CAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.callNative = exports.NfcManagerEmitter = exports.NativeNfcManager = void 0;
|
|
4
|
+
const react_native_1 = require("react-native");
|
|
5
|
+
const reactNativeGlobal = global;
|
|
6
|
+
const isTurboModuleEnabled = reactNativeGlobal['RN$Bridgeless'] === true ||
|
|
7
|
+
reactNativeGlobal.__turboModuleProxy != null;
|
|
8
|
+
const nativeModules = react_native_1.NativeModules || {};
|
|
9
|
+
const NativeNfcManager = (isTurboModuleEnabled
|
|
10
|
+
? require('../specs/NativeNfcManager').default
|
|
11
|
+
: nativeModules.NfcManager);
|
|
12
|
+
exports.NativeNfcManager = NativeNfcManager;
|
|
13
|
+
const legacyNfcManagerEmitter = typeof react_native_1.NativeEventEmitter === 'function'
|
|
14
|
+
? new react_native_1.NativeEventEmitter(NativeNfcManager)
|
|
15
|
+
: { addListener: () => ({ remove: () => { } }) };
|
|
16
|
+
const codegenEventEmitters = {
|
|
17
|
+
NfcManagerDiscoverTag: NativeNfcManager.onDiscoverTag,
|
|
18
|
+
NfcManagerDiscoverBackgroundTag: NativeNfcManager.onDiscoverBackgroundTag,
|
|
19
|
+
NfcManagerSessionClosed: NativeNfcManager.onSessionClosed,
|
|
20
|
+
NfcManagerStateChanged: NativeNfcManager.onStateChanged,
|
|
21
|
+
};
|
|
22
|
+
const NfcManagerEmitter = {
|
|
23
|
+
addListener: (eventName, listener) => {
|
|
24
|
+
const codegenEmitter = codegenEventEmitters[eventName];
|
|
25
|
+
if (isTurboModuleEnabled && codegenEmitter) {
|
|
26
|
+
return codegenEmitter(listener);
|
|
27
|
+
}
|
|
28
|
+
return legacyNfcManagerEmitter.addListener(eventName, listener);
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
exports.NfcManagerEmitter = NfcManagerEmitter;
|
|
32
|
+
function callNative(name, params = []) {
|
|
33
|
+
const nativeMethod = NativeNfcManager[name];
|
|
34
|
+
if (!nativeMethod) {
|
|
35
|
+
throw new Error(`no such native method: "${name}"`);
|
|
36
|
+
}
|
|
37
|
+
if (!Array.isArray(params)) {
|
|
38
|
+
throw new Error('params must be an array');
|
|
39
|
+
}
|
|
40
|
+
const createCallback = (resolve, reject) => (err, result) => {
|
|
41
|
+
if (err) {
|
|
42
|
+
reject(err);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
resolve(result);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
const callback = createCallback(resolve, reject);
|
|
50
|
+
const inputParams = [...params, callback];
|
|
51
|
+
nativeMethod(...inputParams);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
exports.callNative = callNative;
|
|
55
|
+
//# sourceMappingURL=NativeNfcManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeNfcManager.js","sourceRoot":"","sources":["../../src/NativeNfcManager.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AACb,+CAA+D;AAmB/D,MAAM,iBAAiB,GAAG,MAGzB,CAAC;AACF,MAAM,oBAAoB,GACxB,iBAAiB,CAAC,eAAe,CAAC,KAAK,IAAI;IAC3C,iBAAiB,CAAC,kBAAkB,IAAI,IAAI,CAAC;AAC/C,MAAM,aAAa,GAAG,4BAAa,IAAI,EAAE,CAAC;AAC1C,MAAM,gBAAgB,GAAG,CAAC,oBAAoB;IAC5C,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,OAAO;IAC9C,CAAC,CAAC,aAAa,CAAC,UAAU,CAAiB,CAAC;AAqDtC,4CAAgB;AAnDxB,MAAM,uBAAuB,GAC3B,OAAO,iCAAkB,KAAK,UAAU;IACtC,CAAC,CAAC,IAAI,iCAAkB,CAAC,gBAAgB,CAAC;IAC1C,CAAC,CAAC,EAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAC,CAAC,EAAC,CAAC;AAEhD,MAAM,oBAAoB,GAAoD;IAC5E,qBAAqB,EAAE,gBAAgB,CAAC,aAAa;IACrD,+BAA+B,EAAE,gBAAgB,CAAC,uBAAuB;IACzE,uBAAuB,EAAE,gBAAgB,CAAC,eAAe;IACzD,sBAAsB,EAAE,gBAAgB,CAAC,cAAc;CACxD,CAAC;AAEF,MAAM,iBAAiB,GAAsB;IAC3C,WAAW,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;QACnC,MAAM,cAAc,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,oBAAoB,IAAI,cAAc,EAAE;YAC1C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;SACjC;QACD,OAAO,uBAAuB,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;CACF,CAAC;AA+BwB,8CAAiB;AA7B3C,SAAS,UAAU,CAAc,IAAY,EAAE,SAAoB,EAAE;IACnE,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAA6B,CAAC;IAExE,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,GAAG,CAAC,CAAC;KACrD;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IAED,MAAM,cAAc,GAAG,CACrB,OAA4C,EAC5C,MAAkC,EAClC,EAAE,CAAC,CAAC,GAAY,EAAE,MAAS,EAAE,EAAE;QAC/B,IAAI,GAAG,EAAE;YACP,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;aAAM;YACL,OAAO,CAAC,MAAM,CAAC,CAAC;SACjB;IACH,CAAC,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1C,YAAY,CAAC,GAAG,WAAW,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC;AAE4C,gCAAU"}
|