medusa-plugin-braintree 0.1.1 → 0.2.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.
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@medusajs/types").ModuleProviderExports;
2
+ export default _default;
3
+ export * from './provider';
@@ -1,8 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
17
  const utils_1 = require("@medusajs/framework/utils");
4
18
  const provider_1 = require("./provider");
5
19
  exports.default = (0, utils_1.ModuleProvider)(utils_1.Modules.PAYMENT, {
6
20
  services: [provider_1.BraintreeProvider]
7
21
  });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheW1lbnQtYnJhaW50cmVlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQW1FO0FBQ25FLHlDQUE4QztBQUU5QyxrQkFBZSxJQUFBLHNCQUFjLEVBQUMsZUFBTyxDQUFDLE9BQU8sRUFBRTtJQUM5QyxRQUFRLEVBQUUsQ0FBQyw0QkFBaUIsQ0FBQztDQUM3QixDQUFDLENBQUEifQ==
22
+ __exportStar(require("./provider"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheW1lbnQtYnJhaW50cmVlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBbUU7QUFDbkUseUNBQThDO0FBRTlDLGtCQUFlLElBQUEsc0JBQWMsRUFBQyxlQUFPLENBQUMsT0FBTyxFQUFFO0lBQzlDLFFBQVEsRUFBRSxDQUFDLDRCQUFpQixDQUFDO0NBQzdCLENBQUMsQ0FBQTtBQUVGLDZDQUEwQiJ9
@@ -0,0 +1,55 @@
1
+ import { AbstractPaymentProvider, MedusaError } from '@medusajs/framework/utils';
2
+ import type { AuthorizePaymentInput, AuthorizePaymentOutput, CancelPaymentInput, CancelPaymentOutput, CapturePaymentInput, CapturePaymentOutput, CreateAccountHolderInput, CreateAccountHolderOutput, DeleteAccountHolderInput, DeleteAccountHolderOutput, DeletePaymentInput, DeletePaymentOutput, GetPaymentStatusInput, GetPaymentStatusOutput, ICachingModuleService, InitiatePaymentInput, InitiatePaymentOutput, Logger, PaymentAccountHolderDTO, PaymentProviderContext, ProviderWebhookPayload, RefundPaymentInput, RefundPaymentOutput, RetrievePaymentInput, RetrievePaymentOutput, SavePaymentMethodInput, SavePaymentMethodOutput, UpdateAccountHolderInput, UpdateAccountHolderOutput, UpdatePaymentInput, UpdatePaymentOutput, WebhookActionResult } from '@medusajs/types';
3
+ import type { Transaction } from 'braintree';
4
+ import Braintree from 'braintree';
5
+ import type { BraintreeOptions } from './types';
6
+ export type BraintreeTransactionContext = PaymentProviderContext & Pick<Braintree.TransactionRequest, 'billing' | 'shipping' | 'customFields' | 'orderId' | 'lineItems' | 'shippingAmount' | 'taxAmount' | 'shippingTaxAmount' | 'discountAmount' | 'customer' | 'deviceData'>;
7
+ export interface BraintreePaymentSessionData {
8
+ client_token: string;
9
+ transaction: Transaction;
10
+ amount: number;
11
+ currency_code: string;
12
+ payment_method_nonce?: string;
13
+ account_holder?: PaymentAccountHolderDTO;
14
+ context?: BraintreeTransactionContext;
15
+ }
16
+ export interface BraintreeInitiatePaymentData {
17
+ payment_method_nonce?: string;
18
+ }
19
+ export declare const buildBraintreeError: (error: unknown, operation: string, logger: Logger, context?: Record<string, unknown>) => MedusaError;
20
+ export declare class BraintreeProvider extends AbstractPaymentProvider<BraintreeOptions> {
21
+ static identifier: string;
22
+ protected readonly options_: BraintreeOptions;
23
+ protected gateway: Braintree.BraintreeGateway;
24
+ logger: Logger;
25
+ caching: ICachingModuleService;
26
+ constructor(container: {
27
+ logger: Logger;
28
+ caching: ICachingModuleService;
29
+ }, options: BraintreeOptions);
30
+ saveClientTokenToCache(clientToken: string, customerId: string, expiresOnEpochSeconds: number): Promise<void>;
31
+ getClientTokenFromCache(customerId: string): Promise<string | null>;
32
+ getValidClientToken(medusaCustomerId: string | undefined, accountHolder: PaymentAccountHolderDTO | undefined): Promise<string | null>;
33
+ private parsePaymentSessionData;
34
+ init(): void;
35
+ static validateOptions(options: BraintreeOptions): void;
36
+ capturePayment(input: CapturePaymentInput): Promise<CapturePaymentOutput>;
37
+ authorizePayment(input: AuthorizePaymentInput): Promise<AuthorizePaymentOutput>;
38
+ cancelPayment(input: CancelPaymentInput): Promise<CancelPaymentOutput>;
39
+ private retrieveTransaction;
40
+ private mapTransactionStatusToPaymentStatus;
41
+ private validateInitiatePaymentData;
42
+ initiatePayment(input: InitiatePaymentInput): Promise<InitiatePaymentOutput>;
43
+ private createTransaction;
44
+ deletePayment(input: DeletePaymentInput): Promise<DeletePaymentOutput>;
45
+ getPaymentStatus(input: GetPaymentStatusInput): Promise<GetPaymentStatusOutput>;
46
+ savePaymentMethod(input: SavePaymentMethodInput): Promise<SavePaymentMethodOutput>;
47
+ refundPayment(input: RefundPaymentInput): Promise<RefundPaymentOutput>;
48
+ retrievePayment(input: RetrievePaymentInput): Promise<RetrievePaymentOutput>;
49
+ updatePayment(input: UpdatePaymentInput): Promise<UpdatePaymentOutput>;
50
+ createAccountHolder(input: CreateAccountHolderInput): Promise<CreateAccountHolderOutput>;
51
+ updateAccountHolder(input: UpdateAccountHolderInput): Promise<UpdateAccountHolderOutput>;
52
+ deleteAccountHolder(input: DeleteAccountHolderInput): Promise<DeleteAccountHolderOutput>;
53
+ getWebhookActionAndData(webhookData: ProviderWebhookPayload['payload']): Promise<WebhookActionResult>;
54
+ private createBraintreeCustomer;
55
+ }
@@ -81,7 +81,7 @@ class BraintreeProvider extends utils_1.AbstractPaymentProvider {
81
81
  .object({
82
82
  firstName: zod_1.z.string(),
83
83
  lastName: zod_1.z.string(),
84
- email: zod_1.z.string().email(),
84
+ email: zod_1.z.email(),
85
85
  phone: zod_1.z.string().optional()
86
86
  })
87
87
  .optional(),
@@ -651,4 +651,4 @@ class BraintreeProvider extends utils_1.AbstractPaymentProvider {
651
651
  }
652
652
  exports.BraintreeProvider = BraintreeProvider;
653
653
  BraintreeProvider.identifier = 'braintree';
654
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheW1lbnQtYnJhaW50cmVlL3Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQVNrQztBQXFDbEMsMERBQWlDO0FBQ2pDLDZCQUF1QjtBQUN2QixtQ0FBa0Q7QUFpQ2xELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyx5QkFBeUIsVUFBVSxFQUFFLENBQUE7QUFFeEYsZ0RBQWdEO0FBQ2hELE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYyxFQUFFLFNBQWlCLEVBQVUsRUFBRTtJQUNwRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2hELE1BQU0sSUFBSSxtQkFBVyxDQUNwQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsR0FBRyxTQUFTLDZCQUE2QixDQUN6QyxDQUFBO0lBQ0YsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBRUQsMkRBQTJEO0FBQ3BELE1BQU0sbUJBQW1CLEdBQUcsQ0FDbEMsS0FBYyxFQUNkLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFpQyxFQUNuQixFQUFFO0lBQ2hCLE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUUzRSx5Q0FBeUM7SUFDekMsTUFBTSxDQUFDLEtBQUssQ0FDWCxhQUFhLFNBQVMsWUFBWSxZQUFZLEVBQUUsRUFDaEQsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzFDLENBQUE7SUFFRCxPQUFPLElBQUksbUJBQVcs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
654
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BheW1lbnQtYnJhaW50cmVlL3Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQVNrQztBQXFDbEMsMERBQWlDO0FBQ2pDLDZCQUF1QjtBQUN2QixtQ0FBa0Q7QUFpQ2xELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyx5QkFBeUIsVUFBVSxFQUFFLENBQUE7QUFFeEYsZ0RBQWdEO0FBQ2hELE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYyxFQUFFLFNBQWlCLEVBQVUsRUFBRTtJQUNwRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2hELE1BQU0sSUFBSSxtQkFBVyxDQUNwQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDbEMsR0FBRyxTQUFTLDZCQUE2QixDQUN6QyxDQUFBO0lBQ0YsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBRUQsMkRBQTJEO0FBQ3BELE1BQU0sbUJBQW1CLEdBQUcsQ0FDbEMsS0FBYyxFQUNkLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFpQyxFQUNuQixFQUFFO0lBQ2hCLE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUUzRSx5Q0FBeUM7SUFDekMsTUFBTSxDQUFDLEtBQUssQ0FDWCxhQUFhLFNBQVMsWUFBWSxZQUFZLEVBQUUsRUFDaEQsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzFDLENBQUE7SUFFRCxPQUFPLElBQUksbUJBQVcs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
@@ -0,0 +1,71 @@
1
+ import type Braintree from 'braintree';
2
+ export interface BraintreeOptions extends Braintree.ClientGatewayConfig {
3
+ defaultCurrencyCode?: string;
4
+ environment: 'production' | 'sandbox' | 'development' | 'qa';
5
+ merchantId: string;
6
+ publicKey: string;
7
+ privateKey: string;
8
+ enable3DSecure: boolean;
9
+ savePaymentMethod: boolean;
10
+ webhookSecret: string;
11
+ autoCapture: boolean;
12
+ allowRefundOnRefunded?: boolean;
13
+ }
14
+ export type CustomFields = Record<string, string>;
15
+ export interface DecodedClientToken {
16
+ version: number;
17
+ authorizationFingerprint: string;
18
+ configUrl: string;
19
+ graphQL: GraphQl;
20
+ clientApiUrl: string;
21
+ environment: string;
22
+ merchantId: string;
23
+ assetsUrl: string;
24
+ authUrl: string;
25
+ venmo: string;
26
+ challenges: string[];
27
+ threeDSecureEnabled: boolean;
28
+ analytics: Analytics;
29
+ paypalEnabled: boolean;
30
+ paypal: Paypal;
31
+ }
32
+ export interface GraphQl {
33
+ url: string;
34
+ date: string;
35
+ features: string[];
36
+ }
37
+ export interface Analytics {
38
+ url: string;
39
+ }
40
+ export interface Paypal {
41
+ billingAgreementsEnabled: boolean;
42
+ environmentNoNetwork: boolean;
43
+ unvettedMerchant: boolean;
44
+ allowHttp: boolean;
45
+ displayName: string;
46
+ clientId: string;
47
+ baseUrl: string;
48
+ assetsUrl: string;
49
+ directBaseUrl: string;
50
+ environment: string;
51
+ braintreeClientId: string;
52
+ merchantAccountId: string;
53
+ currencyIsoCode: string;
54
+ }
55
+ export interface DecodedClientTokenAuthorization {
56
+ exp: number;
57
+ jti: string;
58
+ sub: string;
59
+ iss: string;
60
+ merchant: Merchant;
61
+ rights: string[];
62
+ scope: string[];
63
+ options: Options;
64
+ }
65
+ export interface Merchant {
66
+ public_id: string;
67
+ verify_card_by_default: boolean;
68
+ verify_wallet_by_default: boolean;
69
+ }
70
+ export interface Options {
71
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Formats a number or string to a two-decimal string representation.
3
+ * Validates the input is parseable to a number and throws MedusaError on NaN.
4
+ *
5
+ * @param amount - The amount to format (number or string)
6
+ * @returns A string representation with exactly 2 decimal places
7
+ * @throws MedusaError if the amount is not a valid number
8
+ */
9
+ export declare function formatToTwoDecimalString(amount: number | string): string;
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2026 Lacey Pevey
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "medusa-plugin-braintree",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Braintree payment provider plugin for Medusa v2",
5
5
  "author": "Lacey Pevey",
6
6
  "license": "MIT",
@@ -14,11 +14,26 @@
14
14
  ],
15
15
  "exports": {
16
16
  "./package.json": "./package.json",
17
- "./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
18
- "./modules/*": "./.medusa/server/src/modules/*/index.js",
19
- "./providers/*": "./.medusa/server/src/providers/*/index.js",
20
- "./*": "./.medusa/server/src/*.js",
21
- ".": "./.medusa/server/src/providers/payment-braintree/index.js"
17
+ "./.medusa/server/src/modules/*": {
18
+ "types": "./.medusa/server/src/modules/*/index.d.ts",
19
+ "default": "./.medusa/server/src/modules/*/index.js"
20
+ },
21
+ "./modules/*": {
22
+ "types": "./.medusa/server/src/modules/*/index.d.ts",
23
+ "default": "./.medusa/server/src/modules/*/index.js"
24
+ },
25
+ "./providers/*": {
26
+ "types": "./.medusa/server/src/providers/*/index.d.ts",
27
+ "default": "./.medusa/server/src/providers/*/index.js"
28
+ },
29
+ "./*": {
30
+ "types": "./.medusa/server/src/*.d.ts",
31
+ "default": "./.medusa/server/src/*.js"
32
+ },
33
+ ".": {
34
+ "types": "./.medusa/server/src/providers/payment-braintree/index.d.ts",
35
+ "default": "./.medusa/server/src/providers/payment-braintree/index.js"
36
+ }
22
37
  },
23
38
  "keywords": [
24
39
  "medusa-plugin-payment",
@@ -38,40 +53,35 @@
38
53
  "braintree": "3.36.0"
39
54
  },
40
55
  "devDependencies": {
41
- "@medusajs/admin-sdk": "2.13.6",
42
- "@medusajs/cli": "2.13.6",
43
- "@medusajs/framework": "2.13.6",
44
- "@medusajs/icons": "2.13.6",
45
- "@medusajs/medusa": "2.13.6",
46
- "@medusajs/test-utils": "2.13.6",
47
- "@medusajs/ui": "4.0.25",
48
- "@swc/core": "^1.7.28",
49
- "@swc/jest": "^0.2.39",
56
+ "@medusajs/admin-sdk": "2.14.2",
57
+ "@medusajs/cli": "2.14.2",
58
+ "@medusajs/framework": "2.14.2",
59
+ "@medusajs/icons": "2.14.2",
60
+ "@medusajs/ui": "4.1.9",
61
+ "@swc/core": "1.7.28",
62
+ "@swc/jest": "0.2.39",
50
63
  "@types/braintree": "3.4.4",
51
- "@types/jest": "^30.0.0",
52
- "@types/node": "^20.0.0",
53
- "@types/react": "^18.3.2",
54
- "@types/react-dom": "^18.2.25",
55
- "jest": "^29.7.0",
56
- "prop-types": "^15.8.1",
57
- "react": "^18.2.0",
58
- "react-dom": "^18.2.0",
59
- "ts-node": "^10.9.2",
60
- "typescript": "^5.6.2",
61
- "vite": "^5.2.11",
62
- "yalc": "^1.0.0-pre.53"
64
+ "@types/jest": "30.0.0",
65
+ "@types/node": "20.0.0",
66
+ "@types/react": "18.3.2",
67
+ "@types/react-dom": "18.2.25",
68
+ "jest": "29.7.0",
69
+ "prop-types": "15.8.1",
70
+ "react": "18.3.1",
71
+ "react-dom": "18.3.1",
72
+ "ts-node": "10.9.2",
73
+ "typescript": "5.6.2",
74
+ "vite": "5.4.14",
75
+ "yalc": "1.0.0-pre.53"
63
76
  },
64
77
  "peerDependencies": {
65
- "@medusajs/admin-sdk": "2.13.6",
66
- "@medusajs/cli": "2.13.6",
67
- "@medusajs/framework": "2.13.6",
68
- "@medusajs/icons": "2.13.6",
69
- "@medusajs/medusa": "2.13.6",
70
- "@medusajs/test-utils": "2.13.6",
71
- "@medusajs/ui": "4.0.25"
78
+ "@medusajs/framework": "2.14.2",
79
+ "@medusajs/js-sdk": "2.14.2",
80
+ "@medusajs/medusa": "2.14.2"
72
81
  },
73
82
  "engines": {
74
83
  "node": ">=20"
75
84
  },
76
- "packageManager": "yarn@4.13.0+sha512.5c20ba010c99815433e5c8453112165e673f1c7948d8d2b267f4b5e52097538658388ebc9f9580656d9b75c5cc996f990f611f99304a2197d4c56d21eea370e7"
77
- }
85
+ "packageManager": "yarn@4.13.0+sha512.5c20ba010c99815433e5c8453112165e673f1c7948d8d2b267f4b5e52097538658388ebc9f9580656d9b75c5cc996f990f611f99304a2197d4c56d21eea370e7",
86
+ "gitHead": "35f16164d0d17e6281b2801a9f1eb355b5035571"
87
+ }