@unchainedshop/plugins 4.0.0-rc.4 → 4.0.0-rc.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.
- package/lib/files/gridfs/adapter.d.ts.map +1 -1
- package/lib/files/gridfs/adapter.js +9 -4
- package/lib/files/gridfs/adapter.js.map +1 -1
- package/lib/files/gridfs/handler-express.d.ts.map +1 -1
- package/lib/files/gridfs/handler-express.js +4 -2
- package/lib/files/gridfs/handler-express.js.map +1 -1
- package/lib/files/gridfs/handler-fastify.d.ts.map +1 -1
- package/lib/files/gridfs/handler-fastify.js +4 -2
- package/lib/files/gridfs/handler-fastify.js.map +1 -1
- package/lib/files/gridfs/module.d.ts +2 -2
- package/lib/files/gridfs/module.d.ts.map +1 -1
- package/lib/files/gridfs/module.js +2 -2
- package/lib/files/gridfs/module.js.map +1 -1
- package/lib/payment/apple-iap/adapter.js +1 -1
- package/lib/payment/apple-iap/adapter.js.map +1 -1
- package/lib/payment/apple-iap/handler-express.js +1 -1
- package/lib/payment/apple-iap/handler-express.js.map +1 -1
- package/lib/payment/apple-iap/handler-fastify.js +1 -1
- package/lib/payment/apple-iap/handler-fastify.js.map +1 -1
- package/lib/payment/cryptopay/handle-webhook.js +1 -1
- package/lib/payment/cryptopay/handle-webhook.js.map +1 -1
- package/lib/payment/cryptopay/handler-express.js +1 -1
- package/lib/payment/cryptopay/handler-express.js.map +1 -1
- package/lib/payment/cryptopay/handler-fastify.d.ts.map +1 -1
- package/lib/payment/cryptopay/handler-fastify.js +1 -1
- package/lib/payment/cryptopay/handler-fastify.js.map +1 -1
- package/lib/payment/paypal-checkout.js +5 -7
- package/lib/payment/paypal-checkout.js.map +1 -1
- package/lib/payment/postfinance-checkout/api-client.d.ts +16 -0
- package/lib/payment/postfinance-checkout/api-client.d.ts.map +1 -0
- package/lib/payment/postfinance-checkout/api-client.js +75 -0
- package/lib/payment/postfinance-checkout/api-client.js.map +1 -0
- package/lib/payment/postfinance-checkout/api-types.d.ts +98 -0
- package/lib/payment/postfinance-checkout/api-types.d.ts.map +1 -0
- package/lib/payment/postfinance-checkout/api-types.js +51 -0
- package/lib/payment/postfinance-checkout/api-types.js.map +1 -0
- package/lib/payment/postfinance-checkout/api.d.ts +5 -5
- package/lib/payment/postfinance-checkout/api.d.ts.map +1 -1
- package/lib/payment/postfinance-checkout/api.js +38 -62
- package/lib/payment/postfinance-checkout/api.js.map +1 -1
- package/lib/payment/postfinance-checkout/handler-express.d.ts.map +1 -1
- package/lib/payment/postfinance-checkout/handler-express.js +5 -5
- package/lib/payment/postfinance-checkout/handler-express.js.map +1 -1
- package/lib/payment/postfinance-checkout/handler-fastify.d.ts.map +1 -1
- package/lib/payment/postfinance-checkout/handler-fastify.js +6 -6
- package/lib/payment/postfinance-checkout/handler-fastify.js.map +1 -1
- package/lib/payment/postfinance-checkout/index.d.ts +2 -1
- package/lib/payment/postfinance-checkout/index.d.ts.map +1 -1
- package/lib/payment/postfinance-checkout/index.js +25 -26
- package/lib/payment/postfinance-checkout/index.js.map +1 -1
- package/lib/payment/postfinance-checkout/utils.d.ts +3 -3
- package/lib/payment/postfinance-checkout/utils.d.ts.map +1 -1
- package/lib/payment/postfinance-checkout/utils.js +3 -4
- package/lib/payment/postfinance-checkout/utils.js.map +1 -1
- package/lib/presets/all.d.ts +1 -1
- package/package.json +5 -10
- package/src/files/gridfs/adapter.ts +13 -4
- package/src/files/gridfs/handler-express.ts +8 -2
- package/src/files/gridfs/handler-fastify.ts +8 -2
- package/src/files/gridfs/module.ts +7 -2
- package/src/payment/apple-iap/adapter.ts +1 -1
- package/src/payment/apple-iap/handler-express.ts +1 -1
- package/src/payment/apple-iap/handler-fastify.ts +1 -1
- package/src/payment/cryptopay/handle-webhook.ts +1 -1
- package/src/payment/cryptopay/handler-express.ts +1 -1
- package/src/payment/cryptopay/handler-fastify.ts +2 -2
- package/src/payment/paypal-checkout.ts +5 -10
- package/src/payment/postfinance-checkout/api-client.ts +106 -0
- package/src/payment/postfinance-checkout/api-types.ts +111 -0
- package/src/payment/postfinance-checkout/api.ts +58 -85
- package/src/payment/postfinance-checkout/handler-express.ts +5 -7
- package/src/payment/postfinance-checkout/handler-fastify.ts +6 -8
- package/src/payment/postfinance-checkout/index.ts +41 -31
- package/src/payment/postfinance-checkout/utils.ts +5 -10
- package/lib/accounts/google-oauth.d.ts +0 -4
- package/lib/accounts/google-oauth.d.ts.map +0 -1
- package/lib/accounts/google-oauth.js +0 -145
- package/lib/accounts/google-oauth.js.map +0 -1
- package/lib/accounts/linkedin-oauth.d.ts +0 -4
- package/lib/accounts/linkedin-oauth.d.ts.map +0 -1
- package/lib/accounts/linkedin-oauth.js +0 -82
- package/lib/accounts/linkedin-oauth.js.map +0 -1
- package/lib/files/gridfs/gridfs-adapter.d.ts +0 -3
- package/lib/files/gridfs/gridfs-adapter.d.ts.map +0 -1
- package/lib/files/gridfs/gridfs-adapter.js +0 -97
- package/lib/files/gridfs/gridfs-adapter.js.map +0 -1
- package/lib/files/gridfs/gridfs-webhook.d.ts +0 -11
- package/lib/files/gridfs/gridfs-webhook.d.ts.map +0 -1
- package/lib/files/gridfs/gridfs-webhook.js +0 -84
- package/lib/files/gridfs/gridfs-webhook.js.map +0 -1
- package/lib/files/minio/minio-adapter.d.ts +0 -6
- package/lib/files/minio/minio-adapter.d.ts.map +0 -1
- package/lib/files/minio/minio-adapter.js +0 -181
- package/lib/files/minio/minio-adapter.js.map +0 -1
- package/lib/files/minio/minio-webhook.d.ts +0 -2
- package/lib/files/minio/minio-webhook.d.ts.map +0 -1
- package/lib/files/minio/minio-webhook.js +0 -33
- package/lib/files/minio/minio-webhook.js.map +0 -1
- package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts +0 -9
- package/lib/payment/apple-iap/module/configureAppleTransactionsModule.d.ts.map +0 -1
- package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js +0 -17
- package/lib/payment/apple-iap/module/configureAppleTransactionsModule.js.map +0 -1
- package/lib/payment/cryptopay/middleware.d.ts +0 -2
- package/lib/payment/cryptopay/middleware.d.ts.map +0 -1
- package/lib/payment/cryptopay/middleware.js +0 -75
- package/lib/payment/cryptopay/middleware.js.map +0 -1
- package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts +0 -25
- package/lib/payment/cryptopay/module/configureCryptopayModule.d.ts.map +0 -1
- package/lib/payment/cryptopay/module/configureCryptopayModule.js +0 -75
- package/lib/payment/cryptopay/module/configureCryptopayModule.js.map +0 -1
- package/lib/payment/datatrans-v2/middleware.d.ts +0 -2
- package/lib/payment/datatrans-v2/middleware.d.ts.map +0 -1
- package/lib/payment/datatrans-v2/middleware.js +0 -68
- package/lib/payment/datatrans-v2/middleware.js.map +0 -1
- package/lib/payment/payrexx/middleware.d.ts +0 -2
- package/lib/payment/payrexx/middleware.d.ts.map +0 -1
- package/lib/payment/payrexx/middleware.js +0 -86
- package/lib/payment/payrexx/middleware.js.map +0 -1
- package/lib/payment/postfinance-checkout/middleware.d.ts +0 -2
- package/lib/payment/postfinance-checkout/middleware.d.ts.map +0 -1
- package/lib/payment/postfinance-checkout/middleware.js +0 -38
- package/lib/payment/postfinance-checkout/middleware.js.map +0 -1
- package/lib/payment/saferpay/middleware.d.ts +0 -2
- package/lib/payment/saferpay/middleware.d.ts.map +0 -1
- package/lib/payment/saferpay/middleware.js +0 -57
- package/lib/payment/saferpay/middleware.js.map +0 -1
- package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts +0 -10
- package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.d.ts.map +0 -1
- package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js +0 -24
- package/lib/payment/saferpay/module/configureSaferpayTransactionsModule.js.map +0 -1
- package/lib/payment/stripe/middleware.d.ts +0 -6
- package/lib/payment/stripe/middleware.d.ts.map +0 -1
- package/lib/payment/stripe/middleware.js +0 -114
- package/lib/payment/stripe/middleware.js.map +0 -1
- package/lib/plugins-index.d.ts +0 -48
- package/lib/plugins-index.d.ts.map +0 -1
- package/lib/plugins-index.js +0 -107
- package/lib/plugins-index.js.map +0 -1
- package/lib/worker/BaseWorker.d.ts +0 -30
- package/lib/worker/BaseWorker.d.ts.map +0 -1
- package/lib/worker/BaseWorker.js +0 -79
- package/lib/worker/BaseWorker.js.map +0 -1
- package/lib/worker/EventListenerWorker.d.ts +0 -6
- package/lib/worker/EventListenerWorker.d.ts.map +0 -1
- package/lib/worker/EventListenerWorker.js +0 -46
- package/lib/worker/EventListenerWorker.js.map +0 -1
- package/lib/worker/FailedRescheduler.d.ts +0 -15
- package/lib/worker/FailedRescheduler.d.ts.map +0 -1
- package/lib/worker/FailedRescheduler.js +0 -45
- package/lib/worker/FailedRescheduler.js.map +0 -1
- package/lib/worker/IntervalWorker.d.ts +0 -10
- package/lib/worker/IntervalWorker.d.ts.map +0 -1
- package/lib/worker/IntervalWorker.js +0 -37
- package/lib/worker/IntervalWorker.js.map +0 -1
|
@@ -1,91 +1,55 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { PostFinanceApiClient } from './api-client.js';
|
|
2
|
+
import {
|
|
3
|
+
Transaction,
|
|
4
|
+
TransactionCreate,
|
|
5
|
+
TransactionCompletion,
|
|
6
|
+
Token,
|
|
7
|
+
RefundCreate,
|
|
8
|
+
RefundType,
|
|
9
|
+
} from './api-types.js';
|
|
2
10
|
|
|
3
|
-
const { PostFinanceCheckout } = pf;
|
|
4
11
|
const { PFCHECKOUT_SPACE_ID, PFCHECKOUT_USER_ID, PFCHECKOUT_SECRET } = process.env;
|
|
5
12
|
const SPACE_ID = parseInt(PFCHECKOUT_SPACE_ID as string, 10);
|
|
6
13
|
const USER_ID = parseInt(PFCHECKOUT_USER_ID as string, 10);
|
|
7
14
|
|
|
8
|
-
|
|
9
|
-
return {
|
|
10
|
-
space_id: SPACE_ID,
|
|
11
|
-
user_id: USER_ID,
|
|
12
|
-
api_secret: PFCHECKOUT_SECRET,
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const getTransactionService = () => {
|
|
17
|
-
return new PostFinanceCheckout.api.TransactionService(getConfig());
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
const getTransactionCompletionService = () => {
|
|
21
|
-
return new PostFinanceCheckout.api.TransactionCompletionService(getConfig());
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const getTransactionVoidService = () => {
|
|
25
|
-
return new PostFinanceCheckout.api.TransactionVoidService(getConfig());
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
const getRefundService = () => {
|
|
29
|
-
return new PostFinanceCheckout.api.RefundService(getConfig());
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const getTransactionPaymentPageService = () => {
|
|
33
|
-
return new PostFinanceCheckout.api.TransactionPaymentPageService(getConfig());
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
const getTransactionIframeService = () => {
|
|
37
|
-
return new PostFinanceCheckout.api.TransactionIframeService(getConfig());
|
|
38
|
-
};
|
|
15
|
+
let apiClient: PostFinanceApiClient;
|
|
39
16
|
|
|
40
|
-
const
|
|
41
|
-
|
|
17
|
+
const getApiClient = () => {
|
|
18
|
+
if (!apiClient) {
|
|
19
|
+
apiClient = new PostFinanceApiClient({
|
|
20
|
+
spaceId: SPACE_ID,
|
|
21
|
+
userId: USER_ID,
|
|
22
|
+
apiSecret: PFCHECKOUT_SECRET as string,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return apiClient;
|
|
42
26
|
};
|
|
43
27
|
|
|
44
|
-
const
|
|
45
|
-
|
|
28
|
+
export const getTransaction = async (transactionId: string): Promise<Transaction> => {
|
|
29
|
+
const client = getApiClient();
|
|
30
|
+
return client.get<Transaction>(`/transaction/read?spaceId=${SPACE_ID}&id=${transactionId}`);
|
|
46
31
|
};
|
|
47
32
|
|
|
48
|
-
export const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const transactionService = getTransactionService();
|
|
52
|
-
const transaction = await transactionService.read(SPACE_ID, parseInt(transactionId, 10));
|
|
53
|
-
return transaction.body;
|
|
33
|
+
export const getTransactionCompletion = async (id: string): Promise<TransactionCompletion> => {
|
|
34
|
+
const client = getApiClient();
|
|
35
|
+
return client.get<TransactionCompletion>(`/transaction-completion/read?spaceId=${SPACE_ID}&id=${id}`);
|
|
54
36
|
};
|
|
55
37
|
|
|
56
|
-
export const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const transactionCompletionService = getTransactionCompletionService();
|
|
60
|
-
const transactionCompletion = await transactionCompletionService.read(
|
|
61
|
-
SPACE_ID,
|
|
62
|
-
parseInt(entityId, 10),
|
|
63
|
-
);
|
|
64
|
-
return transactionCompletion.body;
|
|
38
|
+
export const getToken = async (spaceId: number, tokenId: number): Promise<Token> => {
|
|
39
|
+
const client = getApiClient();
|
|
40
|
+
return client.get<Token>(`/token/read?spaceId=${spaceId || SPACE_ID}&id=${tokenId}`);
|
|
65
41
|
};
|
|
66
42
|
|
|
67
|
-
export const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const tokenService = getTokenService();
|
|
72
|
-
const token = await tokenService.read(spaceId || SPACE_ID, tokenId);
|
|
73
|
-
return token.body;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
export const createTransaction = async (
|
|
77
|
-
transaction: pf.PostFinanceCheckout.model.TransactionCreate,
|
|
78
|
-
): Promise<number | null> => {
|
|
79
|
-
const transactionService = getTransactionService();
|
|
80
|
-
const transactionCreateRes = await transactionService.create(SPACE_ID, transaction);
|
|
81
|
-
const transactionCreate = transactionCreateRes.body;
|
|
82
|
-
return transactionCreate.id || null;
|
|
43
|
+
export const createTransaction = async (transaction: TransactionCreate): Promise<number | null> => {
|
|
44
|
+
const client = getApiClient();
|
|
45
|
+
const result = await client.post<Transaction>(`/transaction/create?spaceId=${SPACE_ID}`, transaction);
|
|
46
|
+
return result.id || null;
|
|
83
47
|
};
|
|
84
48
|
|
|
85
49
|
export const voidTransaction = async (transactionId: string): Promise<boolean> => {
|
|
86
|
-
const
|
|
50
|
+
const client = getApiClient();
|
|
87
51
|
try {
|
|
88
|
-
await
|
|
52
|
+
await client.post(`/transaction-void/voidOnline?spaceId=${SPACE_ID}&id=${transactionId}`, {});
|
|
89
53
|
return true;
|
|
90
54
|
} catch {
|
|
91
55
|
return false;
|
|
@@ -97,15 +61,15 @@ export const refundTransaction = async (
|
|
|
97
61
|
orderId: string,
|
|
98
62
|
amount: number,
|
|
99
63
|
): Promise<boolean> => {
|
|
100
|
-
const
|
|
101
|
-
const refund:
|
|
64
|
+
const client = getApiClient();
|
|
65
|
+
const refund: RefundCreate = {
|
|
102
66
|
transaction: parseInt(transactionId, 10),
|
|
103
67
|
externalId: orderId,
|
|
104
68
|
amount,
|
|
105
|
-
type:
|
|
69
|
+
type: RefundType.MERCHANT_INITIATED_ONLINE,
|
|
106
70
|
};
|
|
107
71
|
try {
|
|
108
|
-
await
|
|
72
|
+
await client.post(`/refund/refund?spaceId=${SPACE_ID}`, refund);
|
|
109
73
|
return true;
|
|
110
74
|
} catch {
|
|
111
75
|
return false;
|
|
@@ -113,9 +77,12 @@ export const refundTransaction = async (
|
|
|
113
77
|
};
|
|
114
78
|
|
|
115
79
|
export const confirmDeferredTransaction = async (transactionId: string): Promise<boolean> => {
|
|
116
|
-
const
|
|
80
|
+
const client = getApiClient();
|
|
117
81
|
try {
|
|
118
|
-
await
|
|
82
|
+
await client.post(
|
|
83
|
+
`/transaction-completion/completeOnline?spaceId=${SPACE_ID}&transactionId=${transactionId}`,
|
|
84
|
+
{},
|
|
85
|
+
);
|
|
119
86
|
return true;
|
|
120
87
|
} catch {
|
|
121
88
|
return false;
|
|
@@ -123,19 +90,25 @@ export const confirmDeferredTransaction = async (transactionId: string): Promise
|
|
|
123
90
|
};
|
|
124
91
|
|
|
125
92
|
export const getPaymentPageUrl = async (transactionId: number): Promise<string> => {
|
|
126
|
-
const
|
|
127
|
-
const
|
|
128
|
-
|
|
93
|
+
const client = getApiClient();
|
|
94
|
+
const result = await client.get<string>(
|
|
95
|
+
`/transaction-payment-page/payment-page-url?spaceId=${SPACE_ID}&id=${transactionId}`,
|
|
96
|
+
);
|
|
97
|
+
return result;
|
|
129
98
|
};
|
|
130
99
|
|
|
131
100
|
export const getLightboxJavascriptUrl = async (transactionId: number): Promise<string> => {
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
|
|
101
|
+
const client = getApiClient();
|
|
102
|
+
const result = await client.get<string>(
|
|
103
|
+
`/transaction-lightbox/javascript-url?spaceId=${SPACE_ID}&id=${transactionId}`,
|
|
104
|
+
);
|
|
105
|
+
return result;
|
|
135
106
|
};
|
|
136
107
|
|
|
137
108
|
export const getIframeJavascriptUrl = async (transactionId: number): Promise<string> => {
|
|
138
|
-
const
|
|
139
|
-
const
|
|
140
|
-
|
|
109
|
+
const client = getApiClient();
|
|
110
|
+
const result = await client.get<string>(
|
|
111
|
+
`/transaction-iframe/javascript-url?spaceId=${SPACE_ID}&id=${transactionId}`,
|
|
112
|
+
);
|
|
113
|
+
return result;
|
|
141
114
|
};
|
|
@@ -3,7 +3,7 @@ import { createLogger } from '@unchainedshop/logger';
|
|
|
3
3
|
import { WebhookData } from './types.js';
|
|
4
4
|
import { getTransaction, getTransactionCompletion } from './api.js';
|
|
5
5
|
|
|
6
|
-
const logger = createLogger('unchained:core-payment:postfinance-checkout');
|
|
6
|
+
const logger = createLogger('unchained:core-payment:postfinance-checkout:handler');
|
|
7
7
|
|
|
8
8
|
export const postfinanceCheckoutHandler = async (req, res) => {
|
|
9
9
|
const context = req.unchainedContext as Context;
|
|
@@ -13,7 +13,7 @@ export const postfinanceCheckoutHandler = async (req, res) => {
|
|
|
13
13
|
try {
|
|
14
14
|
const transactionCompletion = await getTransactionCompletion(data.entityId as unknown as string);
|
|
15
15
|
const transaction = await getTransaction(
|
|
16
|
-
transactionCompletion
|
|
16
|
+
transactionCompletion ? (transactionCompletion as any).linkedTransaction : data.entityId,
|
|
17
17
|
);
|
|
18
18
|
const { orderPaymentId } = transaction.metaData as { orderPaymentId: string };
|
|
19
19
|
const orderPayment = await modules.orders.payments.findOrderPayment({
|
|
@@ -27,19 +27,17 @@ export const postfinanceCheckoutHandler = async (req, res) => {
|
|
|
27
27
|
},
|
|
28
28
|
});
|
|
29
29
|
logger.info(
|
|
30
|
-
`
|
|
30
|
+
`Transaction ${transactionCompletion.linkedTransaction} marked order payment ID ${transaction.metaData.orderPaymentId} as paid`,
|
|
31
31
|
);
|
|
32
32
|
res.writeHead(200);
|
|
33
33
|
res.end(`Order marked as paid: ${order.orderNumber}`);
|
|
34
34
|
} catch (e) {
|
|
35
|
-
logger.error(
|
|
35
|
+
logger.error(e);
|
|
36
36
|
res.writeHead(500);
|
|
37
37
|
res.end(JSON.stringify({ name: e.name, code: e.code, message: e.message }));
|
|
38
38
|
}
|
|
39
39
|
} else {
|
|
40
|
-
logger.error(
|
|
41
|
-
`PostFinance Checkout Webhook: Received unknown listenerEntityTechnicalName ${data.listenerEntityTechnicalName}`,
|
|
42
|
-
);
|
|
40
|
+
logger.error(`Received unknown listenerEntityTechnicalName ${data.listenerEntityTechnicalName}`);
|
|
43
41
|
res.writeHead(404);
|
|
44
42
|
res.end();
|
|
45
43
|
}
|
|
@@ -4,7 +4,7 @@ import { WebhookData } from './types.js';
|
|
|
4
4
|
import { getTransaction, getTransactionCompletion } from './api.js';
|
|
5
5
|
import { FastifyRequest, RouteHandlerMethod } from 'fastify';
|
|
6
6
|
|
|
7
|
-
const logger = createLogger('unchained:core-payment:postfinance-checkout');
|
|
7
|
+
const logger = createLogger('unchained:core-payment:postfinance-checkout:handler');
|
|
8
8
|
|
|
9
9
|
export const postfinanceCheckoutHandler: RouteHandlerMethod = async (
|
|
10
10
|
req: FastifyRequest & {
|
|
@@ -19,7 +19,7 @@ export const postfinanceCheckoutHandler: RouteHandlerMethod = async (
|
|
|
19
19
|
try {
|
|
20
20
|
const transactionCompletion = await getTransactionCompletion(data.entityId as unknown as string);
|
|
21
21
|
const transaction = await getTransaction(
|
|
22
|
-
transactionCompletion
|
|
22
|
+
transactionCompletion ? (transactionCompletion as any).linkedTransaction : data.entityId,
|
|
23
23
|
);
|
|
24
24
|
const { orderPaymentId } = transaction.metaData as { orderPaymentId: string };
|
|
25
25
|
const orderPayment = await modules.orders.payments.findOrderPayment({
|
|
@@ -29,23 +29,21 @@ export const postfinanceCheckoutHandler: RouteHandlerMethod = async (
|
|
|
29
29
|
|
|
30
30
|
const order = await services.orders.checkoutOrder(orderPayment.orderId, {
|
|
31
31
|
paymentContext: {
|
|
32
|
-
transactionId:
|
|
32
|
+
transactionId: transaction.id,
|
|
33
33
|
},
|
|
34
34
|
});
|
|
35
35
|
logger.info(
|
|
36
|
-
`
|
|
36
|
+
`Transaction ${transaction.id} marked order payment ID ${transaction.metaData.orderPaymentId} as paid`,
|
|
37
37
|
);
|
|
38
38
|
reply.status(200);
|
|
39
39
|
return reply.send(`Order marked as paid: ${order.orderNumber}`);
|
|
40
40
|
} catch (e) {
|
|
41
|
-
logger.error(
|
|
41
|
+
logger.error(e);
|
|
42
42
|
reply.status(500);
|
|
43
43
|
return reply.send({ name: e.name, code: e.code, message: e.message });
|
|
44
44
|
}
|
|
45
45
|
} else {
|
|
46
|
-
logger.error(
|
|
47
|
-
`PostFinance Checkout Webhook: Received unknown listenerEntityTechnicalName ${data.listenerEntityTechnicalName}`,
|
|
48
|
-
);
|
|
46
|
+
logger.error(`Received unknown listenerEntityTechnicalName ${data.listenerEntityTechnicalName}`);
|
|
49
47
|
reply.status(404);
|
|
50
48
|
return reply.send();
|
|
51
49
|
}
|
|
@@ -8,7 +8,6 @@ import {
|
|
|
8
8
|
PaymentDirector,
|
|
9
9
|
PaymentError,
|
|
10
10
|
} from '@unchainedshop/core';
|
|
11
|
-
import * as pf from 'postfinancecheckout';
|
|
12
11
|
|
|
13
12
|
import {
|
|
14
13
|
confirmDeferredTransaction,
|
|
@@ -23,8 +22,15 @@ import {
|
|
|
23
22
|
} from './api.js';
|
|
24
23
|
import { orderIsPaid } from './utils.js';
|
|
25
24
|
import { CompletionModes, IntegrationModes, SignResponse } from './types.js';
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
import {
|
|
26
|
+
TransactionCreate,
|
|
27
|
+
LineItem,
|
|
28
|
+
LineItemType,
|
|
29
|
+
TokenizationMode,
|
|
30
|
+
TransactionCompletionBehavior,
|
|
31
|
+
TransactionState,
|
|
32
|
+
CreationEntityState,
|
|
33
|
+
} from './api-types.js';
|
|
28
34
|
|
|
29
35
|
const {
|
|
30
36
|
PFCHECKOUT_SPACE_ID,
|
|
@@ -34,7 +40,7 @@ const {
|
|
|
34
40
|
PFCHECKOUT_FAILED_URL,
|
|
35
41
|
} = process.env;
|
|
36
42
|
|
|
37
|
-
const logger = createLogger('unchained:core-payment:postfinance');
|
|
43
|
+
const logger = createLogger('unchained:core-payment:postfinance-checkout');
|
|
38
44
|
|
|
39
45
|
const newError = ({ code, message }: { code: string; message: string }) => {
|
|
40
46
|
const error = new Error(message);
|
|
@@ -92,7 +98,7 @@ const PostfinanceCheckout: IPaymentAdapter = {
|
|
|
92
98
|
if (!credentials.meta) return false;
|
|
93
99
|
const { linkedSpaceId } = credentials.meta;
|
|
94
100
|
const tokenData = await getToken(linkedSpaceId, credentials.token);
|
|
95
|
-
return tokenData.state ===
|
|
101
|
+
return tokenData.state === CreationEntityState.ACTIVE;
|
|
96
102
|
},
|
|
97
103
|
|
|
98
104
|
sign: async (transactionContext: any = {}) => {
|
|
@@ -107,37 +113,38 @@ const PostfinanceCheckout: IPaymentAdapter = {
|
|
|
107
113
|
});
|
|
108
114
|
|
|
109
115
|
const totalAmount = pricing?.total({ useNetPrice: false }).amount;
|
|
110
|
-
const transaction =
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
116
|
+
const transaction: TransactionCreate = {
|
|
117
|
+
currency: order.currencyCode,
|
|
118
|
+
metaData: {
|
|
119
|
+
orderPaymentId: orderPayment._id,
|
|
120
|
+
},
|
|
121
|
+
successUrl: `${transactionContext?.successUrl || PFCHECKOUT_SUCCESS_URL}?order_id=${
|
|
122
|
+
orderPayment.orderId
|
|
123
|
+
}`,
|
|
124
|
+
failedUrl: `${transactionContext?.failedUrl || PFCHECKOUT_FAILED_URL}?order_id=${
|
|
125
|
+
orderPayment.orderId
|
|
126
|
+
}`,
|
|
127
|
+
customerId: order?.userId || context?.userId,
|
|
128
|
+
tokenizationMode: TokenizationMode.ALLOW_ONE_CLICK_PAYMENT,
|
|
115
129
|
};
|
|
116
|
-
|
|
117
|
-
orderPayment.orderId
|
|
118
|
-
}`;
|
|
119
|
-
transaction.failedUrl = `${transactionContext?.failedUrl || PFCHECKOUT_FAILED_URL}?order_id=${
|
|
120
|
-
orderPayment.orderId
|
|
121
|
-
}`;
|
|
122
|
-
transaction.customerId = userId;
|
|
123
|
-
transaction.tokenizationMode =
|
|
124
|
-
PostFinanceCheckout.model.TokenizationMode.ALLOW_ONE_CLICK_PAYMENT;
|
|
130
|
+
|
|
125
131
|
if (completionMode === CompletionModes.Immediate) {
|
|
126
|
-
transaction.completionBehavior =
|
|
127
|
-
PostFinanceCheckout.model.TransactionCompletionBehavior.COMPLETE_IMMEDIATELY;
|
|
132
|
+
transaction.completionBehavior = TransactionCompletionBehavior.COMPLETE_IMMEDIATELY;
|
|
128
133
|
} else if (completionMode === CompletionModes.Deferred) {
|
|
129
|
-
transaction.completionBehavior =
|
|
130
|
-
PostFinanceCheckout.model.TransactionCompletionBehavior.COMPLETE_DEFERRED;
|
|
134
|
+
transaction.completionBehavior = TransactionCompletionBehavior.COMPLETE_DEFERRED;
|
|
131
135
|
}
|
|
136
|
+
|
|
132
137
|
if (totalAmount) {
|
|
133
|
-
const lineItemSum =
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
const lineItemSum: LineItem = {
|
|
139
|
+
name: `Bestellung ${orderPayment.orderId}`,
|
|
140
|
+
type: LineItemType.FEE,
|
|
141
|
+
quantity: 1,
|
|
142
|
+
uniqueId: orderPayment.orderId,
|
|
143
|
+
amountIncludingTax: totalAmount / 100,
|
|
144
|
+
};
|
|
139
145
|
transaction.lineItems = [lineItemSum];
|
|
140
146
|
}
|
|
147
|
+
|
|
141
148
|
const transactionId = await createTransaction(transaction);
|
|
142
149
|
let location = null;
|
|
143
150
|
if (integrationMode === IntegrationModes.PaymentPage) {
|
|
@@ -214,7 +221,7 @@ const PostfinanceCheckout: IPaymentAdapter = {
|
|
|
214
221
|
return false;
|
|
215
222
|
}
|
|
216
223
|
const transaction = await getTransaction(transactionId);
|
|
217
|
-
const refund = transaction.state ===
|
|
224
|
+
const refund = transaction.state === TransactionState.FULFILL;
|
|
218
225
|
const pricing = OrderPricingSheet({
|
|
219
226
|
calculation: order.calculation,
|
|
220
227
|
currencyCode: order.currencyCode,
|
|
@@ -235,7 +242,7 @@ const PostfinanceCheckout: IPaymentAdapter = {
|
|
|
235
242
|
return false;
|
|
236
243
|
}
|
|
237
244
|
const transaction = await getTransaction(transactionId);
|
|
238
|
-
if (transaction.state ===
|
|
245
|
+
if (transaction.state === TransactionState.AUTHORIZED) {
|
|
239
246
|
return confirmDeferredTransaction(transactionId);
|
|
240
247
|
}
|
|
241
248
|
return false;
|
|
@@ -247,3 +254,6 @@ const PostfinanceCheckout: IPaymentAdapter = {
|
|
|
247
254
|
};
|
|
248
255
|
|
|
249
256
|
PaymentDirector.registerAdapter(PostfinanceCheckout);
|
|
257
|
+
|
|
258
|
+
export * from './types.js';
|
|
259
|
+
export * from './api-types.js';
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
import { OrderPricingSheet } from '@unchainedshop/core';
|
|
2
2
|
import { Order } from '@unchainedshop/core-orders';
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
const { PostFinanceCheckout } = pf;
|
|
3
|
+
import { Transaction, TransactionState } from './api-types.js';
|
|
6
4
|
|
|
7
5
|
export const transactionIsPaid = async (
|
|
8
|
-
transaction:
|
|
6
|
+
transaction: Transaction,
|
|
9
7
|
expectedCurrency: string,
|
|
10
8
|
expectedAmount: number,
|
|
11
9
|
): Promise<boolean> => {
|
|
12
|
-
if (transaction.state ===
|
|
10
|
+
if (transaction.state === TransactionState.FULFILL) {
|
|
13
11
|
return (
|
|
14
12
|
transaction.completedAmount !== undefined &&
|
|
15
13
|
transaction.completedAmount.toFixed(2) === expectedAmount.toFixed(2) &&
|
|
16
14
|
transaction.currency === expectedCurrency
|
|
17
15
|
);
|
|
18
16
|
}
|
|
19
|
-
if (transaction.state ===
|
|
17
|
+
if (transaction.state === TransactionState.AUTHORIZED) {
|
|
20
18
|
return (
|
|
21
19
|
transaction.authorizationAmount !== undefined &&
|
|
22
20
|
transaction.authorizationAmount.toFixed(2) === expectedAmount.toFixed(2) &&
|
|
@@ -26,10 +24,7 @@ export const transactionIsPaid = async (
|
|
|
26
24
|
return false;
|
|
27
25
|
};
|
|
28
26
|
|
|
29
|
-
export const orderIsPaid = async (
|
|
30
|
-
order: Order,
|
|
31
|
-
transaction: pf.PostFinanceCheckout.model.Transaction,
|
|
32
|
-
): Promise<boolean> => {
|
|
27
|
+
export const orderIsPaid = async (order: Order, transaction: Transaction): Promise<boolean> => {
|
|
33
28
|
const pricing = OrderPricingSheet({
|
|
34
29
|
calculation: order.calculation,
|
|
35
30
|
currencyCode: order.currencyCode,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"google-oauth.d.ts","sourceRoot":"","sources":["../../src/accounts/google-oauth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAmFlE,QAAA,MAAM,mBAAmB,EAAE,cA4F1B,CAAC;AAIF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { OAuth2Director, OAuth2Adapter } from '@unchainedshop/core-accountsjs';
|
|
2
|
-
const { GOOGLE_OAUTH_CLIENT_ID, GOOGLE_OAUTH_CLIENT_SECRET } = process.env;
|
|
3
|
-
const getGoggleAuthorizationCode = async ({ code, redirectUri, clientId, clientSecret, }) => {
|
|
4
|
-
const response = await fetch('https://oauth2.googleapis.com/token', {
|
|
5
|
-
method: 'POST',
|
|
6
|
-
headers: {
|
|
7
|
-
'Content-Type': 'application/json',
|
|
8
|
-
},
|
|
9
|
-
// eslint-disable-next-line
|
|
10
|
-
// @ts-ignore
|
|
11
|
-
duplex: 'half',
|
|
12
|
-
body: JSON.stringify({
|
|
13
|
-
code,
|
|
14
|
-
client_id: clientId,
|
|
15
|
-
grant_type: 'authorization_code',
|
|
16
|
-
client_secret: clientSecret,
|
|
17
|
-
redirect_uri: redirectUri,
|
|
18
|
-
access_type: 'offline',
|
|
19
|
-
}),
|
|
20
|
-
});
|
|
21
|
-
return response.json();
|
|
22
|
-
};
|
|
23
|
-
const normalizeProfileData = (data) => {
|
|
24
|
-
const { names = [], genders = [], addresses = [], emailAddresses = [], phoneNumbers = [], birthdays = [], photos = [], } = data;
|
|
25
|
-
const [name] = names;
|
|
26
|
-
const [gender] = genders;
|
|
27
|
-
const [email] = emailAddresses;
|
|
28
|
-
const [birthday] = birthdays;
|
|
29
|
-
const [phone] = phoneNumbers;
|
|
30
|
-
const [address] = addresses;
|
|
31
|
-
const [photo] = photos;
|
|
32
|
-
return {
|
|
33
|
-
id: data.sub,
|
|
34
|
-
firstName: name?.givenName,
|
|
35
|
-
lastName: name?.familyName,
|
|
36
|
-
displayName: name?.displayName,
|
|
37
|
-
gender: gender?.value,
|
|
38
|
-
email: email?.value,
|
|
39
|
-
birthDate: birthday?.date
|
|
40
|
-
? new Date(birthday?.date?.year ?? 0, birthdays?.date?.month ?? 0, birthday?.date?.day ?? 0)
|
|
41
|
-
: undefined,
|
|
42
|
-
phoneNumber: phone?.canonicalForm,
|
|
43
|
-
address: address?.formattedValue,
|
|
44
|
-
avatarUrl: photo?.url,
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
const parseGoogleIdToken = (idToken) => {
|
|
48
|
-
const [, base64UserInfo] = idToken.split('.');
|
|
49
|
-
const buff = Buffer.from(base64UserInfo, 'base64');
|
|
50
|
-
const data = JSON.parse(buff.toString());
|
|
51
|
-
return {
|
|
52
|
-
id: data.sub,
|
|
53
|
-
email: data?.email,
|
|
54
|
-
firstName: data?.given_name,
|
|
55
|
-
lastName: data?.family_name,
|
|
56
|
-
avatarUrl: data?.picture,
|
|
57
|
-
fullName: data?.name,
|
|
58
|
-
exp: data?.exp,
|
|
59
|
-
...data,
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
const GoogleOAuth2Adapter = {
|
|
63
|
-
...OAuth2Adapter,
|
|
64
|
-
key: 'google-oauth2',
|
|
65
|
-
label: 'Google Oauth',
|
|
66
|
-
version: '1',
|
|
67
|
-
provider: 'google',
|
|
68
|
-
config: {
|
|
69
|
-
clientId: GOOGLE_OAUTH_CLIENT_ID,
|
|
70
|
-
scopes: [
|
|
71
|
-
'genders',
|
|
72
|
-
'emailAddresses',
|
|
73
|
-
'phoneNumbers',
|
|
74
|
-
'addresses',
|
|
75
|
-
'birthdays',
|
|
76
|
-
'metadata',
|
|
77
|
-
'names',
|
|
78
|
-
'photos',
|
|
79
|
-
'locations',
|
|
80
|
-
],
|
|
81
|
-
},
|
|
82
|
-
actions: () => {
|
|
83
|
-
return {
|
|
84
|
-
...OAuth2Adapter.actions(null),
|
|
85
|
-
configurationError: () => {
|
|
86
|
-
return '';
|
|
87
|
-
},
|
|
88
|
-
isActive: () => {
|
|
89
|
-
return Boolean(GOOGLE_OAUTH_CLIENT_ID && GOOGLE_OAUTH_CLIENT_SECRET);
|
|
90
|
-
},
|
|
91
|
-
getAuthorizationToken: async (authorizationCode, redirectUrl) => {
|
|
92
|
-
return getGoggleAuthorizationCode({
|
|
93
|
-
code: authorizationCode,
|
|
94
|
-
clientId: GoogleOAuth2Adapter.config.clientId,
|
|
95
|
-
redirectUri: redirectUrl,
|
|
96
|
-
clientSecret: GOOGLE_OAUTH_CLIENT_SECRET,
|
|
97
|
-
});
|
|
98
|
-
},
|
|
99
|
-
getAccountData: async ({ access_token, id_token }) => {
|
|
100
|
-
const response = await fetch(`https://people.googleapis.com/v1/people/me?personFields=${GoogleOAuth2Adapter.config.scopes.join(',')}`, {
|
|
101
|
-
headers: {
|
|
102
|
-
Authorization: `Bearer ${access_token}`,
|
|
103
|
-
},
|
|
104
|
-
});
|
|
105
|
-
if (response.status === 403)
|
|
106
|
-
return parseGoogleIdToken(id_token);
|
|
107
|
-
const profileInfoJSON = await response.json();
|
|
108
|
-
if (profileInfoJSON?.error)
|
|
109
|
-
throw new Error(profileInfoJSON?.error.message);
|
|
110
|
-
return normalizeProfileData(profileInfoJSON);
|
|
111
|
-
},
|
|
112
|
-
isTokenValid: async (accessToken) => {
|
|
113
|
-
const response = await fetch(`https://oauth2.googleapis.com/tokeninfo?id_token=${accessToken?.id_token}`);
|
|
114
|
-
const tokenInfo = await response.json();
|
|
115
|
-
if (tokenInfo.error) {
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
return true;
|
|
119
|
-
},
|
|
120
|
-
refreshToken: async ({ refresh_token }) => {
|
|
121
|
-
const response = await fetch('https://oauth2.googleapis.com/token', {
|
|
122
|
-
method: 'POST',
|
|
123
|
-
// eslint-disable-next-line
|
|
124
|
-
// @ts-ignore
|
|
125
|
-
duplex: 'half',
|
|
126
|
-
headers: {
|
|
127
|
-
'Content-Type': 'application/json',
|
|
128
|
-
},
|
|
129
|
-
body: JSON.stringify({
|
|
130
|
-
client_id: GoogleOAuth2Adapter.config.clientId,
|
|
131
|
-
grant_type: 'refresh_token',
|
|
132
|
-
client_secret: GOOGLE_OAUTH_CLIENT_SECRET,
|
|
133
|
-
refresh_token,
|
|
134
|
-
access_type: 'offline',
|
|
135
|
-
}),
|
|
136
|
-
});
|
|
137
|
-
const refreshedAccessToken = await response.json();
|
|
138
|
-
return refreshedAccessToken;
|
|
139
|
-
},
|
|
140
|
-
};
|
|
141
|
-
},
|
|
142
|
-
};
|
|
143
|
-
OAuth2Director.registerAdapter(GoogleOAuth2Adapter);
|
|
144
|
-
export default GoogleOAuth2Adapter;
|
|
145
|
-
//# sourceMappingURL=google-oauth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"google-oauth.js","sourceRoot":"","sources":["../../src/accounts/google-oauth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/E,MAAM,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE3E,MAAM,0BAA0B,GAAG,KAAK,EAAE,EACxC,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,YAAY,GACb,EAAgB,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,qCAAqC,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;QACD,2BAA2B;QAC3B,aAAa;QACb,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI;YACJ,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,oBAAoB;YAChC,aAAa,EAAE,YAAY;YAC3B,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,SAAS;SACvB,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,EAAE;IACpC,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,EAAE,EACZ,SAAS,GAAG,EAAE,EACd,cAAc,GAAG,EAAE,EACnB,YAAY,GAAG,EAAE,EACjB,SAAS,GAAG,EAAE,EACd,MAAM,GAAG,EAAE,GACZ,GAAG,IAAI,CAAC;IACT,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;IACzB,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC;IAC/B,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;IAC7B,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IAEvB,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,GAAG;QACZ,SAAS,EAAE,IAAI,EAAE,SAAS;QAC1B,QAAQ,EAAE,IAAI,EAAE,UAAU;QAC1B,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,MAAM,EAAE,MAAM,EAAE,KAAK;QACrB,KAAK,EAAE,KAAK,EAAE,KAAK;QACnB,SAAS,EAAE,QAAQ,EAAE,IAAI;YACvB,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YAC5F,CAAC,CAAC,SAAS;QACb,WAAW,EAAE,KAAK,EAAE,aAAa;QACjC,OAAO,EAAE,OAAO,EAAE,cAAc;QAChC,SAAS,EAAE,KAAK,EAAE,GAAG;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,EAAE;IAC7C,MAAM,CAAC,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEzC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,GAAG;QACZ,KAAK,EAAE,IAAI,EAAE,KAAK;QAClB,SAAS,EAAE,IAAI,EAAE,UAAU;QAC3B,QAAQ,EAAE,IAAI,EAAE,WAAW;QAC3B,SAAS,EAAE,IAAI,EAAE,OAAO;QACxB,QAAQ,EAAE,IAAI,EAAE,IAAI;QACpB,GAAG,EAAE,IAAI,EAAE,GAAG;QACd,GAAG,IAAI;KACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAmB;IAC1C,GAAG,aAAa;IAChB,GAAG,EAAE,eAAe;IACpB,KAAK,EAAE,cAAc;IACrB,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE;QACN,QAAQ,EAAE,sBAAsB;QAChC,MAAM,EAAE;YACN,SAAS;YACT,gBAAgB;YAChB,cAAc;YACd,WAAW;YACX,WAAW;YACX,UAAU;YACV,OAAO;YACP,QAAQ;YACR,WAAW;SACZ;KACF;IAED,OAAO,EAAE,GAAG,EAAE;QACZ,OAAO;YACL,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,kBAAkB,EAAE,GAAG,EAAE;gBACvB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,OAAO,OAAO,CAAC,sBAAsB,IAAI,0BAA0B,CAAC,CAAC;YACvE,CAAC;YACD,qBAAqB,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAAE;gBAC9D,OAAO,0BAA0B,CAAC;oBAChC,IAAI,EAAE,iBAAiB;oBACvB,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ;oBAC7C,WAAW,EAAE,WAAW;oBACxB,YAAY,EAAE,0BAA0B;iBACzC,CAAC,CAAC;YACL,CAAC;YACD,cAAc,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAO,EAAE,EAAE;gBACxD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,2DAA2D,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAC/F,GAAG,CACJ,EAAE,EACH;oBACE,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,YAAY,EAAE;qBACxC;iBACF,CACF,CAAC;gBACF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;oBAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACjE,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC9C,IAAI,eAAe,EAAE,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAE5E,OAAO,oBAAoB,CAAC,eAAe,CAAC,CAAC;YAC/C,CAAC;YACD,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;gBAClC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,oDAAoD,WAAW,EAAE,QAAQ,EAAE,CAC5E,CAAC;gBAEF,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAExC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpB,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YACD,YAAY,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;gBACxC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,qCAAqC,EAAE;oBAClE,MAAM,EAAE,MAAM;oBACd,2BAA2B;oBAC3B,aAAa;oBACb,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ;wBAC9C,UAAU,EAAE,eAAe;wBAC3B,aAAa,EAAE,0BAA0B;wBACzC,aAAa;wBACb,WAAW,EAAE,SAAS;qBACvB,CAAC;iBACH,CAAC,CAAC;gBAEH,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEnD,OAAO,oBAAoB,CAAC;YAC9B,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,cAAc,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAEpD,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"linkedin-oauth.d.ts","sourceRoot":"","sources":["../../src/accounts/linkedin-oauth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AA2ClE,QAAA,MAAM,oBAAoB,EAAE,cAsD3B,CAAC;AAIF,eAAe,oBAAoB,CAAC"}
|