bysquare 2.0.0 → 2.0.1

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.
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.detect = exports.parse = exports.buildModel = void 0;
7
+ const lzma_native_1 = __importDefault(require("lzma-native"));
8
+ const rfc4648_1 = require("rfc4648");
9
+ const index_js_1 = require("./index.js");
10
+ function cleanEmptyProps(obj) {
11
+ Object.keys(obj).forEach((key) => {
12
+ if (typeof obj[key] === 'undefined') {
13
+ delete obj[key];
14
+ }
15
+ });
16
+ }
17
+ /**
18
+ * @see 3.14. Generating by square Code
19
+ */
20
+ function buildModel(qr) {
21
+ const intermediate = qr
22
+ .split("\t")
23
+ /** The end of the qr-string might contain a NULL-terminated string */
24
+ .map((entry) => entry.replace("\x00", ""));
25
+ const invoiceId = intermediate.shift();
26
+ const output = {
27
+ invoiceId: invoiceId?.length ? invoiceId : undefined,
28
+ payments: []
29
+ };
30
+ const paymentslen = Number(intermediate.shift());
31
+ for (let i = 0; i < paymentslen; i++) {
32
+ const paymentOptions = intermediate.shift();
33
+ const ammount = intermediate.shift();
34
+ const currency = intermediate.shift();
35
+ const dueDate = intermediate.shift();
36
+ const variables = intermediate.shift();
37
+ const constants = intermediate.shift();
38
+ const specifics = intermediate.shift();
39
+ const originatorRefInfo = intermediate.shift();
40
+ const paymentNote = intermediate.shift();
41
+ let payment = {
42
+ type: Number(paymentOptions),
43
+ bankAccounts: [],
44
+ amount: ammount?.length ? Number(ammount) : undefined,
45
+ currencyCode: currency,
46
+ paymentDueDate: dueDate?.length ? dueDate : undefined,
47
+ variableSymbol: variables?.length ? variables : undefined,
48
+ constantSymbol: constants?.length ? constants : undefined,
49
+ specificSymbol: specifics?.length ? specifics : undefined,
50
+ originatorRefInfo: originatorRefInfo?.length ? originatorRefInfo : undefined,
51
+ paymentNote: paymentNote?.length ? paymentNote : undefined,
52
+ };
53
+ const accountslen = Number(intermediate.shift());
54
+ for (let j = 0; j < accountslen; j++) {
55
+ const iban = intermediate.shift();
56
+ if (iban === undefined || iban.length === 0) {
57
+ throw new Error("Missing IBAN");
58
+ }
59
+ const bic = intermediate.shift();
60
+ const account = {
61
+ iban: iban,
62
+ bic: bic?.length ? bic : undefined,
63
+ };
64
+ cleanEmptyProps(account);
65
+ payment.bankAccounts.push(account);
66
+ }
67
+ intermediate.shift(); // StandingOrderExt
68
+ intermediate.shift(); // DirectDebitExt
69
+ // narrowing payment type
70
+ switch (payment.type) {
71
+ case index_js_1.PaymentOptions.PaymentOrder:
72
+ break;
73
+ case index_js_1.PaymentOptions.StandingOrder:
74
+ payment = {
75
+ ...payment,
76
+ day: Number(intermediate.shift()),
77
+ month: Number(intermediate.shift()),
78
+ periodicity: intermediate.shift(),
79
+ lastDate: intermediate.shift()
80
+ };
81
+ break;
82
+ case index_js_1.PaymentOptions.DirectDebit:
83
+ payment = {
84
+ ...payment,
85
+ directDebitScheme: Number(intermediate.shift()),
86
+ directDebitType: Number(intermediate.shift()),
87
+ mandateId: intermediate.shift(),
88
+ creditorId: intermediate.shift(),
89
+ contractId: intermediate.shift(),
90
+ maxAmount: Number(intermediate.shift()),
91
+ validTillDate: intermediate.shift()
92
+ };
93
+ break;
94
+ default:
95
+ break;
96
+ }
97
+ cleanEmptyProps(payment);
98
+ output.payments.push(payment);
99
+ }
100
+ for (let i = 0; i < paymentslen; i++) {
101
+ const name = intermediate.shift();
102
+ const addressLine1 = intermediate.shift();
103
+ const addressLine2 = intermediate.shift();
104
+ if (Boolean(name) || Boolean(addressLine1) || Boolean(addressLine2)) {
105
+ const beneficiary = {
106
+ name: name?.length ? name : undefined,
107
+ street: addressLine1?.length ? addressLine1 : undefined,
108
+ city: addressLine2?.length ? addressLine2 : undefined,
109
+ };
110
+ cleanEmptyProps(beneficiary);
111
+ output.payments[i].beneficiary = beneficiary;
112
+ }
113
+ }
114
+ return output;
115
+ }
116
+ exports.buildModel = buildModel;
117
+ /**
118
+ * @see 3.16. Decoding client data from QR Code 2005 symbol
119
+ */
120
+ function parse(qr) {
121
+ try {
122
+ var decoded = rfc4648_1.base32hex.parse(qr, {
123
+ out: Buffer,
124
+ loose: true
125
+ });
126
+ }
127
+ catch {
128
+ throw new Error("Unable to parse QR");
129
+ }
130
+ // const bysquareHeader = decoded.subarray(0, 2)
131
+ // const compressionHeader = decoded.subarray(2, 4)
132
+ const compressedData = decoded.subarray(4);
133
+ // @ts-ignore: Missing decored types
134
+ const decoder = lzma_native_1.default.createStream("rawDecoder", {
135
+ synchronous: true,
136
+ // @ts-ignore: Missing filter types
137
+ filters: [{ id: lzma_native_1.default.FILTER_LZMA1 }]
138
+ });
139
+ return new Promise((resolve, reject) => {
140
+ decoder
141
+ .on("data", (decompress) => {
142
+ // const crc32: Buffer = decompress.subarray(0, 4)
143
+ const tabbed = decompress.subarray(4).toString();
144
+ resolve(buildModel(tabbed));
145
+ })
146
+ .on("error", reject)
147
+ .write(compressedData, (error) => {
148
+ error && reject(error);
149
+ decoder.end();
150
+ });
151
+ });
152
+ }
153
+ exports.parse = parse;
154
+ /**
155
+ * Detect if qr string contains bysquare header.
156
+ *
157
+ * Bysquare header does not have too much information, therefore it is
158
+ * not very reliable, there is room for improvement for the future.
159
+ */
160
+ function detect(qr) {
161
+ try {
162
+ var parsed = rfc4648_1.base32hex.parse(qr, {
163
+ out: Buffer,
164
+ loose: true
165
+ });
166
+ }
167
+ catch {
168
+ throw new Error("Unable to parse QR string, invalid data");
169
+ }
170
+ if (parsed.byteLength < 2) {
171
+ return false;
172
+ }
173
+ const headerBysquare = parsed.subarray(0, 2);
174
+ return [...headerBysquare.toString("hex")]
175
+ .map((nibble) => parseInt(nibble, 16))
176
+ .every((nibble, index) => {
177
+ if ( /** version */index === 1) {
178
+ return 0 >= nibble && nibble <= 1;
179
+ }
180
+ return 0 <= nibble && nibble <= 15;
181
+ });
182
+ }
183
+ exports.detect = detect;
File without changes
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CurrencyCodeEnum = exports.DirectDebitType = exports.DirectDebitScheme = exports.PaymentOptions = exports.Periodicity = exports.MonthClassifier = void 0;
4
+ /**
5
+ * Selection of one or more months on which payment occurs. This is enabled
6
+ * only if periodicity is set to one of the following value: “Weekly,
7
+ * Biweekly, Monthly, Bimonthly”. Otherwise it must not be specified.
8
+ */
9
+ var MonthClassifier;
10
+ (function (MonthClassifier) {
11
+ MonthClassifier[MonthClassifier["January"] = 1] = "January";
12
+ MonthClassifier[MonthClassifier["February"] = 2] = "February";
13
+ MonthClassifier[MonthClassifier["March"] = 4] = "March";
14
+ MonthClassifier[MonthClassifier["April"] = 8] = "April";
15
+ MonthClassifier[MonthClassifier["May"] = 16] = "May";
16
+ MonthClassifier[MonthClassifier["June"] = 32] = "June";
17
+ MonthClassifier[MonthClassifier["July"] = 64] = "July";
18
+ MonthClassifier[MonthClassifier["August"] = 128] = "August";
19
+ MonthClassifier[MonthClassifier["September"] = 256] = "September";
20
+ MonthClassifier[MonthClassifier["October"] = 512] = "October";
21
+ MonthClassifier[MonthClassifier["November"] = 1024] = "November";
22
+ MonthClassifier[MonthClassifier["December"] = 2048] = "December";
23
+ })(MonthClassifier = exports.MonthClassifier || (exports.MonthClassifier = {}));
24
+ /**
25
+ * Periodicity of the payment. All valid options are „Daily“, „Weekly“,
26
+ * „Biweekly“, „Monthly“, „Bimonthly“, „Quarterly“, „Annually“,
27
+ * „Semiannually“. To find out which periodicity types are supported by the
28
+ * banks see the following web site: http://www.sbaonline.sk/sk/
29
+ */
30
+ var Periodicity;
31
+ (function (Periodicity) {
32
+ Periodicity["Daily"] = "d";
33
+ Periodicity["Weekly"] = "w";
34
+ Periodicity["Biweekly"] = "b";
35
+ Periodicity["Monthly"] = "m";
36
+ Periodicity["Bimonthly"] = "B";
37
+ Periodicity["Quarterly"] = "q";
38
+ Periodicity["Semiannually"] = "s";
39
+ Periodicity["Annually"] = "a";
40
+ })(Periodicity = exports.Periodicity || (exports.Periodicity = {}));
41
+ var PaymentOptions;
42
+ (function (PaymentOptions) {
43
+ PaymentOptions[PaymentOptions["PaymentOrder"] = 1] = "PaymentOrder";
44
+ PaymentOptions[PaymentOptions["StandingOrder"] = 2] = "StandingOrder";
45
+ PaymentOptions[PaymentOptions["DirectDebit"] = 4] = "DirectDebit";
46
+ })(PaymentOptions = exports.PaymentOptions || (exports.PaymentOptions = {}));
47
+ /**
48
+ * If DirectDebitScheme value is 1, which is „SEPA“ than encoded direct
49
+ * debit follows SEPA direct debit scheme which means that fields MandateID,
50
+ * CreditorID and optional ContractID are used. If direct debit scheme is 0,
51
+ * which is „OTHER“ this means no specific direct debit scheme and following
52
+ * rules do apply:
53
+ *
54
+ * a. Creditor is identified via bank accounts
55
+ *
56
+ * b. Contract between debtor and creditor is identified using one of the
57
+ * following two ways: 1. by two optional fields SpecificSymbol and
58
+ * VariableSymbol. 2. by one optional field OriginatorsReferenceInformation.
59
+ * If SpecificSymbol and VariableSymbol fields or
60
+ * OriginatorsReferenceInformation field is filled in DirectDebitExt then
61
+ * these fields do apply for the direct debit.
62
+ */
63
+ var DirectDebitScheme;
64
+ (function (DirectDebitScheme) {
65
+ DirectDebitScheme[DirectDebitScheme["Other"] = 0] = "Other";
66
+ DirectDebitScheme[DirectDebitScheme["Sepa"] = 1] = "Sepa";
67
+ })(DirectDebitScheme = exports.DirectDebitScheme || (exports.DirectDebitScheme = {}));
68
+ /**
69
+ * Can be „one­off“ for one time debit or „recurrent“ for repeated debit
70
+ * until cancelled.
71
+ *
72
+ * Max length 1
73
+ */
74
+ var DirectDebitType;
75
+ (function (DirectDebitType) {
76
+ DirectDebitType[DirectDebitType["OneOff"] = 0] = "OneOff";
77
+ DirectDebitType[DirectDebitType["Recurrent"] = 1] = "Recurrent";
78
+ })(DirectDebitType = exports.DirectDebitType || (exports.DirectDebitType = {}));
79
+ /**
80
+ * Currency codes based on ISO-4217
81
+ */
82
+ var CurrencyCodeEnum;
83
+ (function (CurrencyCodeEnum) {
84
+ CurrencyCodeEnum["AED"] = "United Arab Emirates Dirham";
85
+ CurrencyCodeEnum["AFN"] = "Afghanistan Afghani";
86
+ CurrencyCodeEnum["ALL"] = "Albania Lek";
87
+ CurrencyCodeEnum["AMD"] = "Armenia Dram";
88
+ CurrencyCodeEnum["ANG"] = "Netherlands Antilles Guilder";
89
+ CurrencyCodeEnum["AOA"] = "Angola Kwanza";
90
+ CurrencyCodeEnum["ARS"] = "Argentina Peso";
91
+ CurrencyCodeEnum["AUD"] = "Australia Dollar";
92
+ CurrencyCodeEnum["AWG"] = "Aruba Guilder";
93
+ CurrencyCodeEnum["AZN"] = "Azerbaijan New Manat";
94
+ CurrencyCodeEnum["BAM"] = "Bosnia and Herzegovina Convertible Marka";
95
+ CurrencyCodeEnum["BBD"] = "Barbados Dollar";
96
+ CurrencyCodeEnum["BDT"] = "Bangladesh Taka";
97
+ CurrencyCodeEnum["BGN"] = "Bulgaria Lev";
98
+ CurrencyCodeEnum["BHD"] = "Bahrain Dinar";
99
+ CurrencyCodeEnum["BIF"] = "Burundi Franc";
100
+ CurrencyCodeEnum["BMD"] = "Bermuda Dollar";
101
+ CurrencyCodeEnum["BND"] = "Brunei Darussalam Dollar";
102
+ CurrencyCodeEnum["BOB"] = "Bolivia Bol\u00EDviano";
103
+ CurrencyCodeEnum["BRL"] = "Brazil Real";
104
+ CurrencyCodeEnum["BSD"] = "Bahamas Dollar";
105
+ CurrencyCodeEnum["BTN"] = "Bhutan Ngultrum";
106
+ CurrencyCodeEnum["BWP"] = "Botswana Pula";
107
+ CurrencyCodeEnum["BYR"] = "Belarus Ruble";
108
+ CurrencyCodeEnum["BZD"] = "Belize Dollar";
109
+ CurrencyCodeEnum["CAD"] = "Canada Dollar";
110
+ CurrencyCodeEnum["CDF"] = "Congo/Kinshasa Franc";
111
+ CurrencyCodeEnum["CHF"] = "Switzerland Franc";
112
+ CurrencyCodeEnum["CLP"] = "Chile Peso";
113
+ CurrencyCodeEnum["CNY"] = "China Yuan Renminbi";
114
+ CurrencyCodeEnum["COP"] = "Colombia Peso";
115
+ CurrencyCodeEnum["CRC"] = "Costa Rica Colon";
116
+ CurrencyCodeEnum["CUC"] = "Cuba Convertible Peso";
117
+ CurrencyCodeEnum["CUP"] = "Cuba Peso";
118
+ CurrencyCodeEnum["CVE"] = "Cape Verde Escudo";
119
+ CurrencyCodeEnum["CZK"] = "Czech Republic Koruna";
120
+ CurrencyCodeEnum["DJF"] = "Djibouti Franc";
121
+ CurrencyCodeEnum["DKK"] = "Denmark Krone";
122
+ CurrencyCodeEnum["DOP"] = "Dominican Republic Peso";
123
+ CurrencyCodeEnum["DZD"] = "Algeria Dinar";
124
+ CurrencyCodeEnum["EGP"] = "Egypt Pound";
125
+ CurrencyCodeEnum["ERN"] = "Eritrea Nakfa";
126
+ CurrencyCodeEnum["ETB"] = "Ethiopia Birr";
127
+ CurrencyCodeEnum["EUR"] = "Euro Member Countries";
128
+ CurrencyCodeEnum["FJD"] = "Fiji Dollar";
129
+ CurrencyCodeEnum["FKP"] = "Falkland Islands = Malvinas Pound";
130
+ CurrencyCodeEnum["GBP"] = "United Kingdom Pound";
131
+ CurrencyCodeEnum["GEL"] = "Georgia Lari";
132
+ CurrencyCodeEnum["GGP"] = "Guernsey Pound";
133
+ CurrencyCodeEnum["GHS"] = "Ghana Cedi";
134
+ CurrencyCodeEnum["GIP"] = "Gibraltar Pound";
135
+ CurrencyCodeEnum["GMD"] = "Gambia Dalasi";
136
+ CurrencyCodeEnum["GNF"] = "Guinea Franc";
137
+ CurrencyCodeEnum["GTQ"] = "Guatemala Quetzal";
138
+ CurrencyCodeEnum["GYD"] = "Guyana Dollar";
139
+ CurrencyCodeEnum["HKD"] = "Hong Kong Dollar";
140
+ CurrencyCodeEnum["HNL"] = "Honduras Lempira";
141
+ CurrencyCodeEnum["HRK"] = "Croatia Kuna";
142
+ CurrencyCodeEnum["HTG"] = "Haiti Gourde";
143
+ CurrencyCodeEnum["HUF"] = "Hungary Forint";
144
+ CurrencyCodeEnum["IDR"] = "Indonesia Rupiah";
145
+ CurrencyCodeEnum["ILS"] = "Israel Shekel";
146
+ CurrencyCodeEnum["IMP"] = "Isle of Man Pound";
147
+ CurrencyCodeEnum["INR"] = "India Rupee";
148
+ CurrencyCodeEnum["IQD"] = "Iraq Dinar";
149
+ CurrencyCodeEnum["IRR"] = "Iran Rial";
150
+ CurrencyCodeEnum["ISK"] = "Iceland Krona";
151
+ CurrencyCodeEnum["JEP"] = "Jersey Pound";
152
+ CurrencyCodeEnum["JMD"] = "Jamaica Dollar";
153
+ CurrencyCodeEnum["JOD"] = "Jordan Dinar";
154
+ CurrencyCodeEnum["JPY"] = "Japan Yen";
155
+ CurrencyCodeEnum["KES"] = "Kenya Shilling";
156
+ CurrencyCodeEnum["KGS"] = "Kyrgyzstan Som";
157
+ CurrencyCodeEnum["KHR"] = "Cambodia Riel";
158
+ CurrencyCodeEnum["KMF"] = "Comoros Franc";
159
+ CurrencyCodeEnum["KPW"] = "Korea = North Won";
160
+ CurrencyCodeEnum["KRW"] = "Korea = South Won";
161
+ CurrencyCodeEnum["KWD"] = "Kuwait Dinar";
162
+ CurrencyCodeEnum["KYD"] = "Cayman Islands Dollar";
163
+ CurrencyCodeEnum["KZT"] = "Kazakhstan Tenge";
164
+ CurrencyCodeEnum["LAK"] = "Laos Kip";
165
+ CurrencyCodeEnum["LBP"] = "Lebanon Pound";
166
+ CurrencyCodeEnum["LKR"] = "Sri Lanka Rupee";
167
+ CurrencyCodeEnum["LRD"] = "Liberia Dollar";
168
+ CurrencyCodeEnum["LSL"] = "Lesotho Loti";
169
+ CurrencyCodeEnum["LYD"] = "Libya Dinar";
170
+ CurrencyCodeEnum["MAD"] = "Morocco Dirham";
171
+ CurrencyCodeEnum["MDL"] = "Moldova Leu";
172
+ CurrencyCodeEnum["MGA"] = "Madagascar Ariary";
173
+ CurrencyCodeEnum["MKD"] = "Macedonia Denar";
174
+ CurrencyCodeEnum["MMK"] = "Myanmar = Burma Kyat";
175
+ CurrencyCodeEnum["MNT"] = "Mongolia Tughrik";
176
+ CurrencyCodeEnum["MOP"] = "Macau Pataca";
177
+ CurrencyCodeEnum["MRO"] = "Mauritania Ouguiya";
178
+ CurrencyCodeEnum["MUR"] = "Mauritius Rupee";
179
+ CurrencyCodeEnum["MVR"] = "Maldives = Maldive Islands Rufiyaa";
180
+ CurrencyCodeEnum["MWK"] = "Malawi Kwacha";
181
+ CurrencyCodeEnum["MXN"] = "Mexico Peso";
182
+ CurrencyCodeEnum["MYR"] = "Malaysia Ringgit";
183
+ CurrencyCodeEnum["MZN"] = "Mozambique Metical";
184
+ CurrencyCodeEnum["NAD"] = "Namibia Dollar";
185
+ CurrencyCodeEnum["NGN"] = "Nigeria Naira";
186
+ CurrencyCodeEnum["NIO"] = "Nicaragua Cordoba";
187
+ CurrencyCodeEnum["NOK"] = "Norway Krone";
188
+ CurrencyCodeEnum["NPR"] = "Nepal Rupee";
189
+ CurrencyCodeEnum["NZD"] = "New Zealand Dollar";
190
+ CurrencyCodeEnum["OMR"] = "Oman Rial";
191
+ CurrencyCodeEnum["PAB"] = "Panama Balboa";
192
+ CurrencyCodeEnum["PEN"] = "Peru Sol";
193
+ CurrencyCodeEnum["PGK"] = "Papua New Guinea Kina";
194
+ CurrencyCodeEnum["PHP"] = "Philippines Peso";
195
+ CurrencyCodeEnum["PKR"] = "Pakistan Rupee";
196
+ CurrencyCodeEnum["PLN"] = "Poland Zloty";
197
+ CurrencyCodeEnum["PYG"] = "Paraguay Guarani";
198
+ CurrencyCodeEnum["QAR"] = "Qatar Riyal";
199
+ CurrencyCodeEnum["RON"] = "Romania New Leu";
200
+ CurrencyCodeEnum["RSD"] = "Serbia Dinar";
201
+ CurrencyCodeEnum["RUB"] = "Russia Ruble";
202
+ CurrencyCodeEnum["RWF"] = "Rwanda Franc";
203
+ CurrencyCodeEnum["SAR"] = "Saudi Arabia Riyal";
204
+ CurrencyCodeEnum["SBD"] = "Solomon Islands Dollar";
205
+ CurrencyCodeEnum["SCR"] = "Seychelles Rupee";
206
+ CurrencyCodeEnum["SDG"] = "Sudan Pound";
207
+ CurrencyCodeEnum["SEK"] = "Sweden Krona";
208
+ CurrencyCodeEnum["SGD"] = "Singapore Dollar";
209
+ CurrencyCodeEnum["SHP"] = "Saint Helena Pound";
210
+ CurrencyCodeEnum["SLL"] = "Sierra Leone Leone";
211
+ CurrencyCodeEnum["SOS"] = "Somalia Shilling";
212
+ CurrencyCodeEnum["SPL"] = "Seborga Luigino";
213
+ CurrencyCodeEnum["SRD"] = "Suriname Dollar";
214
+ CurrencyCodeEnum["STD"] = "S\u00E3o Tom\u00E9 and Pr\u00EDncipe Dobra";
215
+ CurrencyCodeEnum["SVC"] = "El Salvador Colon";
216
+ CurrencyCodeEnum["SYP"] = "Syria Pound";
217
+ CurrencyCodeEnum["SZL"] = "Swaziland Lilangeni";
218
+ CurrencyCodeEnum["THB"] = "Thailand Baht";
219
+ CurrencyCodeEnum["TJS"] = "Tajikistan Somoni";
220
+ CurrencyCodeEnum["TMT"] = "Turkmenistan Manat";
221
+ CurrencyCodeEnum["TND"] = "Tunisia Dinar";
222
+ CurrencyCodeEnum["TOP"] = "Tonga Pa'anga";
223
+ CurrencyCodeEnum["TRY"] = "Turkey Lira";
224
+ CurrencyCodeEnum["TTD"] = "Trinidad and Tobago Dollar";
225
+ CurrencyCodeEnum["TVD"] = "Tuvalu Dollar";
226
+ CurrencyCodeEnum["TWD"] = "Taiwan New Dollar";
227
+ CurrencyCodeEnum["TZS"] = "Tanzania Shilling";
228
+ CurrencyCodeEnum["UAH"] = "Ukraine Hryvnia";
229
+ CurrencyCodeEnum["UGX"] = "Uganda Shilling";
230
+ CurrencyCodeEnum["USD"] = "United States Dollar";
231
+ CurrencyCodeEnum["UYU"] = "Uruguay Peso";
232
+ CurrencyCodeEnum["UZS"] = "Uzbekistan Som";
233
+ CurrencyCodeEnum["VEF"] = "Venezuela Bolivar";
234
+ CurrencyCodeEnum["VND"] = "Viet Nam Dong";
235
+ CurrencyCodeEnum["VUV"] = "Vanuatu Vatu";
236
+ CurrencyCodeEnum["WST"] = "Samoa Tala";
237
+ CurrencyCodeEnum["XAF"] = "Communaut\u00E9 Financi\u00E8re Africaine = BEAC CFA Franc BEAC";
238
+ CurrencyCodeEnum["XCD"] = "East Caribbean Dollar";
239
+ CurrencyCodeEnum["XDR"] = "International Monetary Fund = IMF Special Drawing Rights";
240
+ CurrencyCodeEnum["XOF"] = "Communaut\u00E9 Financi\u00E8re Africaine = BCEAO Franc";
241
+ CurrencyCodeEnum["XPF"] = "Comptoirs Fran\u00E7ais du Pacifique = CFP Franc";
242
+ CurrencyCodeEnum["YER"] = "Yemen Rial";
243
+ CurrencyCodeEnum["ZAR"] = "South Africa Rand";
244
+ CurrencyCodeEnum["ZMW"] = "Zambia Kwacha";
245
+ CurrencyCodeEnum["ZWD"] = "Zimbabwe Dollar";
246
+ })(CurrencyCodeEnum = exports.CurrencyCodeEnum || (exports.CurrencyCodeEnum = {}));
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,3 @@
1
+ export { generate } from "./generate.js";
2
+ export { detect, parse } from "./parse.js";
3
+ export * from "./types.js";
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "bysquare",
3
+ "description": "It's a national standard for payment QR codes adopted by Slovak Banking Association (SBA)",
4
+ "version": "2.0.1",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "funding": "https://github.com/sponsors/xseman",
8
+ "homepage": "https://github.com/xseman/bysquare#readme",
9
+ "author": {
10
+ "name": "Filip Seman",
11
+ "email": "filip.seman@protonmail.com"
12
+ },
13
+ "scripts": {
14
+ "prebuild": "rm -rf ./lib || :",
15
+ "build": "tsc --project ./tsconfig.json && tsc --project ./tsconfig.cjs.json",
16
+ "postbuild": "bash -c 'chmod +x ./lib/{cjs,mjs}/cli.js' && cp package.json ./lib/mjs/ && jq '.type=\"commonjs\"' package.json > lib/cjs/package.json",
17
+ "test": "xv --loader=tsx ./src",
18
+ "test:watch": "find ./src/*.ts | entr xv --loader=tsx ./src",
19
+ "cli:local": "npm run build && npm link bysquare",
20
+ "version": "git flow release start v$npm_package_version",
21
+ "prepare": "",
22
+ "prepublishOnly": "npm run build",
23
+ "preversion": "git checkout develop",
24
+ "postversion": ""
25
+ },
26
+ "dependencies": {
27
+ "lodash.deburr": "~4.1.0",
28
+ "lzma-native": "7.0.1",
29
+ "rfc4648": "1.5.2"
30
+ },
31
+ "devDependencies": {
32
+ "@types/lodash.deburr": "~4.1.0",
33
+ "@types/lzma-native": "^4.0.1",
34
+ "@types/node": "~18.11.0",
35
+ "tsx": "~3.12.0",
36
+ "typescript": "~4.9.0",
37
+ "xv": "~2.1.0"
38
+ },
39
+ "bin": "lib/mjs/cli.js",
40
+ "types": "lib/mjs/index.d.ts",
41
+ "exports": {
42
+ ".": {
43
+ "require": "./lib/cjs/index.js",
44
+ "import": "./lib/mjs/index.js"
45
+ }
46
+ },
47
+ "files": [
48
+ "lib",
49
+ "!lib/*.test.*"
50
+ ],
51
+ "engines": {
52
+ "node": ">=16.0",
53
+ "npm": ">=7.0"
54
+ },
55
+ "repository": {
56
+ "type": "git",
57
+ "url": "git+https://github.com/xseman/bysquare.git"
58
+ },
59
+ "keywords": [
60
+ "pay by square",
61
+ "by square",
62
+ "paybysquare",
63
+ "bysquare",
64
+ "payments",
65
+ "qr-string",
66
+ "qr",
67
+ "cli"
68
+ ]
69
+ }
@@ -0,0 +1,16 @@
1
+ import { DataModel } from "./index.js";
2
+ /**
3
+ * @see 3.14. Generating by square Code
4
+ */
5
+ export declare function buildModel(qr: string): DataModel;
6
+ /**
7
+ * @see 3.16. Decoding client data from QR Code 2005 symbol
8
+ */
9
+ export declare function parse(qr: string): Promise<DataModel>;
10
+ /**
11
+ * Detect if qr string contains bysquare header.
12
+ *
13
+ * Bysquare header does not have too much information, therefore it is
14
+ * not very reliable, there is room for improvement for the future.
15
+ */
16
+ export declare function detect(qr: string): boolean;
File without changes