@pax2pay/model-paxgiro-card 0.0.17
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/.editorconfig +22 -0
- package/.eslintignore +4 -0
- package/.eslintrc +71 -0
- package/.github/workflows/bump.yml +30 -0
- package/.github/workflows/ci.yml +61 -0
- package/.github/workflows/publish.yml +34 -0
- package/.prettierrc +11 -0
- package/Authorization/Creatable.ts +23 -0
- package/Authorization/index.ts +56 -0
- package/Batch.ts +28 -0
- package/CODEOWNERS +1 -0
- package/Card/Creatable.ts +27 -0
- package/Card/index.ts +47 -0
- package/Clearing.ts +41 -0
- package/Confirm.ts +14 -0
- package/LICENSE +21 -0
- package/README.md +2 -0
- package/Settlement/index.ts +38 -0
- package/dist/Authorization/Creatable.js +15 -0
- package/dist/Authorization/Creatable.js.map +1 -0
- package/dist/Authorization/index.js +47 -0
- package/dist/Authorization/index.js.map +1 -0
- package/dist/Batch.js +31 -0
- package/dist/Batch.js.map +1 -0
- package/dist/Card/Creatable.js +20 -0
- package/dist/Card/Creatable.js.map +1 -0
- package/dist/Card/index.js +37 -0
- package/dist/Card/index.js.map +1 -0
- package/dist/Clearing.js +24 -0
- package/dist/Clearing.js.map +1 -0
- package/dist/Confirm.js +10 -0
- package/dist/Confirm.js.map +1 -0
- package/dist/Settlement/index.js +30 -0
- package/dist/Settlement/index.js.map +1 -0
- package/dist/cjs/Authorization/Creatable.js +18 -0
- package/dist/cjs/Authorization/Creatable.js.map +1 -0
- package/dist/cjs/Authorization/index.js +50 -0
- package/dist/cjs/Authorization/index.js.map +1 -0
- package/dist/cjs/Batch.js +34 -0
- package/dist/cjs/Batch.js.map +1 -0
- package/dist/cjs/Card/Creatable.js +23 -0
- package/dist/cjs/Card/Creatable.js.map +1 -0
- package/dist/cjs/Card/index.js +40 -0
- package/dist/cjs/Card/index.js.map +1 -0
- package/dist/cjs/Clearing.js +27 -0
- package/dist/cjs/Clearing.js.map +1 -0
- package/dist/cjs/Confirm.js +13 -0
- package/dist/cjs/Confirm.js.map +1 -0
- package/dist/cjs/Settlement/index.js +33 -0
- package/dist/cjs/Settlement/index.js.map +1 -0
- package/dist/cjs/index.js +39 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/paxcard.js +16 -0
- package/dist/cjs/paxcard.js.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/paxcard.js +7 -0
- package/dist/paxcard.js.map +1 -0
- package/index.ts +2 -0
- package/package.json +62 -0
- package/paxcard.ts +6 -0
- package/tsconfig.cjs.json +13 -0
- package/tsconfig.json +34 -0
- package/tsconfig.mjs.json +9 -0
- package/vite.config.ts +17 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { pax2pay } from "@pax2pay/model-banking";
|
|
2
|
+
import { isly } from "isly";
|
|
3
|
+
export var Creatable;
|
|
4
|
+
(function (Creatable) {
|
|
5
|
+
Creatable.presets = [
|
|
6
|
+
"test-pg-200",
|
|
7
|
+
"test-ta-pg-200",
|
|
8
|
+
"test-pg-150",
|
|
9
|
+
];
|
|
10
|
+
Creatable.type = isly.object({
|
|
11
|
+
id: isly.string(),
|
|
12
|
+
preset: isly.string(Creatable.presets),
|
|
13
|
+
details: isly.object({
|
|
14
|
+
iin: isly.string(),
|
|
15
|
+
expiry: pax2pay.Card.Expiry.type,
|
|
16
|
+
holder: isly.string(),
|
|
17
|
+
}),
|
|
18
|
+
});
|
|
19
|
+
})(Creatable || (Creatable = {}));
|
|
20
|
+
//# sourceMappingURL=Creatable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Creatable.js","sourceRoot":"","sources":["../../Card/Creatable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAS3B,MAAM,KAAW,SAAS,CAgBzB;AAhBD,WAAiB,SAAS;IACZ,iBAAO,GAAqF;QACxG,aAAa;QACb,gBAAgB;QAChB,aAAa;KACb,CAAA;IAEY,cAAI,GAAG,IAAI,CAAC,MAAM,CAAY;QAC1C,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAA,OAAO,CAAC;QAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACpB,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;YAClB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAChC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;SACrB,CAAC;KACF,CAAC,CAAA;AACH,CAAC,EAhBgB,SAAS,KAAT,SAAS,QAgBzB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { pax2pay } from "@pax2pay/model-banking";
|
|
2
|
+
import { isly } from "isly";
|
|
3
|
+
import { Creatable as CardCreatable } from "./Creatable";
|
|
4
|
+
export var Card;
|
|
5
|
+
(function (Card) {
|
|
6
|
+
Card.Creatable = CardCreatable;
|
|
7
|
+
Card.type = isly.object({
|
|
8
|
+
id: isly.string(),
|
|
9
|
+
preset: isly.string(Card.Creatable.presets),
|
|
10
|
+
details: isly.object({
|
|
11
|
+
iin: isly.string(),
|
|
12
|
+
pan: isly.string().optional(),
|
|
13
|
+
csc: isly.string().optional(),
|
|
14
|
+
last4: isly.string(),
|
|
15
|
+
token: isly.string().optional(),
|
|
16
|
+
expiry: pax2pay.Card.Expiry.type,
|
|
17
|
+
holder: isly.string(),
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
function fromCreatable(creatable, options) {
|
|
21
|
+
const last4 = `${(10000 * Math.random()).toFixed(0).padStart(4, "0")}`;
|
|
22
|
+
const middle = creatable.preset.endsWith("150") ? "0000" : "000000";
|
|
23
|
+
const pan = `${creatable.details.iin}${middle}${last4}`;
|
|
24
|
+
const token = `{"pan"="${pan}","csc"="000"}`;
|
|
25
|
+
return {
|
|
26
|
+
...creatable,
|
|
27
|
+
details: {
|
|
28
|
+
...creatable.details,
|
|
29
|
+
token,
|
|
30
|
+
last4,
|
|
31
|
+
...(options?.cde && { pan, csc: "000" }),
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
Card.fromCreatable = fromCreatable;
|
|
36
|
+
})(Card || (Card = {}));
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../Card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,aAAa,CAAA;AAcxD,MAAM,KAAW,IAAI,CA8BpB;AA9BD,WAAiB,IAAI;IACN,cAAS,GAAG,aAAa,CAAA;IAC1B,SAAI,GAAG,IAAI,CAAC,MAAM,CAAO;QACrC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAA,SAAS,CAAC,OAAO,CAAC;QACtC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACpB,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;YAClB,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;YACpB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAChC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;SACrB,CAAC;KACF,CAAC,CAAA;IACF,SAAgB,aAAa,CAAC,SAAwB,EAAE,OAA2B;QAClF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;QACtE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;QACnE,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,GAAG,KAAK,EAAE,CAAA;QACvD,MAAM,KAAK,GAAG,WAAW,GAAG,gBAAgB,CAAA;QAC5C,OAAO;YACN,GAAG,SAAS;YACZ,OAAO,EAAE;gBACR,GAAG,SAAS,CAAC,OAAO;gBACpB,KAAK;gBACL,KAAK;gBACL,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;aACxC;SACD,CAAA;IACF,CAAC;IAde,kBAAa,gBAc5B,CAAA;AACF,CAAC,EA9BgB,IAAI,KAAJ,IAAI,QA8BpB"}
|
package/dist/Clearing.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { pax2pay } from "@pax2pay/model-banking";
|
|
2
|
+
import { isly } from "isly";
|
|
3
|
+
export var Clearing;
|
|
4
|
+
(function (Clearing) {
|
|
5
|
+
Clearing.Capture = isly.object({
|
|
6
|
+
type: isly.string("capture"),
|
|
7
|
+
authorization: isly.string(),
|
|
8
|
+
batch: isly.string(),
|
|
9
|
+
amount: pax2pay.Amount.type,
|
|
10
|
+
fee: pax2pay.Amount.type,
|
|
11
|
+
});
|
|
12
|
+
Clearing.Refund = isly.object({
|
|
13
|
+
type: isly.string("refund"),
|
|
14
|
+
batch: isly.string(),
|
|
15
|
+
acquirer: pax2pay.Acquirer.type,
|
|
16
|
+
merchant: pax2pay.Merchant.type,
|
|
17
|
+
card: isly.string(),
|
|
18
|
+
id: isly.string(),
|
|
19
|
+
amount: pax2pay.Amount.type,
|
|
20
|
+
fee: pax2pay.Amount.type,
|
|
21
|
+
});
|
|
22
|
+
Clearing.type = isly.union(Clearing.Capture, Clearing.Refund);
|
|
23
|
+
})(Clearing || (Clearing = {}));
|
|
24
|
+
//# sourceMappingURL=Clearing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Clearing.js","sourceRoot":"","sources":["../Clearing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,MAAM,KAAW,QAAQ,CAoCxB;AApCD,WAAiB,QAAQ;IAkBX,gBAAO,GAAG,IAAI,CAAC,MAAM,CAAU;QAC3C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC5B,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE;QAC5B,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;QAC3B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;KACxB,CAAC,CAAA;IACW,eAAM,GAAG,IAAI,CAAC,MAAM,CAAS;QACzC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC3B,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;QAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;QAC/B,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;QAC3B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;KACxB,CAAC,CAAA;IACW,aAAI,GAAG,IAAI,CAAC,KAAK,CAA4B,SAAA,OAAO,EAAE,SAAA,MAAM,CAAC,CAAA;AAC3E,CAAC,EApCgB,QAAQ,KAAR,QAAQ,QAoCxB"}
|
package/dist/Confirm.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { isly } from "isly";
|
|
2
|
+
export var Confirm;
|
|
3
|
+
(function (Confirm) {
|
|
4
|
+
Confirm.type = isly.object({
|
|
5
|
+
reference: isly.string(),
|
|
6
|
+
card: isly.string(),
|
|
7
|
+
approvalCode: isly.string(),
|
|
8
|
+
});
|
|
9
|
+
})(Confirm || (Confirm = {}));
|
|
10
|
+
//# sourceMappingURL=Confirm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Confirm.js","sourceRoot":"","sources":["../Confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAO3B,MAAM,KAAW,OAAO,CAMvB;AAND,WAAiB,OAAO;IACV,YAAI,GAAG,IAAI,CAAC,MAAM,CAAU;QACxC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;QACxB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE;KAC3B,CAAC,CAAA;AACH,CAAC,EANgB,OAAO,KAAP,OAAO,QAMvB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isoly } from "isoly";
|
|
2
|
+
import { pax2pay } from "@pax2pay/model-banking";
|
|
3
|
+
import { isly } from "isly";
|
|
4
|
+
export var Settlement;
|
|
5
|
+
(function (Settlement) {
|
|
6
|
+
let Totals;
|
|
7
|
+
(function (Totals) {
|
|
8
|
+
Totals.type = isly.record(isly.fromIs("isoly.Currency", isoly.Currency.is), isly.object({
|
|
9
|
+
amount: isly.number(),
|
|
10
|
+
interchange: isly.number(),
|
|
11
|
+
}));
|
|
12
|
+
function from(authorizations) {
|
|
13
|
+
return authorizations.reduce((totals, authorization) => {
|
|
14
|
+
totals[authorization.amount[0]] = {
|
|
15
|
+
amount: (totals[authorization.amount[0]]?.amount ?? 0) + authorization.amount[1],
|
|
16
|
+
interchange: (totals[authorization.amount[0]]?.interchange ?? 0) +
|
|
17
|
+
isoly.Currency.multiply(authorization.amount[0], authorization.amount[1], 0.02),
|
|
18
|
+
};
|
|
19
|
+
return totals;
|
|
20
|
+
}, {});
|
|
21
|
+
}
|
|
22
|
+
Totals.from = from;
|
|
23
|
+
})(Totals = Settlement.Totals || (Settlement.Totals = {}));
|
|
24
|
+
Settlement.type = isly.object({
|
|
25
|
+
created: isly.fromIs("isoly.DateTime", isoly.DateTime.is),
|
|
26
|
+
batch: pax2pay.Settlement.Batch.type,
|
|
27
|
+
totals: Totals.type,
|
|
28
|
+
});
|
|
29
|
+
})(Settlement || (Settlement = {}));
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../Settlement/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAQ3B,MAAM,KAAW,UAAU,CA2B1B;AA3BD,WAAiB,UAAU;IAE1B,IAAiB,MAAM,CAmBtB;IAnBD,WAAiB,MAAM;QACT,WAAI,GAAG,IAAI,CAAC,MAAM,CAC9B,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAChD,IAAI,CAAC,MAAM,CAA2C;YACrD,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE;SAC1B,CAAC,CACF,CAAA;QACD,SAAgB,IAAI,CAAC,cAA+B;YACnD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;gBACtD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;oBACjC,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChF,WAAW,EACV,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC;wBACnD,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;iBAChF,CAAA;gBACD,OAAO,MAAM,CAAA;YACd,CAAC,EAAE,EAAY,CAAC,CAAA;QACjB,CAAC;QAVe,WAAI,OAUnB,CAAA;IACF,CAAC,EAnBgB,MAAM,GAAN,iBAAM,KAAN,iBAAM,QAmBtB;IACY,eAAI,GAAG,IAAI,CAAC,MAAM,CAAa;QAC3C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI;QACpC,MAAM,EAAE,MAAM,CAAC,IAAI;KACnB,CAAC,CAAA;AACH,CAAC,EA3BgB,UAAU,KAAV,UAAU,QA2B1B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Creatable = void 0;
|
|
4
|
+
const isoly_1 = require("isoly");
|
|
5
|
+
const model_banking_1 = require("@pax2pay/model-banking");
|
|
6
|
+
const isly_1 = require("isly");
|
|
7
|
+
var Creatable;
|
|
8
|
+
(function (Creatable) {
|
|
9
|
+
Creatable.type = isly_1.isly.object({
|
|
10
|
+
card: isly_1.isly.string(),
|
|
11
|
+
preset: isly_1.isly.string(),
|
|
12
|
+
amount: isly_1.isly.tuple(isly_1.isly.fromIs("isoly.Currency", isoly_1.isoly.Currency.is), isly_1.isly.number()),
|
|
13
|
+
merchant: model_banking_1.pax2pay.Merchant.type,
|
|
14
|
+
acquirer: model_banking_1.pax2pay.Acquirer.type,
|
|
15
|
+
description: isly_1.isly.string(),
|
|
16
|
+
});
|
|
17
|
+
})(Creatable || (exports.Creatable = Creatable = {}));
|
|
18
|
+
//# sourceMappingURL=Creatable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Creatable.js","sourceRoot":"","sources":["../../../Authorization/Creatable.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,0DAAgD;AAChD,+BAA2B;AAW3B,IAAiB,SAAS,CASzB;AATD,WAAiB,SAAS;IACZ,cAAI,GAAG,WAAI,CAAC,MAAM,CAAY;QAC1C,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;QACnB,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;QACrB,MAAM,EAAE,WAAI,CAAC,KAAK,CAAC,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC;QACnF,QAAQ,EAAE,uBAAO,CAAC,QAAQ,CAAC,IAAI;QAC/B,QAAQ,EAAE,uBAAO,CAAC,QAAQ,CAAC,IAAI;QAC/B,WAAW,EAAE,WAAI,CAAC,MAAM,EAAE;KAC1B,CAAC,CAAA;AACH,CAAC,EATgB,SAAS,yBAAT,SAAS,QASzB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Authorization = void 0;
|
|
4
|
+
const cryptly_1 = require("cryptly");
|
|
5
|
+
const isoly_1 = require("isoly");
|
|
6
|
+
const model_banking_1 = require("@pax2pay/model-banking");
|
|
7
|
+
const isly_1 = require("isly");
|
|
8
|
+
const Creatable_1 = require("./Creatable");
|
|
9
|
+
var Authorization;
|
|
10
|
+
(function (Authorization) {
|
|
11
|
+
Authorization.Creatable = Creatable_1.Creatable;
|
|
12
|
+
function fromCreatable(authorization) {
|
|
13
|
+
return {
|
|
14
|
+
id: model_banking_1.pax2pay.Identifier.generate(),
|
|
15
|
+
card: authorization.card,
|
|
16
|
+
created: isoly_1.isoly.DateTime.now(),
|
|
17
|
+
amount: authorization.amount,
|
|
18
|
+
merchant: authorization.merchant,
|
|
19
|
+
acquirer: authorization.acquirer,
|
|
20
|
+
description: authorization.description,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
Authorization.fromCreatable = fromCreatable;
|
|
24
|
+
function from(id, authorization) {
|
|
25
|
+
return {
|
|
26
|
+
id,
|
|
27
|
+
number: authorization.id,
|
|
28
|
+
status: authorization.status == "approved" ? "approved" : undefined,
|
|
29
|
+
card: authorization.card.id,
|
|
30
|
+
created: authorization.created,
|
|
31
|
+
amount: authorization.amount,
|
|
32
|
+
merchant: authorization.merchant,
|
|
33
|
+
acquirer: authorization.acquirer,
|
|
34
|
+
description: authorization.description,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
Authorization.from = from;
|
|
38
|
+
Authorization.type = isly_1.isly.object({
|
|
39
|
+
id: isly_1.isly.fromIs("Authorization.id", cryptly_1.cryptly.Identifier.is),
|
|
40
|
+
number: isly_1.isly.fromIs("Authorization.id", cryptly_1.cryptly.Identifier.is).optional(),
|
|
41
|
+
card: isly_1.isly.string(),
|
|
42
|
+
created: isly_1.isly.fromIs("Authorization.created", isoly_1.isoly.DateTime.is),
|
|
43
|
+
amount: isly_1.isly.tuple(isly_1.isly.fromIs("isoly.Currency", isoly_1.isoly.Currency.is), isly_1.isly.number()),
|
|
44
|
+
merchant: model_banking_1.pax2pay.Merchant.type,
|
|
45
|
+
acquirer: model_banking_1.pax2pay.Acquirer.type,
|
|
46
|
+
description: isly_1.isly.string(),
|
|
47
|
+
status: isly_1.isly.string("approved").optional(),
|
|
48
|
+
});
|
|
49
|
+
})(Authorization || (exports.Authorization = Authorization = {}));
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Authorization/index.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,iCAA6B;AAC7B,0DAAgD;AAChD,+BAA2B;AAC3B,2CAAiE;AAajE,IAAiB,aAAa,CAsC7B;AAtCD,WAAiB,aAAa;IACf,uBAAS,GAAG,qBAAsB,CAAA;IAChD,SAAgB,aAAa,CAAC,aAAsC;QACnE,OAAO;YACN,EAAE,EAAE,uBAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;YACjC,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,OAAO,EAAE,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,WAAW,EAAE,aAAa,CAAC,WAAW;SACtC,CAAA;IACF,CAAC;IAVe,2BAAa,gBAU5B,CAAA;IACD,SAAgB,IAAI,CAAC,EAAsB,EAAE,aAAoC;QAChF,OAAO;YACN,EAAE;YACF,MAAM,EAAE,aAAa,CAAC,EAAE;YACxB,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YACnE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,WAAW,EAAE,aAAa,CAAC,WAAW;SACtC,CAAA;IACF,CAAC;IAZe,kBAAI,OAYnB,CAAA;IAEY,kBAAI,GAAG,WAAI,CAAC,MAAM,CAAgB;QAC9C,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,iBAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,MAAM,EAAE,WAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,iBAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACzE,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChE,MAAM,EAAE,WAAI,CAAC,KAAK,CAAC,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC;QACnF,QAAQ,EAAE,uBAAO,CAAC,QAAQ,CAAC,IAAI;QAC/B,QAAQ,EAAE,uBAAO,CAAC,QAAQ,CAAC,IAAI;QAC/B,WAAW,EAAE,WAAI,CAAC,MAAM,EAAE;QAC1B,MAAM,EAAE,WAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;KAC1C,CAAC,CAAA;AACH,CAAC,EAtCgB,aAAa,6BAAb,aAAa,QAsC7B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Batch = void 0;
|
|
4
|
+
const isoly_1 = require("isoly");
|
|
5
|
+
var Batch;
|
|
6
|
+
(function (Batch) {
|
|
7
|
+
function is(batch) {
|
|
8
|
+
return typeof batch == "string" && batch.length === 9 && /^\d{4}[0-3]\d{2}0[1-4]$/.test(batch);
|
|
9
|
+
}
|
|
10
|
+
Batch.is = is;
|
|
11
|
+
function from(time) {
|
|
12
|
+
return `${isoly_1.isoly.DateTime.getYear(time)}${dayOfYear(time)}0${cycle(time)}`;
|
|
13
|
+
}
|
|
14
|
+
Batch.from = from;
|
|
15
|
+
function dayOfYear(time) {
|
|
16
|
+
const ms = isoly_1.isoly.DateTime.epoch(time, "milliseconds") -
|
|
17
|
+
isoly_1.isoly.DateTime.epoch(`${Number.parseInt(time.slice(0, 4))}-01-01T00:00:00.000Z`, "milliseconds");
|
|
18
|
+
return (Math.floor(ms / 1000 / 60 / 60 / 24) + 1).toString().padStart(3, "0");
|
|
19
|
+
}
|
|
20
|
+
Batch.dayOfYear = dayOfYear;
|
|
21
|
+
function cycle(time) {
|
|
22
|
+
return Math.floor(isoly_1.isoly.DateTime.getHour(time) / 6) + 1;
|
|
23
|
+
}
|
|
24
|
+
Batch.cycle = cycle;
|
|
25
|
+
function previous(time = isoly_1.isoly.DateTime.now()) {
|
|
26
|
+
return from(isoly_1.isoly.DateTime.previousHour(time, 6));
|
|
27
|
+
}
|
|
28
|
+
Batch.previous = previous;
|
|
29
|
+
function toPrefix(batch) {
|
|
30
|
+
return `${isoly_1.isoly.Date.invert(isoly_1.isoly.Date.next(`${batch.slice(0, 4)}-01-01`, Number.parseInt(batch.slice(4, 7)) - 1))}|${batch.slice(-1)}`;
|
|
31
|
+
}
|
|
32
|
+
Batch.toPrefix = toPrefix;
|
|
33
|
+
})(Batch || (exports.Batch = Batch = {}));
|
|
34
|
+
//# sourceMappingURL=Batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Batch.js","sourceRoot":"","sources":["../../Batch.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAG7B,IAAiB,KAAK,CAwBrB;AAxBD,WAAiB,KAAK;IACrB,SAAgB,EAAE,CAAC,KAAU;QAC5B,OAAO,OAAO,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/F,CAAC;IAFe,QAAE,KAEjB,CAAA;IACD,SAAgB,IAAI,CAAC,IAAoB;QACxC,OAAO,GAAG,aAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAW,CAAA;IACnF,CAAC;IAFe,UAAI,OAEnB,CAAA;IACD,SAAgB,SAAS,CAAC,IAAoB;QAC7C,MAAM,EAAE,GACP,aAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC;YAC1C,aAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;QACjG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC9E,CAAC;IALe,eAAS,YAKxB,CAAA;IACD,SAAgB,KAAK,CAAC,IAAoB;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACxD,CAAC;IAFe,WAAK,QAEpB,CAAA;IACD,SAAgB,QAAQ,CAAC,OAAuB,aAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACnE,OAAO,IAAI,CAAC,aAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;IAFe,cAAQ,WAEvB,CAAA;IACD,SAAgB,QAAQ,CAAC,KAAY;QACpC,OAAO,GAAG,aAAK,CAAC,IAAI,CAAC,MAAM,CAC1B,aAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CACrF,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACvB,CAAC;IAJe,cAAQ,WAIvB,CAAA;AACF,CAAC,EAxBgB,KAAK,qBAAL,KAAK,QAwBrB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Creatable = void 0;
|
|
4
|
+
const model_banking_1 = require("@pax2pay/model-banking");
|
|
5
|
+
const isly_1 = require("isly");
|
|
6
|
+
var Creatable;
|
|
7
|
+
(function (Creatable) {
|
|
8
|
+
Creatable.presets = [
|
|
9
|
+
"test-pg-200",
|
|
10
|
+
"test-ta-pg-200",
|
|
11
|
+
"test-pg-150",
|
|
12
|
+
];
|
|
13
|
+
Creatable.type = isly_1.isly.object({
|
|
14
|
+
id: isly_1.isly.string(),
|
|
15
|
+
preset: isly_1.isly.string(Creatable.presets),
|
|
16
|
+
details: isly_1.isly.object({
|
|
17
|
+
iin: isly_1.isly.string(),
|
|
18
|
+
expiry: model_banking_1.pax2pay.Card.Expiry.type,
|
|
19
|
+
holder: isly_1.isly.string(),
|
|
20
|
+
}),
|
|
21
|
+
});
|
|
22
|
+
})(Creatable || (exports.Creatable = Creatable = {}));
|
|
23
|
+
//# sourceMappingURL=Creatable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Creatable.js","sourceRoot":"","sources":["../../../Card/Creatable.ts"],"names":[],"mappings":";;;AAAA,0DAAgD;AAChD,+BAA2B;AAS3B,IAAiB,SAAS,CAgBzB;AAhBD,WAAiB,SAAS;IACZ,iBAAO,GAAqF;QACxG,aAAa;QACb,gBAAgB;QAChB,aAAa;KACb,CAAA;IAEY,cAAI,GAAG,WAAI,CAAC,MAAM,CAAY;QAC1C,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,WAAI,CAAC,MAAM,CAAC,UAAA,OAAO,CAAC;QAC5B,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC;YACpB,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;YAClB,MAAM,EAAE,uBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAChC,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;SACrB,CAAC;KACF,CAAC,CAAA;AACH,CAAC,EAhBgB,SAAS,yBAAT,SAAS,QAgBzB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Card = void 0;
|
|
4
|
+
const model_banking_1 = require("@pax2pay/model-banking");
|
|
5
|
+
const isly_1 = require("isly");
|
|
6
|
+
const Creatable_1 = require("./Creatable");
|
|
7
|
+
var Card;
|
|
8
|
+
(function (Card) {
|
|
9
|
+
Card.Creatable = Creatable_1.Creatable;
|
|
10
|
+
Card.type = isly_1.isly.object({
|
|
11
|
+
id: isly_1.isly.string(),
|
|
12
|
+
preset: isly_1.isly.string(Card.Creatable.presets),
|
|
13
|
+
details: isly_1.isly.object({
|
|
14
|
+
iin: isly_1.isly.string(),
|
|
15
|
+
pan: isly_1.isly.string().optional(),
|
|
16
|
+
csc: isly_1.isly.string().optional(),
|
|
17
|
+
last4: isly_1.isly.string(),
|
|
18
|
+
token: isly_1.isly.string().optional(),
|
|
19
|
+
expiry: model_banking_1.pax2pay.Card.Expiry.type,
|
|
20
|
+
holder: isly_1.isly.string(),
|
|
21
|
+
}),
|
|
22
|
+
});
|
|
23
|
+
function fromCreatable(creatable, options) {
|
|
24
|
+
const last4 = `${(10000 * Math.random()).toFixed(0).padStart(4, "0")}`;
|
|
25
|
+
const middle = creatable.preset.endsWith("150") ? "0000" : "000000";
|
|
26
|
+
const pan = `${creatable.details.iin}${middle}${last4}`;
|
|
27
|
+
const token = `{"pan"="${pan}","csc"="000"}`;
|
|
28
|
+
return {
|
|
29
|
+
...creatable,
|
|
30
|
+
details: {
|
|
31
|
+
...creatable.details,
|
|
32
|
+
token,
|
|
33
|
+
last4,
|
|
34
|
+
...(options?.cde && { pan, csc: "000" }),
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
Card.fromCreatable = fromCreatable;
|
|
39
|
+
})(Card || (exports.Card = Card = {}));
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Card/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgD;AAChD,+BAA2B;AAC3B,2CAAwD;AAcxD,IAAiB,IAAI,CA8BpB;AA9BD,WAAiB,IAAI;IACN,cAAS,GAAG,qBAAa,CAAA;IAC1B,SAAI,GAAG,WAAI,CAAC,MAAM,CAAO;QACrC,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,WAAI,CAAC,MAAM,CAAC,KAAA,SAAS,CAAC,OAAO,CAAC;QACtC,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC;YACpB,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE;YAClB,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE;YACpB,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,MAAM,EAAE,uBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAChC,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;SACrB,CAAC;KACF,CAAC,CAAA;IACF,SAAgB,aAAa,CAAC,SAAwB,EAAE,OAA2B;QAClF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;QACtE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;QACnE,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,GAAG,KAAK,EAAE,CAAA;QACvD,MAAM,KAAK,GAAG,WAAW,GAAG,gBAAgB,CAAA;QAC5C,OAAO;YACN,GAAG,SAAS;YACZ,OAAO,EAAE;gBACR,GAAG,SAAS,CAAC,OAAO;gBACpB,KAAK;gBACL,KAAK;gBACL,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;aACxC;SACD,CAAA;IACF,CAAC;IAde,kBAAa,gBAc5B,CAAA;AACF,CAAC,EA9BgB,IAAI,oBAAJ,IAAI,QA8BpB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Clearing = void 0;
|
|
4
|
+
const model_banking_1 = require("@pax2pay/model-banking");
|
|
5
|
+
const isly_1 = require("isly");
|
|
6
|
+
var Clearing;
|
|
7
|
+
(function (Clearing) {
|
|
8
|
+
Clearing.Capture = isly_1.isly.object({
|
|
9
|
+
type: isly_1.isly.string("capture"),
|
|
10
|
+
authorization: isly_1.isly.string(),
|
|
11
|
+
batch: isly_1.isly.string(),
|
|
12
|
+
amount: model_banking_1.pax2pay.Amount.type,
|
|
13
|
+
fee: model_banking_1.pax2pay.Amount.type,
|
|
14
|
+
});
|
|
15
|
+
Clearing.Refund = isly_1.isly.object({
|
|
16
|
+
type: isly_1.isly.string("refund"),
|
|
17
|
+
batch: isly_1.isly.string(),
|
|
18
|
+
acquirer: model_banking_1.pax2pay.Acquirer.type,
|
|
19
|
+
merchant: model_banking_1.pax2pay.Merchant.type,
|
|
20
|
+
card: isly_1.isly.string(),
|
|
21
|
+
id: isly_1.isly.string(),
|
|
22
|
+
amount: model_banking_1.pax2pay.Amount.type,
|
|
23
|
+
fee: model_banking_1.pax2pay.Amount.type,
|
|
24
|
+
});
|
|
25
|
+
Clearing.type = isly_1.isly.union(Clearing.Capture, Clearing.Refund);
|
|
26
|
+
})(Clearing || (exports.Clearing = Clearing = {}));
|
|
27
|
+
//# sourceMappingURL=Clearing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Clearing.js","sourceRoot":"","sources":["../../Clearing.ts"],"names":[],"mappings":";;;AAAA,0DAAgD;AAChD,+BAA2B;AAG3B,IAAiB,QAAQ,CAoCxB;AApCD,WAAiB,QAAQ;IAkBX,gBAAO,GAAG,WAAI,CAAC,MAAM,CAAU;QAC3C,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC5B,aAAa,EAAE,WAAI,CAAC,MAAM,EAAE;QAC5B,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE;QACpB,MAAM,EAAE,uBAAO,CAAC,MAAM,CAAC,IAAI;QAC3B,GAAG,EAAE,uBAAO,CAAC,MAAM,CAAC,IAAI;KACxB,CAAC,CAAA;IACW,eAAM,GAAG,WAAI,CAAC,MAAM,CAAS;QACzC,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC3B,KAAK,EAAE,WAAI,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,uBAAO,CAAC,QAAQ,CAAC,IAAI;QAC/B,QAAQ,EAAE,uBAAO,CAAC,QAAQ,CAAC,IAAI;QAC/B,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;QACnB,EAAE,EAAE,WAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,uBAAO,CAAC,MAAM,CAAC,IAAI;QAC3B,GAAG,EAAE,uBAAO,CAAC,MAAM,CAAC,IAAI;KACxB,CAAC,CAAA;IACW,aAAI,GAAG,WAAI,CAAC,KAAK,CAA4B,SAAA,OAAO,EAAE,SAAA,MAAM,CAAC,CAAA;AAC3E,CAAC,EApCgB,QAAQ,wBAAR,QAAQ,QAoCxB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Confirm = void 0;
|
|
4
|
+
const isly_1 = require("isly");
|
|
5
|
+
var Confirm;
|
|
6
|
+
(function (Confirm) {
|
|
7
|
+
Confirm.type = isly_1.isly.object({
|
|
8
|
+
reference: isly_1.isly.string(),
|
|
9
|
+
card: isly_1.isly.string(),
|
|
10
|
+
approvalCode: isly_1.isly.string(),
|
|
11
|
+
});
|
|
12
|
+
})(Confirm || (exports.Confirm = Confirm = {}));
|
|
13
|
+
//# sourceMappingURL=Confirm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Confirm.js","sourceRoot":"","sources":["../../Confirm.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAO3B,IAAiB,OAAO,CAMvB;AAND,WAAiB,OAAO;IACV,YAAI,GAAG,WAAI,CAAC,MAAM,CAAU;QACxC,SAAS,EAAE,WAAI,CAAC,MAAM,EAAE;QACxB,IAAI,EAAE,WAAI,CAAC,MAAM,EAAE;QACnB,YAAY,EAAE,WAAI,CAAC,MAAM,EAAE;KAC3B,CAAC,CAAA;AACH,CAAC,EANgB,OAAO,uBAAP,OAAO,QAMvB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Settlement = void 0;
|
|
4
|
+
const isoly_1 = require("isoly");
|
|
5
|
+
const model_banking_1 = require("@pax2pay/model-banking");
|
|
6
|
+
const isly_1 = require("isly");
|
|
7
|
+
var Settlement;
|
|
8
|
+
(function (Settlement) {
|
|
9
|
+
let Totals;
|
|
10
|
+
(function (Totals) {
|
|
11
|
+
Totals.type = isly_1.isly.record(isly_1.isly.fromIs("isoly.Currency", isoly_1.isoly.Currency.is), isly_1.isly.object({
|
|
12
|
+
amount: isly_1.isly.number(),
|
|
13
|
+
interchange: isly_1.isly.number(),
|
|
14
|
+
}));
|
|
15
|
+
function from(authorizations) {
|
|
16
|
+
return authorizations.reduce((totals, authorization) => {
|
|
17
|
+
totals[authorization.amount[0]] = {
|
|
18
|
+
amount: (totals[authorization.amount[0]]?.amount ?? 0) + authorization.amount[1],
|
|
19
|
+
interchange: (totals[authorization.amount[0]]?.interchange ?? 0) +
|
|
20
|
+
isoly_1.isoly.Currency.multiply(authorization.amount[0], authorization.amount[1], 0.02),
|
|
21
|
+
};
|
|
22
|
+
return totals;
|
|
23
|
+
}, {});
|
|
24
|
+
}
|
|
25
|
+
Totals.from = from;
|
|
26
|
+
})(Totals = Settlement.Totals || (Settlement.Totals = {}));
|
|
27
|
+
Settlement.type = isly_1.isly.object({
|
|
28
|
+
created: isly_1.isly.fromIs("isoly.DateTime", isoly_1.isoly.DateTime.is),
|
|
29
|
+
batch: model_banking_1.pax2pay.Settlement.Batch.type,
|
|
30
|
+
totals: Totals.type,
|
|
31
|
+
});
|
|
32
|
+
})(Settlement || (exports.Settlement = Settlement = {}));
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Settlement/index.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,0DAAgD;AAChD,+BAA2B;AAQ3B,IAAiB,UAAU,CA2B1B;AA3BD,WAAiB,UAAU;IAE1B,IAAiB,MAAM,CAmBtB;IAnBD,WAAiB,MAAM;QACT,WAAI,GAAG,WAAI,CAAC,MAAM,CAC9B,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAChD,WAAI,CAAC,MAAM,CAA2C;YACrD,MAAM,EAAE,WAAI,CAAC,MAAM,EAAE;YACrB,WAAW,EAAE,WAAI,CAAC,MAAM,EAAE;SAC1B,CAAC,CACF,CAAA;QACD,SAAgB,IAAI,CAAC,cAA+B;YACnD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;gBACtD,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;oBACjC,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;oBAChF,WAAW,EACV,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC;wBACnD,aAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;iBAChF,CAAA;gBACD,OAAO,MAAM,CAAA;YACd,CAAC,EAAE,EAAY,CAAC,CAAA;QACjB,CAAC;QAVe,WAAI,OAUnB,CAAA;IACF,CAAC,EAnBgB,MAAM,GAAN,iBAAM,KAAN,iBAAM,QAmBtB;IACY,eAAI,GAAG,WAAI,CAAC,MAAM,CAAa;QAC3C,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,aAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,KAAK,EAAE,uBAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI;QACpC,MAAM,EAAE,MAAM,CAAC,IAAI;KACnB,CAAC,CAAA;AACH,CAAC,EA3BgB,UAAU,0BAAV,UAAU,QA2B1B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.paxcard = void 0;
|
|
37
|
+
const paxcard = __importStar(require("./paxcard"));
|
|
38
|
+
exports.paxcard = paxcard;
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AAC3B,0BAAO"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Settlement = exports.Confirm = exports.Clearing = exports.Card = exports.Batch = exports.Authorization = void 0;
|
|
4
|
+
var Authorization_1 = require("./Authorization");
|
|
5
|
+
Object.defineProperty(exports, "Authorization", { enumerable: true, get: function () { return Authorization_1.Authorization; } });
|
|
6
|
+
var Batch_1 = require("./Batch");
|
|
7
|
+
Object.defineProperty(exports, "Batch", { enumerable: true, get: function () { return Batch_1.Batch; } });
|
|
8
|
+
var Card_1 = require("./Card");
|
|
9
|
+
Object.defineProperty(exports, "Card", { enumerable: true, get: function () { return Card_1.Card; } });
|
|
10
|
+
var Clearing_1 = require("./Clearing");
|
|
11
|
+
Object.defineProperty(exports, "Clearing", { enumerable: true, get: function () { return Clearing_1.Clearing; } });
|
|
12
|
+
var Confirm_1 = require("./Confirm");
|
|
13
|
+
Object.defineProperty(exports, "Confirm", { enumerable: true, get: function () { return Confirm_1.Confirm; } });
|
|
14
|
+
var Settlement_1 = require("./Settlement");
|
|
15
|
+
Object.defineProperty(exports, "Settlement", { enumerable: true, get: function () { return Settlement_1.Settlement; } });
|
|
16
|
+
//# sourceMappingURL=paxcard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paxcard.js","sourceRoot":"","sources":["../../paxcard.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,8GAAA,aAAa,OAAA;AACtB,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,2CAAyC;AAAhC,wGAAA,UAAU,OAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
package/dist/paxcard.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Authorization } from "./Authorization";
|
|
2
|
+
export { Batch } from "./Batch";
|
|
3
|
+
export { Card } from "./Card";
|
|
4
|
+
export { Clearing } from "./Clearing";
|
|
5
|
+
export { Confirm } from "./Confirm";
|
|
6
|
+
export { Settlement } from "./Settlement";
|
|
7
|
+
//# sourceMappingURL=paxcard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paxcard.js","sourceRoot":"","sources":["../paxcard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
|
package/index.ts
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pax2pay/model-paxgiro-card",
|
|
3
|
+
"version": "0.0.17",
|
|
4
|
+
"description": "Library containing data model types and functions for the PaxGiro Card API.",
|
|
5
|
+
"author": "Pax2Pay",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": "https://github.com/pax2pay/model-paxgiro-card",
|
|
8
|
+
"bugs": {
|
|
9
|
+
"url": "https://github.com/pax2pay/model-paxgiro-card/issues"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://pax2pay.com",
|
|
12
|
+
"private": false,
|
|
13
|
+
"type": "module",
|
|
14
|
+
"module": "./dist/mjs/index.js",
|
|
15
|
+
"types": "./dist/types/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"import": {
|
|
19
|
+
"types": "./dist/types/index.d.ts",
|
|
20
|
+
"default": "./dist/mjs/index.js"
|
|
21
|
+
},
|
|
22
|
+
"require": {
|
|
23
|
+
"types": "./dist/types/index.d.ts",
|
|
24
|
+
"default": "./dist/cjs/index.js"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"git": {
|
|
29
|
+
"tagName": "v${version}"
|
|
30
|
+
},
|
|
31
|
+
"github": {
|
|
32
|
+
"release": true
|
|
33
|
+
},
|
|
34
|
+
"scripts": {
|
|
35
|
+
"lint": "eslint --max-warnings=0 '**/*.{ts,tsx}'",
|
|
36
|
+
"fix": "eslint '**/*.{ts,tsx}' --fix",
|
|
37
|
+
"build": "rimraf dist/* && tsc -p tsconfig.mjs.json && tsc -p tsconfig.cjs.json",
|
|
38
|
+
"test": "vitest --run",
|
|
39
|
+
"prepare": "npm run build",
|
|
40
|
+
"clean": "rimraf dist node_modules coverage"
|
|
41
|
+
},
|
|
42
|
+
"overrides": {
|
|
43
|
+
"esbuild": ">=0.25.0"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "8.2.0",
|
|
47
|
+
"@typescript-eslint/parser": "8.2.0",
|
|
48
|
+
"eslint": "^8.57.0",
|
|
49
|
+
"eslint-plugin-prettierx": "github:utily/eslint-plugin-prettierx#utily-20231004",
|
|
50
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
51
|
+
"prettierx": "github:utily/prettierx#utily-20231004",
|
|
52
|
+
"rimraf": "^6.0.1",
|
|
53
|
+
"typescript": "^5.5.4",
|
|
54
|
+
"vitest": "^3.1.3"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@pax2pay/model-banking": "0.1.494",
|
|
58
|
+
"isly": "0.1.20",
|
|
59
|
+
"isoly": "2.3.11",
|
|
60
|
+
"cryptly": "^4.0.6"
|
|
61
|
+
}
|
|
62
|
+
}
|
package/paxcard.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "./tsconfig.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"module": "CommonJS",
|
|
5
|
+
// where cjs is omitted. point package.json `exports` (require) field to these.
|
|
6
|
+
// if a `main` field is declared in package.json point it to these as well.
|
|
7
|
+
"outDir": "dist/cjs",
|
|
8
|
+
"types": []
|
|
9
|
+
},
|
|
10
|
+
"exclude": [
|
|
11
|
+
"**/*.spec.ts"
|
|
12
|
+
]
|
|
13
|
+
}
|