@commercetools/checkout-payments-processor-sdk 0.0.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.
Files changed (105) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +42 -0
  3. package/biome.json +38 -0
  4. package/package.json +48 -0
  5. package/src/api/context/request-context.helper.test.ts +98 -0
  6. package/src/api/context/request-context.helper.ts +89 -0
  7. package/src/api/context/request-context.provider.ts +27 -0
  8. package/src/api/context/types/request-context.type.ts +18 -0
  9. package/src/api/handlers/payment-components.handler.test.ts +378 -0
  10. package/src/api/handlers/payment-components.handler.ts +80 -0
  11. package/src/api/handlers/payment-intents.handler.test.ts +475 -0
  12. package/src/api/handlers/payment-intents.handler.ts +169 -0
  13. package/src/api/handlers/status.handler.test.ts +551 -0
  14. package/src/api/handlers/status.handler.ts +216 -0
  15. package/src/api/handlers/transaction.handler.ts +86 -0
  16. package/src/api/handlers/types/handler.type.ts +49 -0
  17. package/src/api/hooks/authorize.hook.test.ts +62 -0
  18. package/src/api/hooks/authorize.hook.ts +51 -0
  19. package/src/api/hooks/jwt-auth.hook.test.ts +54 -0
  20. package/src/api/hooks/jwt-auth.hook.ts +56 -0
  21. package/src/api/hooks/oauth2-auth.hook.test.ts +173 -0
  22. package/src/api/hooks/oauth2-auth.hook.ts +46 -0
  23. package/src/api/hooks/session-header-auth.hook.ts +47 -0
  24. package/src/api/hooks/session-query-param-auth.hook.ts +46 -0
  25. package/src/api/hooks/types/hook.type.ts +12 -0
  26. package/src/api/index.ts +11 -0
  27. package/src/api/types.ts +3 -0
  28. package/src/commercetools/api/base-api.ts +28 -0
  29. package/src/commercetools/api/cart-api.test.ts +95 -0
  30. package/src/commercetools/api/cart-api.ts +55 -0
  31. package/src/commercetools/api/custom-type-api.ts +39 -0
  32. package/src/commercetools/api/order-api.ts +22 -0
  33. package/src/commercetools/api/payment-api.ts +64 -0
  34. package/src/commercetools/api/payment-method-api.ts +118 -0
  35. package/src/commercetools/api/root-api.ts +109 -0
  36. package/src/commercetools/errors/ct-api.error.ts +27 -0
  37. package/src/commercetools/helpers/currency.converter.test.ts +121 -0
  38. package/src/commercetools/helpers/currency.converter.test_data.json +2379 -0
  39. package/src/commercetools/helpers/currency.converter.ts +102 -0
  40. package/src/commercetools/helpers/taxrate.converter.test.ts +48 -0
  41. package/src/commercetools/helpers/taxrate.converter.ts +39 -0
  42. package/src/commercetools/index.ts +22 -0
  43. package/src/commercetools/services/ct-cart.service.test.ts +1616 -0
  44. package/src/commercetools/services/ct-cart.service.ts +316 -0
  45. package/src/commercetools/services/ct-custom-type.service.ts +62 -0
  46. package/src/commercetools/services/ct-order.service.test.ts +136 -0
  47. package/src/commercetools/services/ct-order.service.ts +47 -0
  48. package/src/commercetools/services/ct-payment-method.service.test.ts +878 -0
  49. package/src/commercetools/services/ct-payment-method.service.ts +223 -0
  50. package/src/commercetools/services/ct-payment.service.test.ts +1123 -0
  51. package/src/commercetools/services/ct-payment.service.ts +574 -0
  52. package/src/commercetools/types/api.type.ts +162 -0
  53. package/src/commercetools/types/cart.type.ts +83 -0
  54. package/src/commercetools/types/custom-type.type.ts +21 -0
  55. package/src/commercetools/types/order.type.ts +19 -0
  56. package/src/commercetools/types/payment-method.type.ts +130 -0
  57. package/src/commercetools/types/payment.type.ts +74 -0
  58. package/src/commercetools/types/predefined-custom-types.type.ts +240 -0
  59. package/src/commercetools/types.ts +7 -0
  60. package/src/errorx/errorx.ts +625 -0
  61. package/src/errorx/index.ts +1 -0
  62. package/src/errorx/types.ts +5 -0
  63. package/src/fetch/decorators/base.decorator.ts +13 -0
  64. package/src/fetch/decorators/monitoring.decorator.ts +41 -0
  65. package/src/fetch/fetch.test.ts +57 -0
  66. package/src/fetch/index.ts +3 -0
  67. package/src/fetch/types/fetch.type.ts +11 -0
  68. package/src/fetch/types.ts +1 -0
  69. package/src/index.ts +15 -0
  70. package/src/logger/commercetools-logger.ts +69 -0
  71. package/src/logger/index.ts +1 -0
  72. package/src/logger/types/logger.type.ts +6 -0
  73. package/src/logger/types.ts +1 -0
  74. package/src/mocks/auth.mock.ts +6 -0
  75. package/src/mocks/cart.mock.ts +239 -0
  76. package/src/mocks/ct-api-error.mock.ts +23 -0
  77. package/src/mocks/index.ts +4 -0
  78. package/src/mocks/payment.mock.ts +35 -0
  79. package/src/payment-processor.ts +317 -0
  80. package/src/security/authn/authns.ts +219 -0
  81. package/src/security/authn/bearer-utils.test.ts +35 -0
  82. package/src/security/authn/bearer-utils.ts +28 -0
  83. package/src/security/authn/jwt-authn-manager.ts +69 -0
  84. package/src/security/authn/oauth2-authn-manager.ts +105 -0
  85. package/src/security/authn/session-header-authn-manager.ts +58 -0
  86. package/src/security/authn/session-query-param-authn-manager.ts +53 -0
  87. package/src/security/authn/types/authn.type.ts +50 -0
  88. package/src/security/authz/authorization-manager.ts +39 -0
  89. package/src/security/authz/types/authz.type.ts +13 -0
  90. package/src/security/index.ts +13 -0
  91. package/src/security/services/authorization.service.ts +54 -0
  92. package/src/security/services/jwt.service.test.ts +27 -0
  93. package/src/security/services/jwt.service.ts +45 -0
  94. package/src/security/services/oauth2.service.ts +60 -0
  95. package/src/security/services/session.service.ts +141 -0
  96. package/src/security/services/types/authorization.type.ts +10 -0
  97. package/src/security/services/types/jwt.type.ts +3 -0
  98. package/src/security/services/types/oauth2.type.ts +15 -0
  99. package/src/security/services/types/session.type.ts +38 -0
  100. package/src/security/types.ts +6 -0
  101. package/tsconfig.json +28 -0
  102. package/tsconfig.prod.json +9 -0
  103. package/typedoc.json +6 -0
  104. package/vitest.config.ts +15 -0
  105. package/wiki/getting-started.md +13 -0
