@unchainedshop/plugins 2.11.5 → 2.11.6

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.
@@ -14,6 +14,17 @@ const Stripe = {
14
14
  actions: (params) => {
15
15
  const { modules } = params.context;
16
16
  const descriptorPrefix = params.config.find(({ key }) => key === 'descriptorPrefix')?.value;
17
+ const getUserData = async (forcedUserId) => {
18
+ const userId = forcedUserId || params.paymentContext?.userId;
19
+ const user = await modules.users.findUserById(userId);
20
+ const email = modules.users.primaryEmail(user)?.address;
21
+ const name = user.profile.displayName || user.username || email;
22
+ return {
23
+ email,
24
+ name,
25
+ userId,
26
+ };
27
+ };
17
28
  const adapterActions = {
18
29
  ...PaymentAdapter.actions(params),
19
30
  configurationError() {
@@ -55,13 +66,11 @@ const Stripe = {
55
66
  const { orderPayment, order, paymentProviderId } = params.paymentContext;
56
67
  if (orderPayment) {
57
68
  const pricing = await modules.orders.pricingSheet(order);
58
- const paymentIntent = await createOrderPaymentIntent({ order, orderPayment, pricing, descriptorPrefix }, transactionContext);
69
+ const { userId, name, email } = await getUserData(order?.userId);
70
+ const paymentIntent = await createOrderPaymentIntent({ userId, name, email, order, orderPayment, pricing, descriptorPrefix }, transactionContext);
59
71
  return paymentIntent.client_secret;
60
72
  }
61
- const userId = order?.userId || params.paymentContext?.userId;
62
- const user = await modules.users.findUserById(userId);
63
- const email = modules.users.primaryEmail(user)?.address;
64
- const name = user.profile.displayName || user.username || email;
73
+ const { userId, name, email } = await getUserData(order?.userId);
65
74
  const paymentIntent = await createRegistrationIntent({ userId, name, email, paymentProviderId, descriptorPrefix }, transactionContext);
66
75
  return paymentIntent.client_secret;
67
76
  },
@@ -73,10 +82,11 @@ const Stripe = {
73
82
  const orderPayment = await modules.orders.payments.findOrderPayment({
74
83
  orderPaymentId: order.paymentId,
75
84
  });
85
+ const { userId, name, email } = await getUserData(order?.userId);
76
86
  const pricing = await modules.orders.pricingSheet(order);
77
87
  const paymentIntentObject = paymentIntentId
78
88
  ? await stripe.paymentIntents.retrieve(paymentIntentId)
79
- : await createOrderPaymentIntent({ orderPayment, order, pricing, descriptorPrefix }, {
89
+ : await createOrderPaymentIntent({ userId, name, email, orderPayment, order, pricing, descriptorPrefix }, {
80
90
  customer: paymentCredentials.meta?.customer,
81
91
  confirm: true,
82
92
  payment_method: paymentCredentials.token,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/payment/stripe/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/payment/stripe/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,MAAM,EAAE,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEzF,cAAc,iBAAiB,CAAC;AAEhC,MAAM,MAAM,GAAG,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAE7D,MAAM,MAAM,GAAoB;IAC9B,GAAG,cAAc;IAEjB,GAAG,EAAE,+BAA+B;IACpC,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,OAAO;IAEhB,aAAa,CAAC,IAAI;QAChB,OAAO,IAAI,KAAK,SAAS,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QAEnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAE5F,MAAM,WAAW,GAAG,KAAK,EAAE,YAAY,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,YAAY,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;YAChE,OAAO;gBACL,KAAK;gBACL,IAAI;gBACJ,MAAM;aACP,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,cAAc,GAAG;YACrB,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;YAEjC,kBAAkB;gBAChB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,YAAY,CAAC,wBAAwB,CAAC;gBAC/C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,cAAc,CAAC,kBAAkB,EAAE,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBAC9D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,iBAAiB;gBACf,OAAO,KAAK,CAAC;YACf,CAAC;YAED,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC5B,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClE,OAAO,CAAC,CAAC,aAAa,CAAC;YACzB,CAAC;YAED,QAAQ,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;gBACpC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACzD,CAAC;gBAED,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACtE,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACvC,OAAO;wBACL,KAAK,EAAE,WAAW,CAAC,cAAc;wBACjC,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,8DAA8D;wBAC9D,oBAAoB,EAAE,WAAW,CAAC,oBAAoB;wBACtD,KAAK,EAAE,WAAW,CAAC,KAAK;qBACzB,CAAC;gBACJ,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,EAAE,KAAK,EAAE,kBAAkB,GAAG,EAAE,EAAE,EAAE;gBACtC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC;gBAEzE,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBACzD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACjE,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAClD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,EACvE,kBAAkB,CACnB,CAAC;oBACF,OAAO,aAAa,CAAC,aAAa,CAAC;gBACrC,CAAC;gBAED,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACjE,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAClD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAC5D,kBAAkB,CACnB,CAAC;gBACF,OAAO,aAAa,CAAC,aAAa,CAAC;YACrC,CAAC;YAED,MAAM,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,EAAE;gBACxD,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;gBAC/E,CAAC;gBAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC;gBACxC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBAClE,cAAc,EAAE,KAAK,CAAC,SAAS;iBAChC,CAAC,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACjE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAEzD,MAAM,mBAAmB,GAAG,eAAe;oBACzC,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC;oBACvD,CAAC,CAAC,MAAM,wBAAwB,CAC5B,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,EACvE;wBACE,QAAQ,EAAE,kBAAkB,CAAC,IAAI,EAAE,QAAQ;wBAC3C,OAAO,EAAE,IAAI;wBACb,cAAc,EAAE,kBAAkB,CAAC,KAAK;wBACxC,oBAAoB,EAAE,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,EAAE,sBAAsB;wBAC3F,kGAAkG;qBACnG,CACF,CAAC;gBAEN,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEnE,IACE,mBAAmB,CAAC,QAAQ,KAAK,QAAQ,CAAC,WAAW,EAAE;oBACvD,mBAAmB,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EACjD,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAC7E,CAAC;gBACD,IAAI,mBAAmB,CAAC,QAAQ,EAAE,cAAc,KAAK,YAAY,EAAE,GAAG,EAAE,CAAC;oBACvE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;gBAC/E,CAAC;gBAED,IAAI,mBAAmB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC/C,OAAO,mBAAmB,CAAC;gBAC7B,CAAC;gBAED,MAAM,CAAC,OAAO,CAAC,yDAAyD,EAAE;oBACxE,cAAc,EAAE,mBAAmB,CAAC,EAAE;iBACvC,CAAC,CAAC;gBAEH,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC;CACF,CAAC;AAEF,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC"}
@@ -16,7 +16,10 @@ export declare const createRegistrationIntent: ({ userId, name, email, paymentPr
16
16
  paymentProviderId: string;
17
17
  descriptorPrefix?: string;
18
18
  }, options?: Record<string, any>) => Promise<Stripe.Response<Stripe.SetupIntent>>;
19
- export declare const createOrderPaymentIntent: ({ order, orderPayment, pricing, descriptorPrefix, }: {
19
+ export declare const createOrderPaymentIntent: ({ userId, name, email, order, orderPayment, pricing, descriptorPrefix, }: {
20
+ userId: string;
21
+ name: string;
22
+ email: string;
20
23
  order: Order;
21
24
  orderPayment: OrderPayment;
22
25
  pricing: IOrderPricingSheet;
@@ -37,8 +37,8 @@ export const upsertCustomer = async ({ userId, name, email }) => {
37
37
  }
38
38
  };
39
39
  export const createRegistrationIntent = async ({ userId, name, email, paymentProviderId, descriptorPrefix, }, options = {}) => {
40
- const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${userId}${email ? ` (#${email})` : ''}`;
41
40
  const customer = options?.customer || (await upsertCustomer({ userId, name, email }));
41
+ const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${userId}${email ? ` (#${email})` : ''}`;
42
42
  const setupIntent = await stripe.setupIntents.create({
43
43
  description,
44
44
  customer,
@@ -52,16 +52,9 @@ export const createRegistrationIntent = async ({ userId, name, email, paymentPro
52
52
  });
53
53
  return setupIntent;
54
54
  };
55
- export const createOrderPaymentIntent = async ({ order, orderPayment, pricing, descriptorPrefix, }, options = {}) => {
55
+ export const createOrderPaymentIntent = async ({ userId, name, email, order, orderPayment, pricing, descriptorPrefix, }, options = {}) => {
56
56
  const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${order._id}${order.orderNumber ? ` (#${order.orderNumber})` : ''}`;
57
- const name = [order.billingAddress?.firstName, order.billingAddress?.lastName].filter(Boolean).join(' ') ||
58
- order.billingAddress?.company;
59
- const customer = options?.customer ||
60
- (await upsertCustomer({
61
- userId: order.userId,
62
- name,
63
- email: order.contact?.emailAddress,
64
- }));
57
+ const customer = options?.customer || (await upsertCustomer({ userId, name, email }));
65
58
  const { currency, amount } = pricing.total({ useNetPrice: false });
66
59
  const paymentIntent = await stripe.paymentIntents.create({
67
60
  amount: Math.round(amount),
@@ -70,10 +63,11 @@ export const createOrderPaymentIntent = async ({ order, orderPayment, pricing, d
70
63
  statement_descriptor_suffix: `${order._id.substring(0, 4)}..${order._id.substring(order._id.length - 4)}`,
71
64
  setup_future_usage: 'off_session', // Verify your integration in this guide by including this parameter
72
65
  customer,
66
+ receipt_email: order.contact?.emailAddress,
73
67
  metadata: {
74
- userId: order.userId,
75
68
  orderPaymentId: orderPayment._id,
76
69
  orderId: order._id,
70
+ userId,
77
71
  environment,
78
72
  },
79
73
  ...options,
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../../src/payment/stripe/stripe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../../src/payment/stripe/stripe.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unchainedshop/plugins",
3
- "version": "2.11.5",
3
+ "version": "2.11.6",
4
4
  "main": "lib/plugins-index.js",
5
5
  "types": "lib/plugins-index.d.ts",
6
6
  "exports": {
@@ -22,6 +22,18 @@ const Stripe: IPaymentAdapter = {
22
22
  const { modules } = params.context;
23
23
 
24
24
  const descriptorPrefix = params.config.find(({ key }) => key === 'descriptorPrefix')?.value;
25
+
26
+ const getUserData = async (forcedUserId) => {
27
+ const userId = forcedUserId || params.paymentContext?.userId;
28
+ const user = await modules.users.findUserById(userId);
29
+ const email = modules.users.primaryEmail(user)?.address;
30
+ const name = user.profile.displayName || user.username || email;
31
+ return {
32
+ email,
33
+ name,
34
+ userId,
35
+ };
36
+ };
25
37
  const adapterActions = {
26
38
  ...PaymentAdapter.actions(params),
27
39
 
@@ -71,18 +83,15 @@ const Stripe: IPaymentAdapter = {
71
83
 
72
84
  if (orderPayment) {
73
85
  const pricing = await modules.orders.pricingSheet(order);
86
+ const { userId, name, email } = await getUserData(order?.userId);
74
87
  const paymentIntent = await createOrderPaymentIntent(
75
- { order, orderPayment, pricing, descriptorPrefix },
88
+ { userId, name, email, order, orderPayment, pricing, descriptorPrefix },
76
89
  transactionContext,
77
90
  );
78
91
  return paymentIntent.client_secret;
79
92
  }
80
93
 
81
- const userId = order?.userId || params.paymentContext?.userId;
82
- const user = await modules.users.findUserById(userId);
83
- const email = modules.users.primaryEmail(user)?.address;
84
- const name = user.profile.displayName || user.username || email;
85
-
94
+ const { userId, name, email } = await getUserData(order?.userId);
86
95
  const paymentIntent = await createRegistrationIntent(
87
96
  { userId, name, email, paymentProviderId, descriptorPrefix },
88
97
  transactionContext,
@@ -99,13 +108,13 @@ const Stripe: IPaymentAdapter = {
99
108
  const orderPayment = await modules.orders.payments.findOrderPayment({
100
109
  orderPaymentId: order.paymentId,
101
110
  });
102
-
111
+ const { userId, name, email } = await getUserData(order?.userId);
103
112
  const pricing = await modules.orders.pricingSheet(order);
104
113
 
105
114
  const paymentIntentObject = paymentIntentId
106
115
  ? await stripe.paymentIntents.retrieve(paymentIntentId)
107
116
  : await createOrderPaymentIntent(
108
- { orderPayment, order, pricing, descriptorPrefix },
117
+ { userId, name, email, orderPayment, order, pricing, descriptorPrefix },
109
118
  {
110
119
  customer: paymentCredentials.meta?.customer,
111
120
  confirm: true,
@@ -64,8 +64,8 @@ export const createRegistrationIntent = async (
64
64
  },
65
65
  options: Record<string, any> = {},
66
66
  ) => {
67
- const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${userId}${email ? ` (#${email})` : ''}`;
68
67
  const customer = options?.customer || (await upsertCustomer({ userId, name, email }));
68
+ const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${userId}${email ? ` (#${email})` : ''}`;
69
69
 
70
70
  const setupIntent = await stripe.setupIntents.create({
71
71
  description,
@@ -83,11 +83,17 @@ export const createRegistrationIntent = async (
83
83
 
84
84
  export const createOrderPaymentIntent = async (
85
85
  {
86
+ userId,
87
+ name,
88
+ email,
86
89
  order,
87
90
  orderPayment,
88
91
  pricing,
89
92
  descriptorPrefix,
90
93
  }: {
94
+ userId: string;
95
+ name: string;
96
+ email: string;
91
97
  order: Order;
92
98
  orderPayment: OrderPayment;
93
99
  pricing: IOrderPricingSheet;
@@ -96,20 +102,9 @@ export const createOrderPaymentIntent = async (
96
102
  options: Record<string, any> = {},
97
103
  ) => {
98
104
  const description = `${descriptorPrefix || EMAIL_WEBSITE_NAME || 'Unchained'} ${order._id}${order.orderNumber ? ` (#${order.orderNumber})` : ''}`;
99
-
100
- const name =
101
- [order.billingAddress?.firstName, order.billingAddress?.lastName].filter(Boolean).join(' ') ||
102
- order.billingAddress?.company;
103
-
104
- const customer =
105
- options?.customer ||
106
- (await upsertCustomer({
107
- userId: order.userId,
108
- name,
109
- email: order.contact?.emailAddress,
110
- }));
111
-
105
+ const customer = options?.customer || (await upsertCustomer({ userId, name, email }));
112
106
  const { currency, amount } = pricing.total({ useNetPrice: false });
107
+
113
108
  const paymentIntent = await stripe.paymentIntents.create({
114
109
  amount: Math.round(amount),
115
110
  currency: currency.toLowerCase(),
@@ -117,10 +112,11 @@ export const createOrderPaymentIntent = async (
117
112
  statement_descriptor_suffix: `${order._id.substring(0, 4)}..${order._id.substring(order._id.length - 4)}`,
118
113
  setup_future_usage: 'off_session', // Verify your integration in this guide by including this parameter
119
114
  customer,
115
+ receipt_email: order.contact?.emailAddress,
120
116
  metadata: {
121
- userId: order.userId,
122
117
  orderPaymentId: orderPayment._id,
123
118
  orderId: order._id,
119
+ userId,
124
120
  environment,
125
121
  },
126
122
  ...options,