@flink-app/stripe-plugin 0.12.1-alpha.9 → 0.13.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/.flink/generatedHandlers.ts +1 -1
- package/.flink/generatedJobs.ts +1 -1
- package/.flink/generatedRepos.ts +1 -1
- package/.flink/schemas/schemas.ts +1 -1
- package/.flink/start.ts +2 -1
- package/CHANGELOG.md +7 -0
- package/dist/.flink/generatedHandlers.js +1 -1
- package/dist/.flink/generatedJobs.js +1 -1
- package/dist/.flink/generatedRepos.js +1 -1
- package/dist/.flink/schemas/schemas.js +1 -1
- package/dist/.flink/start.d.ts +2 -0
- package/dist/.flink/start.js +2 -1
- package/dist/src/handlers/HandlebarsTemplateHandler.d.ts +1 -2
- package/dist/src/handlers/HandlebarsTemplateHandler.js +4 -4
- package/dist/src/index.js +8 -8
- package/dist/src/lib/customer.d.ts +1 -103
- package/dist/src/lib/customer.js +2 -2
- package/dist/src/lib/payment.d.ts +0 -102
- package/dist/src/lib/payment.js +2 -2
- package/dist/src/stripeAPI.d.ts +0 -102
- package/dist/src/stripeAPI.js +2 -2
- package/package.json +32 -36
- package/readme.md +365 -26
- package/src/handlers/HandlebarsTemplateHandler.ts +1 -2
- package/src/index.ts +17 -17
- package/src/lib/customer.ts +2 -4
- package/tsconfig.json +1 -1
- package/dist/src/schemas/createStripeCustomerOptions.d.ts +0 -11
- package/dist/src/schemas/createStripeCustomerOptions.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Generated Fri
|
|
1
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
|
2
2
|
import { autoRegisteredHandlers, HttpMethod } from "@flink-app/flink";
|
|
3
3
|
import * as HandlebarsTemplateHandler_0 from "../src/handlers/HandlebarsTemplateHandler";
|
|
4
4
|
|
package/.flink/generatedJobs.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Generated Fri
|
|
1
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
|
2
2
|
import { autoRegisteredJobs } from "@flink-app/flink";
|
|
3
3
|
export const jobs = [];
|
|
4
4
|
autoRegisteredJobs.push(...jobs);
|
package/.flink/generatedRepos.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Generated Fri
|
|
1
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
|
2
2
|
import { autoRegisteredRepos } from "@flink-app/flink";
|
|
3
3
|
export const repos = [];
|
|
4
4
|
autoRegisteredRepos.push(...repos);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
// Generated Fri
|
|
1
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
package/.flink/start.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
// Generated Fri
|
|
1
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
|
2
2
|
import "./generatedHandlers";
|
|
3
3
|
import "./generatedRepos";
|
|
4
4
|
import "./generatedJobs";
|
|
5
5
|
import "../src/index";
|
|
6
|
+
export default {}; // Export an empty object to make it a module
|
package/CHANGELOG.md
ADDED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.handlers = void 0;
|
|
4
|
-
// Generated Fri
|
|
4
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
|
5
5
|
var flink_1 = require("@flink-app/flink");
|
|
6
6
|
exports.handlers = [];
|
|
7
7
|
flink_1.autoRegisteredHandlers.push.apply(flink_1.autoRegisteredHandlers, exports.handlers);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.jobs = void 0;
|
|
4
|
-
// Generated Fri
|
|
4
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
|
5
5
|
var flink_1 = require("@flink-app/flink");
|
|
6
6
|
exports.jobs = [];
|
|
7
7
|
flink_1.autoRegisteredJobs.push.apply(flink_1.autoRegisteredJobs, exports.jobs);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.repos = void 0;
|
|
4
|
-
// Generated Fri
|
|
4
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
|
5
5
|
var flink_1 = require("@flink-app/flink");
|
|
6
6
|
exports.repos = [];
|
|
7
7
|
flink_1.autoRegisteredRepos.push.apply(flink_1.autoRegisteredRepos, exports.repos);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// Generated Fri
|
|
2
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
package/dist/.flink/start.d.ts
CHANGED
package/dist/.flink/start.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// Generated Fri
|
|
3
|
+
// Generated Fri Jan 09 2026 11:18:13 GMT+0100 (Central European Standard Time)
|
|
4
4
|
require("./generatedHandlers");
|
|
5
5
|
require("./generatedRepos");
|
|
6
6
|
require("./generatedJobs");
|
|
7
7
|
require("../src/index");
|
|
8
|
+
exports.default = {}; // Export an empty object to make it a module
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ExpressResponse } from "@flink-app/flink";
|
|
2
1
|
export declare function HandlebarsTemplateHandler(masterTemplate: string, styleTemplate: string, template: string, pageContext: {
|
|
3
2
|
[key: string]: any;
|
|
4
|
-
}, res:
|
|
3
|
+
}, res: any): Promise<void>;
|
|
5
4
|
export declare const __assumedHttpMethod = "", __file = "HandlebarsTemplateHandler.ts", __query: never[], __params: never[];
|
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g =
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -39,7 +39,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
40
|
};
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
-
exports.__params = exports.__query = exports.__file = exports.__assumedHttpMethod =
|
|
42
|
+
exports.__params = exports.__query = exports.__file = exports.__assumedHttpMethod = void 0;
|
|
43
|
+
exports.HandlebarsTemplateHandler = HandlebarsTemplateHandler;
|
|
43
44
|
var flink_1 = require("@flink-app/flink");
|
|
44
45
|
var handlebars_1 = __importDefault(require("handlebars"));
|
|
45
46
|
function HandlebarsTemplateHandler(masterTemplate, styleTemplate, template, pageContext, res) {
|
|
@@ -59,5 +60,4 @@ function HandlebarsTemplateHandler(masterTemplate, styleTemplate, template, page
|
|
|
59
60
|
});
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
|
-
exports.HandlebarsTemplateHandler = HandlebarsTemplateHandler;
|
|
63
63
|
exports.__assumedHttpMethod = "", exports.__file = "HandlebarsTemplateHandler.ts", exports.__query = [], exports.__params = [];
|
package/dist/src/index.js
CHANGED
|
@@ -23,8 +23,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
23
23
|
});
|
|
24
24
|
};
|
|
25
25
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
26
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
27
|
-
return g =
|
|
26
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
27
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
28
28
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
29
29
|
function step(op) {
|
|
30
30
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -55,17 +55,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
55
55
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
56
|
exports.stripePlugin = void 0;
|
|
57
57
|
var flink_1 = require("@flink-app/flink");
|
|
58
|
-
var stripeAPI_1 = require("./stripeAPI");
|
|
59
58
|
var HandlebarsTemplateHandler_1 = require("./handlers/HandlebarsTemplateHandler");
|
|
59
|
+
var stripeAPI_1 = require("./stripeAPI");
|
|
60
60
|
__exportStar(require("./stripePluginContext"), exports);
|
|
61
|
+
var connect_done_1 = require("./templates/connect-done");
|
|
62
|
+
var error_1 = require("./templates/error");
|
|
61
63
|
var master_1 = require("./templates/master");
|
|
64
|
+
var pay_enter_card_1 = require("./templates/pay-enter-card");
|
|
65
|
+
var pay_select_card_1 = require("./templates/pay-select-card");
|
|
62
66
|
var setup_card_1 = require("./templates/setup-card");
|
|
63
|
-
var style_1 = require("./templates/style");
|
|
64
67
|
var setup_done_1 = require("./templates/setup-done");
|
|
65
|
-
var
|
|
66
|
-
var pay_select_card_1 = require("./templates/pay-select-card");
|
|
67
|
-
var pay_enter_card_1 = require("./templates/pay-enter-card");
|
|
68
|
-
var connect_done_1 = require("./templates/connect-done");
|
|
68
|
+
var style_1 = require("./templates/style");
|
|
69
69
|
var jsonwebtoken_1 = require("jsonwebtoken");
|
|
70
70
|
var ConnectSessionRepo_1 = __importDefault(require("./reposx/ConnectSessionRepo"));
|
|
71
71
|
var stripePlugin = function (options) {
|
|
@@ -1,107 +1,5 @@
|
|
|
1
|
-
/// <reference types="stripe/types/crypto/crypto" />
|
|
2
|
-
/// <reference types="stripe/types/shared" />
|
|
3
|
-
/// <reference types="stripe/types/Errors" />
|
|
4
|
-
/// <reference types="stripe/types/OAuth" />
|
|
5
|
-
/// <reference types="stripe/types/Webhooks" />
|
|
6
|
-
/// <reference types="stripe/types/2020-08-27/AccountLinks" />
|
|
7
|
-
/// <reference types="stripe/types/2020-08-27/Accounts" />
|
|
8
|
-
/// <reference types="stripe/types/2020-08-27/AlipayAccounts" />
|
|
9
|
-
/// <reference types="stripe/types/2020-08-27/ApplePayDomains" />
|
|
10
|
-
/// <reference types="stripe/types/2020-08-27/ApplicationFees" />
|
|
11
|
-
/// <reference types="stripe/types/2020-08-27/Applications" />
|
|
12
|
-
/// <reference types="stripe/types/2020-08-27/Balance" />
|
|
13
|
-
/// <reference types="stripe/types/2020-08-27/BalanceTransactions" />
|
|
14
|
-
/// <reference types="stripe/types/2020-08-27/BankAccounts" />
|
|
15
|
-
/// <reference types="stripe/types/2020-08-27/BillingPortal/Configurations" />
|
|
16
|
-
/// <reference types="stripe/types/2020-08-27/BillingPortal/Sessions" />
|
|
17
|
-
/// <reference types="stripe/types/2020-08-27/BitcoinReceivers" />
|
|
18
|
-
/// <reference types="stripe/types/2020-08-27/BitcoinTransactions" />
|
|
19
|
-
/// <reference types="stripe/types/2020-08-27/Capabilities" />
|
|
20
|
-
/// <reference types="stripe/types/2020-08-27/Cards" />
|
|
21
|
-
/// <reference types="stripe/types/2020-08-27/Charges" />
|
|
22
|
-
/// <reference types="stripe/types/2020-08-27/Checkout/Sessions" />
|
|
23
|
-
/// <reference types="stripe/types/2020-08-27/ConnectCollectionTransfers" />
|
|
24
|
-
/// <reference types="stripe/types/2020-08-27/CountrySpecs" />
|
|
25
|
-
/// <reference types="stripe/types/2020-08-27/Coupons" />
|
|
26
|
-
/// <reference types="stripe/types/2020-08-27/CreditNoteLineItems" />
|
|
27
|
-
/// <reference types="stripe/types/2020-08-27/CreditNotes" />
|
|
28
|
-
/// <reference types="stripe/types/2020-08-27/CustomerBalanceTransactions" />
|
|
29
|
-
/// <reference types="stripe/types/2020-08-27/CustomerSources" />
|
|
30
|
-
/// <reference types="stripe/types/2020-08-27/Customers" />
|
|
31
|
-
/// <reference types="stripe/types/2020-08-27/Discounts" />
|
|
32
|
-
/// <reference types="stripe/types/2020-08-27/Disputes" />
|
|
33
|
-
/// <reference types="stripe/types/2020-08-27/EphemeralKeys" />
|
|
34
|
-
/// <reference types="stripe/types/2020-08-27/Events" />
|
|
35
|
-
/// <reference types="stripe/types/2020-08-27/ExchangeRates" />
|
|
36
|
-
/// <reference types="stripe/types/2020-08-27/ExternalAccounts" />
|
|
37
|
-
/// <reference types="stripe/types/2020-08-27/FeeRefunds" />
|
|
38
|
-
/// <reference types="stripe/types/2020-08-27/FileLinks" />
|
|
39
|
-
/// <reference types="stripe/types/2020-08-27/Files" />
|
|
40
|
-
/// <reference types="stripe/types/2020-08-27/Identity/VerificationReports" />
|
|
41
|
-
/// <reference types="stripe/types/2020-08-27/Identity/VerificationSessions" />
|
|
42
|
-
/// <reference types="stripe/types/2020-08-27/InvoiceItems" />
|
|
43
|
-
/// <reference types="stripe/types/2020-08-27/InvoiceLineItems" />
|
|
44
|
-
/// <reference types="stripe/types/2020-08-27/Invoices" />
|
|
45
|
-
/// <reference types="stripe/types/2020-08-27/IssuerFraudRecords" />
|
|
46
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Authorizations" />
|
|
47
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/CardDetails" />
|
|
48
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Cardholders" />
|
|
49
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Cards" />
|
|
50
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Disputes" />
|
|
51
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Transactions" />
|
|
52
|
-
/// <reference types="stripe/types/2020-08-27/LineItems" />
|
|
53
|
-
/// <reference types="stripe/types/2020-08-27/LoginLinks" />
|
|
54
|
-
/// <reference types="stripe/types/2020-08-27/Mandates" />
|
|
55
|
-
/// <reference types="stripe/types/2020-08-27/OrderItems" />
|
|
56
|
-
/// <reference types="stripe/types/2020-08-27/OrderReturns" />
|
|
57
|
-
/// <reference types="stripe/types/2020-08-27/Orders" />
|
|
58
|
-
/// <reference types="stripe/types/2020-08-27/PaymentIntents" />
|
|
59
|
-
/// <reference types="stripe/types/2020-08-27/PaymentMethods" />
|
|
60
|
-
/// <reference types="stripe/types/2020-08-27/Payouts" />
|
|
61
|
-
/// <reference types="stripe/types/2020-08-27/Persons" />
|
|
62
|
-
/// <reference types="stripe/types/2020-08-27/Plans" />
|
|
63
|
-
/// <reference types="stripe/types/2020-08-27/PlatformTaxFees" />
|
|
64
|
-
/// <reference types="stripe/types/2020-08-27/Prices" />
|
|
65
|
-
/// <reference types="stripe/types/2020-08-27/Products" />
|
|
66
|
-
/// <reference types="stripe/types/2020-08-27/PromotionCodes" />
|
|
67
|
-
/// <reference types="stripe/types/2020-08-27/Quotes" />
|
|
68
|
-
/// <reference types="stripe/types/2020-08-27/Radar/EarlyFraudWarnings" />
|
|
69
|
-
/// <reference types="stripe/types/2020-08-27/Radar/ValueListItems" />
|
|
70
|
-
/// <reference types="stripe/types/2020-08-27/Radar/ValueLists" />
|
|
71
|
-
/// <reference types="stripe/types/2020-08-27/Recipients" />
|
|
72
|
-
/// <reference types="stripe/types/2020-08-27/Refunds" />
|
|
73
|
-
/// <reference types="stripe/types/2020-08-27/Reporting/ReportRuns" />
|
|
74
|
-
/// <reference types="stripe/types/2020-08-27/Reporting/ReportTypes" />
|
|
75
|
-
/// <reference types="stripe/types/2020-08-27/ReserveTransactions" />
|
|
76
|
-
/// <reference types="stripe/types/2020-08-27/Reviews" />
|
|
77
|
-
/// <reference types="stripe/types/2020-08-27/SKUs" />
|
|
78
|
-
/// <reference types="stripe/types/2020-08-27/SetupAttempts" />
|
|
79
|
-
/// <reference types="stripe/types/2020-08-27/SetupIntents" />
|
|
80
|
-
/// <reference types="stripe/types/2020-08-27/Sigma/ScheduledQueryRuns" />
|
|
81
|
-
/// <reference types="stripe/types/2020-08-27/SourceMandateNotifications" />
|
|
82
|
-
/// <reference types="stripe/types/2020-08-27/SourceTransactions" />
|
|
83
|
-
/// <reference types="stripe/types/2020-08-27/Sources" />
|
|
84
|
-
/// <reference types="stripe/types/2020-08-27/SubscriptionItems" />
|
|
85
|
-
/// <reference types="stripe/types/2020-08-27/SubscriptionSchedules" />
|
|
86
|
-
/// <reference types="stripe/types/2020-08-27/Subscriptions" />
|
|
87
|
-
/// <reference types="stripe/types/2020-08-27/TaxCodes" />
|
|
88
|
-
/// <reference types="stripe/types/2020-08-27/TaxDeductedAtSources" />
|
|
89
|
-
/// <reference types="stripe/types/2020-08-27/TaxIds" />
|
|
90
|
-
/// <reference types="stripe/types/2020-08-27/TaxRates" />
|
|
91
|
-
/// <reference types="stripe/types/2020-08-27/Terminal/ConnectionTokens" />
|
|
92
|
-
/// <reference types="stripe/types/2020-08-27/Terminal/Locations" />
|
|
93
|
-
/// <reference types="stripe/types/2020-08-27/Terminal/Readers" />
|
|
94
|
-
/// <reference types="stripe/types/2020-08-27/Tokens" />
|
|
95
|
-
/// <reference types="stripe/types/2020-08-27/Topups" />
|
|
96
|
-
/// <reference types="stripe/types/2020-08-27/TransferReversals" />
|
|
97
|
-
/// <reference types="stripe/types/2020-08-27/Transfers" />
|
|
98
|
-
/// <reference types="stripe/types/2020-08-27/UsageRecordSummaries" />
|
|
99
|
-
/// <reference types="stripe/types/2020-08-27/UsageRecords" />
|
|
100
|
-
/// <reference types="stripe/types/2020-08-27/WebhookEndpoints" />
|
|
101
|
-
/// <reference types="stripe/types/lib" />
|
|
102
|
-
/// <reference types="stripe/types/net/net" />
|
|
103
|
-
import { setupCardOptions } from "../schemas/customer/setupCardOptions";
|
|
104
1
|
import { hasPaymentMethodOptions } from "../schemas/customer/hasPaymentMethodOptions";
|
|
2
|
+
import { setupCardOptions } from "../schemas/customer/setupCardOptions";
|
|
105
3
|
import { Stripe } from "stripe";
|
|
106
4
|
export declare const createStripeCustomer: (stripe: Stripe, options: Stripe.CustomerCreateParams) => Promise<string>;
|
|
107
5
|
export declare const hasPaymentMethod: (stripe: Stripe, options: hasPaymentMethodOptions) => Promise<boolean>;
|
package/dist/src/lib/customer.js
CHANGED
|
@@ -20,8 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g =
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
24
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -1,105 +1,3 @@
|
|
|
1
|
-
/// <reference types="stripe/types/crypto/crypto" />
|
|
2
|
-
/// <reference types="stripe/types/shared" />
|
|
3
|
-
/// <reference types="stripe/types/Errors" />
|
|
4
|
-
/// <reference types="stripe/types/OAuth" />
|
|
5
|
-
/// <reference types="stripe/types/Webhooks" />
|
|
6
|
-
/// <reference types="stripe/types/2020-08-27/AccountLinks" />
|
|
7
|
-
/// <reference types="stripe/types/2020-08-27/Accounts" />
|
|
8
|
-
/// <reference types="stripe/types/2020-08-27/AlipayAccounts" />
|
|
9
|
-
/// <reference types="stripe/types/2020-08-27/ApplePayDomains" />
|
|
10
|
-
/// <reference types="stripe/types/2020-08-27/ApplicationFees" />
|
|
11
|
-
/// <reference types="stripe/types/2020-08-27/Applications" />
|
|
12
|
-
/// <reference types="stripe/types/2020-08-27/Balance" />
|
|
13
|
-
/// <reference types="stripe/types/2020-08-27/BalanceTransactions" />
|
|
14
|
-
/// <reference types="stripe/types/2020-08-27/BankAccounts" />
|
|
15
|
-
/// <reference types="stripe/types/2020-08-27/BillingPortal/Configurations" />
|
|
16
|
-
/// <reference types="stripe/types/2020-08-27/BillingPortal/Sessions" />
|
|
17
|
-
/// <reference types="stripe/types/2020-08-27/BitcoinReceivers" />
|
|
18
|
-
/// <reference types="stripe/types/2020-08-27/BitcoinTransactions" />
|
|
19
|
-
/// <reference types="stripe/types/2020-08-27/Capabilities" />
|
|
20
|
-
/// <reference types="stripe/types/2020-08-27/Cards" />
|
|
21
|
-
/// <reference types="stripe/types/2020-08-27/Charges" />
|
|
22
|
-
/// <reference types="stripe/types/2020-08-27/Checkout/Sessions" />
|
|
23
|
-
/// <reference types="stripe/types/2020-08-27/ConnectCollectionTransfers" />
|
|
24
|
-
/// <reference types="stripe/types/2020-08-27/CountrySpecs" />
|
|
25
|
-
/// <reference types="stripe/types/2020-08-27/Coupons" />
|
|
26
|
-
/// <reference types="stripe/types/2020-08-27/CreditNoteLineItems" />
|
|
27
|
-
/// <reference types="stripe/types/2020-08-27/CreditNotes" />
|
|
28
|
-
/// <reference types="stripe/types/2020-08-27/CustomerBalanceTransactions" />
|
|
29
|
-
/// <reference types="stripe/types/2020-08-27/CustomerSources" />
|
|
30
|
-
/// <reference types="stripe/types/2020-08-27/Customers" />
|
|
31
|
-
/// <reference types="stripe/types/2020-08-27/Discounts" />
|
|
32
|
-
/// <reference types="stripe/types/2020-08-27/Disputes" />
|
|
33
|
-
/// <reference types="stripe/types/2020-08-27/EphemeralKeys" />
|
|
34
|
-
/// <reference types="stripe/types/2020-08-27/Events" />
|
|
35
|
-
/// <reference types="stripe/types/2020-08-27/ExchangeRates" />
|
|
36
|
-
/// <reference types="stripe/types/2020-08-27/ExternalAccounts" />
|
|
37
|
-
/// <reference types="stripe/types/2020-08-27/FeeRefunds" />
|
|
38
|
-
/// <reference types="stripe/types/2020-08-27/FileLinks" />
|
|
39
|
-
/// <reference types="stripe/types/2020-08-27/Files" />
|
|
40
|
-
/// <reference types="stripe/types/2020-08-27/Identity/VerificationReports" />
|
|
41
|
-
/// <reference types="stripe/types/2020-08-27/Identity/VerificationSessions" />
|
|
42
|
-
/// <reference types="stripe/types/2020-08-27/InvoiceItems" />
|
|
43
|
-
/// <reference types="stripe/types/2020-08-27/InvoiceLineItems" />
|
|
44
|
-
/// <reference types="stripe/types/2020-08-27/Invoices" />
|
|
45
|
-
/// <reference types="stripe/types/2020-08-27/IssuerFraudRecords" />
|
|
46
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Authorizations" />
|
|
47
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/CardDetails" />
|
|
48
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Cardholders" />
|
|
49
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Cards" />
|
|
50
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Disputes" />
|
|
51
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Transactions" />
|
|
52
|
-
/// <reference types="stripe/types/2020-08-27/LineItems" />
|
|
53
|
-
/// <reference types="stripe/types/2020-08-27/LoginLinks" />
|
|
54
|
-
/// <reference types="stripe/types/2020-08-27/Mandates" />
|
|
55
|
-
/// <reference types="stripe/types/2020-08-27/OrderItems" />
|
|
56
|
-
/// <reference types="stripe/types/2020-08-27/OrderReturns" />
|
|
57
|
-
/// <reference types="stripe/types/2020-08-27/Orders" />
|
|
58
|
-
/// <reference types="stripe/types/2020-08-27/PaymentIntents" />
|
|
59
|
-
/// <reference types="stripe/types/2020-08-27/PaymentMethods" />
|
|
60
|
-
/// <reference types="stripe/types/2020-08-27/Payouts" />
|
|
61
|
-
/// <reference types="stripe/types/2020-08-27/Persons" />
|
|
62
|
-
/// <reference types="stripe/types/2020-08-27/Plans" />
|
|
63
|
-
/// <reference types="stripe/types/2020-08-27/PlatformTaxFees" />
|
|
64
|
-
/// <reference types="stripe/types/2020-08-27/Prices" />
|
|
65
|
-
/// <reference types="stripe/types/2020-08-27/Products" />
|
|
66
|
-
/// <reference types="stripe/types/2020-08-27/PromotionCodes" />
|
|
67
|
-
/// <reference types="stripe/types/2020-08-27/Quotes" />
|
|
68
|
-
/// <reference types="stripe/types/2020-08-27/Radar/EarlyFraudWarnings" />
|
|
69
|
-
/// <reference types="stripe/types/2020-08-27/Radar/ValueListItems" />
|
|
70
|
-
/// <reference types="stripe/types/2020-08-27/Radar/ValueLists" />
|
|
71
|
-
/// <reference types="stripe/types/2020-08-27/Recipients" />
|
|
72
|
-
/// <reference types="stripe/types/2020-08-27/Refunds" />
|
|
73
|
-
/// <reference types="stripe/types/2020-08-27/Reporting/ReportRuns" />
|
|
74
|
-
/// <reference types="stripe/types/2020-08-27/Reporting/ReportTypes" />
|
|
75
|
-
/// <reference types="stripe/types/2020-08-27/ReserveTransactions" />
|
|
76
|
-
/// <reference types="stripe/types/2020-08-27/Reviews" />
|
|
77
|
-
/// <reference types="stripe/types/2020-08-27/SKUs" />
|
|
78
|
-
/// <reference types="stripe/types/2020-08-27/SetupAttempts" />
|
|
79
|
-
/// <reference types="stripe/types/2020-08-27/SetupIntents" />
|
|
80
|
-
/// <reference types="stripe/types/2020-08-27/Sigma/ScheduledQueryRuns" />
|
|
81
|
-
/// <reference types="stripe/types/2020-08-27/SourceMandateNotifications" />
|
|
82
|
-
/// <reference types="stripe/types/2020-08-27/SourceTransactions" />
|
|
83
|
-
/// <reference types="stripe/types/2020-08-27/Sources" />
|
|
84
|
-
/// <reference types="stripe/types/2020-08-27/SubscriptionItems" />
|
|
85
|
-
/// <reference types="stripe/types/2020-08-27/SubscriptionSchedules" />
|
|
86
|
-
/// <reference types="stripe/types/2020-08-27/Subscriptions" />
|
|
87
|
-
/// <reference types="stripe/types/2020-08-27/TaxCodes" />
|
|
88
|
-
/// <reference types="stripe/types/2020-08-27/TaxDeductedAtSources" />
|
|
89
|
-
/// <reference types="stripe/types/2020-08-27/TaxIds" />
|
|
90
|
-
/// <reference types="stripe/types/2020-08-27/TaxRates" />
|
|
91
|
-
/// <reference types="stripe/types/2020-08-27/Terminal/ConnectionTokens" />
|
|
92
|
-
/// <reference types="stripe/types/2020-08-27/Terminal/Locations" />
|
|
93
|
-
/// <reference types="stripe/types/2020-08-27/Terminal/Readers" />
|
|
94
|
-
/// <reference types="stripe/types/2020-08-27/Tokens" />
|
|
95
|
-
/// <reference types="stripe/types/2020-08-27/Topups" />
|
|
96
|
-
/// <reference types="stripe/types/2020-08-27/TransferReversals" />
|
|
97
|
-
/// <reference types="stripe/types/2020-08-27/Transfers" />
|
|
98
|
-
/// <reference types="stripe/types/2020-08-27/UsageRecordSummaries" />
|
|
99
|
-
/// <reference types="stripe/types/2020-08-27/UsageRecords" />
|
|
100
|
-
/// <reference types="stripe/types/2020-08-27/WebhookEndpoints" />
|
|
101
|
-
/// <reference types="stripe/types/lib" />
|
|
102
|
-
/// <reference types="stripe/types/net/net" />
|
|
103
1
|
import { Stripe } from "stripe";
|
|
104
2
|
import { confirmPaymentOptions } from "../schemas/payment/confirmPaymentOptions";
|
|
105
3
|
import { confirmPaymentResponse } from "../schemas/payment/confirmPaymentResponse";
|
package/dist/src/lib/payment.js
CHANGED
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g =
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
package/dist/src/stripeAPI.d.ts
CHANGED
|
@@ -1,105 +1,3 @@
|
|
|
1
|
-
/// <reference types="stripe/types/crypto/crypto" />
|
|
2
|
-
/// <reference types="stripe/types/shared" />
|
|
3
|
-
/// <reference types="stripe/types/Errors" />
|
|
4
|
-
/// <reference types="stripe/types/OAuth" />
|
|
5
|
-
/// <reference types="stripe/types/Webhooks" />
|
|
6
|
-
/// <reference types="stripe/types/2020-08-27/AccountLinks" />
|
|
7
|
-
/// <reference types="stripe/types/2020-08-27/Accounts" />
|
|
8
|
-
/// <reference types="stripe/types/2020-08-27/AlipayAccounts" />
|
|
9
|
-
/// <reference types="stripe/types/2020-08-27/ApplePayDomains" />
|
|
10
|
-
/// <reference types="stripe/types/2020-08-27/ApplicationFees" />
|
|
11
|
-
/// <reference types="stripe/types/2020-08-27/Applications" />
|
|
12
|
-
/// <reference types="stripe/types/2020-08-27/Balance" />
|
|
13
|
-
/// <reference types="stripe/types/2020-08-27/BalanceTransactions" />
|
|
14
|
-
/// <reference types="stripe/types/2020-08-27/BankAccounts" />
|
|
15
|
-
/// <reference types="stripe/types/2020-08-27/BillingPortal/Configurations" />
|
|
16
|
-
/// <reference types="stripe/types/2020-08-27/BillingPortal/Sessions" />
|
|
17
|
-
/// <reference types="stripe/types/2020-08-27/BitcoinReceivers" />
|
|
18
|
-
/// <reference types="stripe/types/2020-08-27/BitcoinTransactions" />
|
|
19
|
-
/// <reference types="stripe/types/2020-08-27/Capabilities" />
|
|
20
|
-
/// <reference types="stripe/types/2020-08-27/Cards" />
|
|
21
|
-
/// <reference types="stripe/types/2020-08-27/Charges" />
|
|
22
|
-
/// <reference types="stripe/types/2020-08-27/Checkout/Sessions" />
|
|
23
|
-
/// <reference types="stripe/types/2020-08-27/ConnectCollectionTransfers" />
|
|
24
|
-
/// <reference types="stripe/types/2020-08-27/CountrySpecs" />
|
|
25
|
-
/// <reference types="stripe/types/2020-08-27/Coupons" />
|
|
26
|
-
/// <reference types="stripe/types/2020-08-27/CreditNoteLineItems" />
|
|
27
|
-
/// <reference types="stripe/types/2020-08-27/CreditNotes" />
|
|
28
|
-
/// <reference types="stripe/types/2020-08-27/CustomerBalanceTransactions" />
|
|
29
|
-
/// <reference types="stripe/types/2020-08-27/CustomerSources" />
|
|
30
|
-
/// <reference types="stripe/types/2020-08-27/Customers" />
|
|
31
|
-
/// <reference types="stripe/types/2020-08-27/Discounts" />
|
|
32
|
-
/// <reference types="stripe/types/2020-08-27/Disputes" />
|
|
33
|
-
/// <reference types="stripe/types/2020-08-27/EphemeralKeys" />
|
|
34
|
-
/// <reference types="stripe/types/2020-08-27/Events" />
|
|
35
|
-
/// <reference types="stripe/types/2020-08-27/ExchangeRates" />
|
|
36
|
-
/// <reference types="stripe/types/2020-08-27/ExternalAccounts" />
|
|
37
|
-
/// <reference types="stripe/types/2020-08-27/FeeRefunds" />
|
|
38
|
-
/// <reference types="stripe/types/2020-08-27/FileLinks" />
|
|
39
|
-
/// <reference types="stripe/types/2020-08-27/Files" />
|
|
40
|
-
/// <reference types="stripe/types/2020-08-27/Identity/VerificationReports" />
|
|
41
|
-
/// <reference types="stripe/types/2020-08-27/Identity/VerificationSessions" />
|
|
42
|
-
/// <reference types="stripe/types/2020-08-27/InvoiceItems" />
|
|
43
|
-
/// <reference types="stripe/types/2020-08-27/InvoiceLineItems" />
|
|
44
|
-
/// <reference types="stripe/types/2020-08-27/Invoices" />
|
|
45
|
-
/// <reference types="stripe/types/2020-08-27/IssuerFraudRecords" />
|
|
46
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Authorizations" />
|
|
47
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/CardDetails" />
|
|
48
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Cardholders" />
|
|
49
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Cards" />
|
|
50
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Disputes" />
|
|
51
|
-
/// <reference types="stripe/types/2020-08-27/Issuing/Transactions" />
|
|
52
|
-
/// <reference types="stripe/types/2020-08-27/LineItems" />
|
|
53
|
-
/// <reference types="stripe/types/2020-08-27/LoginLinks" />
|
|
54
|
-
/// <reference types="stripe/types/2020-08-27/Mandates" />
|
|
55
|
-
/// <reference types="stripe/types/2020-08-27/OrderItems" />
|
|
56
|
-
/// <reference types="stripe/types/2020-08-27/OrderReturns" />
|
|
57
|
-
/// <reference types="stripe/types/2020-08-27/Orders" />
|
|
58
|
-
/// <reference types="stripe/types/2020-08-27/PaymentIntents" />
|
|
59
|
-
/// <reference types="stripe/types/2020-08-27/PaymentMethods" />
|
|
60
|
-
/// <reference types="stripe/types/2020-08-27/Payouts" />
|
|
61
|
-
/// <reference types="stripe/types/2020-08-27/Persons" />
|
|
62
|
-
/// <reference types="stripe/types/2020-08-27/Plans" />
|
|
63
|
-
/// <reference types="stripe/types/2020-08-27/PlatformTaxFees" />
|
|
64
|
-
/// <reference types="stripe/types/2020-08-27/Prices" />
|
|
65
|
-
/// <reference types="stripe/types/2020-08-27/Products" />
|
|
66
|
-
/// <reference types="stripe/types/2020-08-27/PromotionCodes" />
|
|
67
|
-
/// <reference types="stripe/types/2020-08-27/Quotes" />
|
|
68
|
-
/// <reference types="stripe/types/2020-08-27/Radar/EarlyFraudWarnings" />
|
|
69
|
-
/// <reference types="stripe/types/2020-08-27/Radar/ValueListItems" />
|
|
70
|
-
/// <reference types="stripe/types/2020-08-27/Radar/ValueLists" />
|
|
71
|
-
/// <reference types="stripe/types/2020-08-27/Recipients" />
|
|
72
|
-
/// <reference types="stripe/types/2020-08-27/Refunds" />
|
|
73
|
-
/// <reference types="stripe/types/2020-08-27/Reporting/ReportRuns" />
|
|
74
|
-
/// <reference types="stripe/types/2020-08-27/Reporting/ReportTypes" />
|
|
75
|
-
/// <reference types="stripe/types/2020-08-27/ReserveTransactions" />
|
|
76
|
-
/// <reference types="stripe/types/2020-08-27/Reviews" />
|
|
77
|
-
/// <reference types="stripe/types/2020-08-27/SKUs" />
|
|
78
|
-
/// <reference types="stripe/types/2020-08-27/SetupAttempts" />
|
|
79
|
-
/// <reference types="stripe/types/2020-08-27/SetupIntents" />
|
|
80
|
-
/// <reference types="stripe/types/2020-08-27/Sigma/ScheduledQueryRuns" />
|
|
81
|
-
/// <reference types="stripe/types/2020-08-27/SourceMandateNotifications" />
|
|
82
|
-
/// <reference types="stripe/types/2020-08-27/SourceTransactions" />
|
|
83
|
-
/// <reference types="stripe/types/2020-08-27/Sources" />
|
|
84
|
-
/// <reference types="stripe/types/2020-08-27/SubscriptionItems" />
|
|
85
|
-
/// <reference types="stripe/types/2020-08-27/SubscriptionSchedules" />
|
|
86
|
-
/// <reference types="stripe/types/2020-08-27/Subscriptions" />
|
|
87
|
-
/// <reference types="stripe/types/2020-08-27/TaxCodes" />
|
|
88
|
-
/// <reference types="stripe/types/2020-08-27/TaxDeductedAtSources" />
|
|
89
|
-
/// <reference types="stripe/types/2020-08-27/TaxIds" />
|
|
90
|
-
/// <reference types="stripe/types/2020-08-27/TaxRates" />
|
|
91
|
-
/// <reference types="stripe/types/2020-08-27/Terminal/ConnectionTokens" />
|
|
92
|
-
/// <reference types="stripe/types/2020-08-27/Terminal/Locations" />
|
|
93
|
-
/// <reference types="stripe/types/2020-08-27/Terminal/Readers" />
|
|
94
|
-
/// <reference types="stripe/types/2020-08-27/Tokens" />
|
|
95
|
-
/// <reference types="stripe/types/2020-08-27/Topups" />
|
|
96
|
-
/// <reference types="stripe/types/2020-08-27/TransferReversals" />
|
|
97
|
-
/// <reference types="stripe/types/2020-08-27/Transfers" />
|
|
98
|
-
/// <reference types="stripe/types/2020-08-27/UsageRecordSummaries" />
|
|
99
|
-
/// <reference types="stripe/types/2020-08-27/UsageRecords" />
|
|
100
|
-
/// <reference types="stripe/types/2020-08-27/WebhookEndpoints" />
|
|
101
|
-
/// <reference types="stripe/types/lib" />
|
|
102
|
-
/// <reference types="stripe/types/net/net" />
|
|
103
1
|
import { Stripe } from "stripe";
|
|
104
2
|
import { hasPaymentMethodOptions } from "./schemas/customer/hasPaymentMethodOptions";
|
|
105
3
|
import { setupCardOptions } from "./schemas/customer/setupCardOptions";
|
package/dist/src/stripeAPI.js
CHANGED
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g =
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
package/package.json
CHANGED
|
@@ -1,37 +1,33 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"typescript": "5.4.5"
|
|
35
|
-
},
|
|
36
|
-
"gitHead": "3007ad036607014176930446fde56203bde8d6f5"
|
|
37
|
-
}
|
|
2
|
+
"name": "@flink-app/stripe-plugin",
|
|
3
|
+
"version": "0.13.0",
|
|
4
|
+
"description": "Flink plugin to work with stripe payments",
|
|
5
|
+
"author": "johan@frost.se",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"types": "dist/src/index.d.ts",
|
|
11
|
+
"main": "dist/src/index.js",
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@types/stripe": "^8.0.417",
|
|
14
|
+
"bcrypt": "^5.0.1",
|
|
15
|
+
"handlebars": "^4.7.7",
|
|
16
|
+
"jsonwebtoken": "^8.5.1",
|
|
17
|
+
"stripe": "^8.186.1"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@types/bcrypt": "^5.0.0",
|
|
21
|
+
"@types/express-fileupload": "^1.1.7",
|
|
22
|
+
"@types/jsonwebtoken": "^8.5.5",
|
|
23
|
+
"@types/node": "22.13.10",
|
|
24
|
+
"@flink-app/flink": "0.13.0"
|
|
25
|
+
},
|
|
26
|
+
"gitHead": "4243e3b3cd6d4e1ca001a61baa8436bf2bbe4113",
|
|
27
|
+
"scripts": {
|
|
28
|
+
"test": "echo \"Error: no test specified\"",
|
|
29
|
+
"build": "flink build",
|
|
30
|
+
"watch": "nodemon --exec \"flink build\"",
|
|
31
|
+
"clean": "rimraf dist .flink"
|
|
32
|
+
}
|
|
33
|
+
}
|
package/readme.md
CHANGED
|
@@ -1,51 +1,390 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @flink-app/stripe-plugin
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A comprehensive Flink plugin for integrating Stripe payment processing, including customer management, payment intents, card setup, and Stripe Connect functionality. The plugin provides both API methods and hosted UI pages for payment flows.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Features
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- Customer creation and management
|
|
8
|
+
- Payment intent creation and confirmation
|
|
9
|
+
- Card setup with hosted UI
|
|
10
|
+
- Payment capture for authorized payments
|
|
11
|
+
- Stripe Connect integration
|
|
12
|
+
- Pre-built, customizable payment UI templates
|
|
13
|
+
- JWT-based secure token system
|
|
14
|
+
- MongoDB-backed session management
|
|
15
|
+
- Webhook callback support
|
|
16
|
+
- Full TypeScript support
|
|
8
17
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
Install plugin to your flink app project:
|
|
18
|
+
## Installation
|
|
12
19
|
|
|
13
|
-
```
|
|
14
|
-
npm
|
|
20
|
+
```bash
|
|
21
|
+
npm install @flink-app/stripe-plugin
|
|
15
22
|
```
|
|
16
23
|
|
|
17
|
-
|
|
24
|
+
## Usage
|
|
18
25
|
|
|
19
|
-
|
|
20
|
-
import { managementApiPlugin } from "@flink-app/management-api-plugin";
|
|
26
|
+
### Basic Setup
|
|
21
27
|
|
|
28
|
+
```typescript
|
|
29
|
+
import { FlinkApp } from "@flink-app/flink";
|
|
30
|
+
import { stripePlugin } from "@flink-app/stripe-plugin";
|
|
22
31
|
|
|
23
32
|
function start() {
|
|
24
33
|
new FlinkApp<AppContext>({
|
|
25
34
|
name: "My app",
|
|
26
35
|
plugins: [
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
36
|
+
stripePlugin({
|
|
37
|
+
stripeSecreteKey: process.env.STRIPE_SECRET_KEY!,
|
|
38
|
+
stripePublishableKey: process.env.STRIPE_PUBLISHABLE_KEY!,
|
|
39
|
+
JTW_TOKEN: process.env.JWT_SECRET!,
|
|
40
|
+
baseUrl: "/stripe", // optional, defaults to /stripe
|
|
41
|
+
redirectUrl: "https://yourapp.com/success", // Where to redirect after successful operations
|
|
42
|
+
logo: "https://yourapp.com/logo.png", // Optional logo for payment pages
|
|
43
|
+
stripeConnectClientID: process.env.STRIPE_CONNECT_CLIENT_ID, // For Stripe Connect
|
|
44
|
+
paymentCallback: (paymentIntentId, status) => {
|
|
45
|
+
// Handle successful payments
|
|
46
|
+
console.log(`Payment ${paymentIntentId} status: ${status}`);
|
|
47
|
+
},
|
|
48
|
+
stripeConnectCallback: (userId, stripeAccountId) => {
|
|
49
|
+
// Handle Stripe Connect account linking
|
|
50
|
+
console.log(`User ${userId} connected to Stripe account ${stripeAccountId}`);
|
|
51
|
+
},
|
|
52
|
+
phrases: {
|
|
53
|
+
setupDescription: "Add your payment card",
|
|
54
|
+
setupButtonText: "Save Card",
|
|
55
|
+
setupDoneMessage: "Your card has been saved successfully",
|
|
56
|
+
paymentSelectCardPayButtonText: "Pay",
|
|
57
|
+
paymentSelectCardChangeCardButtonText: "Change Card",
|
|
58
|
+
paymentEnterCardPayButtonText: "Pay",
|
|
59
|
+
connectDoneMessage: "Your account has been connected to Stripe",
|
|
60
|
+
},
|
|
61
|
+
}),
|
|
33
62
|
],
|
|
34
63
|
}).start();
|
|
35
64
|
}
|
|
36
65
|
```
|
|
37
66
|
|
|
38
|
-
|
|
67
|
+
### Add Plugin Context to Your Application
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
import { stripePluginContext } from "@flink-app/stripe-plugin";
|
|
71
|
+
|
|
72
|
+
export interface AppContext extends FlinkContext<stripePluginContext> {
|
|
73
|
+
repos: {
|
|
74
|
+
// your repos
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Configuration Options
|
|
80
|
+
|
|
81
|
+
- `stripeSecreteKey` (required): Your Stripe secret API key
|
|
82
|
+
- `stripePublishableKey` (required): Your Stripe publishable API key
|
|
83
|
+
- `JTW_TOKEN` (required): Secret for JWT token generation
|
|
84
|
+
- `baseUrl` (optional): Base URL for plugin routes (defaults to `/stripe`)
|
|
85
|
+
- `redirectUrl` (optional): URL to redirect users after successful operations
|
|
86
|
+
- `logo` (optional): Logo URL to display on payment pages
|
|
87
|
+
- `stripeConnectClientID` (optional): Client ID for Stripe Connect integration
|
|
88
|
+
- `paymentCallback` (optional): Function called when payment succeeds
|
|
89
|
+
- `stripeConnectCallback` (optional): Function called when Stripe Connect linking succeeds
|
|
90
|
+
- `phrases` (optional): Customize UI text for different languages
|
|
91
|
+
- `templates` (optional): Override default Handlebars templates for payment pages
|
|
92
|
+
|
|
93
|
+
## API Usage
|
|
94
|
+
|
|
95
|
+
### Customer Management
|
|
96
|
+
|
|
97
|
+
#### Create Customer
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
const customerId = await ctx.plugins.stripePlugin.stripeAPI.customer.create({
|
|
101
|
+
email: "customer@example.com",
|
|
102
|
+
name: "John Doe",
|
|
103
|
+
metadata: {
|
|
104
|
+
userId: "user123",
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
#### Check if Customer Has Payment Method
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
const hasCard = await ctx.plugins.stripePlugin.stripeAPI.customer.hasPaymentMethod({
|
|
113
|
+
stripeCustomerId: "cus_xxxxx",
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
#### Setup Card Registration
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
const { token, redirectUrl } = await ctx.plugins.stripePlugin.stripeAPI.customer.setupCard({
|
|
121
|
+
stripeCustomerId: "cus_xxxxx",
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
// Redirect user to redirectUrl to complete card setup
|
|
125
|
+
// Example: https://yourapp.com/stripe/customer/setup-card/JWT_TOKEN
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### Connect to Stripe Connect
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
const connectUrl = await ctx.plugins.stripePlugin.stripeAPI.customer.connectToStripeConnect({
|
|
132
|
+
userId: "user123",
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// Redirect user to connectUrl to link their Stripe Connect account
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Payment Processing
|
|
139
|
+
|
|
140
|
+
#### Create Payment Intent
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
const payment = await ctx.plugins.stripePlugin.stripeAPI.payment.create({
|
|
144
|
+
amount: 5000, // Amount in cents ($50.00)
|
|
145
|
+
currency: "usd",
|
|
146
|
+
customer: "cus_xxxxx",
|
|
147
|
+
description: "Order #12345",
|
|
148
|
+
capture_method: "automatic", // or "manual" for authorization only
|
|
149
|
+
metadata: {
|
|
150
|
+
orderId: "order_12345",
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
// payment.token - JWT token for payment confirmation
|
|
155
|
+
// payment.paymentUrl - URL to redirect user for payment
|
|
156
|
+
// payment.paymentIntentId - Stripe payment intent ID
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
#### Confirm Payment
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
const result = await ctx.plugins.stripePlugin.stripeAPI.payment.confirm({
|
|
163
|
+
paymentIntentId: "pi_xxxxx",
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
// result.confirmed - true if payment was confirmed
|
|
167
|
+
// result.captured - true if payment was captured (only for automatic capture)
|
|
168
|
+
// result.token - JWT token if additional action needed
|
|
169
|
+
// result.redirectUrl - URL to redirect user if additional action needed
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
#### Create and Confirm Payment (Combined)
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
const result = await ctx.plugins.stripePlugin.stripeAPI.payment.createAndConfirm({
|
|
176
|
+
amount: 5000,
|
|
177
|
+
currency: "usd",
|
|
178
|
+
customer: "cus_xxxxx",
|
|
179
|
+
description: "Order #12345",
|
|
180
|
+
});
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
#### Capture Authorized Payment
|
|
184
|
+
|
|
185
|
+
For payments created with `capture_method: "manual"`:
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
const captured = await ctx.plugins.stripePlugin.stripeAPI.payment.capture({
|
|
189
|
+
paymentIntentId: "pi_xxxxx",
|
|
190
|
+
amount: 5000, // Optional: partial capture amount
|
|
191
|
+
});
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Hosted Payment Flow
|
|
195
|
+
|
|
196
|
+
The plugin provides pre-built, secure payment pages:
|
|
197
|
+
|
|
198
|
+
### Card Setup Flow
|
|
199
|
+
|
|
200
|
+
1. Generate setup URL:
|
|
201
|
+
```typescript
|
|
202
|
+
const { redirectUrl } = await ctx.plugins.stripePlugin.stripeAPI.customer.setupCard({
|
|
203
|
+
stripeCustomerId: "cus_xxxxx",
|
|
204
|
+
});
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
2. Redirect user to `redirectUrl`
|
|
208
|
+
3. User enters card details on hosted page
|
|
209
|
+
4. User is redirected to your `redirectUrl` upon completion
|
|
210
|
+
|
|
211
|
+
### Payment Flow
|
|
212
|
+
|
|
213
|
+
1. Create payment intent:
|
|
214
|
+
```typescript
|
|
215
|
+
const { paymentUrl } = await ctx.plugins.stripePlugin.stripeAPI.payment.create({
|
|
216
|
+
amount: 5000,
|
|
217
|
+
currency: "usd",
|
|
218
|
+
customer: "cus_xxxxx",
|
|
219
|
+
});
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
2. Redirect user to `paymentUrl`
|
|
223
|
+
3. Plugin automatically detects if customer has saved cards
|
|
224
|
+
4. Shows appropriate UI (select saved card or enter new card)
|
|
225
|
+
5. Processes payment and redirects to your `redirectUrl`
|
|
226
|
+
|
|
227
|
+
## API Routes
|
|
228
|
+
|
|
229
|
+
The plugin automatically registers these routes:
|
|
230
|
+
|
|
231
|
+
- `GET /stripe/customer/setup-card/:token` - Card setup page
|
|
232
|
+
- `GET /stripe/customer/setup-card-done` - Success page after card setup
|
|
233
|
+
- `GET /stripe/payment/confirm/:token` - Payment confirmation flow entry
|
|
234
|
+
- `GET /stripe/payment/select-card/:token` - Select from saved cards
|
|
235
|
+
- `GET /stripe/payment/enter-card/:token` - Enter new card details
|
|
236
|
+
- `GET /stripe/error` - Error page
|
|
237
|
+
- `POST /stripe/callback/:event` - Webhook for payment status updates
|
|
238
|
+
- `GET /stripe/connect` - Stripe Connect OAuth callback
|
|
239
|
+
|
|
240
|
+
## Webhooks
|
|
241
|
+
|
|
242
|
+
Configure Stripe webhooks to point to:
|
|
243
|
+
```
|
|
244
|
+
POST https://yourapp.com/stripe/callback/charge.succeeded
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
The `paymentCallback` function will be invoked when payments succeed:
|
|
248
|
+
|
|
249
|
+
```typescript
|
|
250
|
+
paymentCallback: async (paymentIntentId, status) => {
|
|
251
|
+
// Update order status in database
|
|
252
|
+
await ctx.repos.orderRepo.updateByPaymentId(paymentIntentId, {
|
|
253
|
+
status: status === "succeeded" ? "paid" : "authorized",
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## Stripe Connect Integration
|
|
259
|
+
|
|
260
|
+
Enable users to receive payments through Stripe Connect:
|
|
261
|
+
|
|
262
|
+
1. Configure `stripeConnectClientID` in plugin options
|
|
263
|
+
2. Generate connect URL:
|
|
264
|
+
```typescript
|
|
265
|
+
const url = await ctx.plugins.stripePlugin.stripeAPI.customer.connectToStripeConnect({
|
|
266
|
+
userId: "user123",
|
|
267
|
+
});
|
|
268
|
+
```
|
|
269
|
+
3. Redirect user to `url`
|
|
270
|
+
4. User completes Stripe Connect onboarding
|
|
271
|
+
5. `stripeConnectCallback` is invoked with their Stripe account ID
|
|
272
|
+
|
|
273
|
+
## Customization
|
|
274
|
+
|
|
275
|
+
### Custom Templates
|
|
276
|
+
|
|
277
|
+
Override default payment page templates:
|
|
278
|
+
|
|
279
|
+
```typescript
|
|
280
|
+
stripePlugin({
|
|
281
|
+
// ... other options
|
|
282
|
+
templates: {
|
|
283
|
+
master: customMasterTemplate,
|
|
284
|
+
style: customStyleTemplate,
|
|
285
|
+
setupCard: customSetupCardTemplate,
|
|
286
|
+
setupDone: customSetupDoneTemplate,
|
|
287
|
+
error: customErrorTemplate,
|
|
288
|
+
paySelectCard: customPaySelectCardTemplate,
|
|
289
|
+
payEnterCard: customPayEnterCardTemplate,
|
|
290
|
+
connectDone: customConnectDoneTemplate,
|
|
291
|
+
},
|
|
292
|
+
});
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Templates use Handlebars syntax.
|
|
296
|
+
|
|
297
|
+
### Custom Phrases
|
|
298
|
+
|
|
299
|
+
Customize text for different languages or branding:
|
|
300
|
+
|
|
301
|
+
```typescript
|
|
302
|
+
phrases: {
|
|
303
|
+
setupDescription: "Lägg till ditt kort",
|
|
304
|
+
setupButtonText: "Spara",
|
|
305
|
+
setupDoneMessage: "Kortet har sparats",
|
|
306
|
+
paymentSelectCardPayButtonText: "Betala",
|
|
307
|
+
paymentSelectCardChangeCardButtonText: "Byt kort",
|
|
308
|
+
paymentEnterCardPayButtonText: "Betala",
|
|
309
|
+
connectDoneMessage: "Kontot har kopplats",
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
## Database Requirements
|
|
314
|
+
|
|
315
|
+
This plugin requires MongoDB to be configured for Stripe Connect session management. The plugin automatically creates a `ConnectSessionRepo` repository.
|
|
316
|
+
|
|
317
|
+
## Security Notes
|
|
318
|
+
|
|
319
|
+
- Never expose your `stripeSecreteKey` in client-side code
|
|
320
|
+
- Store all secrets in environment variables
|
|
321
|
+
- Use the JWT token system for secure payment URLs
|
|
322
|
+
- Validate webhook signatures in production (enhance `paymentCallback` with signature verification)
|
|
323
|
+
- Use HTTPS in production for all payment flows
|
|
324
|
+
|
|
325
|
+
## Testing
|
|
39
326
|
|
|
40
|
-
|
|
327
|
+
Use Stripe test mode credentials during development:
|
|
328
|
+
- Test secret key: `sk_test_...`
|
|
329
|
+
- Test publishable key: `pk_test_...`
|
|
330
|
+
- Use Stripe's test card numbers
|
|
41
331
|
|
|
42
|
-
|
|
332
|
+
## Error Handling
|
|
43
333
|
|
|
44
|
-
|
|
334
|
+
All API methods throw errors that should be caught and handled:
|
|
45
335
|
|
|
336
|
+
```typescript
|
|
337
|
+
try {
|
|
338
|
+
const payment = await ctx.plugins.stripePlugin.stripeAPI.payment.create({
|
|
339
|
+
amount: 5000,
|
|
340
|
+
currency: "usd",
|
|
341
|
+
customer: "cus_xxxxx",
|
|
342
|
+
});
|
|
343
|
+
} catch (error) {
|
|
344
|
+
console.error("Payment creation failed:", error);
|
|
345
|
+
// Handle error appropriately
|
|
346
|
+
}
|
|
46
347
|
```
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
348
|
+
|
|
349
|
+
## TypeScript Support
|
|
350
|
+
|
|
351
|
+
The plugin includes comprehensive TypeScript definitions for all options, methods, and responses.
|
|
352
|
+
|
|
353
|
+
## Complete Example
|
|
354
|
+
|
|
355
|
+
```typescript
|
|
356
|
+
// Create customer
|
|
357
|
+
const customerId = await ctx.plugins.stripePlugin.stripeAPI.customer.create({
|
|
358
|
+
email: user.email,
|
|
359
|
+
name: user.name,
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
// Setup their card
|
|
363
|
+
const { redirectUrl: setupUrl } = await ctx.plugins.stripePlugin.stripeAPI.customer.setupCard({
|
|
364
|
+
stripeCustomerId: customerId,
|
|
365
|
+
});
|
|
366
|
+
// Redirect user to setupUrl
|
|
367
|
+
|
|
368
|
+
// Later, create a payment
|
|
369
|
+
const hasCard = await ctx.plugins.stripePlugin.stripeAPI.customer.hasPaymentMethod({
|
|
370
|
+
stripeCustomerId: customerId,
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
if (hasCard) {
|
|
374
|
+
const result = await ctx.plugins.stripePlugin.stripeAPI.payment.createAndConfirm({
|
|
375
|
+
amount: 5000,
|
|
376
|
+
currency: "usd",
|
|
377
|
+
customer: customerId,
|
|
378
|
+
description: "Premium subscription",
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
if (result.confirmed && result.captured) {
|
|
382
|
+
// Payment successful
|
|
383
|
+
await activatePremiumSubscription(user.id);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
51
386
|
```
|
|
387
|
+
|
|
388
|
+
## License
|
|
389
|
+
|
|
390
|
+
MIT
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ExpressResponse } from "@flink-app/flink";
|
|
2
1
|
import { log } from "@flink-app/flink";
|
|
3
2
|
import Handlebars from "handlebars";
|
|
4
3
|
|
|
@@ -7,7 +6,7 @@ export async function HandlebarsTemplateHandler(
|
|
|
7
6
|
styleTemplate: string,
|
|
8
7
|
template: string,
|
|
9
8
|
pageContext: { [key: string]: any },
|
|
10
|
-
res:
|
|
9
|
+
res: any
|
|
11
10
|
) {
|
|
12
11
|
try {
|
|
13
12
|
const master = Handlebars.compile(masterTemplate.replace("{{{body}}}", "###BODY###").replace("{{{style}}}", "###STYLE###"))(pageContext);
|
package/src/index.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FlinkApp, FlinkPlugin, log } from "@flink-app/flink";
|
|
2
2
|
import { Stripe } from "stripe";
|
|
3
|
+
import { HandlebarsTemplateHandler } from "./handlers/HandlebarsTemplateHandler";
|
|
3
4
|
import { stripePluginOptions } from "./schemas/stripePluginOptions";
|
|
4
5
|
import { StripeAPI } from "./stripeAPI";
|
|
5
|
-
import { HandlebarsTemplateHandler } from "./handlers/HandlebarsTemplateHandler";
|
|
6
6
|
export * from "./stripePluginContext";
|
|
7
7
|
|
|
8
|
+
import { connectDoneTemplate } from "./templates/connect-done";
|
|
9
|
+
import { errorTemplate } from "./templates/error";
|
|
8
10
|
import { masterTemplate } from "./templates/master";
|
|
11
|
+
import { payEnterCardTemplate } from "./templates/pay-enter-card";
|
|
12
|
+
import { paySelectCardTemplate } from "./templates/pay-select-card";
|
|
9
13
|
import { setupCardTemplate } from "./templates/setup-card";
|
|
10
|
-
import { styleTemplate } from "./templates/style";
|
|
11
14
|
import { setupDoneTemplate } from "./templates/setup-done";
|
|
12
|
-
import {
|
|
13
|
-
import { paySelectCardTemplate } from "./templates/pay-select-card";
|
|
14
|
-
import { payEnterCardTemplate } from "./templates/pay-enter-card";
|
|
15
|
-
import { connectDoneTemplate } from "./templates/connect-done";
|
|
15
|
+
import { styleTemplate } from "./templates/style";
|
|
16
16
|
|
|
17
17
|
import { verify } from "jsonwebtoken";
|
|
18
|
-
import
|
|
18
|
+
import connectSessionRepo from "./reposx/ConnectSessionRepo";
|
|
19
19
|
import { setupCardTokenOptions } from "./schemas/customer/setupCardTokenOptions";
|
|
20
20
|
import { confirmPaymentTokenOptions } from "./schemas/payment/confirmPaymentTokenOptions";
|
|
21
|
-
import
|
|
21
|
+
import { stripeAPIToken } from "./schemas/stripeAPIToken";
|
|
22
22
|
export const stripePlugin = (options: stripePluginOptions): FlinkPlugin => {
|
|
23
23
|
if (options.paymentCallback == null) options.paymentCallback = () => {};
|
|
24
24
|
if (options.stripeConnectCallback == null) options.stripeConnectCallback = () => {};
|
|
@@ -49,7 +49,7 @@ function init(app: FlinkApp<any>, options: stripePluginOptions) {
|
|
|
49
49
|
if (options.baseUrl == null) options.baseUrl = "/stripe";
|
|
50
50
|
|
|
51
51
|
log.info("Registered route GET " + options.baseUrl + "/customer/setup-card/:token");
|
|
52
|
-
app.expressApp?.get(options.baseUrl + "/customer/setup-card/:token", (req, res) => {
|
|
52
|
+
app.expressApp?.get(options.baseUrl + "/customer/setup-card/:token", (req: any, res: any) => {
|
|
53
53
|
try {
|
|
54
54
|
const tokenData: stripeAPIToken<setupCardTokenOptions> = verify(req.params.token, options.JTW_TOKEN) as stripeAPIToken<setupCardTokenOptions>;
|
|
55
55
|
if (tokenData.type != "setup_card") {
|
|
@@ -78,7 +78,7 @@ function init(app: FlinkApp<any>, options: stripePluginOptions) {
|
|
|
78
78
|
|
|
79
79
|
log.info("Registered route GET " + options.baseUrl + "/customer/setup-card-done");
|
|
80
80
|
|
|
81
|
-
app.expressApp?.get(options.baseUrl + "/customer/setup-card-done/", (req, res) => {
|
|
81
|
+
app.expressApp?.get(options.baseUrl + "/customer/setup-card-done/", (req: any, res: any) => {
|
|
82
82
|
try {
|
|
83
83
|
HandlebarsTemplateHandler(
|
|
84
84
|
app.ctx.plugins.stripePlugin.templates.master,
|
|
@@ -97,7 +97,7 @@ function init(app: FlinkApp<any>, options: stripePluginOptions) {
|
|
|
97
97
|
}
|
|
98
98
|
});
|
|
99
99
|
|
|
100
|
-
app.expressApp?.get(options.baseUrl + "/error", (req, res) => {
|
|
100
|
+
app.expressApp?.get(options.baseUrl + "/error", (req: any, res: any) => {
|
|
101
101
|
try {
|
|
102
102
|
HandlebarsTemplateHandler(
|
|
103
103
|
app.ctx.plugins.stripePlugin.templates.master,
|
|
@@ -114,7 +114,7 @@ function init(app: FlinkApp<any>, options: stripePluginOptions) {
|
|
|
114
114
|
});
|
|
115
115
|
|
|
116
116
|
log.info("Registered route GET " + options.baseUrl + "/payment/confirm/:token");
|
|
117
|
-
app.expressApp?.get(options.baseUrl + "/payment/confirm/:token", async (req, res) => {
|
|
117
|
+
app.expressApp?.get(options.baseUrl + "/payment/confirm/:token", async (req: any, res: any) => {
|
|
118
118
|
try {
|
|
119
119
|
const tokenData = verify(req.params.token, options.JTW_TOKEN) as stripeAPIToken<confirmPaymentTokenOptions>;
|
|
120
120
|
if (tokenData.type != "payment") {
|
|
@@ -140,7 +140,7 @@ function init(app: FlinkApp<any>, options: stripePluginOptions) {
|
|
|
140
140
|
|
|
141
141
|
log.info("Registered route GET " + options.baseUrl + "/payment/select-card/:token");
|
|
142
142
|
|
|
143
|
-
app.expressApp?.get(options.baseUrl + "/payment/select-card/:token", async (req, res) => {
|
|
143
|
+
app.expressApp?.get(options.baseUrl + "/payment/select-card/:token", async (req: any, res: any) => {
|
|
144
144
|
try {
|
|
145
145
|
const tokenData = verify(req.params.token, options.JTW_TOKEN) as stripeAPIToken<confirmPaymentTokenOptions>;
|
|
146
146
|
if (tokenData.type != "payment") {
|
|
@@ -184,7 +184,7 @@ function init(app: FlinkApp<any>, options: stripePluginOptions) {
|
|
|
184
184
|
});
|
|
185
185
|
|
|
186
186
|
log.info("Registered route GET " + options.baseUrl + "/payment/enter-card/:token");
|
|
187
|
-
app.expressApp?.get(options.baseUrl + "/payment/enter-card/:token", async (req, res) => {
|
|
187
|
+
app.expressApp?.get(options.baseUrl + "/payment/enter-card/:token", async (req: any, res: any) => {
|
|
188
188
|
try {
|
|
189
189
|
const tokenData = verify(req.params.token, options.JTW_TOKEN) as stripeAPIToken<confirmPaymentTokenOptions>;
|
|
190
190
|
if (tokenData.type != "payment") {
|
|
@@ -227,7 +227,7 @@ function init(app: FlinkApp<any>, options: stripePluginOptions) {
|
|
|
227
227
|
});
|
|
228
228
|
|
|
229
229
|
log.info("Registered route GET " + options.baseUrl + "/callback/:event");
|
|
230
|
-
app.expressApp?.post(options.baseUrl + "/callback/:event", async (req, res) => {
|
|
230
|
+
app.expressApp?.post(options.baseUrl + "/callback/:event", async (req: any, res: any) => {
|
|
231
231
|
if (req.params.event == "charge.succeeded") {
|
|
232
232
|
const paymentIntentId = req.body?.data?.object?.payment_intent;
|
|
233
233
|
if (paymentIntentId == null) {
|
|
@@ -257,7 +257,7 @@ function init(app: FlinkApp<any>, options: stripePluginOptions) {
|
|
|
257
257
|
});
|
|
258
258
|
|
|
259
259
|
log.info("Registered route GET " + options.baseUrl + "/connect");
|
|
260
|
-
app.expressApp?.get(options.baseUrl + "/connect", async (req, res) => {
|
|
260
|
+
app.expressApp?.get(options.baseUrl + "/connect", async (req: any, res: any) => {
|
|
261
261
|
const { code, state } = req.query;
|
|
262
262
|
if (code && state) {
|
|
263
263
|
const stripe = app.ctx.plugins.stripePlugin.stripeAPI.stripe as Stripe;
|
package/src/lib/customer.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { setupCardResponse } from "../schemas/customer/setupCardResponse";
|
|
1
|
+
import { hasPaymentMethodOptions } from "../schemas/customer/hasPaymentMethodOptions";
|
|
3
2
|
import { setupCardOptions } from "../schemas/customer/setupCardOptions";
|
|
4
3
|
import { setupCardTokenOptions } from "../schemas/customer/setupCardTokenOptions";
|
|
5
|
-
import { hasPaymentMethodOptions } from "../schemas/customer/hasPaymentMethodOptions";
|
|
6
4
|
|
|
7
5
|
import { sign } from "jsonwebtoken";
|
|
8
|
-
import { stripeAPIToken } from "../schemas/stripeAPIToken";
|
|
9
6
|
import { Stripe } from "stripe";
|
|
7
|
+
import { stripeAPIToken } from "../schemas/stripeAPIToken";
|
|
10
8
|
|
|
11
9
|
export const createStripeCustomer = async (stripe: Stripe, options: Stripe.CustomerCreateParams): Promise<string> => {
|
|
12
10
|
const resp = await stripe.customers.create(options);
|
package/tsconfig.json
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface createStripeCustomerOptions {
|
|
2
|
-
userId: string;
|
|
3
|
-
description?: string;
|
|
4
|
-
email?: string;
|
|
5
|
-
metaData?: createStripeCustomerMetaData;
|
|
6
|
-
name?: string;
|
|
7
|
-
phone?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface createStripeCustomerMetaData {
|
|
10
|
-
[key: string]: string;
|
|
11
|
-
}
|