@lightspeed/online-payments-sdk 0.2.3 → 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/cjs/v1/EventBroadcaster.js +61 -0
- package/dist/cjs/v1/adyen/ResultBuilder.js +47 -0
- package/dist/cjs/v1/adyen/widget.js +14 -30
- package/dist/cjs/v1/common.js +0 -36
- package/dist/cjs/v1/error.js +45 -1
- package/dist/cjs/v1/index.js +6 -7
- package/dist/cjs/v1/logging/common.js +36 -0
- package/dist/cjs/v1/logging/datadog/logger.js +6 -3
- package/dist/cjs/v1/logging/noop-logger.js +1 -1
- package/dist/cjs/v1/session.js +3 -3
- package/dist/cjs/v1/stripe/ResultBuilder.js +59 -0
- package/dist/cjs/v1/stripe/widget.js +68 -43
- package/dist/cjs/v1/widget.js +44 -32
- package/dist/v1/EventBroadcaster.d.ts +39 -0
- package/dist/v1/EventBroadcaster.js +58 -0
- package/dist/v1/adyen/ResultBuilder.d.ts +7 -0
- package/dist/v1/adyen/ResultBuilder.js +44 -0
- package/dist/v1/adyen/widget.d.ts +1 -3
- package/dist/v1/adyen/widget.js +14 -29
- package/dist/v1/common.d.ts +5 -17
- package/dist/v1/common.js +1 -35
- package/dist/v1/error.d.ts +18 -2
- package/dist/v1/error.js +44 -0
- package/dist/v1/index.d.ts +4 -4
- package/dist/v1/index.js +1 -2
- package/dist/v1/logging/common.d.ts +2 -1
- package/dist/v1/logging/common.js +35 -0
- package/dist/v1/logging/datadog/logger.d.ts +1 -1
- package/dist/v1/logging/datadog/logger.js +6 -3
- package/dist/v1/logging/noop-logger.d.ts +1 -1
- package/dist/v1/logging/noop-logger.js +1 -1
- package/dist/v1/session.js +2 -2
- package/dist/v1/stripe/ResultBuilder.d.ts +7 -0
- package/dist/v1/stripe/ResultBuilder.js +56 -0
- package/dist/v1/stripe/widget.d.ts +3 -4
- package/dist/v1/stripe/widget.js +68 -42
- package/dist/v1/widget.d.ts +5 -3
- package/dist/v1/widget.js +44 -32
- package/package.json +1 -1
- package/dist/cjs/v1/session.error.js +0 -43
- package/dist/cjs/v1/widget.error.js +0 -43
- package/dist/v1/session.error.d.ts +0 -15
- package/dist/v1/session.error.js +0 -40
- package/dist/v1/widget.error.d.ts +0 -15
- package/dist/v1/widget.error.js +0 -40
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __values = (this && this.__values) || function(o) {
|
|
3
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
+
if (m) return m.call(o);
|
|
5
|
+
if (o && typeof o.length === "number") return {
|
|
6
|
+
next: function () {
|
|
7
|
+
if (o && i >= o.length) o = void 0;
|
|
8
|
+
return { value: o && o[i++], done: !o };
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.EventBroadcaster = void 0;
|
|
15
|
+
var noOpListener = function () { };
|
|
16
|
+
var EventBroadcaster = /** @class */ (function () {
|
|
17
|
+
function EventBroadcaster(listeners) {
|
|
18
|
+
this.middleware = [];
|
|
19
|
+
this.listenersRegistry = {
|
|
20
|
+
Succeeded: (listeners === null || listeners === void 0 ? void 0 : listeners.onSucceeded) || noOpListener,
|
|
21
|
+
Refused: (listeners === null || listeners === void 0 ? void 0 : listeners.onRefused) || noOpListener,
|
|
22
|
+
Pending: (listeners === null || listeners === void 0 ? void 0 : listeners.onPending) || noOpListener,
|
|
23
|
+
Error: (listeners === null || listeners === void 0 ? void 0 : listeners.onError) || noOpListener,
|
|
24
|
+
Ready: (listeners === null || listeners === void 0 ? void 0 : listeners.onReady) || noOpListener,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
EventBroadcaster.prototype.convertInternalEventToExternal = function (event) {
|
|
28
|
+
return { status: event.status, code: event.code };
|
|
29
|
+
};
|
|
30
|
+
EventBroadcaster.prototype.registerMiddleware = function (middleware) {
|
|
31
|
+
this.middleware.push(middleware);
|
|
32
|
+
};
|
|
33
|
+
EventBroadcaster.prototype.applyMiddlewares = function (event) {
|
|
34
|
+
var e_1, _a;
|
|
35
|
+
var processedEvent = event;
|
|
36
|
+
try {
|
|
37
|
+
for (var _b = __values(this.middleware), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
38
|
+
var mw = _c.value;
|
|
39
|
+
var result = mw(processedEvent);
|
|
40
|
+
if (result !== undefined) {
|
|
41
|
+
processedEvent = result;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
46
|
+
finally {
|
|
47
|
+
try {
|
|
48
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
49
|
+
}
|
|
50
|
+
finally { if (e_1) throw e_1.error; }
|
|
51
|
+
}
|
|
52
|
+
return this.convertInternalEventToExternal(processedEvent);
|
|
53
|
+
};
|
|
54
|
+
EventBroadcaster.prototype.publish = function (event) {
|
|
55
|
+
var processedEvent = this.applyMiddlewares(event);
|
|
56
|
+
var eventListener = this.listenersRegistry[event.status];
|
|
57
|
+
eventListener(processedEvent);
|
|
58
|
+
};
|
|
59
|
+
return EventBroadcaster;
|
|
60
|
+
}());
|
|
61
|
+
exports.EventBroadcaster = EventBroadcaster;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResultBuilder = void 0;
|
|
4
|
+
var ResultBuilder = /** @class */ (function () {
|
|
5
|
+
function ResultBuilder() {
|
|
6
|
+
}
|
|
7
|
+
ResultBuilder.fromPaymentCompletedData = function (paymentCompleteData) {
|
|
8
|
+
switch (paymentCompleteData.resultCode) {
|
|
9
|
+
case 'Authorised':
|
|
10
|
+
return {
|
|
11
|
+
status: 'Succeeded',
|
|
12
|
+
code: 'Authorized',
|
|
13
|
+
};
|
|
14
|
+
case 'PartiallyAuthorised':
|
|
15
|
+
case 'Received':
|
|
16
|
+
case 'Pending':
|
|
17
|
+
default:
|
|
18
|
+
return {
|
|
19
|
+
status: 'Pending',
|
|
20
|
+
code: 'Processing',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
ResultBuilder.fromPaymentFailedData = function (paymentFailedData) {
|
|
25
|
+
switch (paymentFailedData.resultCode) {
|
|
26
|
+
case 'Refused':
|
|
27
|
+
return {
|
|
28
|
+
status: 'Refused',
|
|
29
|
+
code: 'Generic',
|
|
30
|
+
};
|
|
31
|
+
case 'Error':
|
|
32
|
+
default:
|
|
33
|
+
return {
|
|
34
|
+
status: 'Error',
|
|
35
|
+
code: 'Unexpected',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
ResultBuilder.generatePendingEvent = function () {
|
|
40
|
+
return {
|
|
41
|
+
status: 'Pending',
|
|
42
|
+
code: 'Processing',
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
return ResultBuilder;
|
|
46
|
+
}());
|
|
47
|
+
exports.ResultBuilder = ResultBuilder;
|
|
@@ -37,26 +37,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.AdyenWidget = void 0;
|
|
40
|
-
exports.mapAdyenResultCode = mapAdyenResultCode;
|
|
41
40
|
var adyen_web_1 = require("@adyen/adyen-web");
|
|
42
|
-
var
|
|
43
|
-
function
|
|
44
|
-
switch (code) {
|
|
45
|
-
case 'Authorised':
|
|
46
|
-
return 'Authorized';
|
|
47
|
-
case 'Refused':
|
|
48
|
-
return 'Refused';
|
|
49
|
-
default:
|
|
50
|
-
return 'Unexpected';
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
function mount(mountElement, context, listeners) {
|
|
41
|
+
var ResultBuilder_1 = require("./ResultBuilder");
|
|
42
|
+
function mount(mountElement, context, eventBroadcaster) {
|
|
54
43
|
return __awaiter(this, void 0, void 0, function () {
|
|
55
44
|
var checkoutConfig, checkout, dropinConfiguration, dropIn;
|
|
56
45
|
return __generator(this, function (_a) {
|
|
57
46
|
switch (_a.label) {
|
|
58
47
|
case 0:
|
|
59
|
-
checkoutConfig = createAdyenConfiguration(context,
|
|
48
|
+
checkoutConfig = createAdyenConfiguration(context, eventBroadcaster);
|
|
60
49
|
return [4 /*yield*/, (0, adyen_web_1.AdyenCheckout)(checkoutConfig)];
|
|
61
50
|
case 1:
|
|
62
51
|
checkout = _a.sent();
|
|
@@ -67,10 +56,9 @@ function mount(mountElement, context, listeners) {
|
|
|
67
56
|
submit: function () {
|
|
68
57
|
return new Promise(function (resolve) {
|
|
69
58
|
dropIn.submit();
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
});
|
|
59
|
+
var pendingEvent = ResultBuilder_1.ResultBuilder.generatePendingEvent();
|
|
60
|
+
eventBroadcaster.publish(pendingEvent);
|
|
61
|
+
resolve(pendingEvent);
|
|
74
62
|
});
|
|
75
63
|
},
|
|
76
64
|
}];
|
|
@@ -78,7 +66,7 @@ function mount(mountElement, context, listeners) {
|
|
|
78
66
|
});
|
|
79
67
|
});
|
|
80
68
|
}
|
|
81
|
-
function createAdyenConfiguration(context,
|
|
69
|
+
function createAdyenConfiguration(context, eventBroadcaster) {
|
|
82
70
|
return {
|
|
83
71
|
clientKey: context.clientKey,
|
|
84
72
|
session: {
|
|
@@ -96,21 +84,17 @@ function createAdyenConfiguration(context, listeners) {
|
|
|
96
84
|
enabled: false,
|
|
97
85
|
},
|
|
98
86
|
onPaymentCompleted: function (data) {
|
|
99
|
-
|
|
100
|
-
(_a = listeners === null || listeners === void 0 ? void 0 : listeners.onComplete) === null || _a === void 0 ? void 0 : _a.call(listeners, {
|
|
101
|
-
code: mapAdyenResultCode(data.resultCode),
|
|
102
|
-
status: 'Complete',
|
|
103
|
-
});
|
|
87
|
+
eventBroadcaster.publish(ResultBuilder_1.ResultBuilder.fromPaymentCompletedData(data));
|
|
104
88
|
},
|
|
105
89
|
onPaymentFailed: function (data) {
|
|
106
|
-
|
|
107
|
-
(_a = listeners === null || listeners === void 0 ? void 0 : listeners.onFail) === null || _a === void 0 ? void 0 : _a.call(listeners, {
|
|
108
|
-
status: 'Complete',
|
|
109
|
-
code: mapAdyenResultCode(data.resultCode),
|
|
110
|
-
});
|
|
90
|
+
eventBroadcaster.publish(ResultBuilder_1.ResultBuilder.fromPaymentFailedData(data));
|
|
111
91
|
},
|
|
112
92
|
onError: function (error) {
|
|
113
|
-
|
|
93
|
+
eventBroadcaster.publish({
|
|
94
|
+
status: 'Error',
|
|
95
|
+
code: 'Processing',
|
|
96
|
+
loggingEnrichment: error,
|
|
97
|
+
});
|
|
114
98
|
},
|
|
115
99
|
paymentMethodsResponse: context.paymentMethods,
|
|
116
100
|
};
|
package/dist/cjs/v1/common.js
CHANGED
|
@@ -1,38 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
-
if (!m) return o;
|
|
5
|
-
var i = m.call(o), r, ar = [], e;
|
|
6
|
-
try {
|
|
7
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
-
}
|
|
9
|
-
catch (error) { e = { error: error }; }
|
|
10
|
-
finally {
|
|
11
|
-
try {
|
|
12
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
-
}
|
|
14
|
-
finally { if (e) throw e.error; }
|
|
15
|
-
}
|
|
16
|
-
return ar;
|
|
17
|
-
};
|
|
18
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
-
if (ar || !(i in from)) {
|
|
21
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
-
ar[i] = from[i];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
-
};
|
|
27
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.withLogging = withLogging;
|
|
29
|
-
function withLogging(logger, event, handler) {
|
|
30
|
-
return function () {
|
|
31
|
-
var args = [];
|
|
32
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
33
|
-
args[_i] = arguments[_i];
|
|
34
|
-
}
|
|
35
|
-
logger.log('info', event, { args: args });
|
|
36
|
-
return handler.apply(void 0, __spreadArray([], __read(args), false));
|
|
37
|
-
};
|
|
38
|
-
}
|
package/dist/cjs/v1/error.js
CHANGED
|
@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.BaseError = void 0;
|
|
18
|
+
exports.ProcessingError = exports.UnsupportedLocationError = exports.InvalidSessionPayloadError = exports.InvalidSessionError = exports.UnexpectedError = exports.BaseError = void 0;
|
|
19
19
|
var BaseError = /** @class */ (function (_super) {
|
|
20
20
|
__extends(BaseError, _super);
|
|
21
21
|
function BaseError(code, message) {
|
|
@@ -26,3 +26,47 @@ var BaseError = /** @class */ (function (_super) {
|
|
|
26
26
|
return BaseError;
|
|
27
27
|
}(Error));
|
|
28
28
|
exports.BaseError = BaseError;
|
|
29
|
+
var UnexpectedError = /** @class */ (function (_super) {
|
|
30
|
+
__extends(UnexpectedError, _super);
|
|
31
|
+
function UnexpectedError(message) {
|
|
32
|
+
if (message === void 0) { message = 'An unexpected error occurred'; }
|
|
33
|
+
return _super.call(this, 'Unexpected', message) || this;
|
|
34
|
+
}
|
|
35
|
+
return UnexpectedError;
|
|
36
|
+
}(BaseError));
|
|
37
|
+
exports.UnexpectedError = UnexpectedError;
|
|
38
|
+
var InvalidSessionError = /** @class */ (function (_super) {
|
|
39
|
+
__extends(InvalidSessionError, _super);
|
|
40
|
+
function InvalidSessionError(message) {
|
|
41
|
+
if (message === void 0) { message = 'The session could not be decoded'; }
|
|
42
|
+
return _super.call(this, 'InvalidSession', message) || this;
|
|
43
|
+
}
|
|
44
|
+
return InvalidSessionError;
|
|
45
|
+
}(BaseError));
|
|
46
|
+
exports.InvalidSessionError = InvalidSessionError;
|
|
47
|
+
var InvalidSessionPayloadError = /** @class */ (function (_super) {
|
|
48
|
+
__extends(InvalidSessionPayloadError, _super);
|
|
49
|
+
function InvalidSessionPayloadError(message) {
|
|
50
|
+
if (message === void 0) { message = 'The session was decoded but the payload is invalid'; }
|
|
51
|
+
return _super.call(this, 'InvalidSessionPayload', message) || this;
|
|
52
|
+
}
|
|
53
|
+
return InvalidSessionPayloadError;
|
|
54
|
+
}(BaseError));
|
|
55
|
+
exports.InvalidSessionPayloadError = InvalidSessionPayloadError;
|
|
56
|
+
var UnsupportedLocationError = /** @class */ (function (_super) {
|
|
57
|
+
__extends(UnsupportedLocationError, _super);
|
|
58
|
+
function UnsupportedLocationError() {
|
|
59
|
+
return _super.call(this, 'UnsupportedLocation', 'The location you are attempting to process with is not supported') || this;
|
|
60
|
+
}
|
|
61
|
+
return UnsupportedLocationError;
|
|
62
|
+
}(BaseError));
|
|
63
|
+
exports.UnsupportedLocationError = UnsupportedLocationError;
|
|
64
|
+
var ProcessingError = /** @class */ (function (_super) {
|
|
65
|
+
__extends(ProcessingError, _super);
|
|
66
|
+
function ProcessingError(message) {
|
|
67
|
+
if (message === void 0) { message = 'The PSP experienced an error while processing the payment'; }
|
|
68
|
+
return _super.call(this, 'Processing', message) || this;
|
|
69
|
+
}
|
|
70
|
+
return ProcessingError;
|
|
71
|
+
}(BaseError));
|
|
72
|
+
exports.ProcessingError = ProcessingError;
|
package/dist/cjs/v1/index.js
CHANGED
|
@@ -6,14 +6,13 @@
|
|
|
6
6
|
* Don't use * for exports. Be specific to prevent leaking internal APIs.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.v1 = exports.
|
|
9
|
+
exports.v1 = exports.ProcessingError = exports.InvalidSessionError = exports.InvalidSessionPayloadError = exports.UnsupportedLocationError = void 0;
|
|
10
10
|
var widget_1 = require("./widget");
|
|
11
|
-
var
|
|
12
|
-
Object.defineProperty(exports, "
|
|
13
|
-
Object.defineProperty(exports, "
|
|
14
|
-
|
|
15
|
-
Object.defineProperty(exports, "
|
|
16
|
-
Object.defineProperty(exports, "PaymentProcessingError", { enumerable: true, get: function () { return widget_error_1.PaymentProcessingError; } });
|
|
11
|
+
var error_1 = require("./error");
|
|
12
|
+
Object.defineProperty(exports, "UnsupportedLocationError", { enumerable: true, get: function () { return error_1.UnsupportedLocationError; } });
|
|
13
|
+
Object.defineProperty(exports, "InvalidSessionPayloadError", { enumerable: true, get: function () { return error_1.InvalidSessionPayloadError; } });
|
|
14
|
+
Object.defineProperty(exports, "InvalidSessionError", { enumerable: true, get: function () { return error_1.InvalidSessionError; } });
|
|
15
|
+
Object.defineProperty(exports, "ProcessingError", { enumerable: true, get: function () { return error_1.ProcessingError; } });
|
|
17
16
|
exports.v1 = {
|
|
18
17
|
mountPaymentWidget: widget_1.mountPaymentWidget,
|
|
19
18
|
};
|
|
@@ -1,4 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
19
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
20
|
+
if (ar || !(i in from)) {
|
|
21
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
22
|
+
ar[i] = from[i];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
26
|
+
};
|
|
2
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
28
|
exports.SERVICE_NAME = void 0;
|
|
29
|
+
exports.withLogging = withLogging;
|
|
4
30
|
exports.SERVICE_NAME = 'lsp-online-payments-sdk';
|
|
31
|
+
function withLogging(logger, event, handler) {
|
|
32
|
+
return function () {
|
|
33
|
+
var args = [];
|
|
34
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
35
|
+
args[_i] = arguments[_i];
|
|
36
|
+
}
|
|
37
|
+
logger.log('info', event, { args: args });
|
|
38
|
+
return handler.apply(void 0, __spreadArray([], __read(args), false));
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -13,11 +13,14 @@ var Logger = /** @class */ (function () {
|
|
|
13
13
|
service: 'lsp-online-payments-sdk',
|
|
14
14
|
env: env,
|
|
15
15
|
};
|
|
16
|
-
browser_logs_1.datadogLogs.
|
|
16
|
+
var initConfig = browser_logs_1.datadogLogs.getInitConfiguration();
|
|
17
|
+
if (!initConfig) {
|
|
18
|
+
browser_logs_1.datadogLogs.init(logsConfig);
|
|
19
|
+
}
|
|
17
20
|
};
|
|
18
|
-
Logger.prototype.
|
|
21
|
+
Logger.prototype.setSessionMetadata = function (metadata) {
|
|
19
22
|
// setting global context removes all existing context
|
|
20
|
-
browser_logs_1.datadogLogs.setGlobalContext(
|
|
23
|
+
browser_logs_1.datadogLogs.setGlobalContext({ metadata: metadata });
|
|
21
24
|
};
|
|
22
25
|
Logger.prototype.log = function (status, message, context) {
|
|
23
26
|
browser_logs_1.datadogLogs.logger.log(message, context, status);
|
|
@@ -7,7 +7,7 @@ var NoopLogger = /** @class */ (function () {
|
|
|
7
7
|
NoopLogger.prototype.init = function () {
|
|
8
8
|
// No operation
|
|
9
9
|
};
|
|
10
|
-
NoopLogger.prototype.
|
|
10
|
+
NoopLogger.prototype.setSessionMetadata = function () {
|
|
11
11
|
// No operation
|
|
12
12
|
};
|
|
13
13
|
NoopLogger.prototype.log = function () {
|
package/dist/cjs/v1/session.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.decodePaymentSessionToContext = decodePaymentSessionToContext;
|
|
4
4
|
exports.isTokenValid = isTokenValid;
|
|
5
|
-
var
|
|
5
|
+
var error_1 = require("./error");
|
|
6
6
|
function decodePaymentSessionToContext(paymentSession) {
|
|
7
7
|
try {
|
|
8
8
|
var decoded = atob(paymentSession);
|
|
@@ -10,10 +10,10 @@ function decodePaymentSessionToContext(paymentSession) {
|
|
|
10
10
|
if (jsonToken && isTokenValid(jsonToken)) {
|
|
11
11
|
return jsonToken;
|
|
12
12
|
}
|
|
13
|
-
throw new
|
|
13
|
+
throw new error_1.InvalidSessionPayloadError();
|
|
14
14
|
}
|
|
15
15
|
catch (e) {
|
|
16
|
-
throw new
|
|
16
|
+
throw new error_1.InvalidSessionError();
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
function isTokenValid(token) {
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventBuilder = void 0;
|
|
4
|
+
var EventBuilder = /** @class */ (function () {
|
|
5
|
+
function EventBuilder() {
|
|
6
|
+
}
|
|
7
|
+
EventBuilder.fromSetupIntent = function (setupIntent) {
|
|
8
|
+
var loggingEnrichment = {
|
|
9
|
+
setupIntentId: setupIntent === null || setupIntent === void 0 ? void 0 : setupIntent.id,
|
|
10
|
+
};
|
|
11
|
+
if (setupIntent.status === 'succeeded') {
|
|
12
|
+
return { status: 'Succeeded', code: 'Authorized', loggingEnrichment: loggingEnrichment };
|
|
13
|
+
}
|
|
14
|
+
return { status: 'Pending', code: 'Processing', loggingEnrichment: loggingEnrichment };
|
|
15
|
+
};
|
|
16
|
+
EventBuilder.fromStripeError = function (stripeError) {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
var loggingEnrichment = {
|
|
19
|
+
message: stripeError === null || stripeError === void 0 ? void 0 : stripeError.message,
|
|
20
|
+
type: stripeError === null || stripeError === void 0 ? void 0 : stripeError.type,
|
|
21
|
+
paymentIntentId: (_a = stripeError === null || stripeError === void 0 ? void 0 : stripeError.payment_intent) === null || _a === void 0 ? void 0 : _a.id,
|
|
22
|
+
setupIntentId: (_b = stripeError === null || stripeError === void 0 ? void 0 : stripeError.setup_intent) === null || _b === void 0 ? void 0 : _b.id,
|
|
23
|
+
};
|
|
24
|
+
switch (stripeError.code) {
|
|
25
|
+
case 'expired_card':
|
|
26
|
+
case 'incorrect_cvc':
|
|
27
|
+
case 'incorrect_number':
|
|
28
|
+
return {
|
|
29
|
+
status: 'Refused',
|
|
30
|
+
code: 'CardValidation',
|
|
31
|
+
loggingEnrichment: loggingEnrichment,
|
|
32
|
+
};
|
|
33
|
+
case 'processing_error':
|
|
34
|
+
case 'card_declined':
|
|
35
|
+
return {
|
|
36
|
+
status: 'Refused',
|
|
37
|
+
code: 'Generic',
|
|
38
|
+
loggingEnrichment: loggingEnrichment,
|
|
39
|
+
};
|
|
40
|
+
default:
|
|
41
|
+
return {
|
|
42
|
+
status: 'Error',
|
|
43
|
+
code: 'Unexpected',
|
|
44
|
+
loggingEnrichment: loggingEnrichment,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
EventBuilder.fromPaymentIntent = function (paymentIntent) {
|
|
49
|
+
var loggingEnrichment = {
|
|
50
|
+
paymentIntentId: paymentIntent === null || paymentIntent === void 0 ? void 0 : paymentIntent.id,
|
|
51
|
+
};
|
|
52
|
+
if (paymentIntent.status === 'succeeded') {
|
|
53
|
+
return { status: 'Succeeded', code: 'Authorized', loggingEnrichment: loggingEnrichment };
|
|
54
|
+
}
|
|
55
|
+
return { status: 'Pending', code: 'Processing', loggingEnrichment: loggingEnrichment };
|
|
56
|
+
};
|
|
57
|
+
return EventBuilder;
|
|
58
|
+
}());
|
|
59
|
+
exports.EventBuilder = EventBuilder;
|
|
@@ -37,17 +37,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.StripeWidget = void 0;
|
|
40
|
-
exports.mapStripeResultCode = mapStripeResultCode;
|
|
41
40
|
exports.mount = mount;
|
|
42
41
|
var stripe_js_1 = require("@stripe/stripe-js");
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
case 'succeeded':
|
|
46
|
-
return 'Success';
|
|
47
|
-
default:
|
|
48
|
-
return 'Unexpected';
|
|
49
|
-
}
|
|
50
|
-
}
|
|
42
|
+
var ResultBuilder_1 = require("./ResultBuilder");
|
|
43
|
+
var error_1 = require("../error");
|
|
51
44
|
function init(context) {
|
|
52
45
|
return __awaiter(this, void 0, void 0, function () {
|
|
53
46
|
var publishableKey, clientSecret, customerSessionClientSecret, loadedStripe, stripe, elements;
|
|
@@ -71,7 +64,7 @@ function init(context) {
|
|
|
71
64
|
});
|
|
72
65
|
});
|
|
73
66
|
}
|
|
74
|
-
function mount(mountElement, context,
|
|
67
|
+
function mount(mountElement, context, eventBroadcaster, defaultValues) {
|
|
75
68
|
return __awaiter(this, void 0, void 0, function () {
|
|
76
69
|
var _a, stripe, elements, options, paymentElement;
|
|
77
70
|
var _this = this;
|
|
@@ -98,51 +91,45 @@ function mount(mountElement, context, listeners, defaultValues) {
|
|
|
98
91
|
};
|
|
99
92
|
}
|
|
100
93
|
paymentElement = elements.create('payment', options);
|
|
101
|
-
paymentElement.on('ready', function () {
|
|
94
|
+
paymentElement.on('ready', function () {
|
|
95
|
+
return eventBroadcaster.publish({ status: 'Ready', code: 'Ready' });
|
|
96
|
+
});
|
|
102
97
|
paymentElement.mount(mountElement);
|
|
103
98
|
return [2 /*return*/, {
|
|
104
99
|
unmount: function () { return paymentElement.unmount(); },
|
|
105
100
|
submit: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
106
|
-
var result
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
switch (_e.label) {
|
|
101
|
+
var result;
|
|
102
|
+
return __generator(this, function (_a) {
|
|
103
|
+
switch (_a.label) {
|
|
110
104
|
case 0:
|
|
111
|
-
result =
|
|
105
|
+
result = undefined;
|
|
106
|
+
if (!['save-card', 'payment'].includes(context.intent)) {
|
|
107
|
+
eventBroadcaster.publish({
|
|
108
|
+
status: 'Error',
|
|
109
|
+
code: 'InvalidSessionPayload',
|
|
110
|
+
loggingEnrichment: {
|
|
111
|
+
message: "context has an unexpect intent of ".concat(context.intent),
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
throw new error_1.InvalidSessionPayloadError();
|
|
115
|
+
}
|
|
112
116
|
if (!(context.intent === 'save-card')) return [3 /*break*/, 2];
|
|
113
|
-
return [4 /*yield*/, stripe
|
|
114
|
-
elements: elements,
|
|
115
|
-
redirect: 'if_required',
|
|
116
|
-
confirmParams: { return_url: window.location.href },
|
|
117
|
-
})];
|
|
117
|
+
return [4 /*yield*/, handleSaveCard(stripe, elements)];
|
|
118
118
|
case 1:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
status: 'Complete',
|
|
122
|
-
code: error ? 'Failure' : mapStripeResultCode(setupIntent.status),
|
|
123
|
-
};
|
|
124
|
-
_e.label = 2;
|
|
119
|
+
result = _a.sent();
|
|
120
|
+
_a.label = 2;
|
|
125
121
|
case 2:
|
|
126
122
|
if (!(context.intent === 'payment')) return [3 /*break*/, 4];
|
|
127
|
-
return [4 /*yield*/, stripe
|
|
128
|
-
elements: elements,
|
|
129
|
-
redirect: 'if_required',
|
|
130
|
-
confirmParams: { return_url: window.location.href },
|
|
131
|
-
})];
|
|
123
|
+
return [4 /*yield*/, handlePayment(stripe, elements)];
|
|
132
124
|
case 3:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
status: 'Complete',
|
|
136
|
-
code: error ? 'Failure' : mapStripeResultCode(paymentIntent.status),
|
|
137
|
-
};
|
|
138
|
-
_e.label = 4;
|
|
125
|
+
result = _a.sent();
|
|
126
|
+
_a.label = 4;
|
|
139
127
|
case 4:
|
|
140
|
-
if (result
|
|
141
|
-
(
|
|
142
|
-
|
|
143
|
-
else {
|
|
144
|
-
(_d = listeners.onComplete) === null || _d === void 0 ? void 0 : _d.call(listeners, result);
|
|
128
|
+
if (!result) {
|
|
129
|
+
eventBroadcaster.publish({ status: 'Error', code: 'Unexpected' });
|
|
130
|
+
throw new error_1.ProcessingError();
|
|
145
131
|
}
|
|
132
|
+
eventBroadcaster.publish(result);
|
|
146
133
|
return [2 /*return*/, result];
|
|
147
134
|
}
|
|
148
135
|
});
|
|
@@ -152,6 +139,44 @@ function mount(mountElement, context, listeners, defaultValues) {
|
|
|
152
139
|
});
|
|
153
140
|
});
|
|
154
141
|
}
|
|
142
|
+
function handleSaveCard(stripe, elements) {
|
|
143
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
144
|
+
var _a, error, setupIntent;
|
|
145
|
+
return __generator(this, function (_b) {
|
|
146
|
+
switch (_b.label) {
|
|
147
|
+
case 0: return [4 /*yield*/, stripe.confirmSetup({
|
|
148
|
+
elements: elements,
|
|
149
|
+
redirect: 'if_required',
|
|
150
|
+
confirmParams: { return_url: window.location.href },
|
|
151
|
+
})];
|
|
152
|
+
case 1:
|
|
153
|
+
_a = _b.sent(), error = _a.error, setupIntent = _a.setupIntent;
|
|
154
|
+
return [2 /*return*/, error
|
|
155
|
+
? ResultBuilder_1.EventBuilder.fromStripeError(error)
|
|
156
|
+
: ResultBuilder_1.EventBuilder.fromSetupIntent(setupIntent)];
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
function handlePayment(stripe, elements) {
|
|
162
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
163
|
+
var _a, error, paymentIntent;
|
|
164
|
+
return __generator(this, function (_b) {
|
|
165
|
+
switch (_b.label) {
|
|
166
|
+
case 0: return [4 /*yield*/, stripe.confirmPayment({
|
|
167
|
+
elements: elements,
|
|
168
|
+
redirect: 'if_required',
|
|
169
|
+
confirmParams: { return_url: window.location.href },
|
|
170
|
+
})];
|
|
171
|
+
case 1:
|
|
172
|
+
_a = _b.sent(), error = _a.error, paymentIntent = _a.paymentIntent;
|
|
173
|
+
return [2 /*return*/, error
|
|
174
|
+
? ResultBuilder_1.EventBuilder.fromStripeError(error)
|
|
175
|
+
: ResultBuilder_1.EventBuilder.fromPaymentIntent(paymentIntent)];
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
}
|
|
155
180
|
exports.StripeWidget = {
|
|
156
181
|
mount: mount,
|
|
157
182
|
};
|