@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,146 @@
|
|
|
1
|
+
import { useState, useCallback, useRef, useEffect } from 'react';
|
|
2
|
+
import { useSquare } from '../SquareProvider.js';
|
|
3
|
+
/**
|
|
4
|
+
* Hook for integrating Square Web Payments SDK card input
|
|
5
|
+
*
|
|
6
|
+
* @param options - Configuration options
|
|
7
|
+
* @returns Card input ref, tokenize function, and state
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* function Checkout() {
|
|
12
|
+
* const { cardRef, tokenize, ready, loading, error } = useSquarePayment({
|
|
13
|
+
* onReady: () => console.log('Card input ready'),
|
|
14
|
+
* onTokenize: (token) => console.log('Token:', token),
|
|
15
|
+
* onError: (err) => console.error('Error:', err),
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* const handlePay = async () => {
|
|
19
|
+
* try {
|
|
20
|
+
* const token = await tokenize();
|
|
21
|
+
* // Send token to your server to complete payment
|
|
22
|
+
* } catch (err) {
|
|
23
|
+
* console.error('Tokenization failed:', err);
|
|
24
|
+
* }
|
|
25
|
+
* };
|
|
26
|
+
*
|
|
27
|
+
* return (
|
|
28
|
+
* <div>
|
|
29
|
+
* <div ref={cardRef} />
|
|
30
|
+
* <button onClick={handlePay} disabled={!ready || loading}>
|
|
31
|
+
* Pay
|
|
32
|
+
* </button>
|
|
33
|
+
* {error && <p>Error: {error.message}</p>}
|
|
34
|
+
* </div>
|
|
35
|
+
* );
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function useSquarePayment(options = {}) {
|
|
40
|
+
const { cardOptions, onReady, onTokenize, onError } = options;
|
|
41
|
+
const { payments, sdkLoaded, error: sdkError } = useSquare();
|
|
42
|
+
const [card, setCard] = useState(null);
|
|
43
|
+
const [ready, setReady] = useState(false);
|
|
44
|
+
const [loading, setLoading] = useState(false);
|
|
45
|
+
const [error, setError] = useState(sdkError);
|
|
46
|
+
const containerRef = useRef(null);
|
|
47
|
+
const cardRef = useRef(null);
|
|
48
|
+
// Update error state when SDK error changes
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (sdkError) {
|
|
51
|
+
setError(sdkError);
|
|
52
|
+
onError?.(sdkError);
|
|
53
|
+
}
|
|
54
|
+
}, [sdkError, onError]);
|
|
55
|
+
// Initialize card when SDK is loaded
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
if (!sdkLoaded || !payments || !containerRef.current) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
let mounted = true;
|
|
61
|
+
async function initializeCard() {
|
|
62
|
+
if (!payments)
|
|
63
|
+
return;
|
|
64
|
+
try {
|
|
65
|
+
const cardInstance = await payments.card(cardOptions);
|
|
66
|
+
if (!mounted || !containerRef.current) {
|
|
67
|
+
await cardInstance.destroy();
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
await cardInstance.attach(containerRef.current);
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
72
|
+
if (!mounted) {
|
|
73
|
+
await cardInstance.destroy();
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
cardRef.current = cardInstance;
|
|
77
|
+
setCard(cardInstance);
|
|
78
|
+
setReady(true);
|
|
79
|
+
setError(null);
|
|
80
|
+
onReady?.();
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
if (!mounted)
|
|
84
|
+
return;
|
|
85
|
+
const error = err instanceof Error ? err : new Error('Failed to initialize card');
|
|
86
|
+
setError(error);
|
|
87
|
+
onError?.(error);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
void initializeCard();
|
|
91
|
+
return () => {
|
|
92
|
+
mounted = false;
|
|
93
|
+
if (cardRef.current) {
|
|
94
|
+
void cardRef.current.destroy();
|
|
95
|
+
cardRef.current = null;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}, [sdkLoaded, payments, cardOptions, onReady, onError]);
|
|
99
|
+
/**
|
|
100
|
+
* Tokenize the card input
|
|
101
|
+
* @returns Payment token
|
|
102
|
+
*/
|
|
103
|
+
const tokenize = useCallback(async () => {
|
|
104
|
+
if (!card) {
|
|
105
|
+
throw new Error('Card input not initialized');
|
|
106
|
+
}
|
|
107
|
+
setLoading(true);
|
|
108
|
+
setError(null);
|
|
109
|
+
try {
|
|
110
|
+
const result = await card.tokenize();
|
|
111
|
+
if (result.status === 'OK' && result.token) {
|
|
112
|
+
onTokenize?.(result.token);
|
|
113
|
+
return result.token;
|
|
114
|
+
}
|
|
115
|
+
if (result.status === 'Cancel') {
|
|
116
|
+
throw new Error('Tokenization was cancelled');
|
|
117
|
+
}
|
|
118
|
+
const errorMessage = result.errors?.map((e) => e.message).join(', ') ?? 'Tokenization failed';
|
|
119
|
+
throw new Error(errorMessage);
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
const error = err instanceof Error ? err : new Error('Tokenization failed');
|
|
123
|
+
setError(error);
|
|
124
|
+
onError?.(error);
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
setLoading(false);
|
|
129
|
+
}
|
|
130
|
+
}, [card, onTokenize, onError]);
|
|
131
|
+
/**
|
|
132
|
+
* Ref callback to attach container element
|
|
133
|
+
*/
|
|
134
|
+
const cardRefCallback = useCallback((element) => {
|
|
135
|
+
containerRef.current = element;
|
|
136
|
+
}, []);
|
|
137
|
+
return {
|
|
138
|
+
cardRef: cardRefCallback,
|
|
139
|
+
tokenize,
|
|
140
|
+
card,
|
|
141
|
+
ready,
|
|
142
|
+
loading,
|
|
143
|
+
error,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=useSquarePayment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSquarePayment.js","sourceRoot":"","sources":["../../../src/react/hooks/useSquarePayment.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { SquareProvider, useSquare, SquareContext } from './SquareProvider.js';
|
|
2
|
+
export type { SquareProviderProps } from './SquareProvider.js';
|
|
3
|
+
export { useSquarePayment, usePayments, useOrders, useCustomers, useCatalog, } from './hooks/index.js';
|
|
4
|
+
export type { UseSquarePaymentOptions, CreatePaymentInput, PaymentResponse, UsePaymentsOptions, UsePaymentsReturn, OrderLineItemInput, CreateOrderInput, OrderResponse, UseOrdersOptions, UseOrdersReturn, CustomerAddressInput, CustomerInput, CustomerResponse, UseCustomersOptions, UseCustomersReturn, CatalogObjectType, CatalogItemResponse, CatalogSearchOptions, UseCatalogOptions, UseCatalogReturn, } from './hooks/index.js';
|
|
5
|
+
export { CardInput, PaymentButton } from './components/index.js';
|
|
6
|
+
export type { CardInputProps, CardInputHandle, PaymentMethodType, PaymentButtonProps, } from './components/index.js';
|
|
7
|
+
export type { SquareProviderConfig, SquareContextValue, UseSquarePaymentState, UseSquarePaymentReturn, MutationState, QueryState, Payments, Card, GooglePay, ApplePay, GiftCard, Ach, CardOptions, CardStyle, DigitalWalletOptions, TokenResult, TokenError, VerificationDetails, VerificationResult, } from './types.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/E,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EACV,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,UAAU,EAEV,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Provider and context
|
|
2
|
+
export { SquareProvider, useSquare, SquareContext } from './SquareProvider.js';
|
|
3
|
+
// Hooks
|
|
4
|
+
export { useSquarePayment, usePayments, useOrders, useCustomers, useCatalog, } from './hooks/index.js';
|
|
5
|
+
// Components
|
|
6
|
+
export { CardInput, PaymentButton } from './components/index.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG/E,QAAQ;AACR,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,GACX,MAAM,kBAAkB,CAAC;AAwB1B,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import type { SquareEnvironment, CurrencyCode } from '../core/types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Square Provider configuration
|
|
4
|
+
*/
|
|
5
|
+
export interface SquareProviderConfig {
|
|
6
|
+
/** Square Application ID */
|
|
7
|
+
applicationId: string;
|
|
8
|
+
/** Square Location ID */
|
|
9
|
+
locationId: string;
|
|
10
|
+
/** Environment (sandbox or production) */
|
|
11
|
+
environment?: SquareEnvironment;
|
|
12
|
+
/** Access token for server-side operations (optional, for SSR) */
|
|
13
|
+
accessToken?: string;
|
|
14
|
+
/** Default currency */
|
|
15
|
+
currency?: CurrencyCode;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Square context value
|
|
19
|
+
*/
|
|
20
|
+
export interface SquareContextValue {
|
|
21
|
+
/** Configuration */
|
|
22
|
+
config: SquareProviderConfig;
|
|
23
|
+
/** Whether the Web Payments SDK is loaded */
|
|
24
|
+
sdkLoaded: boolean;
|
|
25
|
+
/** Square Payments instance */
|
|
26
|
+
payments: Payments | null;
|
|
27
|
+
/** Error if SDK failed to load */
|
|
28
|
+
error: Error | null;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Web Payments SDK types
|
|
32
|
+
* These are simplified types for the Square Web Payments SDK
|
|
33
|
+
*/
|
|
34
|
+
export interface Payments {
|
|
35
|
+
card: (options?: CardOptions) => Promise<Card>;
|
|
36
|
+
googlePay: (options: GooglePayOptions) => Promise<GooglePay>;
|
|
37
|
+
applePay: (options: ApplePayOptions) => Promise<ApplePay>;
|
|
38
|
+
giftCard: (options?: GiftCardOptions) => Promise<GiftCard>;
|
|
39
|
+
ach: (options?: AchOptions) => Promise<Ach>;
|
|
40
|
+
verifyBuyer: (sourceId: string, verificationDetails: VerificationDetails) => Promise<VerificationResult>;
|
|
41
|
+
}
|
|
42
|
+
export interface Card {
|
|
43
|
+
attach: (element: HTMLElement | string) => Promise<void>;
|
|
44
|
+
detach: () => Promise<void>;
|
|
45
|
+
destroy: () => Promise<void>;
|
|
46
|
+
tokenize: () => Promise<TokenResult>;
|
|
47
|
+
configure: (options: CardOptions) => Promise<void>;
|
|
48
|
+
addEventListener: (event: CardEventType, callback: CardEventCallback) => void;
|
|
49
|
+
removeEventListener: (event: CardEventType, callback: CardEventCallback) => void;
|
|
50
|
+
}
|
|
51
|
+
export interface GooglePay {
|
|
52
|
+
attach: (element: HTMLElement | string, options?: DigitalWalletOptions) => Promise<void>;
|
|
53
|
+
destroy: () => Promise<void>;
|
|
54
|
+
tokenize: () => Promise<TokenResult>;
|
|
55
|
+
}
|
|
56
|
+
export interface ApplePay {
|
|
57
|
+
attach: (element: HTMLElement | string, options?: DigitalWalletOptions) => Promise<void>;
|
|
58
|
+
destroy: () => Promise<void>;
|
|
59
|
+
tokenize: () => Promise<TokenResult>;
|
|
60
|
+
}
|
|
61
|
+
export interface GiftCard {
|
|
62
|
+
attach: (element: HTMLElement | string) => Promise<void>;
|
|
63
|
+
destroy: () => Promise<void>;
|
|
64
|
+
tokenize: () => Promise<TokenResult>;
|
|
65
|
+
}
|
|
66
|
+
export interface Ach {
|
|
67
|
+
tokenize: (options: AchTokenizeOptions) => Promise<TokenResult>;
|
|
68
|
+
}
|
|
69
|
+
export interface CardOptions {
|
|
70
|
+
style?: CardStyle;
|
|
71
|
+
postalCode?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface CardStyle {
|
|
74
|
+
'.input-container'?: CSSStyleDeclaration;
|
|
75
|
+
'.input-container.is-focus'?: CSSStyleDeclaration;
|
|
76
|
+
'.input-container.is-error'?: CSSStyleDeclaration;
|
|
77
|
+
'.message-text'?: CSSStyleDeclaration;
|
|
78
|
+
'.message-icon'?: CSSStyleDeclaration;
|
|
79
|
+
'.message-text.is-error'?: CSSStyleDeclaration;
|
|
80
|
+
input?: CSSStyleDeclaration;
|
|
81
|
+
'input::placeholder'?: CSSStyleDeclaration;
|
|
82
|
+
'input.is-error'?: CSSStyleDeclaration;
|
|
83
|
+
}
|
|
84
|
+
export interface GooglePayOptions {
|
|
85
|
+
redirectURL?: string;
|
|
86
|
+
}
|
|
87
|
+
export interface ApplePayOptions {
|
|
88
|
+
redirectURL?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface GiftCardOptions {
|
|
91
|
+
style?: CardStyle;
|
|
92
|
+
}
|
|
93
|
+
export interface AchOptions {
|
|
94
|
+
redirectURL?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface AchTokenizeOptions {
|
|
97
|
+
accountHolderName: string;
|
|
98
|
+
intent?: 'CHARGE' | 'STORE';
|
|
99
|
+
}
|
|
100
|
+
export interface DigitalWalletOptions {
|
|
101
|
+
buttonColor?: 'default' | 'black' | 'white';
|
|
102
|
+
buttonSizeMode?: 'fill' | 'static';
|
|
103
|
+
buttonType?: 'buy' | 'donate' | 'plain' | 'order' | 'pay' | 'tip';
|
|
104
|
+
}
|
|
105
|
+
export interface TokenResult {
|
|
106
|
+
status: 'OK' | 'Cancel' | 'Error';
|
|
107
|
+
token?: string;
|
|
108
|
+
errors?: TokenError[];
|
|
109
|
+
details?: {
|
|
110
|
+
card?: {
|
|
111
|
+
brand: string;
|
|
112
|
+
lastFour: string;
|
|
113
|
+
expMonth: number;
|
|
114
|
+
expYear: number;
|
|
115
|
+
};
|
|
116
|
+
billing?: {
|
|
117
|
+
postalCode?: string;
|
|
118
|
+
};
|
|
119
|
+
method?: 'Card' | 'GooglePay' | 'ApplePay' | 'GiftCard' | 'Ach';
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
export interface TokenError {
|
|
123
|
+
type: string;
|
|
124
|
+
message: string;
|
|
125
|
+
field?: string;
|
|
126
|
+
}
|
|
127
|
+
export interface VerificationDetails {
|
|
128
|
+
amount: string;
|
|
129
|
+
currencyCode: string;
|
|
130
|
+
intent: 'CHARGE' | 'STORE';
|
|
131
|
+
billingContact?: {
|
|
132
|
+
addressLines?: string[];
|
|
133
|
+
city?: string;
|
|
134
|
+
countryCode?: string;
|
|
135
|
+
email?: string;
|
|
136
|
+
familyName?: string;
|
|
137
|
+
givenName?: string;
|
|
138
|
+
phone?: string;
|
|
139
|
+
postalCode?: string;
|
|
140
|
+
state?: string;
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
export interface VerificationResult {
|
|
144
|
+
token: string;
|
|
145
|
+
userChallenged: boolean;
|
|
146
|
+
}
|
|
147
|
+
export type CardEventType = 'ready' | 'focusClassAdded' | 'focusClassRemoved' | 'errorClassAdded' | 'errorClassRemoved' | 'cardBrandChanged' | 'postalCodeChanged' | 'escape' | 'submit';
|
|
148
|
+
export type CardEventCallback = (event: CardEvent) => void;
|
|
149
|
+
export interface CardEvent {
|
|
150
|
+
cardBrand?: string;
|
|
151
|
+
postalCodeValue?: string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Hook state types
|
|
155
|
+
*/
|
|
156
|
+
export interface UseSquarePaymentState {
|
|
157
|
+
ready: boolean;
|
|
158
|
+
error: Error | null;
|
|
159
|
+
loading: boolean;
|
|
160
|
+
}
|
|
161
|
+
export interface UseSquarePaymentReturn extends UseSquarePaymentState {
|
|
162
|
+
cardRef: React.RefCallback<HTMLDivElement>;
|
|
163
|
+
tokenize: () => Promise<string>;
|
|
164
|
+
card: Card | null;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Mutation hook state
|
|
168
|
+
*/
|
|
169
|
+
export interface MutationState<T> {
|
|
170
|
+
data: T | null;
|
|
171
|
+
error: Error | null;
|
|
172
|
+
loading: boolean;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Query hook state
|
|
176
|
+
*/
|
|
177
|
+
export interface QueryState<T> {
|
|
178
|
+
data: T | null;
|
|
179
|
+
error: Error | null;
|
|
180
|
+
loading: boolean;
|
|
181
|
+
refetch: () => Promise<void>;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/react/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/react/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @bates-solutions/squareup/server
|
|
3
|
+
*
|
|
4
|
+
* Server utilities for handling Square webhooks
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* // Next.js App Router
|
|
9
|
+
* import { createNextWebhookHandler } from '@bates-solutions/squareup/server';
|
|
10
|
+
*
|
|
11
|
+
* export const POST = createNextWebhookHandler({
|
|
12
|
+
* signatureKey: process.env.SQUARE_WEBHOOK_KEY!,
|
|
13
|
+
* handlers: {
|
|
14
|
+
* 'payment.created': async (event) => {
|
|
15
|
+
* console.log('Payment:', event.data.id);
|
|
16
|
+
* },
|
|
17
|
+
* },
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // Express
|
|
24
|
+
* import express from 'express';
|
|
25
|
+
* import { createExpressWebhookHandler } from '@bates-solutions/squareup/server';
|
|
26
|
+
*
|
|
27
|
+
* const app = express();
|
|
28
|
+
* app.use('/webhook', express.raw({ type: 'application/json' }));
|
|
29
|
+
* app.post('/webhook', createExpressWebhookHandler({
|
|
30
|
+
* signatureKey: process.env.SQUARE_WEBHOOK_KEY!,
|
|
31
|
+
* handlers: {
|
|
32
|
+
* 'payment.created': async (event) => {
|
|
33
|
+
* console.log('Payment:', event.data.id);
|
|
34
|
+
* },
|
|
35
|
+
* },
|
|
36
|
+
* }));
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export type { WebhookEventType, PaymentEventType, RefundEventType, OrderEventType, CustomerEventType, SubscriptionEventType, InvoiceEventType, LoyaltyEventType, CatalogEventType, InventoryEventType, TeamEventType, LaborEventType, WebhookEvent, WebhookHandler, WebhookHandlers, WebhookConfig, WebhookVerificationResult, ParsedWebhookRequest, } from './types.js';
|
|
40
|
+
export { SIGNATURE_HEADER, verifySignature, parseWebhookEvent, parseAndVerifyWebhook, processWebhookEvent, createWebhookProcessor, } from './webhook.js';
|
|
41
|
+
export { createExpressWebhookHandler, rawBodyMiddleware, type SquareWebhookRequest, type ExpressWebhookOptions, } from './middleware/express.js';
|
|
42
|
+
export { createNextWebhookHandler, createNextPagesWebhookHandler, parseNextWebhook, type WebhookResponse, } from './middleware/nextjs.js';
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @bates-solutions/squareup/server
|
|
3
|
+
*
|
|
4
|
+
* Server utilities for handling Square webhooks
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* // Next.js App Router
|
|
9
|
+
* import { createNextWebhookHandler } from '@bates-solutions/squareup/server';
|
|
10
|
+
*
|
|
11
|
+
* export const POST = createNextWebhookHandler({
|
|
12
|
+
* signatureKey: process.env.SQUARE_WEBHOOK_KEY!,
|
|
13
|
+
* handlers: {
|
|
14
|
+
* 'payment.created': async (event) => {
|
|
15
|
+
* console.log('Payment:', event.data.id);
|
|
16
|
+
* },
|
|
17
|
+
* },
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // Express
|
|
24
|
+
* import express from 'express';
|
|
25
|
+
* import { createExpressWebhookHandler } from '@bates-solutions/squareup/server';
|
|
26
|
+
*
|
|
27
|
+
* const app = express();
|
|
28
|
+
* app.use('/webhook', express.raw({ type: 'application/json' }));
|
|
29
|
+
* app.post('/webhook', createExpressWebhookHandler({
|
|
30
|
+
* signatureKey: process.env.SQUARE_WEBHOOK_KEY!,
|
|
31
|
+
* handlers: {
|
|
32
|
+
* 'payment.created': async (event) => {
|
|
33
|
+
* console.log('Payment:', event.data.id);
|
|
34
|
+
* },
|
|
35
|
+
* },
|
|
36
|
+
* }));
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
// Core webhook utilities
|
|
40
|
+
export { SIGNATURE_HEADER, verifySignature, parseWebhookEvent, parseAndVerifyWebhook, processWebhookEvent, createWebhookProcessor, } from './webhook.js';
|
|
41
|
+
// Express middleware
|
|
42
|
+
export { createExpressWebhookHandler, rawBodyMiddleware, } from './middleware/express.js';
|
|
43
|
+
// Next.js handlers
|
|
44
|
+
export { createNextWebhookHandler, createNextPagesWebhookHandler, parseNextWebhook, } from './middleware/nextjs.js';
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAwBH,yBAAyB;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,qBAAqB;AACrB,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,GAGlB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { Request, RequestHandler } from 'express';
|
|
2
|
+
import type { WebhookConfig, WebhookEvent } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Extended Express Request with Square webhook data
|
|
5
|
+
*/
|
|
6
|
+
export interface SquareWebhookRequest extends Request {
|
|
7
|
+
/** The raw request body as a string */
|
|
8
|
+
rawBody?: string;
|
|
9
|
+
/** The parsed Square webhook event */
|
|
10
|
+
squareEvent?: WebhookEvent;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Options for the Express webhook middleware
|
|
14
|
+
*/
|
|
15
|
+
export interface ExpressWebhookOptions extends WebhookConfig {
|
|
16
|
+
/**
|
|
17
|
+
* Path to mount the webhook handler
|
|
18
|
+
* @default '/webhook'
|
|
19
|
+
*/
|
|
20
|
+
path?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to send response automatically
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
autoRespond?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Create Express middleware for handling Square webhooks
|
|
29
|
+
*
|
|
30
|
+
* This middleware:
|
|
31
|
+
* 1. Captures the raw body for signature verification
|
|
32
|
+
* 2. Verifies the webhook signature
|
|
33
|
+
* 3. Parses the event and attaches it to the request
|
|
34
|
+
* 4. Calls the appropriate handler
|
|
35
|
+
*
|
|
36
|
+
* @param config - Webhook configuration
|
|
37
|
+
* @returns Express middleware function
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* import express from 'express';
|
|
42
|
+
* import { createExpressWebhookHandler } from '@bates-solutions/squareup/server';
|
|
43
|
+
*
|
|
44
|
+
* const app = express();
|
|
45
|
+
*
|
|
46
|
+
* // IMPORTANT: Use raw body parser for webhook route
|
|
47
|
+
* app.use('/webhook', express.raw({ type: 'application/json' }));
|
|
48
|
+
*
|
|
49
|
+
* app.post('/webhook', createExpressWebhookHandler({
|
|
50
|
+
* signatureKey: process.env.SQUARE_WEBHOOK_KEY!,
|
|
51
|
+
* handlers: {
|
|
52
|
+
* 'payment.created': async (event) => {
|
|
53
|
+
* console.log('Payment created:', event.data.id);
|
|
54
|
+
* },
|
|
55
|
+
* },
|
|
56
|
+
* }));
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare function createExpressWebhookHandler(config: ExpressWebhookOptions): RequestHandler;
|
|
60
|
+
/**
|
|
61
|
+
* Raw body parser middleware for Express
|
|
62
|
+
*
|
|
63
|
+
* Captures the raw body before JSON parsing for signature verification.
|
|
64
|
+
* Use this if you need to parse JSON but also need the raw body.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* import express from 'express';
|
|
69
|
+
* import { rawBodyMiddleware } from '@bates-solutions/squareup/server';
|
|
70
|
+
*
|
|
71
|
+
* const app = express();
|
|
72
|
+
* app.use('/webhook', rawBodyMiddleware);
|
|
73
|
+
* app.use('/webhook', express.json());
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare const rawBodyMiddleware: RequestHandler;
|
|
77
|
+
//# sourceMappingURL=express.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../../src/server/middleware/express.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAA0B,cAAc,EAAE,MAAM,SAAS,CAAC;AAO/E,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,OAAO;IACnD,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,qBAAqB,GAC5B,cAAc,CA2EhB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAiB/B,CAAC"}
|