@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.
Files changed (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +154 -0
  3. package/README.md.backup +292 -0
  4. package/dist/angular/__tests__/setup.d.ts +1 -0
  5. package/dist/angular/__tests__/setup.d.ts.map +1 -0
  6. package/dist/angular/__tests__/setup.js +5 -0
  7. package/dist/angular/__tests__/setup.js.map +1 -0
  8. package/dist/angular/components/index.d.ts +2 -0
  9. package/dist/angular/components/index.d.ts.map +1 -0
  10. package/dist/angular/components/index.js +2 -0
  11. package/dist/angular/components/index.js.map +1 -0
  12. package/dist/angular/components/payment-button.component.d.ts +49 -0
  13. package/dist/angular/components/payment-button.component.d.ts.map +1 -0
  14. package/dist/angular/components/payment-button.component.js +176 -0
  15. package/dist/angular/components/payment-button.component.js.map +1 -0
  16. package/dist/angular/directives/index.d.ts +2 -0
  17. package/dist/angular/directives/index.d.ts.map +1 -0
  18. package/dist/angular/directives/index.js +2 -0
  19. package/dist/angular/directives/index.js.map +1 -0
  20. package/dist/angular/directives/square-card.directive.d.ts +52 -0
  21. package/dist/angular/directives/square-card.directive.d.ts.map +1 -0
  22. package/dist/angular/directives/square-card.directive.js +98 -0
  23. package/dist/angular/directives/square-card.directive.js.map +1 -0
  24. package/dist/angular/index.d.ts +42 -0
  25. package/dist/angular/index.d.ts.map +1 -0
  26. package/dist/angular/index.js +45 -0
  27. package/dist/angular/index.js.map +1 -0
  28. package/dist/angular/services/index.d.ts +6 -0
  29. package/dist/angular/services/index.d.ts.map +1 -0
  30. package/dist/angular/services/index.js +6 -0
  31. package/dist/angular/services/index.js.map +1 -0
  32. package/dist/angular/services/square-catalog.service.d.ts +60 -0
  33. package/dist/angular/services/square-catalog.service.d.ts.map +1 -0
  34. package/dist/angular/services/square-catalog.service.js +152 -0
  35. package/dist/angular/services/square-catalog.service.js.map +1 -0
  36. package/dist/angular/services/square-customers.service.d.ts +77 -0
  37. package/dist/angular/services/square-customers.service.d.ts.map +1 -0
  38. package/dist/angular/services/square-customers.service.js +187 -0
  39. package/dist/angular/services/square-customers.service.js.map +1 -0
  40. package/dist/angular/services/square-orders.service.d.ts +66 -0
  41. package/dist/angular/services/square-orders.service.d.ts.map +1 -0
  42. package/dist/angular/services/square-orders.service.js +170 -0
  43. package/dist/angular/services/square-orders.service.js.map +1 -0
  44. package/dist/angular/services/square-payments.service.d.ts +73 -0
  45. package/dist/angular/services/square-payments.service.d.ts.map +1 -0
  46. package/dist/angular/services/square-payments.service.js +167 -0
  47. package/dist/angular/services/square-payments.service.js.map +1 -0
  48. package/dist/angular/services/square-sdk.service.d.ts +45 -0
  49. package/dist/angular/services/square-sdk.service.d.ts.map +1 -0
  50. package/dist/angular/services/square-sdk.service.js +133 -0
  51. package/dist/angular/services/square-sdk.service.js.map +1 -0
  52. package/dist/angular/square.module.d.ts +36 -0
  53. package/dist/angular/square.module.d.ts.map +1 -0
  54. package/dist/angular/square.module.js +75 -0
  55. package/dist/angular/square.module.js.map +1 -0
  56. package/dist/angular/types.d.ts +189 -0
  57. package/dist/angular/types.d.ts.map +1 -0
  58. package/dist/angular/types.js +8 -0
  59. package/dist/angular/types.js.map +1 -0
  60. package/dist/core/builders/order.builder.d.ts +140 -0
  61. package/dist/core/builders/order.builder.d.ts.map +1 -0
  62. package/dist/core/builders/order.builder.js +185 -0
  63. package/dist/core/builders/order.builder.js.map +1 -0
  64. package/dist/core/client.d.ts +93 -0
  65. package/dist/core/client.d.ts.map +1 -0
  66. package/dist/core/client.js +99 -0
  67. package/dist/core/client.js.map +1 -0
  68. package/dist/core/errors.d.ts +55 -0
  69. package/dist/core/errors.d.ts.map +1 -0
  70. package/dist/core/errors.js +118 -0
  71. package/dist/core/errors.js.map +1 -0
  72. package/dist/core/index.d.ts +17 -0
  73. package/dist/core/index.d.ts.map +1 -0
  74. package/dist/core/index.js +18 -0
  75. package/dist/core/index.js.map +1 -0
  76. package/dist/core/services/catalog.service.d.ts +218 -0
  77. package/dist/core/services/catalog.service.d.ts.map +1 -0
  78. package/dist/core/services/catalog.service.js +274 -0
  79. package/dist/core/services/catalog.service.js.map +1 -0
  80. package/dist/core/services/customers.service.d.ts +197 -0
  81. package/dist/core/services/customers.service.d.ts.map +1 -0
  82. package/dist/core/services/customers.service.js +246 -0
  83. package/dist/core/services/customers.service.js.map +1 -0
  84. package/dist/core/services/inventory.service.d.ts +196 -0
  85. package/dist/core/services/inventory.service.d.ts.map +1 -0
  86. package/dist/core/services/inventory.service.js +266 -0
  87. package/dist/core/services/inventory.service.js.map +1 -0
  88. package/dist/core/services/invoices.service.d.ts +211 -0
  89. package/dist/core/services/invoices.service.d.ts.map +1 -0
  90. package/dist/core/services/invoices.service.js +297 -0
  91. package/dist/core/services/invoices.service.js.map +1 -0
  92. package/dist/core/services/loyalty.service.d.ts +282 -0
  93. package/dist/core/services/loyalty.service.d.ts.map +1 -0
  94. package/dist/core/services/loyalty.service.js +340 -0
  95. package/dist/core/services/loyalty.service.js.map +1 -0
  96. package/dist/core/services/orders.service.d.ts +121 -0
  97. package/dist/core/services/orders.service.d.ts.map +1 -0
  98. package/dist/core/services/orders.service.js +208 -0
  99. package/dist/core/services/orders.service.js.map +1 -0
  100. package/dist/core/services/payments.service.d.ts +121 -0
  101. package/dist/core/services/payments.service.d.ts.map +1 -0
  102. package/dist/core/services/payments.service.js +189 -0
  103. package/dist/core/services/payments.service.js.map +1 -0
  104. package/dist/core/services/subscriptions.service.d.ts +205 -0
  105. package/dist/core/services/subscriptions.service.d.ts.map +1 -0
  106. package/dist/core/services/subscriptions.service.js +265 -0
  107. package/dist/core/services/subscriptions.service.js.map +1 -0
  108. package/dist/core/types/index.d.ts +68 -0
  109. package/dist/core/types/index.d.ts.map +1 -0
  110. package/dist/core/types/index.js +2 -0
  111. package/dist/core/types/index.js.map +1 -0
  112. package/dist/core/utils.d.ts +74 -0
  113. package/dist/core/utils.d.ts.map +1 -0
  114. package/dist/core/utils.js +96 -0
  115. package/dist/core/utils.js.map +1 -0
  116. package/dist/react/SquareProvider.d.ts +50 -0
  117. package/dist/react/SquareProvider.d.ts.map +1 -0
  118. package/dist/react/SquareProvider.js +134 -0
  119. package/dist/react/SquareProvider.js.map +1 -0
  120. package/dist/react/__tests__/CardInput.test.d.ts +2 -0
  121. package/dist/react/__tests__/CardInput.test.d.ts.map +1 -0
  122. package/dist/react/__tests__/CardInput.test.js +218 -0
  123. package/dist/react/__tests__/CardInput.test.js.map +1 -0
  124. package/dist/react/__tests__/PaymentButton.test.d.ts +2 -0
  125. package/dist/react/__tests__/PaymentButton.test.d.ts.map +1 -0
  126. package/dist/react/__tests__/PaymentButton.test.js +400 -0
  127. package/dist/react/__tests__/PaymentButton.test.js.map +1 -0
  128. package/dist/react/__tests__/SquareProvider.test.d.ts +2 -0
  129. package/dist/react/__tests__/SquareProvider.test.d.ts.map +1 -0
  130. package/dist/react/__tests__/SquareProvider.test.js +126 -0
  131. package/dist/react/__tests__/SquareProvider.test.js.map +1 -0
  132. package/dist/react/__tests__/setup.d.ts +2 -0
  133. package/dist/react/__tests__/setup.d.ts.map +1 -0
  134. package/dist/react/__tests__/setup.js +3 -0
  135. package/dist/react/__tests__/setup.js.map +1 -0
  136. package/dist/react/__tests__/useCatalog.test.d.ts +2 -0
  137. package/dist/react/__tests__/useCatalog.test.d.ts.map +1 -0
  138. package/dist/react/__tests__/useCatalog.test.js +277 -0
  139. package/dist/react/__tests__/useCatalog.test.js.map +1 -0
  140. package/dist/react/__tests__/useCustomers.test.d.ts +2 -0
  141. package/dist/react/__tests__/useCustomers.test.d.ts.map +1 -0
  142. package/dist/react/__tests__/useCustomers.test.js +312 -0
  143. package/dist/react/__tests__/useCustomers.test.js.map +1 -0
  144. package/dist/react/__tests__/useOrders.test.d.ts +2 -0
  145. package/dist/react/__tests__/useOrders.test.d.ts.map +1 -0
  146. package/dist/react/__tests__/useOrders.test.js +216 -0
  147. package/dist/react/__tests__/useOrders.test.js.map +1 -0
  148. package/dist/react/__tests__/usePayments.test.d.ts +2 -0
  149. package/dist/react/__tests__/usePayments.test.d.ts.map +1 -0
  150. package/dist/react/__tests__/usePayments.test.js +235 -0
  151. package/dist/react/__tests__/usePayments.test.js.map +1 -0
  152. package/dist/react/__tests__/useSquarePayment.test.d.ts +2 -0
  153. package/dist/react/__tests__/useSquarePayment.test.d.ts.map +1 -0
  154. package/dist/react/__tests__/useSquarePayment.test.js +447 -0
  155. package/dist/react/__tests__/useSquarePayment.test.js.map +1 -0
  156. package/dist/react/components/CardInput.d.ts +69 -0
  157. package/dist/react/components/CardInput.d.ts.map +1 -0
  158. package/dist/react/components/CardInput.js +58 -0
  159. package/dist/react/components/CardInput.js.map +1 -0
  160. package/dist/react/components/PaymentButton.d.ts +71 -0
  161. package/dist/react/components/PaymentButton.d.ts.map +1 -0
  162. package/dist/react/components/PaymentButton.js +140 -0
  163. package/dist/react/components/PaymentButton.js.map +1 -0
  164. package/dist/react/components/index.d.ts +5 -0
  165. package/dist/react/components/index.d.ts.map +1 -0
  166. package/dist/react/components/index.js +3 -0
  167. package/dist/react/components/index.js.map +1 -0
  168. package/dist/react/hooks/index.d.ts +11 -0
  169. package/dist/react/hooks/index.d.ts.map +1 -0
  170. package/dist/react/hooks/index.js +6 -0
  171. package/dist/react/hooks/index.js.map +1 -0
  172. package/dist/react/hooks/useCatalog.d.ts +98 -0
  173. package/dist/react/hooks/useCatalog.d.ts.map +1 -0
  174. package/dist/react/hooks/useCatalog.js +134 -0
  175. package/dist/react/hooks/useCatalog.js.map +1 -0
  176. package/dist/react/hooks/useCustomers.d.ts +105 -0
  177. package/dist/react/hooks/useCustomers.d.ts.map +1 -0
  178. package/dist/react/hooks/useCustomers.js +174 -0
  179. package/dist/react/hooks/useCustomers.js.map +1 -0
  180. package/dist/react/hooks/useOrders.d.ts +112 -0
  181. package/dist/react/hooks/useOrders.d.ts.map +1 -0
  182. package/dist/react/hooks/useOrders.js +115 -0
  183. package/dist/react/hooks/useOrders.js.map +1 -0
  184. package/dist/react/hooks/usePayments.d.ts +98 -0
  185. package/dist/react/hooks/usePayments.d.ts.map +1 -0
  186. package/dist/react/hooks/usePayments.js +89 -0
  187. package/dist/react/hooks/usePayments.js.map +1 -0
  188. package/dist/react/hooks/useSquarePayment.d.ts +52 -0
  189. package/dist/react/hooks/useSquarePayment.d.ts.map +1 -0
  190. package/dist/react/hooks/useSquarePayment.js +146 -0
  191. package/dist/react/hooks/useSquarePayment.js.map +1 -0
  192. package/dist/react/index.d.ts +8 -0
  193. package/dist/react/index.d.ts.map +1 -0
  194. package/dist/react/index.js +7 -0
  195. package/dist/react/index.js.map +1 -0
  196. package/dist/react/types.d.ts +183 -0
  197. package/dist/react/types.d.ts.map +1 -0
  198. package/dist/react/types.js +2 -0
  199. package/dist/react/types.js.map +1 -0
  200. package/dist/server/index.d.ts +43 -0
  201. package/dist/server/index.d.ts.map +1 -0
  202. package/dist/server/index.js +45 -0
  203. package/dist/server/index.js.map +1 -0
  204. package/dist/server/middleware/express.d.ts +77 -0
  205. package/dist/server/middleware/express.d.ts.map +1 -0
  206. package/dist/server/middleware/express.js +123 -0
  207. package/dist/server/middleware/express.js.map +1 -0
  208. package/dist/server/middleware/nextjs.d.ts +118 -0
  209. package/dist/server/middleware/nextjs.d.ts.map +1 -0
  210. package/dist/server/middleware/nextjs.js +172 -0
  211. package/dist/server/middleware/nextjs.js.map +1 -0
  212. package/dist/server/types.d.ts +89 -0
  213. package/dist/server/types.d.ts.map +1 -0
  214. package/dist/server/types.js +7 -0
  215. package/dist/server/types.js.map +1 -0
  216. package/dist/server/webhook.d.ts +114 -0
  217. package/dist/server/webhook.d.ts.map +1 -0
  218. package/dist/server/webhook.js +190 -0
  219. package/dist/server/webhook.js.map +1 -0
  220. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -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"}