@bates-solutions/squareup 0.1.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/LICENSE +21 -0
- package/README.md +154 -0
- package/README.md.backup +292 -0
- package/dist/angular/__tests__/setup.d.ts +1 -0
- package/dist/angular/__tests__/setup.d.ts.map +1 -0
- package/dist/angular/__tests__/setup.js +5 -0
- package/dist/angular/__tests__/setup.js.map +1 -0
- package/dist/angular/components/index.d.ts +2 -0
- package/dist/angular/components/index.d.ts.map +1 -0
- package/dist/angular/components/index.js +2 -0
- package/dist/angular/components/index.js.map +1 -0
- package/dist/angular/components/payment-button.component.d.ts +49 -0
- package/dist/angular/components/payment-button.component.d.ts.map +1 -0
- package/dist/angular/components/payment-button.component.js +176 -0
- package/dist/angular/components/payment-button.component.js.map +1 -0
- package/dist/angular/directives/index.d.ts +2 -0
- package/dist/angular/directives/index.d.ts.map +1 -0
- package/dist/angular/directives/index.js +2 -0
- package/dist/angular/directives/index.js.map +1 -0
- package/dist/angular/directives/square-card.directive.d.ts +52 -0
- package/dist/angular/directives/square-card.directive.d.ts.map +1 -0
- package/dist/angular/directives/square-card.directive.js +98 -0
- package/dist/angular/directives/square-card.directive.js.map +1 -0
- package/dist/angular/index.d.ts +42 -0
- package/dist/angular/index.d.ts.map +1 -0
- package/dist/angular/index.js +45 -0
- package/dist/angular/index.js.map +1 -0
- package/dist/angular/services/index.d.ts +6 -0
- package/dist/angular/services/index.d.ts.map +1 -0
- package/dist/angular/services/index.js +6 -0
- package/dist/angular/services/index.js.map +1 -0
- package/dist/angular/services/square-catalog.service.d.ts +60 -0
- package/dist/angular/services/square-catalog.service.d.ts.map +1 -0
- package/dist/angular/services/square-catalog.service.js +152 -0
- package/dist/angular/services/square-catalog.service.js.map +1 -0
- package/dist/angular/services/square-customers.service.d.ts +77 -0
- package/dist/angular/services/square-customers.service.d.ts.map +1 -0
- package/dist/angular/services/square-customers.service.js +187 -0
- package/dist/angular/services/square-customers.service.js.map +1 -0
- package/dist/angular/services/square-orders.service.d.ts +66 -0
- package/dist/angular/services/square-orders.service.d.ts.map +1 -0
- package/dist/angular/services/square-orders.service.js +170 -0
- package/dist/angular/services/square-orders.service.js.map +1 -0
- package/dist/angular/services/square-payments.service.d.ts +73 -0
- package/dist/angular/services/square-payments.service.d.ts.map +1 -0
- package/dist/angular/services/square-payments.service.js +167 -0
- package/dist/angular/services/square-payments.service.js.map +1 -0
- package/dist/angular/services/square-sdk.service.d.ts +45 -0
- package/dist/angular/services/square-sdk.service.d.ts.map +1 -0
- package/dist/angular/services/square-sdk.service.js +133 -0
- package/dist/angular/services/square-sdk.service.js.map +1 -0
- package/dist/angular/square.module.d.ts +36 -0
- package/dist/angular/square.module.d.ts.map +1 -0
- package/dist/angular/square.module.js +75 -0
- package/dist/angular/square.module.js.map +1 -0
- package/dist/angular/types.d.ts +189 -0
- package/dist/angular/types.d.ts.map +1 -0
- package/dist/angular/types.js +8 -0
- package/dist/angular/types.js.map +1 -0
- package/dist/core/builders/order.builder.d.ts +140 -0
- package/dist/core/builders/order.builder.d.ts.map +1 -0
- package/dist/core/builders/order.builder.js +185 -0
- package/dist/core/builders/order.builder.js.map +1 -0
- package/dist/core/client.d.ts +93 -0
- package/dist/core/client.d.ts.map +1 -0
- package/dist/core/client.js +99 -0
- package/dist/core/client.js.map +1 -0
- package/dist/core/errors.d.ts +55 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +118 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +18 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/services/catalog.service.d.ts +218 -0
- package/dist/core/services/catalog.service.d.ts.map +1 -0
- package/dist/core/services/catalog.service.js +274 -0
- package/dist/core/services/catalog.service.js.map +1 -0
- package/dist/core/services/customers.service.d.ts +197 -0
- package/dist/core/services/customers.service.d.ts.map +1 -0
- package/dist/core/services/customers.service.js +246 -0
- package/dist/core/services/customers.service.js.map +1 -0
- package/dist/core/services/inventory.service.d.ts +196 -0
- package/dist/core/services/inventory.service.d.ts.map +1 -0
- package/dist/core/services/inventory.service.js +266 -0
- package/dist/core/services/inventory.service.js.map +1 -0
- package/dist/core/services/invoices.service.d.ts +211 -0
- package/dist/core/services/invoices.service.d.ts.map +1 -0
- package/dist/core/services/invoices.service.js +297 -0
- package/dist/core/services/invoices.service.js.map +1 -0
- package/dist/core/services/loyalty.service.d.ts +282 -0
- package/dist/core/services/loyalty.service.d.ts.map +1 -0
- package/dist/core/services/loyalty.service.js +340 -0
- package/dist/core/services/loyalty.service.js.map +1 -0
- package/dist/core/services/orders.service.d.ts +121 -0
- package/dist/core/services/orders.service.d.ts.map +1 -0
- package/dist/core/services/orders.service.js +208 -0
- package/dist/core/services/orders.service.js.map +1 -0
- package/dist/core/services/payments.service.d.ts +121 -0
- package/dist/core/services/payments.service.d.ts.map +1 -0
- package/dist/core/services/payments.service.js +189 -0
- package/dist/core/services/payments.service.js.map +1 -0
- package/dist/core/services/subscriptions.service.d.ts +205 -0
- package/dist/core/services/subscriptions.service.d.ts.map +1 -0
- package/dist/core/services/subscriptions.service.js +265 -0
- package/dist/core/services/subscriptions.service.js.map +1 -0
- package/dist/core/types/index.d.ts +68 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +2 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/utils.d.ts +74 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/core/utils.js +96 -0
- package/dist/core/utils.js.map +1 -0
- package/dist/react/SquareProvider.d.ts +50 -0
- package/dist/react/SquareProvider.d.ts.map +1 -0
- package/dist/react/SquareProvider.js +134 -0
- package/dist/react/SquareProvider.js.map +1 -0
- package/dist/react/__tests__/CardInput.test.d.ts +2 -0
- package/dist/react/__tests__/CardInput.test.d.ts.map +1 -0
- package/dist/react/__tests__/CardInput.test.js +218 -0
- package/dist/react/__tests__/CardInput.test.js.map +1 -0
- package/dist/react/__tests__/PaymentButton.test.d.ts +2 -0
- package/dist/react/__tests__/PaymentButton.test.d.ts.map +1 -0
- package/dist/react/__tests__/PaymentButton.test.js +400 -0
- package/dist/react/__tests__/PaymentButton.test.js.map +1 -0
- package/dist/react/__tests__/SquareProvider.test.d.ts +2 -0
- package/dist/react/__tests__/SquareProvider.test.d.ts.map +1 -0
- package/dist/react/__tests__/SquareProvider.test.js +126 -0
- package/dist/react/__tests__/SquareProvider.test.js.map +1 -0
- package/dist/react/__tests__/setup.d.ts +2 -0
- package/dist/react/__tests__/setup.d.ts.map +1 -0
- package/dist/react/__tests__/setup.js +3 -0
- package/dist/react/__tests__/setup.js.map +1 -0
- package/dist/react/__tests__/useCatalog.test.d.ts +2 -0
- package/dist/react/__tests__/useCatalog.test.d.ts.map +1 -0
- package/dist/react/__tests__/useCatalog.test.js +277 -0
- package/dist/react/__tests__/useCatalog.test.js.map +1 -0
- package/dist/react/__tests__/useCustomers.test.d.ts +2 -0
- package/dist/react/__tests__/useCustomers.test.d.ts.map +1 -0
- package/dist/react/__tests__/useCustomers.test.js +312 -0
- package/dist/react/__tests__/useCustomers.test.js.map +1 -0
- package/dist/react/__tests__/useOrders.test.d.ts +2 -0
- package/dist/react/__tests__/useOrders.test.d.ts.map +1 -0
- package/dist/react/__tests__/useOrders.test.js +216 -0
- package/dist/react/__tests__/useOrders.test.js.map +1 -0
- package/dist/react/__tests__/usePayments.test.d.ts +2 -0
- package/dist/react/__tests__/usePayments.test.d.ts.map +1 -0
- package/dist/react/__tests__/usePayments.test.js +235 -0
- package/dist/react/__tests__/usePayments.test.js.map +1 -0
- package/dist/react/__tests__/useSquarePayment.test.d.ts +2 -0
- package/dist/react/__tests__/useSquarePayment.test.d.ts.map +1 -0
- package/dist/react/__tests__/useSquarePayment.test.js +447 -0
- package/dist/react/__tests__/useSquarePayment.test.js.map +1 -0
- package/dist/react/components/CardInput.d.ts +69 -0
- package/dist/react/components/CardInput.d.ts.map +1 -0
- package/dist/react/components/CardInput.js +58 -0
- package/dist/react/components/CardInput.js.map +1 -0
- package/dist/react/components/PaymentButton.d.ts +71 -0
- package/dist/react/components/PaymentButton.d.ts.map +1 -0
- package/dist/react/components/PaymentButton.js +140 -0
- package/dist/react/components/PaymentButton.js.map +1 -0
- package/dist/react/components/index.d.ts +5 -0
- package/dist/react/components/index.d.ts.map +1 -0
- package/dist/react/components/index.js +3 -0
- package/dist/react/components/index.js.map +1 -0
- package/dist/react/hooks/index.d.ts +11 -0
- package/dist/react/hooks/index.d.ts.map +1 -0
- package/dist/react/hooks/index.js +6 -0
- package/dist/react/hooks/index.js.map +1 -0
- package/dist/react/hooks/useCatalog.d.ts +98 -0
- package/dist/react/hooks/useCatalog.d.ts.map +1 -0
- package/dist/react/hooks/useCatalog.js +134 -0
- package/dist/react/hooks/useCatalog.js.map +1 -0
- package/dist/react/hooks/useCustomers.d.ts +105 -0
- package/dist/react/hooks/useCustomers.d.ts.map +1 -0
- package/dist/react/hooks/useCustomers.js +174 -0
- package/dist/react/hooks/useCustomers.js.map +1 -0
- package/dist/react/hooks/useOrders.d.ts +112 -0
- package/dist/react/hooks/useOrders.d.ts.map +1 -0
- package/dist/react/hooks/useOrders.js +115 -0
- package/dist/react/hooks/useOrders.js.map +1 -0
- package/dist/react/hooks/usePayments.d.ts +98 -0
- package/dist/react/hooks/usePayments.d.ts.map +1 -0
- package/dist/react/hooks/usePayments.js +89 -0
- package/dist/react/hooks/usePayments.js.map +1 -0
- package/dist/react/hooks/useSquarePayment.d.ts +52 -0
- package/dist/react/hooks/useSquarePayment.d.ts.map +1 -0
- package/dist/react/hooks/useSquarePayment.js +146 -0
- package/dist/react/hooks/useSquarePayment.js.map +1 -0
- package/dist/react/index.d.ts +8 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +7 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/types.d.ts +183 -0
- package/dist/react/types.d.ts.map +1 -0
- package/dist/react/types.js +2 -0
- package/dist/react/types.js.map +1 -0
- package/dist/server/index.d.ts +43 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +45 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/middleware/express.d.ts +77 -0
- package/dist/server/middleware/express.d.ts.map +1 -0
- package/dist/server/middleware/express.js +123 -0
- package/dist/server/middleware/express.js.map +1 -0
- package/dist/server/middleware/nextjs.d.ts +118 -0
- package/dist/server/middleware/nextjs.d.ts.map +1 -0
- package/dist/server/middleware/nextjs.js +172 -0
- package/dist/server/middleware/nextjs.js.map +1 -0
- package/dist/server/types.d.ts +89 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +7 -0
- package/dist/server/types.js.map +1 -0
- package/dist/server/webhook.d.ts +114 -0
- package/dist/server/webhook.d.ts.map +1 -0
- package/dist/server/webhook.js +190 -0
- package/dist/server/webhook.js.map +1 -0
- package/package.json +118 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { createHmac, timingSafeEqual } from 'crypto';
|
|
2
|
+
/**
|
|
3
|
+
* Header name for Square webhook signature
|
|
4
|
+
*/
|
|
5
|
+
export const SIGNATURE_HEADER = 'x-square-hmacsha256-signature';
|
|
6
|
+
/**
|
|
7
|
+
* Verify a Square webhook signature using HMAC-SHA256
|
|
8
|
+
*
|
|
9
|
+
* @param rawBody - The raw request body as a string
|
|
10
|
+
* @param signature - The signature from the x-square-hmacsha256-signature header
|
|
11
|
+
* @param signatureKey - Your webhook signature key from Square
|
|
12
|
+
* @param notificationUrl - The URL where the webhook was sent (optional, for additional verification)
|
|
13
|
+
* @returns Verification result with valid flag and optional error
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { verifySignature } from '@bates-solutions/squareup/server';
|
|
18
|
+
*
|
|
19
|
+
* const result = verifySignature(
|
|
20
|
+
* rawBody,
|
|
21
|
+
* req.headers['x-square-hmacsha256-signature'],
|
|
22
|
+
* process.env.SQUARE_WEBHOOK_KEY!
|
|
23
|
+
* );
|
|
24
|
+
*
|
|
25
|
+
* if (!result.valid) {
|
|
26
|
+
* return res.status(401).json({ error: result.error });
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export function verifySignature(rawBody, signature, signatureKey, notificationUrl) {
|
|
31
|
+
if (!rawBody) {
|
|
32
|
+
return { valid: false, error: 'Missing request body' };
|
|
33
|
+
}
|
|
34
|
+
if (!signature) {
|
|
35
|
+
return { valid: false, error: 'Missing signature header' };
|
|
36
|
+
}
|
|
37
|
+
if (!signatureKey) {
|
|
38
|
+
return { valid: false, error: 'Missing signature key' };
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
// Build the string to sign
|
|
42
|
+
// Square uses: notificationUrl + rawBody (if URL provided) or just rawBody
|
|
43
|
+
const stringToSign = notificationUrl ? notificationUrl + rawBody : rawBody;
|
|
44
|
+
// Generate HMAC-SHA256 signature
|
|
45
|
+
const expectedSignature = createHmac('sha256', signatureKey)
|
|
46
|
+
.update(stringToSign)
|
|
47
|
+
.digest('base64');
|
|
48
|
+
// Use timing-safe comparison to prevent timing attacks
|
|
49
|
+
const signatureBuffer = Buffer.from(signature, 'base64');
|
|
50
|
+
const expectedBuffer = Buffer.from(expectedSignature, 'base64');
|
|
51
|
+
// Buffers must be same length for timingSafeEqual
|
|
52
|
+
if (signatureBuffer.length !== expectedBuffer.length) {
|
|
53
|
+
return { valid: false, error: 'Invalid signature' };
|
|
54
|
+
}
|
|
55
|
+
const isValid = timingSafeEqual(signatureBuffer, expectedBuffer);
|
|
56
|
+
if (!isValid) {
|
|
57
|
+
return { valid: false, error: 'Invalid signature' };
|
|
58
|
+
}
|
|
59
|
+
return { valid: true };
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return {
|
|
63
|
+
valid: false,
|
|
64
|
+
error: error instanceof Error ? error.message : 'Signature verification failed',
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Parse a webhook request body into a typed event
|
|
70
|
+
*
|
|
71
|
+
* @param rawBody - The raw request body string
|
|
72
|
+
* @returns Parsed webhook event
|
|
73
|
+
* @throws Error if parsing fails
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const event = parseWebhookEvent(rawBody);
|
|
78
|
+
* console.log(event.type); // 'payment.completed'
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export function parseWebhookEvent(rawBody) {
|
|
82
|
+
try {
|
|
83
|
+
return JSON.parse(rawBody);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
throw new Error('Invalid webhook payload: failed to parse JSON');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Parse and verify a webhook request
|
|
91
|
+
*
|
|
92
|
+
* @param rawBody - The raw request body string
|
|
93
|
+
* @param signature - The signature from headers
|
|
94
|
+
* @param signatureKey - Your webhook signature key
|
|
95
|
+
* @param notificationUrl - Optional notification URL for verification
|
|
96
|
+
* @returns Parsed and verified webhook request
|
|
97
|
+
* @throws Error if verification or parsing fails
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* const { event } = parseAndVerifyWebhook(
|
|
102
|
+
* rawBody,
|
|
103
|
+
* signature,
|
|
104
|
+
* process.env.SQUARE_WEBHOOK_KEY!
|
|
105
|
+
* );
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export function parseAndVerifyWebhook(rawBody, signature, signatureKey, notificationUrl) {
|
|
109
|
+
const verification = verifySignature(rawBody, signature, signatureKey, notificationUrl);
|
|
110
|
+
if (!verification.valid) {
|
|
111
|
+
throw new Error(verification.error ?? 'Signature verification failed');
|
|
112
|
+
}
|
|
113
|
+
const event = parseWebhookEvent(rawBody);
|
|
114
|
+
return {
|
|
115
|
+
rawBody,
|
|
116
|
+
signature,
|
|
117
|
+
event,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Process a webhook event by calling the appropriate handler
|
|
122
|
+
*
|
|
123
|
+
* @param event - The parsed webhook event
|
|
124
|
+
* @param config - Webhook configuration with handlers
|
|
125
|
+
* @returns Promise that resolves when handler completes
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* await processWebhookEvent(event, {
|
|
130
|
+
* signatureKey: process.env.SQUARE_WEBHOOK_KEY!,
|
|
131
|
+
* handlers: {
|
|
132
|
+
* 'payment.created': async (event) => {
|
|
133
|
+
* console.log('Payment created:', event.data.id);
|
|
134
|
+
* },
|
|
135
|
+
* },
|
|
136
|
+
* });
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export async function processWebhookEvent(event, config) {
|
|
140
|
+
const handler = config.handlers[event.type];
|
|
141
|
+
if (handler) {
|
|
142
|
+
await handler(event);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Create a webhook handler function that verifies and processes events
|
|
147
|
+
*
|
|
148
|
+
* @param config - Webhook configuration
|
|
149
|
+
* @returns Handler function that processes raw webhook requests
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* const handleWebhook = createWebhookProcessor({
|
|
154
|
+
* signatureKey: process.env.SQUARE_WEBHOOK_KEY!,
|
|
155
|
+
* handlers: {
|
|
156
|
+
* 'payment.created': async (event) => {
|
|
157
|
+
* await sendReceipt(event.data.object.payment);
|
|
158
|
+
* },
|
|
159
|
+
* 'order.updated': async (event) => {
|
|
160
|
+
* await updateOrderStatus(event.data.object.order);
|
|
161
|
+
* },
|
|
162
|
+
* },
|
|
163
|
+
* });
|
|
164
|
+
*
|
|
165
|
+
* // Use in your route handler
|
|
166
|
+
* const result = await handleWebhook(rawBody, signature);
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
export function createWebhookProcessor(config) {
|
|
170
|
+
return async (rawBody, signature) => {
|
|
171
|
+
try {
|
|
172
|
+
const verification = verifySignature(rawBody, signature, config.signatureKey, config.notificationUrl);
|
|
173
|
+
if (!verification.valid) {
|
|
174
|
+
if (config.throwOnInvalidSignature !== false) {
|
|
175
|
+
return { success: false, error: verification.error };
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const event = parseWebhookEvent(rawBody);
|
|
179
|
+
await processWebhookEvent(event, config);
|
|
180
|
+
return { success: true, event };
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
return {
|
|
184
|
+
success: false,
|
|
185
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=webhook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/server/webhook.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bates-solutions/squareup",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "TypeScript wrapper for Square API with React & Angular integrations",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/core/index.js",
|
|
7
|
+
"types": "./dist/core/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/core/index.d.ts",
|
|
11
|
+
"import": "./dist/core/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./react": {
|
|
14
|
+
"types": "./dist/react/index.d.ts",
|
|
15
|
+
"import": "./dist/react/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./angular": {
|
|
18
|
+
"types": "./dist/angular/index.d.ts",
|
|
19
|
+
"import": "./dist/angular/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./server": {
|
|
22
|
+
"types": "./dist/server/index.d.ts",
|
|
23
|
+
"import": "./dist/server/index.js"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist",
|
|
28
|
+
"README.md",
|
|
29
|
+
"LICENSE"
|
|
30
|
+
],
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "tsc",
|
|
33
|
+
"dev": "tsc --watch",
|
|
34
|
+
"lint": "eslint src",
|
|
35
|
+
"lint:fix": "eslint src --fix",
|
|
36
|
+
"typecheck": "tsc --noEmit",
|
|
37
|
+
"test": "vitest run",
|
|
38
|
+
"test:watch": "vitest",
|
|
39
|
+
"test:coverage": "vitest run --coverage",
|
|
40
|
+
"test:react": "vitest run --config vitest.react.config.ts",
|
|
41
|
+
"test:angular": "vitest run --config vitest.angular.config.ts",
|
|
42
|
+
"docs": "typedoc",
|
|
43
|
+
"prepublishOnly": "npm run build"
|
|
44
|
+
},
|
|
45
|
+
"keywords": [
|
|
46
|
+
"square",
|
|
47
|
+
"square-api",
|
|
48
|
+
"payments",
|
|
49
|
+
"payment-processing",
|
|
50
|
+
"react",
|
|
51
|
+
"react-hooks",
|
|
52
|
+
"angular",
|
|
53
|
+
"typescript",
|
|
54
|
+
"checkout",
|
|
55
|
+
"ecommerce",
|
|
56
|
+
"point-of-sale",
|
|
57
|
+
"pos",
|
|
58
|
+
"sdk",
|
|
59
|
+
"api"
|
|
60
|
+
],
|
|
61
|
+
"author": "Bates Solutions",
|
|
62
|
+
"license": "MIT",
|
|
63
|
+
"repository": {
|
|
64
|
+
"type": "git",
|
|
65
|
+
"url": "git+https://github.com/mbates/squareup.git"
|
|
66
|
+
},
|
|
67
|
+
"bugs": {
|
|
68
|
+
"url": "https://github.com/mbates/squareup/issues"
|
|
69
|
+
},
|
|
70
|
+
"homepage": "https://github.com/mbates/squareup#readme",
|
|
71
|
+
"engines": {
|
|
72
|
+
"node": ">=18"
|
|
73
|
+
},
|
|
74
|
+
"peerDependencies": {
|
|
75
|
+
"@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
76
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
77
|
+
"square": "^43.2.1"
|
|
78
|
+
},
|
|
79
|
+
"peerDependenciesMeta": {
|
|
80
|
+
"react": {
|
|
81
|
+
"optional": true
|
|
82
|
+
},
|
|
83
|
+
"@angular/core": {
|
|
84
|
+
"optional": true
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"devDependencies": {
|
|
88
|
+
"@angular/common": "^21.0.6",
|
|
89
|
+
"@angular/core": "^21.0.6",
|
|
90
|
+
"@angular/platform-browser": "^21.0.6",
|
|
91
|
+
"@angular/platform-browser-dynamic": "^21.0.6",
|
|
92
|
+
"@eslint/js": "^9.39.2",
|
|
93
|
+
"@testing-library/dom": "^10.4.1",
|
|
94
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
95
|
+
"@testing-library/react": "^16.3.1",
|
|
96
|
+
"@types/express": "^5.0.6",
|
|
97
|
+
"@types/node": "^25.0.3",
|
|
98
|
+
"@types/react": "^19.2.7",
|
|
99
|
+
"@typescript-eslint/eslint-plugin": "^8.51.0",
|
|
100
|
+
"@typescript-eslint/parser": "^8.51.0",
|
|
101
|
+
"@vitest/coverage-v8": "^4.0.0",
|
|
102
|
+
"eslint": "^9.39.2",
|
|
103
|
+
"eslint-config-prettier": "^10.1.8",
|
|
104
|
+
"eslint-plugin-prettier": "^5.1.0",
|
|
105
|
+
"jsdom": "^27.4.0",
|
|
106
|
+
"prettier": "^3.2.0",
|
|
107
|
+
"react": "^19.2.3",
|
|
108
|
+
"react-dom": "^19.2.3",
|
|
109
|
+
"rxjs": "^7.8.2",
|
|
110
|
+
"square": "^43.2.1",
|
|
111
|
+
"typedoc": "^0.28.15",
|
|
112
|
+
"typedoc-plugin-markdown": "^4.9.0",
|
|
113
|
+
"typescript": "^5.3.0",
|
|
114
|
+
"typescript-eslint": "^8.51.0",
|
|
115
|
+
"vitest": "^4.0.16",
|
|
116
|
+
"zone.js": "^0.16.0"
|
|
117
|
+
}
|
|
118
|
+
}
|