@@ -0,0 +1,240 @@
1
+ import type { TypeDraft } from '@commercetools/platform-sdk';
2
+
3
+ export const PaymentInterfaceInteractionType = {
4
+ key: 'commercetools-checkout-payment-interface-interaction',
5
+ fields: {
6
+ interactionId: 'interactionId',
7
+ createdAt: 'createdAt',
8
+ request: 'request',
9
+ response: 'response',
10
+ type: 'type',
11
+ },
12
+ };
13
+
14
+ export const CardDetailsType = {
15
+ key: 'commercetools-checkout-card-details-type',
16
+ fields: {
17
+ brand: 'brand',
18
+ lastFour: 'lastFour',
19
+ bin: 'bin',
20
+ expiryMonth: 'expiryMonth',
21
+ expiryYear: 'expiryYear',
22
+ storePaymentMethod: 'storePaymentMethod',
23
+ },
24
+ };
25
+
26
+ export const SepaDetailsType = {
27
+ key: 'commercetools-checkout-sepa-details-type',
28
+ fields: {
29
+ lastFour: 'lastFour',
30
+ },
31
+ };
32
+
33
+ export const CreatePaymentInterfaceInteractionTypePayload: TypeDraft = {
34
+ key: PaymentInterfaceInteractionType.key,
35
+ name: {
36
+ en: 'commercetools Checkout Payment Interface Interaction Type',
37
+ },
38
+ resourceTypeIds: ['payment-interface-interaction'],
39
+ fieldDefinitions: [
40
+ {
41
+ name: PaymentInterfaceInteractionType.fields.interactionId,
42
+ label: {
43
+ en: PaymentInterfaceInteractionType.fields.interactionId,
44
+ },
45
+ required: true,
46
+ type: {
47
+ name: 'String',
48
+ },
49
+ inputHint: 'SingleLine',
50
+ },
51
+ {
52
+ name: PaymentInterfaceInteractionType.fields.createdAt,
53
+ label: {
54
+ en: PaymentInterfaceInteractionType.fields.createdAt,
55
+ },
56
+ required: true,
57
+ type: {
58
+ name: 'DateTime',
59
+ },
60
+ inputHint: 'SingleLine',
61
+ },
62
+ {
63
+ name: PaymentInterfaceInteractionType.fields.request,
64
+ label: {
65
+ en: PaymentInterfaceInteractionType.fields.request,
66
+ },
67
+ required: true,
68
+ type: {
69
+ name: 'String',
70
+ },
71
+ inputHint: 'MultiLine',
72
+ },
73
+ {
74
+ name: PaymentInterfaceInteractionType.fields.response,
75
+ label: {
76
+ en: PaymentInterfaceInteractionType.fields.response,
77
+ },
78
+ required: true,
79
+ type: {
80
+ name: 'String',
81
+ },
82
+ inputHint: 'MultiLine',
83
+ },
84
+ {
85
+ name: PaymentInterfaceInteractionType.fields.type,
86
+ label: {
87
+ en: PaymentInterfaceInteractionType.fields.type,
88
+ },
89
+ required: true,
90
+ type: {
91
+ name: 'String',
92
+ },
93
+ inputHint: 'SingleLine',
94
+ },
95
+ ],
96
+ };
97
+
98
+ export const CreateCardDetailsTypePayload: TypeDraft = {
99
+ key: CardDetailsType.key,
100
+ name: {
101
+ en: 'commercetools Checkout Card Details Type',
102
+ },
103
+ resourceTypeIds: ['payment-method-info', 'payment-method'],
104
+ fieldDefinitions: [
105
+ {
106
+ name: CardDetailsType.fields.brand,
107
+ label: {
108
+ en: 'Card Brand',
109
+ },
110
+ type: {
111
+ name: 'Enum',
112
+ values: [
113
+ {
114
+ key: 'Amex',
115
+ label: 'American Express',
116
+ },
117
+ {
118
+ key: 'Bancontact',
119
+ label: 'Bancontact',
120
+ },
121
+ {
122
+ key: 'CartesBancaires',
123
+ label: 'Cartes Bancaires',
124
+ },
125
+ {
126
+ key: 'Diners',
127
+ label: 'Diners Club',
128
+ },
129
+ {
130
+ key: 'Discover',
131
+ label: 'Discover',
132
+ },
133
+ {
134
+ key: 'EftposAu',
135
+ label: 'Eftpos AU',
136
+ },
137
+ {
138
+ key: 'Jcb',
139
+ label: 'JCB',
140
+ },
141
+ {
142
+ key: 'Link',
143
+ label: 'Link',
144
+ },
145
+ {
146
+ key: 'Maestro',
147
+ label: 'Maestro',
148
+ },
149
+ {
150
+ key: 'Mastercard',
151
+ label: 'Mastercard',
152
+ },
153
+ {
154
+ key: 'UnionPay',
155
+ label: 'UnionPay',
156
+ },
157
+ {
158
+ key: 'Visa',
159
+ label: 'Visa',
160
+ },
161
+ {
162
+ key: 'Unknown',
163
+ label: 'Unknown',
164
+ },
165
+ ],
166
+ },
167
+ required: false,
168
+ },
169
+ {
170
+ name: CardDetailsType.fields.lastFour,
171
+ label: {
172
+ en: 'Last four digits of the card',
173
+ },
174
+ type: {
175
+ name: 'String',
176
+ },
177
+ required: false,
178
+ },
179
+ {
180
+ name: CardDetailsType.fields.bin,
181
+ label: {
182
+ en: 'Card BIN',
183
+ },
184
+ type: {
185
+ name: 'String',
186
+ },
187
+ required: false,
188
+ },
189
+ {
190
+ name: CardDetailsType.fields.expiryMonth,
191
+ label: {
192
+ en: 'Expiry Month',
193
+ },
194
+ type: {
195
+ name: 'Number',
196
+ },
197
+ required: false,
198
+ },
199
+ {
200
+ name: CardDetailsType.fields.expiryYear,
201
+ label: {
202
+ en: 'Expiry Year',
203
+ },
204
+ type: {
205
+ name: 'Number',
206
+ },
207
+ required: false,
208
+ },
209
+ {
210
+ name: CardDetailsType.fields.storePaymentMethod,
211
+ label: {
212
+ en: 'Store Payment Method',
213
+ },
214
+ type: {
215
+ name: 'Boolean',
216
+ },
217
+ required: false,
218
+ },
219
+ ],
220
+ };
221
+
222
+ export const CreateSepaDetailsTypePayload: TypeDraft = {
223
+ key: SepaDetailsType.key,
224
+ name: {
225
+ en: 'commercetools Checkout SEPA Details Type',
226
+ },
227
+ resourceTypeIds: ['payment-method-info', 'payment-method'],
228
+ fieldDefinitions: [
229
+ {
230
+ name: SepaDetailsType.fields.lastFour,
231
+ label: {
232
+ en: 'Last four digits of the IBAN',
233
+ },
234
+ type: {
235
+ name: 'String',
236
+ },
237
+ required: false,
238
+ },
239
+ ],
240
+ };
@@ -0,0 +1,7 @@
1
+ export * from '@/commercetools/types/api.type.js';
2
+ export * from '@/commercetools/types/cart.type.js';
3
+ export * from '@/commercetools/types/custom-type.type.js';
4
+ export * from '@/commercetools/types/order.type.js';
5
+ export * from '@/commercetools/types/payment.type.js';
6
+ export * from '@/commercetools/types/payment-method.type.js';
7
+ export * from '@/commercetools/types/predefined-custom-types.type.js';