@xyo-network/rebilly-payment-card-authorization-plugin 2.94.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.
- package/LICENSE +165 -0
- package/README.md +13 -0
- package/dist/browser/Api/PaymentCardToken/Request.d.cts +88 -0
- package/dist/browser/Api/PaymentCardToken/Request.d.cts.map +1 -0
- package/dist/browser/Api/PaymentCardToken/Request.d.mts +88 -0
- package/dist/browser/Api/PaymentCardToken/Request.d.mts.map +1 -0
- package/dist/browser/Api/PaymentCardToken/Request.d.ts +88 -0
- package/dist/browser/Api/PaymentCardToken/Request.d.ts.map +1 -0
- package/dist/browser/Api/PaymentCardToken/Response.d.cts +70 -0
- package/dist/browser/Api/PaymentCardToken/Response.d.cts.map +1 -0
- package/dist/browser/Api/PaymentCardToken/Response.d.mts +70 -0
- package/dist/browser/Api/PaymentCardToken/Response.d.mts.map +1 -0
- package/dist/browser/Api/PaymentCardToken/Response.d.ts +70 -0
- package/dist/browser/Api/PaymentCardToken/Response.d.ts.map +1 -0
- package/dist/browser/Api/PaymentCardToken/index.d.cts +3 -0
- package/dist/browser/Api/PaymentCardToken/index.d.cts.map +1 -0
- package/dist/browser/Api/PaymentCardToken/index.d.mts +3 -0
- package/dist/browser/Api/PaymentCardToken/index.d.mts.map +1 -0
- package/dist/browser/Api/PaymentCardToken/index.d.ts +3 -0
- package/dist/browser/Api/PaymentCardToken/index.d.ts.map +1 -0
- package/dist/browser/Api/index.d.cts +2 -0
- package/dist/browser/Api/index.d.cts.map +1 -0
- package/dist/browser/Api/index.d.mts +2 -0
- package/dist/browser/Api/index.d.mts.map +1 -0
- package/dist/browser/Api/index.d.ts +2 -0
- package/dist/browser/Api/index.d.ts.map +1 -0
- package/dist/browser/Config.d.cts +11 -0
- package/dist/browser/Config.d.cts.map +1 -0
- package/dist/browser/Config.d.mts +11 -0
- package/dist/browser/Config.d.mts.map +1 -0
- package/dist/browser/Config.d.ts +11 -0
- package/dist/browser/Config.d.ts.map +1 -0
- package/dist/browser/Params.d.cts +7 -0
- package/dist/browser/Params.d.cts.map +1 -0
- package/dist/browser/Params.d.mts +7 -0
- package/dist/browser/Params.d.mts.map +1 -0
- package/dist/browser/Params.d.ts +7 -0
- package/dist/browser/Params.d.ts.map +1 -0
- package/dist/browser/RebillyProviderSettings/RebillyApiSettings.d.cts +17 -0
- package/dist/browser/RebillyProviderSettings/RebillyApiSettings.d.cts.map +1 -0
- package/dist/browser/RebillyProviderSettings/RebillyApiSettings.d.mts +17 -0
- package/dist/browser/RebillyProviderSettings/RebillyApiSettings.d.mts.map +1 -0
- package/dist/browser/RebillyProviderSettings/RebillyApiSettings.d.ts +17 -0
- package/dist/browser/RebillyProviderSettings/RebillyApiSettings.d.ts.map +1 -0
- package/dist/browser/RebillyProviderSettings/RebillyAuthSettings.d.cts +15 -0
- package/dist/browser/RebillyProviderSettings/RebillyAuthSettings.d.cts.map +1 -0
- package/dist/browser/RebillyProviderSettings/RebillyAuthSettings.d.mts +15 -0
- package/dist/browser/RebillyProviderSettings/RebillyAuthSettings.d.mts.map +1 -0
- package/dist/browser/RebillyProviderSettings/RebillyAuthSettings.d.ts +15 -0
- package/dist/browser/RebillyProviderSettings/RebillyAuthSettings.d.ts.map +1 -0
- package/dist/browser/RebillyProviderSettings/RebillyOrganizationSettings.d.cts +10 -0
- package/dist/browser/RebillyProviderSettings/RebillyOrganizationSettings.d.cts.map +1 -0
- package/dist/browser/RebillyProviderSettings/RebillyOrganizationSettings.d.mts +10 -0
- package/dist/browser/RebillyProviderSettings/RebillyOrganizationSettings.d.mts.map +1 -0
- package/dist/browser/RebillyProviderSettings/RebillyOrganizationSettings.d.ts +10 -0
- package/dist/browser/RebillyProviderSettings/RebillyOrganizationSettings.d.ts.map +1 -0
- package/dist/browser/RebillyProviderSettings/index.d.cts +4 -0
- package/dist/browser/RebillyProviderSettings/index.d.cts.map +1 -0
- package/dist/browser/RebillyProviderSettings/index.d.mts +4 -0
- package/dist/browser/RebillyProviderSettings/index.d.mts.map +1 -0
- package/dist/browser/RebillyProviderSettings/index.d.ts +4 -0
- package/dist/browser/RebillyProviderSettings/index.d.ts.map +1 -0
- package/dist/browser/Schema.d.cts +3 -0
- package/dist/browser/Schema.d.cts.map +1 -0
- package/dist/browser/Schema.d.mts +3 -0
- package/dist/browser/Schema.d.mts.map +1 -0
- package/dist/browser/Schema.d.ts +3 -0
- package/dist/browser/Schema.d.ts.map +1 -0
- package/dist/browser/Sentinel.d.cts +45 -0
- package/dist/browser/Sentinel.d.cts.map +1 -0
- package/dist/browser/Sentinel.d.mts +45 -0
- package/dist/browser/Sentinel.d.mts.map +1 -0
- package/dist/browser/Sentinel.d.ts +45 -0
- package/dist/browser/Sentinel.d.ts.map +1 -0
- package/dist/browser/index.cjs +151 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.cts +5 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/browser/index.d.mts +5 -0
- package/dist/browser/index.d.mts.map +1 -0
- package/dist/browser/index.d.ts +5 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +128 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/util/index.d.cts +2 -0
- package/dist/browser/util/index.d.cts.map +1 -0
- package/dist/browser/util/index.d.mts +2 -0
- package/dist/browser/util/index.d.mts.map +1 -0
- package/dist/browser/util/index.d.ts +2 -0
- package/dist/browser/util/index.d.ts.map +1 -0
- package/dist/browser/util/toTokenRequest.d.cts +10 -0
- package/dist/browser/util/toTokenRequest.d.cts.map +1 -0
- package/dist/browser/util/toTokenRequest.d.mts +10 -0
- package/dist/browser/util/toTokenRequest.d.mts.map +1 -0
- package/dist/browser/util/toTokenRequest.d.ts +10 -0
- package/dist/browser/util/toTokenRequest.d.ts.map +1 -0
- package/dist/node/Api/PaymentCardToken/Request.d.cts +88 -0
- package/dist/node/Api/PaymentCardToken/Request.d.cts.map +1 -0
- package/dist/node/Api/PaymentCardToken/Request.d.mts +88 -0
- package/dist/node/Api/PaymentCardToken/Request.d.mts.map +1 -0
- package/dist/node/Api/PaymentCardToken/Request.d.ts +88 -0
- package/dist/node/Api/PaymentCardToken/Request.d.ts.map +1 -0
- package/dist/node/Api/PaymentCardToken/Response.d.cts +70 -0
- package/dist/node/Api/PaymentCardToken/Response.d.cts.map +1 -0
- package/dist/node/Api/PaymentCardToken/Response.d.mts +70 -0
- package/dist/node/Api/PaymentCardToken/Response.d.mts.map +1 -0
- package/dist/node/Api/PaymentCardToken/Response.d.ts +70 -0
- package/dist/node/Api/PaymentCardToken/Response.d.ts.map +1 -0
- package/dist/node/Api/PaymentCardToken/index.d.cts +3 -0
- package/dist/node/Api/PaymentCardToken/index.d.cts.map +1 -0
- package/dist/node/Api/PaymentCardToken/index.d.mts +3 -0
- package/dist/node/Api/PaymentCardToken/index.d.mts.map +1 -0
- package/dist/node/Api/PaymentCardToken/index.d.ts +3 -0
- package/dist/node/Api/PaymentCardToken/index.d.ts.map +1 -0
- package/dist/node/Api/index.d.cts +2 -0
- package/dist/node/Api/index.d.cts.map +1 -0
- package/dist/node/Api/index.d.mts +2 -0
- package/dist/node/Api/index.d.mts.map +1 -0
- package/dist/node/Api/index.d.ts +2 -0
- package/dist/node/Api/index.d.ts.map +1 -0
- package/dist/node/Config.d.cts +11 -0
- package/dist/node/Config.d.cts.map +1 -0
- package/dist/node/Config.d.mts +11 -0
- package/dist/node/Config.d.mts.map +1 -0
- package/dist/node/Config.d.ts +11 -0
- package/dist/node/Config.d.ts.map +1 -0
- package/dist/node/Params.d.cts +7 -0
- package/dist/node/Params.d.cts.map +1 -0
- package/dist/node/Params.d.mts +7 -0
- package/dist/node/Params.d.mts.map +1 -0
- package/dist/node/Params.d.ts +7 -0
- package/dist/node/Params.d.ts.map +1 -0
- package/dist/node/RebillyProviderSettings/RebillyApiSettings.d.cts +17 -0
- package/dist/node/RebillyProviderSettings/RebillyApiSettings.d.cts.map +1 -0
- package/dist/node/RebillyProviderSettings/RebillyApiSettings.d.mts +17 -0
- package/dist/node/RebillyProviderSettings/RebillyApiSettings.d.mts.map +1 -0
- package/dist/node/RebillyProviderSettings/RebillyApiSettings.d.ts +17 -0
- package/dist/node/RebillyProviderSettings/RebillyApiSettings.d.ts.map +1 -0
- package/dist/node/RebillyProviderSettings/RebillyAuthSettings.d.cts +15 -0
- package/dist/node/RebillyProviderSettings/RebillyAuthSettings.d.cts.map +1 -0
- package/dist/node/RebillyProviderSettings/RebillyAuthSettings.d.mts +15 -0
- package/dist/node/RebillyProviderSettings/RebillyAuthSettings.d.mts.map +1 -0
- package/dist/node/RebillyProviderSettings/RebillyAuthSettings.d.ts +15 -0
- package/dist/node/RebillyProviderSettings/RebillyAuthSettings.d.ts.map +1 -0
- package/dist/node/RebillyProviderSettings/RebillyOrganizationSettings.d.cts +10 -0
- package/dist/node/RebillyProviderSettings/RebillyOrganizationSettings.d.cts.map +1 -0
- package/dist/node/RebillyProviderSettings/RebillyOrganizationSettings.d.mts +10 -0
- package/dist/node/RebillyProviderSettings/RebillyOrganizationSettings.d.mts.map +1 -0
- package/dist/node/RebillyProviderSettings/RebillyOrganizationSettings.d.ts +10 -0
- package/dist/node/RebillyProviderSettings/RebillyOrganizationSettings.d.ts.map +1 -0
- package/dist/node/RebillyProviderSettings/index.d.cts +4 -0
- package/dist/node/RebillyProviderSettings/index.d.cts.map +1 -0
- package/dist/node/RebillyProviderSettings/index.d.mts +4 -0
- package/dist/node/RebillyProviderSettings/index.d.mts.map +1 -0
- package/dist/node/RebillyProviderSettings/index.d.ts +4 -0
- package/dist/node/RebillyProviderSettings/index.d.ts.map +1 -0
- package/dist/node/Schema.d.cts +3 -0
- package/dist/node/Schema.d.cts.map +1 -0
- package/dist/node/Schema.d.mts +3 -0
- package/dist/node/Schema.d.mts.map +1 -0
- package/dist/node/Schema.d.ts +3 -0
- package/dist/node/Schema.d.ts.map +1 -0
- package/dist/node/Sentinel.d.cts +45 -0
- package/dist/node/Sentinel.d.cts.map +1 -0
- package/dist/node/Sentinel.d.mts +45 -0
- package/dist/node/Sentinel.d.mts.map +1 -0
- package/dist/node/Sentinel.d.ts +45 -0
- package/dist/node/Sentinel.d.ts.map +1 -0
- package/dist/node/index.cjs +158 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.d.cts +5 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.d.mts +5 -0
- package/dist/node/index.d.mts.map +1 -0
- package/dist/node/index.d.ts +5 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +129 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/util/index.d.cts +2 -0
- package/dist/node/util/index.d.cts.map +1 -0
- package/dist/node/util/index.d.mts +2 -0
- package/dist/node/util/index.d.mts.map +1 -0
- package/dist/node/util/index.d.ts +2 -0
- package/dist/node/util/index.d.ts.map +1 -0
- package/dist/node/util/toTokenRequest.d.cts +10 -0
- package/dist/node/util/toTokenRequest.d.cts.map +1 -0
- package/dist/node/util/toTokenRequest.d.mts +10 -0
- package/dist/node/util/toTokenRequest.d.mts.map +1 -0
- package/dist/node/util/toTokenRequest.d.ts +10 -0
- package/dist/node/util/toTokenRequest.d.ts.map +1 -0
- package/package.json +71 -0
- package/src/Api/PaymentCardToken/Request.ts +238 -0
- package/src/Api/PaymentCardToken/Response.ts +73 -0
- package/src/Api/PaymentCardToken/index.ts +2 -0
- package/src/Api/index.ts +1 -0
- package/src/Config.ts +18 -0
- package/src/Params.ts +12 -0
- package/src/RebillyProviderSettings/RebillyApiSettings.ts +23 -0
- package/src/RebillyProviderSettings/RebillyAuthSettings.ts +15 -0
- package/src/RebillyProviderSettings/RebillyOrganizationSettings.ts +9 -0
- package/src/RebillyProviderSettings/index.ts +3 -0
- package/src/Schema.ts +2 -0
- package/src/Sentinel.ts +117 -0
- package/src/index.ts +4 -0
- package/src/util/index.ts +1 -0
- package/src/util/toTokenRequest.ts +24 -0
- package/typedoc.json +5 -0
- package/xy.config.ts +14 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
RebillyPaymentCardAuthorizationSentinel: () => RebillyPaymentCardAuthorizationSentinel,
|
|
24
|
+
RebillyPaymentCardAuthorizationSentinelConfigSchema: () => RebillyPaymentCardAuthorizationSentinelConfigSchema,
|
|
25
|
+
RebillyPaymentCardAuthorizationSentinelSchema: () => RebillyPaymentCardAuthorizationSentinelSchema
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(src_exports);
|
|
28
|
+
|
|
29
|
+
// src/Schema.ts
|
|
30
|
+
var RebillyPaymentCardAuthorizationSentinelSchema = "network.xyo.sentinel.payments.payment.instrument.card.authorization.rebilly";
|
|
31
|
+
|
|
32
|
+
// src/Config.ts
|
|
33
|
+
var RebillyPaymentCardAuthorizationSentinelConfigSchema = `${RebillyPaymentCardAuthorizationSentinelSchema}.config`;
|
|
34
|
+
|
|
35
|
+
// src/Sentinel.ts
|
|
36
|
+
var import_assert = require("@xylabs/assert");
|
|
37
|
+
var import_axios = require("@xylabs/axios");
|
|
38
|
+
var import_id_payload_plugin = require("@xyo-network/id-payload-plugin");
|
|
39
|
+
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
40
|
+
var import_payment_payload_plugins = require("@xyo-network/payment-payload-plugins");
|
|
41
|
+
var import_sentinel_abstract = require("@xyo-network/sentinel-abstract");
|
|
42
|
+
|
|
43
|
+
// src/util/toTokenRequest.ts
|
|
44
|
+
var toTokenRequest = (paymentCard, billingAddress) => {
|
|
45
|
+
const { cvv, expMonth, expYear, cardNumber } = paymentCard;
|
|
46
|
+
const { schema: _, ...fields } = billingAddress;
|
|
47
|
+
return {
|
|
48
|
+
billingAddress: { ...fields },
|
|
49
|
+
method: "payment-card",
|
|
50
|
+
paymentInstrument: { cvv, expMonth, expYear, pan: cardNumber }
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// src/Sentinel.ts
|
|
55
|
+
var removePrefix = (str, prefix) => {
|
|
56
|
+
const regex = new RegExp(`^${prefix}`);
|
|
57
|
+
return str.replace(regex, "");
|
|
58
|
+
};
|
|
59
|
+
var moduleName = "RebillyPaymentCardAuthorizationSentinel";
|
|
60
|
+
var RebillyPaymentCardAuthorizationSentinel = class extends import_sentinel_abstract.AbstractSentinel {
|
|
61
|
+
static configSchemas = [RebillyPaymentCardAuthorizationSentinelConfigSchema];
|
|
62
|
+
static defaultConfigSchema = RebillyPaymentCardAuthorizationSentinelConfigSchema;
|
|
63
|
+
_apiRoot = void 0;
|
|
64
|
+
_domain = void 0;
|
|
65
|
+
_headers = void 0;
|
|
66
|
+
_organizationId = void 0;
|
|
67
|
+
_publishableApiKey = void 0;
|
|
68
|
+
_tokenEndpoint = void 0;
|
|
69
|
+
/**
|
|
70
|
+
* The Rebilly Organization API root endpoint
|
|
71
|
+
*/
|
|
72
|
+
get apiRoot() {
|
|
73
|
+
if (!this._apiRoot)
|
|
74
|
+
this._apiRoot = `${this.domain}/organizations/${this.organizationId}`;
|
|
75
|
+
return this._apiRoot;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The Rebilly domain
|
|
79
|
+
*/
|
|
80
|
+
get domain() {
|
|
81
|
+
if (!this._domain)
|
|
82
|
+
this._domain = (0, import_assert.assertEx)(this.params.domain ?? this.config.domain, () => `${moduleName}: Missing domain in params/config`);
|
|
83
|
+
return this._domain;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The headers to be included in the request for each request
|
|
87
|
+
*/
|
|
88
|
+
get headers() {
|
|
89
|
+
if (!this._headers)
|
|
90
|
+
this._headers = { Authorization: this.publishableApiKey };
|
|
91
|
+
return this._headers;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* True if the environment is sandbox (testing), false otherwise
|
|
95
|
+
*/
|
|
96
|
+
get isSandboxEnvironment() {
|
|
97
|
+
return this.domain.includes("sandbox");
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The Rebilly organization ID
|
|
101
|
+
*/
|
|
102
|
+
get organizationId() {
|
|
103
|
+
if (!this._organizationId)
|
|
104
|
+
this._organizationId = removePrefix(
|
|
105
|
+
(0, import_assert.assertEx)(this.params.organizationId, () => `${moduleName}: Missing organizationId in params`),
|
|
106
|
+
"org_"
|
|
107
|
+
);
|
|
108
|
+
return this._organizationId;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* The Rebilly Publishable API key
|
|
112
|
+
*/
|
|
113
|
+
get publishableApiKey() {
|
|
114
|
+
if (!this._publishableApiKey)
|
|
115
|
+
this._publishableApiKey = (0, import_assert.assertEx)(this.params.publishableApiKey, () => `${moduleName}: Missing publishableApiKey in params`);
|
|
116
|
+
return this._publishableApiKey;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The Rebilly Organization token creation endpoint
|
|
120
|
+
*/
|
|
121
|
+
get tokenEndpoint() {
|
|
122
|
+
if (!this._tokenEndpoint)
|
|
123
|
+
this._tokenEndpoint = `${this.apiRoot}/tokens`;
|
|
124
|
+
return this._tokenEndpoint;
|
|
125
|
+
}
|
|
126
|
+
async reportHandler(payloads) {
|
|
127
|
+
await this.started("throw");
|
|
128
|
+
const results = [];
|
|
129
|
+
if (!payloads || payloads.length === 0)
|
|
130
|
+
return results;
|
|
131
|
+
const paymentCard = payloads?.find(import_payment_payload_plugins.isPaymentCard);
|
|
132
|
+
if (!paymentCard)
|
|
133
|
+
return results;
|
|
134
|
+
const billingAddress = payloads?.find(import_payment_payload_plugins.isBillingAddress);
|
|
135
|
+
if (!billingAddress)
|
|
136
|
+
return results;
|
|
137
|
+
const axios = new import_axios.AxiosJson({ headers: this.headers });
|
|
138
|
+
try {
|
|
139
|
+
const data = toTokenRequest(paymentCard, billingAddress);
|
|
140
|
+
const response = await axios.post(this.tokenEndpoint, data);
|
|
141
|
+
(0, import_assert.assertEx)(response.status === import_axios.HttpStatusCode.Created, () => `Failed to tokenize payment card: ${response.status}`);
|
|
142
|
+
const token = response.data;
|
|
143
|
+
const sources = await import_payload_builder.PayloadBuilder.dataHashes([paymentCard, billingAddress]);
|
|
144
|
+
results.push({ salt: token.id, schema: import_id_payload_plugin.IdSchema, sources });
|
|
145
|
+
} catch (error) {
|
|
146
|
+
this.logger?.error?.(`${moduleName}: Error creating payment token: ${error}`);
|
|
147
|
+
}
|
|
148
|
+
return results;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Schema.ts","../../src/Config.ts","../../src/Sentinel.ts","../../src/util/toTokenRequest.ts"],"sourcesContent":["export * from './Config'\nexport * from './Params'\nexport * from './Schema'\nexport * from './Sentinel'\n","export const RebillyPaymentCardAuthorizationSentinelSchema = 'network.xyo.sentinel.payments.payment.instrument.card.authorization.rebilly'\nexport type RebillyPaymentCardAuthorizationSentinelSchema = typeof RebillyPaymentCardAuthorizationSentinelSchema\n","import { SentinelConfig } from '@xyo-network/sentinel-model'\n\nimport { RebillyApiDomainSettings } from './RebillyProviderSettings'\nimport { RebillyPaymentCardAuthorizationSentinelSchema } from './Schema'\n\nexport const RebillyPaymentCardAuthorizationSentinelConfigSchema = `${RebillyPaymentCardAuthorizationSentinelSchema}.config`\nexport type RebillyPaymentCardAuthorizationSentinelConfigSchema = typeof RebillyPaymentCardAuthorizationSentinelConfigSchema\n\n/*\n * The Rebilly Payment Card Authorization Sentinel Config\n */\nexport type RebillyPaymentCardAuthorizationSentinelConfig = SentinelConfig<{\n /**\n * The config schema\n */\n schema: RebillyPaymentCardAuthorizationSentinelConfigSchema\n}> &\n Partial<RebillyApiDomainSettings>\n","import { assertEx } from '@xylabs/assert'\nimport { AxiosJson, AxiosRequestConfig, HttpStatusCode } from '@xylabs/axios'\nimport { IdPayload, IdSchema } from '@xyo-network/id-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, WithSources } from '@xyo-network/payload-model'\nimport { isBillingAddress, isPaymentCard } from '@xyo-network/payment-payload-plugins'\nimport { AbstractSentinel } from '@xyo-network/sentinel-abstract'\nimport { SentinelInstance, SentinelModuleEventData } from '@xyo-network/sentinel-model'\n\nimport { CreateTokenResponse } from './Api'\nimport { RebillyPaymentCardAuthorizationSentinelConfigSchema } from './Config'\nimport { RebillyPaymentCardAuthorizationSentinelParams } from './Params'\nimport { toTokenRequest } from './util'\n\nconst removePrefix = (str: string, prefix: string) => {\n const regex = new RegExp(`^${prefix}`)\n return str.replace(regex, '')\n}\n\nconst moduleName = 'RebillyPaymentCardAuthorizationSentinel'\nexport class RebillyPaymentCardAuthorizationSentinel<\n TParams extends RebillyPaymentCardAuthorizationSentinelParams = RebillyPaymentCardAuthorizationSentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n> extends AbstractSentinel<TParams, TEventData> {\n static override configSchemas = [RebillyPaymentCardAuthorizationSentinelConfigSchema]\n static override defaultConfigSchema = RebillyPaymentCardAuthorizationSentinelConfigSchema\n\n protected _apiRoot: string | undefined = undefined\n protected _domain: string | undefined = undefined\n protected _headers: AxiosRequestConfig['headers'] | undefined = undefined\n protected _organizationId: string | undefined = undefined\n protected _publishableApiKey: string | undefined = undefined\n protected _tokenEndpoint: string | undefined = undefined\n\n /**\n * The Rebilly Organization API root endpoint\n */\n protected get apiRoot() {\n if (!this._apiRoot) this._apiRoot = `${this.domain}/organizations/${this.organizationId}`\n return this._apiRoot\n }\n\n /**\n * The Rebilly domain\n */\n protected get domain() {\n if (!this._domain) this._domain = assertEx(this.params.domain ?? this.config.domain, () => `${moduleName}: Missing domain in params/config`)\n return this._domain\n }\n\n /**\n * The headers to be included in the request for each request\n */\n protected get headers(): AxiosRequestConfig['headers'] {\n if (!this._headers) this._headers = { Authorization: this.publishableApiKey }\n return this._headers\n }\n\n /**\n * True if the environment is sandbox (testing), false otherwise\n */\n protected get isSandboxEnvironment(): boolean {\n return this.domain.includes('sandbox')\n }\n\n /**\n * The Rebilly organization ID\n */\n protected get organizationId() {\n if (!this._organizationId)\n this._organizationId = removePrefix(\n assertEx(this.params.organizationId, () => `${moduleName}: Missing organizationId in params`),\n 'org_',\n )\n return this._organizationId\n }\n\n /**\n * The Rebilly Publishable API key\n */\n protected get publishableApiKey(): string {\n if (!this._publishableApiKey)\n this._publishableApiKey = assertEx(this.params.publishableApiKey, () => `${moduleName}: Missing publishableApiKey in params`)\n return this._publishableApiKey\n }\n\n /**\n * The Rebilly Organization token creation endpoint\n */\n protected get tokenEndpoint() {\n if (!this._tokenEndpoint) this._tokenEndpoint = `${this.apiRoot}/tokens`\n return this._tokenEndpoint\n }\n\n override async reportHandler(payloads?: Payload[]): Promise<Payload[]> {\n await this.started('throw')\n const results: WithSources<IdPayload>[] = []\n // Verify necessary inputs and if nothing meets our criteria, bail early\n if (!payloads || payloads.length === 0) return results\n const paymentCard = payloads?.find(isPaymentCard)\n if (!paymentCard) return results\n const billingAddress = payloads?.find(isBillingAddress)\n if (!billingAddress) return results\n const axios = new AxiosJson({ headers: this.headers })\n try {\n const data = toTokenRequest(paymentCard, billingAddress)\n const response = await axios.post<CreateTokenResponse>(this.tokenEndpoint, data)\n assertEx(response.status === HttpStatusCode.Created, () => `Failed to tokenize payment card: ${response.status}`)\n const token = response.data\n const sources = await PayloadBuilder.dataHashes([paymentCard, billingAddress])\n results.push({ salt: token.id, schema: IdSchema, sources })\n } catch (error) {\n this.logger?.error?.(`${moduleName}: Error creating payment token: ${error}`)\n }\n return results\n }\n}\n","import { BillingAddress, PaymentCard } from '@xyo-network/payment-payload-plugins'\n\nimport { CreatePaymentTokenRequest } from '../Api'\n\n/**\n * Converts a payment card and billing address to a token request\n * @param paymentCard The payment card\n * @param billingAddress The billing address\n * @returns The token request\n */\nexport const toTokenRequest = (paymentCard: PaymentCard, billingAddress: BillingAddress): CreatePaymentTokenRequest => {\n const { cvv, expMonth, expYear, cardNumber } = paymentCard\n // NOTE: We are destructuring all but the schema and passing it along to the billingAddress. This\n // is to allow for missing fields to be omitted rather than set to undefined and for any new fields\n // that might be added later to be automatically picked up on. It is fine to pass this along since\n // the user is supplying this data about themselves.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { schema: _, ...fields } = billingAddress\n return {\n billingAddress: { ...fields },\n method: 'payment-card',\n paymentInstrument: { cvv, expMonth, expYear, pan: cardNumber },\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// src/Schema.ts
|
|
2
|
+
var RebillyPaymentCardAuthorizationSentinelSchema = "network.xyo.sentinel.payments.payment.instrument.card.authorization.rebilly";
|
|
3
|
+
|
|
4
|
+
// src/Config.ts
|
|
5
|
+
var RebillyPaymentCardAuthorizationSentinelConfigSchema = `${RebillyPaymentCardAuthorizationSentinelSchema}.config`;
|
|
6
|
+
|
|
7
|
+
// src/Sentinel.ts
|
|
8
|
+
import { assertEx } from "@xylabs/assert";
|
|
9
|
+
import { AxiosJson, HttpStatusCode } from "@xylabs/axios";
|
|
10
|
+
import { IdSchema } from "@xyo-network/id-payload-plugin";
|
|
11
|
+
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
12
|
+
import { isBillingAddress, isPaymentCard } from "@xyo-network/payment-payload-plugins";
|
|
13
|
+
import { AbstractSentinel } from "@xyo-network/sentinel-abstract";
|
|
14
|
+
|
|
15
|
+
// src/util/toTokenRequest.ts
|
|
16
|
+
var toTokenRequest = (paymentCard, billingAddress) => {
|
|
17
|
+
const { cvv, expMonth, expYear, cardNumber } = paymentCard;
|
|
18
|
+
const { schema: _, ...fields } = billingAddress;
|
|
19
|
+
return {
|
|
20
|
+
billingAddress: { ...fields },
|
|
21
|
+
method: "payment-card",
|
|
22
|
+
paymentInstrument: { cvv, expMonth, expYear, pan: cardNumber }
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// src/Sentinel.ts
|
|
27
|
+
var removePrefix = (str, prefix) => {
|
|
28
|
+
const regex = new RegExp(`^${prefix}`);
|
|
29
|
+
return str.replace(regex, "");
|
|
30
|
+
};
|
|
31
|
+
var moduleName = "RebillyPaymentCardAuthorizationSentinel";
|
|
32
|
+
var RebillyPaymentCardAuthorizationSentinel = class extends AbstractSentinel {
|
|
33
|
+
static configSchemas = [RebillyPaymentCardAuthorizationSentinelConfigSchema];
|
|
34
|
+
static defaultConfigSchema = RebillyPaymentCardAuthorizationSentinelConfigSchema;
|
|
35
|
+
_apiRoot = void 0;
|
|
36
|
+
_domain = void 0;
|
|
37
|
+
_headers = void 0;
|
|
38
|
+
_organizationId = void 0;
|
|
39
|
+
_publishableApiKey = void 0;
|
|
40
|
+
_tokenEndpoint = void 0;
|
|
41
|
+
/**
|
|
42
|
+
* The Rebilly Organization API root endpoint
|
|
43
|
+
*/
|
|
44
|
+
get apiRoot() {
|
|
45
|
+
if (!this._apiRoot)
|
|
46
|
+
this._apiRoot = `${this.domain}/organizations/${this.organizationId}`;
|
|
47
|
+
return this._apiRoot;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The Rebilly domain
|
|
51
|
+
*/
|
|
52
|
+
get domain() {
|
|
53
|
+
if (!this._domain)
|
|
54
|
+
this._domain = assertEx(this.params.domain ?? this.config.domain, () => `${moduleName}: Missing domain in params/config`);
|
|
55
|
+
return this._domain;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The headers to be included in the request for each request
|
|
59
|
+
*/
|
|
60
|
+
get headers() {
|
|
61
|
+
if (!this._headers)
|
|
62
|
+
this._headers = { Authorization: this.publishableApiKey };
|
|
63
|
+
return this._headers;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* True if the environment is sandbox (testing), false otherwise
|
|
67
|
+
*/
|
|
68
|
+
get isSandboxEnvironment() {
|
|
69
|
+
return this.domain.includes("sandbox");
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The Rebilly organization ID
|
|
73
|
+
*/
|
|
74
|
+
get organizationId() {
|
|
75
|
+
if (!this._organizationId)
|
|
76
|
+
this._organizationId = removePrefix(
|
|
77
|
+
assertEx(this.params.organizationId, () => `${moduleName}: Missing organizationId in params`),
|
|
78
|
+
"org_"
|
|
79
|
+
);
|
|
80
|
+
return this._organizationId;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The Rebilly Publishable API key
|
|
84
|
+
*/
|
|
85
|
+
get publishableApiKey() {
|
|
86
|
+
if (!this._publishableApiKey)
|
|
87
|
+
this._publishableApiKey = assertEx(this.params.publishableApiKey, () => `${moduleName}: Missing publishableApiKey in params`);
|
|
88
|
+
return this._publishableApiKey;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The Rebilly Organization token creation endpoint
|
|
92
|
+
*/
|
|
93
|
+
get tokenEndpoint() {
|
|
94
|
+
if (!this._tokenEndpoint)
|
|
95
|
+
this._tokenEndpoint = `${this.apiRoot}/tokens`;
|
|
96
|
+
return this._tokenEndpoint;
|
|
97
|
+
}
|
|
98
|
+
async reportHandler(payloads) {
|
|
99
|
+
await this.started("throw");
|
|
100
|
+
const results = [];
|
|
101
|
+
if (!payloads || payloads.length === 0)
|
|
102
|
+
return results;
|
|
103
|
+
const paymentCard = payloads?.find(isPaymentCard);
|
|
104
|
+
if (!paymentCard)
|
|
105
|
+
return results;
|
|
106
|
+
const billingAddress = payloads?.find(isBillingAddress);
|
|
107
|
+
if (!billingAddress)
|
|
108
|
+
return results;
|
|
109
|
+
const axios = new AxiosJson({ headers: this.headers });
|
|
110
|
+
try {
|
|
111
|
+
const data = toTokenRequest(paymentCard, billingAddress);
|
|
112
|
+
const response = await axios.post(this.tokenEndpoint, data);
|
|
113
|
+
assertEx(response.status === HttpStatusCode.Created, () => `Failed to tokenize payment card: ${response.status}`);
|
|
114
|
+
const token = response.data;
|
|
115
|
+
const sources = await PayloadBuilder.dataHashes([paymentCard, billingAddress]);
|
|
116
|
+
results.push({ salt: token.id, schema: IdSchema, sources });
|
|
117
|
+
} catch (error) {
|
|
118
|
+
this.logger?.error?.(`${moduleName}: Error creating payment token: ${error}`);
|
|
119
|
+
}
|
|
120
|
+
return results;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
export {
|
|
124
|
+
RebillyPaymentCardAuthorizationSentinel,
|
|
125
|
+
RebillyPaymentCardAuthorizationSentinelConfigSchema,
|
|
126
|
+
RebillyPaymentCardAuthorizationSentinelSchema
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Schema.ts","../../src/Config.ts","../../src/Sentinel.ts","../../src/util/toTokenRequest.ts"],"sourcesContent":["export const RebillyPaymentCardAuthorizationSentinelSchema = 'network.xyo.sentinel.payments.payment.instrument.card.authorization.rebilly'\nexport type RebillyPaymentCardAuthorizationSentinelSchema = typeof RebillyPaymentCardAuthorizationSentinelSchema\n","import { SentinelConfig } from '@xyo-network/sentinel-model'\n\nimport { RebillyApiDomainSettings } from './RebillyProviderSettings'\nimport { RebillyPaymentCardAuthorizationSentinelSchema } from './Schema'\n\nexport const RebillyPaymentCardAuthorizationSentinelConfigSchema = `${RebillyPaymentCardAuthorizationSentinelSchema}.config`\nexport type RebillyPaymentCardAuthorizationSentinelConfigSchema = typeof RebillyPaymentCardAuthorizationSentinelConfigSchema\n\n/*\n * The Rebilly Payment Card Authorization Sentinel Config\n */\nexport type RebillyPaymentCardAuthorizationSentinelConfig = SentinelConfig<{\n /**\n * The config schema\n */\n schema: RebillyPaymentCardAuthorizationSentinelConfigSchema\n}> &\n Partial<RebillyApiDomainSettings>\n","import { assertEx } from '@xylabs/assert'\nimport { AxiosJson, AxiosRequestConfig, HttpStatusCode } from '@xylabs/axios'\nimport { IdPayload, IdSchema } from '@xyo-network/id-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, WithSources } from '@xyo-network/payload-model'\nimport { isBillingAddress, isPaymentCard } from '@xyo-network/payment-payload-plugins'\nimport { AbstractSentinel } from '@xyo-network/sentinel-abstract'\nimport { SentinelInstance, SentinelModuleEventData } from '@xyo-network/sentinel-model'\n\nimport { CreateTokenResponse } from './Api'\nimport { RebillyPaymentCardAuthorizationSentinelConfigSchema } from './Config'\nimport { RebillyPaymentCardAuthorizationSentinelParams } from './Params'\nimport { toTokenRequest } from './util'\n\nconst removePrefix = (str: string, prefix: string) => {\n const regex = new RegExp(`^${prefix}`)\n return str.replace(regex, '')\n}\n\nconst moduleName = 'RebillyPaymentCardAuthorizationSentinel'\nexport class RebillyPaymentCardAuthorizationSentinel<\n TParams extends RebillyPaymentCardAuthorizationSentinelParams = RebillyPaymentCardAuthorizationSentinelParams,\n TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,\n> extends AbstractSentinel<TParams, TEventData> {\n static override configSchemas = [RebillyPaymentCardAuthorizationSentinelConfigSchema]\n static override defaultConfigSchema = RebillyPaymentCardAuthorizationSentinelConfigSchema\n\n protected _apiRoot: string | undefined = undefined\n protected _domain: string | undefined = undefined\n protected _headers: AxiosRequestConfig['headers'] | undefined = undefined\n protected _organizationId: string | undefined = undefined\n protected _publishableApiKey: string | undefined = undefined\n protected _tokenEndpoint: string | undefined = undefined\n\n /**\n * The Rebilly Organization API root endpoint\n */\n protected get apiRoot() {\n if (!this._apiRoot) this._apiRoot = `${this.domain}/organizations/${this.organizationId}`\n return this._apiRoot\n }\n\n /**\n * The Rebilly domain\n */\n protected get domain() {\n if (!this._domain) this._domain = assertEx(this.params.domain ?? this.config.domain, () => `${moduleName}: Missing domain in params/config`)\n return this._domain\n }\n\n /**\n * The headers to be included in the request for each request\n */\n protected get headers(): AxiosRequestConfig['headers'] {\n if (!this._headers) this._headers = { Authorization: this.publishableApiKey }\n return this._headers\n }\n\n /**\n * True if the environment is sandbox (testing), false otherwise\n */\n protected get isSandboxEnvironment(): boolean {\n return this.domain.includes('sandbox')\n }\n\n /**\n * The Rebilly organization ID\n */\n protected get organizationId() {\n if (!this._organizationId)\n this._organizationId = removePrefix(\n assertEx(this.params.organizationId, () => `${moduleName}: Missing organizationId in params`),\n 'org_',\n )\n return this._organizationId\n }\n\n /**\n * The Rebilly Publishable API key\n */\n protected get publishableApiKey(): string {\n if (!this._publishableApiKey)\n this._publishableApiKey = assertEx(this.params.publishableApiKey, () => `${moduleName}: Missing publishableApiKey in params`)\n return this._publishableApiKey\n }\n\n /**\n * The Rebilly Organization token creation endpoint\n */\n protected get tokenEndpoint() {\n if (!this._tokenEndpoint) this._tokenEndpoint = `${this.apiRoot}/tokens`\n return this._tokenEndpoint\n }\n\n override async reportHandler(payloads?: Payload[]): Promise<Payload[]> {\n await this.started('throw')\n const results: WithSources<IdPayload>[] = []\n // Verify necessary inputs and if nothing meets our criteria, bail early\n if (!payloads || payloads.length === 0) return results\n const paymentCard = payloads?.find(isPaymentCard)\n if (!paymentCard) return results\n const billingAddress = payloads?.find(isBillingAddress)\n if (!billingAddress) return results\n const axios = new AxiosJson({ headers: this.headers })\n try {\n const data = toTokenRequest(paymentCard, billingAddress)\n const response = await axios.post<CreateTokenResponse>(this.tokenEndpoint, data)\n assertEx(response.status === HttpStatusCode.Created, () => `Failed to tokenize payment card: ${response.status}`)\n const token = response.data\n const sources = await PayloadBuilder.dataHashes([paymentCard, billingAddress])\n results.push({ salt: token.id, schema: IdSchema, sources })\n } catch (error) {\n this.logger?.error?.(`${moduleName}: Error creating payment token: ${error}`)\n }\n return results\n }\n}\n","import { BillingAddress, PaymentCard } from '@xyo-network/payment-payload-plugins'\n\nimport { CreatePaymentTokenRequest } from '../Api'\n\n/**\n * Converts a payment card and billing address to a token request\n * @param paymentCard The payment card\n * @param billingAddress The billing address\n * @returns The token request\n */\nexport const toTokenRequest = (paymentCard: PaymentCard, billingAddress: BillingAddress): CreatePaymentTokenRequest => {\n const { cvv, expMonth, expYear, cardNumber } = paymentCard\n // NOTE: We are destructuring all but the schema and passing it along to the billingAddress. This\n // is to allow for missing fields to be omitted rather than set to undefined and for any new fields\n // that might be added later to be automatically picked up on. It is fine to pass this along since\n // the user is supplying this data about themselves.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { schema: _, ...fields } = billingAddress\n return {\n billingAddress: { ...fields },\n method: 'payment-card',\n paymentInstrument: { cvv, expMonth, expYear, pan: cardNumber },\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BillingAddress, PaymentCard } from '@xyo-network/payment-payload-plugins';
|
|
2
|
+
import { CreatePaymentTokenRequest } from '../Api';
|
|
3
|
+
/**
|
|
4
|
+
* Converts a payment card and billing address to a token request
|
|
5
|
+
* @param paymentCard The payment card
|
|
6
|
+
* @param billingAddress The billing address
|
|
7
|
+
* @returns The token request
|
|
8
|
+
*/
|
|
9
|
+
export declare const toTokenRequest: (paymentCard: PaymentCard, billingAddress: BillingAddress) => CreatePaymentTokenRequest;
|
|
10
|
+
//# sourceMappingURL=toTokenRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toTokenRequest.d.ts","sourceRoot":"","sources":["../../../src/util/toTokenRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAElF,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAA;AAElD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,gBAAiB,WAAW,kBAAkB,cAAc,KAAG,yBAazF,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BillingAddress, PaymentCard } from '@xyo-network/payment-payload-plugins';
|
|
2
|
+
import { CreatePaymentTokenRequest } from '../Api';
|
|
3
|
+
/**
|
|
4
|
+
* Converts a payment card and billing address to a token request
|
|
5
|
+
* @param paymentCard The payment card
|
|
6
|
+
* @param billingAddress The billing address
|
|
7
|
+
* @returns The token request
|
|
8
|
+
*/
|
|
9
|
+
export declare const toTokenRequest: (paymentCard: PaymentCard, billingAddress: BillingAddress) => CreatePaymentTokenRequest;
|
|
10
|
+
//# sourceMappingURL=toTokenRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toTokenRequest.d.ts","sourceRoot":"","sources":["../../../src/util/toTokenRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAElF,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAA;AAElD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,gBAAiB,WAAW,kBAAkB,cAAc,KAAG,yBAazF,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BillingAddress, PaymentCard } from '@xyo-network/payment-payload-plugins';
|
|
2
|
+
import { CreatePaymentTokenRequest } from '../Api';
|
|
3
|
+
/**
|
|
4
|
+
* Converts a payment card and billing address to a token request
|
|
5
|
+
* @param paymentCard The payment card
|
|
6
|
+
* @param billingAddress The billing address
|
|
7
|
+
* @returns The token request
|
|
8
|
+
*/
|
|
9
|
+
export declare const toTokenRequest: (paymentCard: PaymentCard, billingAddress: BillingAddress) => CreatePaymentTokenRequest;
|
|
10
|
+
//# sourceMappingURL=toTokenRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toTokenRequest.d.ts","sourceRoot":"","sources":["../../../src/util/toTokenRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAElF,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAA;AAElD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,gBAAiB,WAAW,kBAAkB,cAAc,KAAG,yBAazF,CAAA"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export interface ContactPhoneNumber {
|
|
2
|
+
/**
|
|
3
|
+
* Phone number label or name.
|
|
4
|
+
* <= 45 characters
|
|
5
|
+
*/
|
|
6
|
+
label: string;
|
|
7
|
+
/**
|
|
8
|
+
* Specifies if the phone number is the contact's primary phone number.
|
|
9
|
+
*/
|
|
10
|
+
primary?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Phone number value.
|
|
13
|
+
* <= 50 characters
|
|
14
|
+
*/
|
|
15
|
+
value: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ContactEmail {
|
|
18
|
+
/**
|
|
19
|
+
* Email label or name.
|
|
20
|
+
* <= 45 characters
|
|
21
|
+
*/
|
|
22
|
+
label: string;
|
|
23
|
+
/**
|
|
24
|
+
* Specifies if the email address is the contact's primary email address.
|
|
25
|
+
*/
|
|
26
|
+
primary?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Email address value.
|
|
29
|
+
* <= 255 characters
|
|
30
|
+
*/
|
|
31
|
+
value: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Billing address details associated with the payment token.
|
|
35
|
+
*/
|
|
36
|
+
export interface RequestBillingAddress {
|
|
37
|
+
/** Street address line 1. */
|
|
38
|
+
address: string;
|
|
39
|
+
/** Street address line 2. */
|
|
40
|
+
address2?: string | null;
|
|
41
|
+
/** City of the billing address. */
|
|
42
|
+
city?: string;
|
|
43
|
+
/** Country code of the billing address, ISO 3166-1 alpha-2 code. */
|
|
44
|
+
country?: string;
|
|
45
|
+
/** Date of birth of the cardholder. */
|
|
46
|
+
dob?: string;
|
|
47
|
+
/** Email addresses associated with the billing address. */
|
|
48
|
+
emails?: ContactEmail[];
|
|
49
|
+
/** First name of the cardholder. */
|
|
50
|
+
firstName: string;
|
|
51
|
+
/** Job title of the cardholder. */
|
|
52
|
+
jobTitle?: string | null;
|
|
53
|
+
/** Last name of the cardholder. */
|
|
54
|
+
lastName: string;
|
|
55
|
+
/** Organization or company name associated with the billing address. */
|
|
56
|
+
organization?: string | null;
|
|
57
|
+
/** Phone numbers associated with the billing address. */
|
|
58
|
+
phoneNumbers?: ContactPhoneNumber[];
|
|
59
|
+
/** Postal or ZIP code of the billing address. */
|
|
60
|
+
postalCode?: string;
|
|
61
|
+
/** State or region of the billing address. */
|
|
62
|
+
region?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface RequestPaymentCardInstrument {
|
|
65
|
+
/**
|
|
66
|
+
* Card Verification Value (CVV/CVC) of the payment card.
|
|
67
|
+
*/
|
|
68
|
+
cvv: string;
|
|
69
|
+
/**
|
|
70
|
+
* Expiration month of the payment card.
|
|
71
|
+
*/
|
|
72
|
+
expMonth: number;
|
|
73
|
+
/**
|
|
74
|
+
* Expiration year of the payment card.
|
|
75
|
+
*/
|
|
76
|
+
expYear: number;
|
|
77
|
+
/**
|
|
78
|
+
* Primary Account Number (PAN) of the payment card. This value is required to perform a payment.
|
|
79
|
+
*/
|
|
80
|
+
pan: string;
|
|
81
|
+
}
|
|
82
|
+
export type PaymentMethod = 'payment-card';
|
|
83
|
+
export interface CreatePaymentTokenRequest {
|
|
84
|
+
billingAddress: RequestBillingAddress;
|
|
85
|
+
method: PaymentMethod;
|
|
86
|
+
paymentInstrument: RequestPaymentCardInstrument;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=Request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../../../src/Api/PaymentCardToken/Request.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,yDAAyD;IACzD,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACnC,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,aAAa,GA8FvB,cAAc,CAAA;AAsDhB,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,qBAAqB,CAAA;IACrC,MAAM,EAAE,aAAa,CAAA;IACrB,iBAAiB,EAAE,4BAA4B,CAAA;CAChD"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export interface ContactPhoneNumber {
|
|
2
|
+
/**
|
|
3
|
+
* Phone number label or name.
|
|
4
|
+
* <= 45 characters
|
|
5
|
+
*/
|
|
6
|
+
label: string;
|
|
7
|
+
/**
|
|
8
|
+
* Specifies if the phone number is the contact's primary phone number.
|
|
9
|
+
*/
|
|
10
|
+
primary?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Phone number value.
|
|
13
|
+
* <= 50 characters
|
|
14
|
+
*/
|
|
15
|
+
value: string;
|
|
16
|
+
}
|
|
17
|
+
export interface ContactEmail {
|
|
18
|
+
/**
|
|
19
|
+
* Email label or name.
|
|
20
|
+
* <= 45 characters
|
|
21
|
+
*/
|
|
22
|
+
label: string;
|
|
23
|
+
/**
|
|
24
|
+
* Specifies if the email address is the contact's primary email address.
|
|
25
|
+
*/
|
|
26
|
+
primary?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Email address value.
|
|
29
|
+
* <= 255 characters
|
|
30
|
+
*/
|
|
31
|
+
value: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Billing address details associated with the payment token.
|
|
35
|
+
*/
|
|
36
|
+
export interface RequestBillingAddress {
|
|
37
|
+
/** Street address line 1. */
|
|
38
|
+
address: string;
|
|
39
|
+
/** Street address line 2. */
|
|
40
|
+
address2?: string | null;
|
|
41
|
+
/** City of the billing address. */
|
|
42
|
+
city?: string;
|
|
43
|
+
/** Country code of the billing address, ISO 3166-1 alpha-2 code. */
|
|
44
|
+
country?: string;
|
|
45
|
+
/** Date of birth of the cardholder. */
|
|
46
|
+
dob?: string;
|
|
47
|
+
/** Email addresses associated with the billing address. */
|
|
48
|
+
emails?: ContactEmail[];
|
|
49
|
+
/** First name of the cardholder. */
|
|
50
|
+
firstName: string;
|
|
51
|
+
/** Job title of the cardholder. */
|
|
52
|
+
jobTitle?: string | null;
|
|
53
|
+
/** Last name of the cardholder. */
|
|
54
|
+
lastName: string;
|
|
55
|
+
/** Organization or company name associated with the billing address. */
|
|
56
|
+
organization?: string | null;
|
|
57
|
+
/** Phone numbers associated with the billing address. */
|
|
58
|
+
phoneNumbers?: ContactPhoneNumber[];
|
|
59
|
+
/** Postal or ZIP code of the billing address. */
|
|
60
|
+
postalCode?: string;
|
|
61
|
+
/** State or region of the billing address. */
|
|
62
|
+
region?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface RequestPaymentCardInstrument {
|
|
65
|
+
/**
|
|
66
|
+
* Card Verification Value (CVV/CVC) of the payment card.
|
|
67
|
+
*/
|
|
68
|
+
cvv: string;
|
|
69
|
+
/**
|
|
70
|
+
* Expiration month of the payment card.
|
|
71
|
+
*/
|
|
72
|
+
expMonth: number;
|
|
73
|
+
/**
|
|
74
|
+
* Expiration year of the payment card.
|
|
75
|
+
*/
|
|
76
|
+
expYear: number;
|
|
77
|
+
/**
|
|
78
|
+
* Primary Account Number (PAN) of the payment card. This value is required to perform a payment.
|
|
79
|
+
*/
|
|
80
|
+
pan: string;
|
|
81
|
+
}
|
|
82
|
+
export type PaymentMethod = 'payment-card';
|
|
83
|
+
export interface CreatePaymentTokenRequest {
|
|
84
|
+
billingAddress: RequestBillingAddress;
|
|
85
|
+
method: PaymentMethod;
|
|
86
|
+
paymentInstrument: RequestPaymentCardInstrument;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=Request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../../../src/Api/PaymentCardToken/Request.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,yDAAyD;IACzD,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACnC,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,MAAM,aAAa,GA8FvB,cAAc,CAAA;AAsDhB,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,qBAAqB,CAAA;IACrC,MAAM,EAAE,aAAa,CAAA;IACrB,iBAAiB,EAAE,4BAA4B,CAAA;CAChD"}
|