@networksolution/sia-vpos-node 1.0.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.
package/dist/xml.d.ts ADDED
@@ -0,0 +1,168 @@
1
+ /**
2
+ * XML builder and parser for SIA VPOS BPWXmlRequest/BPWXmlResponse.
3
+ * Zero external dependencies — uses simple string manipulation.
4
+ */
5
+ /**
6
+ * Build a complete BPWXmlRequest XML string.
7
+ *
8
+ * Structure per spec (p.33):
9
+ * <?xml version="1.0" encoding="ISO-8859-1"?>
10
+ * <BPWXmlRequest>
11
+ * <Release>02</Release>
12
+ * <Request>
13
+ * <Operation>AUTHORIZATION</Operation>
14
+ * <Timestamp>2015-02-08T12:02:00.000</Timestamp>
15
+ * <MAC>...</MAC>
16
+ * </Request>
17
+ * <Data>
18
+ * ...operation-specific data...
19
+ * </Data>
20
+ * </BPWXmlRequest>
21
+ */
22
+ export declare function buildBPWXmlRequest(params: {
23
+ release: string;
24
+ operation: string;
25
+ timestamp: string;
26
+ mac: string;
27
+ dataXml: string;
28
+ }): string;
29
+ /**
30
+ * Build XML element with optional value. If value is undefined/null/empty, returns empty string.
31
+ */
32
+ export declare function el(tag: string, value: string | number | undefined | null): string;
33
+ /**
34
+ * Build Header XML block
35
+ */
36
+ export declare function buildHeaderXml(shopId: string, operatorId: string, reqRefNum: string): string;
37
+ /**
38
+ * Extract the text content of an XML element.
39
+ * Returns undefined if element not found.
40
+ */
41
+ export declare function getXmlValue(xml: string, tag: string): string | undefined;
42
+ /**
43
+ * Extract all occurrences of an XML element (for arrays like LinkCreated).
44
+ */
45
+ export declare function getXmlBlocks(xml: string, tag: string): string[];
46
+ /**
47
+ * Parse a BPWXmlResponse into a structured object.
48
+ */
49
+ export declare function parseBPWXmlResponse(xml: string): {
50
+ timestamp: string;
51
+ result: string;
52
+ mac: string;
53
+ data?: string;
54
+ rawXml: string;
55
+ };
56
+ /**
57
+ * Parse Authorization element from response XML.
58
+ */
59
+ export declare function parseAuthorization(xml: string): {
60
+ paymentType: string;
61
+ authorizationType: string;
62
+ transactionId: string;
63
+ network: string;
64
+ orderId: string;
65
+ transactionAmount: string;
66
+ authorizedAmount: string;
67
+ currency: string;
68
+ exponent: string;
69
+ accountedAmount: string;
70
+ refundedAmount: string;
71
+ transactionResult: string;
72
+ timestamp: string;
73
+ authorizationNumber: string;
74
+ acquirerBIN: string;
75
+ merchantId: string;
76
+ transactionStatus: string;
77
+ responseCodeISO: string | undefined;
78
+ panTail: string | undefined;
79
+ panExpiryDate: string | undefined;
80
+ paymentTypePP: string | undefined;
81
+ rrn: string | undefined;
82
+ cardType: string | undefined;
83
+ cardholderInfo: string | undefined;
84
+ ibanCode: string | undefined;
85
+ mac: string;
86
+ } | undefined;
87
+ /**
88
+ * Parse PanAliasData element from response XML.
89
+ */
90
+ export declare function parsePanAliasData(xml: string): {
91
+ panAlias: string;
92
+ panAliasRev: string;
93
+ panAliasExpDate: string;
94
+ panAliasTail: string;
95
+ cRecurr: string | undefined;
96
+ mac: string;
97
+ } | undefined;
98
+ /**
99
+ * Parse Operation element from response XML (used by Accounting, Refund, etc.)
100
+ */
101
+ export declare function parseOperation(xml: string): {
102
+ transactionId: string;
103
+ timestampReq: string;
104
+ timestampElab: string;
105
+ srcType: string;
106
+ amount: string;
107
+ result: string;
108
+ status: string;
109
+ opDescr: string | undefined;
110
+ mac: string;
111
+ authorization: {
112
+ paymentType: string;
113
+ authorizationType: string;
114
+ transactionId: string;
115
+ network: string;
116
+ orderId: string;
117
+ transactionAmount: string;
118
+ authorizedAmount: string;
119
+ currency: string;
120
+ exponent: string;
121
+ accountedAmount: string;
122
+ refundedAmount: string;
123
+ transactionResult: string;
124
+ timestamp: string;
125
+ authorizationNumber: string;
126
+ acquirerBIN: string;
127
+ merchantId: string;
128
+ transactionStatus: string;
129
+ responseCodeISO: string | undefined;
130
+ panTail: string | undefined;
131
+ panExpiryDate: string | undefined;
132
+ paymentTypePP: string | undefined;
133
+ rrn: string | undefined;
134
+ cardType: string | undefined;
135
+ cardholderInfo: string | undefined;
136
+ ibanCode: string | undefined;
137
+ mac: string;
138
+ } | undefined;
139
+ } | undefined;
140
+ /**
141
+ * Parse LinkCreated element from response XML.
142
+ */
143
+ export declare function parseLinkCreated(xml: string): {
144
+ completeLink: string;
145
+ token: string;
146
+ creationDate: string;
147
+ status: string;
148
+ lastUseDate: string;
149
+ expirationDate: string;
150
+ revokeDate: string;
151
+ orderId: string;
152
+ mac: string;
153
+ } | undefined;
154
+ /**
155
+ * Parse multiple LinkCreated elements (for LISTLINK response).
156
+ */
157
+ export declare function parseLinkCreatedList(xml: string): {
158
+ completeLink: string;
159
+ token: string;
160
+ creationDate: string;
161
+ status: string;
162
+ lastUseDate: string;
163
+ expirationDate: string;
164
+ revokeDate: string;
165
+ orderId: string;
166
+ mac: string;
167
+ }[];
168
+ //# sourceMappingURL=xml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml.d.ts","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAeT;AAED;;GAEG;AACH,wBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAGjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ5F;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIxE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ/D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAQA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;cA+B7C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM;;;;;;;cAW5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAezC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM;;;;;;;;;;cAc3C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM;;;;;;;;;;IAa/C"}
package/dist/xml.js ADDED
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ /**
3
+ * XML builder and parser for SIA VPOS BPWXmlRequest/BPWXmlResponse.
4
+ * Zero external dependencies — uses simple string manipulation.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.buildBPWXmlRequest = buildBPWXmlRequest;
8
+ exports.el = el;
9
+ exports.buildHeaderXml = buildHeaderXml;
10
+ exports.getXmlValue = getXmlValue;
11
+ exports.getXmlBlocks = getXmlBlocks;
12
+ exports.parseBPWXmlResponse = parseBPWXmlResponse;
13
+ exports.parseAuthorization = parseAuthorization;
14
+ exports.parsePanAliasData = parsePanAliasData;
15
+ exports.parseOperation = parseOperation;
16
+ exports.parseLinkCreated = parseLinkCreated;
17
+ exports.parseLinkCreatedList = parseLinkCreatedList;
18
+ /**
19
+ * Escape XML special characters
20
+ */
21
+ function escapeXml(str) {
22
+ return str
23
+ .replace(/&/g, '&amp;')
24
+ .replace(/</g, '&lt;')
25
+ .replace(/>/g, '&gt;')
26
+ .replace(/"/g, '&quot;')
27
+ .replace(/'/g, '&apos;');
28
+ }
29
+ /**
30
+ * Build a complete BPWXmlRequest XML string.
31
+ *
32
+ * Structure per spec (p.33):
33
+ * <?xml version="1.0" encoding="ISO-8859-1"?>
34
+ * <BPWXmlRequest>
35
+ * <Release>02</Release>
36
+ * <Request>
37
+ * <Operation>AUTHORIZATION</Operation>
38
+ * <Timestamp>2015-02-08T12:02:00.000</Timestamp>
39
+ * <MAC>...</MAC>
40
+ * </Request>
41
+ * <Data>
42
+ * ...operation-specific data...
43
+ * </Data>
44
+ * </BPWXmlRequest>
45
+ */
46
+ function buildBPWXmlRequest(params) {
47
+ return [
48
+ '<?xml version="1.0" encoding="ISO-8859-1"?>',
49
+ '<BPWXmlRequest>',
50
+ `<Release>${escapeXml(params.release)}</Release>`,
51
+ '<Request>',
52
+ `<Operation>${escapeXml(params.operation)}</Operation>`,
53
+ `<Timestamp>${escapeXml(params.timestamp)}</Timestamp>`,
54
+ `<MAC>${escapeXml(params.mac)}</MAC>`,
55
+ '</Request>',
56
+ '<Data>',
57
+ params.dataXml,
58
+ '</Data>',
59
+ '</BPWXmlRequest>',
60
+ ].join('\n');
61
+ }
62
+ /**
63
+ * Build XML element with optional value. If value is undefined/null/empty, returns empty string.
64
+ */
65
+ function el(tag, value) {
66
+ if (value === undefined || value === null || value === '')
67
+ return '';
68
+ return `<${tag}>${escapeXml(String(value))}</${tag}>`;
69
+ }
70
+ /**
71
+ * Build Header XML block
72
+ */
73
+ function buildHeaderXml(shopId, operatorId, reqRefNum) {
74
+ return [
75
+ '<Header>',
76
+ el('ShopID', shopId),
77
+ el('OperatorID', operatorId),
78
+ el('ReqRefNum', reqRefNum),
79
+ '</Header>',
80
+ ].join('\n');
81
+ }
82
+ // ─── XML Parsing (simple regex-based for SIA VPOS responses) ─────────────────
83
+ /**
84
+ * Extract the text content of an XML element.
85
+ * Returns undefined if element not found.
86
+ */
87
+ function getXmlValue(xml, tag) {
88
+ const regex = new RegExp(`<${tag}>([\\s\\S]*?)</${tag}>`, 'i');
89
+ const match = xml.match(regex);
90
+ return match ? match[1].trim() : undefined;
91
+ }
92
+ /**
93
+ * Extract all occurrences of an XML element (for arrays like LinkCreated).
94
+ */
95
+ function getXmlBlocks(xml, tag) {
96
+ const regex = new RegExp(`<${tag}>([\\s\\S]*?)</${tag}>`, 'gi');
97
+ const blocks = [];
98
+ let match;
99
+ while ((match = regex.exec(xml)) !== null) {
100
+ blocks.push(match[1]);
101
+ }
102
+ return blocks;
103
+ }
104
+ /**
105
+ * Parse a BPWXmlResponse into a structured object.
106
+ */
107
+ function parseBPWXmlResponse(xml) {
108
+ return {
109
+ timestamp: getXmlValue(xml, 'Timestamp') || '',
110
+ result: getXmlValue(xml, 'Result') || '',
111
+ mac: getXmlValue(xml, 'MAC') || '',
112
+ data: getXmlValue(xml, 'Data'),
113
+ rawXml: xml,
114
+ };
115
+ }
116
+ /**
117
+ * Parse Authorization element from response XML.
118
+ */
119
+ function parseAuthorization(xml) {
120
+ const authBlock = getXmlValue(xml, 'Authorization');
121
+ if (!authBlock)
122
+ return undefined;
123
+ return {
124
+ paymentType: getXmlValue(authBlock, 'PaymentType') || '',
125
+ authorizationType: getXmlValue(authBlock, 'AuthorizationType') || '',
126
+ transactionId: getXmlValue(authBlock, 'TransactionID') || '',
127
+ network: getXmlValue(authBlock, 'Network') || '',
128
+ orderId: getXmlValue(authBlock, 'OrderID') || '',
129
+ transactionAmount: getXmlValue(authBlock, 'TransactionAmount') || '',
130
+ authorizedAmount: getXmlValue(authBlock, 'AuthorizedAmount') || '',
131
+ currency: getXmlValue(authBlock, 'Currency') || '',
132
+ exponent: getXmlValue(authBlock, 'Exponent') || '',
133
+ accountedAmount: getXmlValue(authBlock, 'AccountedAmount') || '',
134
+ refundedAmount: getXmlValue(authBlock, 'RefundedAmount') || '',
135
+ transactionResult: getXmlValue(authBlock, 'TransactionResult') || '',
136
+ timestamp: getXmlValue(authBlock, 'Timestamp') || '',
137
+ authorizationNumber: getXmlValue(authBlock, 'AuthorizationNumber') || '',
138
+ acquirerBIN: getXmlValue(authBlock, 'AcquirerBIN') || '',
139
+ merchantId: getXmlValue(authBlock, 'MerchantID') || '',
140
+ transactionStatus: getXmlValue(authBlock, 'TransactionStatus') || '',
141
+ responseCodeISO: getXmlValue(authBlock, 'ResponseCodeISO'),
142
+ panTail: getXmlValue(authBlock, 'PanTail'),
143
+ panExpiryDate: getXmlValue(authBlock, 'PanExpiryDate'),
144
+ paymentTypePP: getXmlValue(authBlock, 'PaymentTypePP'),
145
+ rrn: getXmlValue(authBlock, 'RRN'),
146
+ cardType: getXmlValue(authBlock, 'CardType'),
147
+ cardholderInfo: getXmlValue(authBlock, 'CardholderInfo'),
148
+ ibanCode: getXmlValue(authBlock, 'IbanCode'),
149
+ mac: getXmlValue(authBlock, 'MAC') || '',
150
+ };
151
+ }
152
+ /**
153
+ * Parse PanAliasData element from response XML.
154
+ */
155
+ function parsePanAliasData(xml) {
156
+ const block = getXmlValue(xml, 'PanAliasData');
157
+ if (!block)
158
+ return undefined;
159
+ return {
160
+ panAlias: getXmlValue(block, 'PanAlias') || '',
161
+ panAliasRev: getXmlValue(block, 'PanAliasRev') || '',
162
+ panAliasExpDate: getXmlValue(block, 'PanAliasExpDate') || '',
163
+ panAliasTail: getXmlValue(block, 'PanAliasTail') || '',
164
+ cRecurr: getXmlValue(block, 'CRecurr'),
165
+ mac: getXmlValue(block, 'MAC') || '',
166
+ };
167
+ }
168
+ /**
169
+ * Parse Operation element from response XML (used by Accounting, Refund, etc.)
170
+ */
171
+ function parseOperation(xml) {
172
+ const block = getXmlValue(xml, 'Operation');
173
+ if (!block)
174
+ return undefined;
175
+ return {
176
+ transactionId: getXmlValue(block, 'TransactionID') || '',
177
+ timestampReq: getXmlValue(block, 'TimestampReq') || '',
178
+ timestampElab: getXmlValue(block, 'TimestampElab') || '',
179
+ srcType: getXmlValue(block, 'SrcType') || '',
180
+ amount: getXmlValue(block, 'Amount') || '',
181
+ result: getXmlValue(block, 'Result') || '',
182
+ status: getXmlValue(block, 'Status') || '',
183
+ opDescr: getXmlValue(block, 'OpDescr'),
184
+ mac: getXmlValue(block, 'MAC') || '',
185
+ authorization: parseAuthorization(block),
186
+ };
187
+ }
188
+ /**
189
+ * Parse LinkCreated element from response XML.
190
+ */
191
+ function parseLinkCreated(xml) {
192
+ const block = getXmlValue(xml, 'LinkCreated');
193
+ if (!block)
194
+ return undefined;
195
+ return {
196
+ completeLink: getXmlValue(block, 'CompleteLink') || '',
197
+ token: getXmlValue(block, 'Token') || '',
198
+ creationDate: getXmlValue(block, 'CreationDate') || '',
199
+ status: getXmlValue(block, 'Status') || '',
200
+ lastUseDate: getXmlValue(block, 'LastUseDate') || '',
201
+ expirationDate: getXmlValue(block, 'ExpirationDate') || '',
202
+ revokeDate: getXmlValue(block, 'RevokeDate') || '',
203
+ orderId: getXmlValue(block, 'OrderId') || '',
204
+ mac: getXmlValue(block, 'MAC') || '',
205
+ };
206
+ }
207
+ /**
208
+ * Parse multiple LinkCreated elements (for LISTLINK response).
209
+ */
210
+ function parseLinkCreatedList(xml) {
211
+ const blocks = getXmlBlocks(xml, 'LinkCreated');
212
+ return blocks.map((block) => ({
213
+ completeLink: getXmlValue(block, 'CompleteLink') || '',
214
+ token: getXmlValue(block, 'Token') || '',
215
+ creationDate: getXmlValue(block, 'CreationDate') || '',
216
+ status: getXmlValue(block, 'Status') || '',
217
+ lastUseDate: getXmlValue(block, 'LastUseDate') || '',
218
+ expirationDate: getXmlValue(block, 'ExpirationDate') || '',
219
+ revokeDate: getXmlValue(block, 'RevokeDate') || '',
220
+ orderId: getXmlValue(block, 'OrderId') || '',
221
+ mac: getXmlValue(block, 'MAC') || '',
222
+ }));
223
+ }
224
+ //# sourceMappingURL=xml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml.js","sourceRoot":"","sources":["../src/xml.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@networksolution/sia-vpos-node",
3
+ "version": "1.0.0",
4
+ "description": "Node.js SDK for SIA/Nexi VPOS payment gateway — Authorization, Pay-By-Link, Refund, Booking, Webhook verification",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "require": "./dist/index.js",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc",
21
+ "prepare": "npm run build",
22
+ "clean": "rm -rf dist"
23
+ },
24
+ "keywords": [
25
+ "sia",
26
+ "nexi",
27
+ "vpos",
28
+ "payments",
29
+ "payment-gateway",
30
+ "pay-by-link",
31
+ "hpp",
32
+ "hosted-payment-page",
33
+ "refund",
34
+ "3ds",
35
+ "pci",
36
+ "credit-card",
37
+ "ecommerce",
38
+ "italia",
39
+ "node"
40
+ ],
41
+ "author": "",
42
+ "license": "MIT",
43
+ "repository": {
44
+ "type": "git",
45
+ "url": ""
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
49
+ },
50
+ "engines": {
51
+ "node": ">=18.0.0"
52
+ },
53
+ "dependencies": {
54
+ "crypto-js": "^4.2.0"
55
+ },
56
+ "devDependencies": {
57
+ "@types/crypto-js": "^4.2.2",
58
+ "@types/node": "^22.0.0",
59
+ "typescript": "^5.7.0"
60
+ }
61
+ }