@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,265 @@
1
+ import { parseSquareError, SquareValidationError } from '../errors.js';
2
+ import { createIdempotencyKey } from '../utils.js';
3
+ /**
4
+ * Subscriptions service for managing Square subscriptions
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * // Create a subscription
9
+ * const subscription = await square.subscriptions.create({
10
+ * customerId: 'CUST_123',
11
+ * planVariationId: 'PLAN_VAR_123',
12
+ * });
13
+ *
14
+ * // Cancel a subscription
15
+ * await square.subscriptions.cancel('SUB_123');
16
+ * ```
17
+ */
18
+ export class SubscriptionsService {
19
+ client;
20
+ defaultLocationId;
21
+ constructor(client, defaultLocationId) {
22
+ this.client = client;
23
+ this.defaultLocationId = defaultLocationId;
24
+ }
25
+ /**
26
+ * Create a new subscription
27
+ *
28
+ * @param options - Subscription creation options
29
+ * @returns Created subscription
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * const subscription = await square.subscriptions.create({
34
+ * customerId: 'CUST_123',
35
+ * planVariationId: 'PLAN_VAR_123',
36
+ * startDate: '2024-02-01',
37
+ * });
38
+ * ```
39
+ */
40
+ async create(options) {
41
+ const locationId = options.locationId ?? this.defaultLocationId;
42
+ if (!locationId) {
43
+ throw new SquareValidationError('locationId is required. Set it in client config or provide it explicitly.', 'locationId');
44
+ }
45
+ if (!options.customerId) {
46
+ throw new SquareValidationError('customerId is required', 'customerId');
47
+ }
48
+ if (!options.planVariationId) {
49
+ throw new SquareValidationError('planVariationId is required', 'planVariationId');
50
+ }
51
+ try {
52
+ const response = await this.client.subscriptions.create({
53
+ idempotencyKey: options.idempotencyKey ?? createIdempotencyKey(),
54
+ locationId,
55
+ customerId: options.customerId,
56
+ planVariationId: options.planVariationId,
57
+ startDate: options.startDate,
58
+ cardId: options.cardId,
59
+ timezone: options.timezone,
60
+ priceOverrideMoney: options.priceOverride
61
+ ? {
62
+ amount: BigInt(options.priceOverride),
63
+ currency: 'USD',
64
+ }
65
+ : undefined,
66
+ taxPercentage: options.taxPercentage,
67
+ });
68
+ if (!response.subscription) {
69
+ throw new Error('Subscription was not created');
70
+ }
71
+ return response.subscription;
72
+ }
73
+ catch (error) {
74
+ throw parseSquareError(error);
75
+ }
76
+ }
77
+ /**
78
+ * Get a subscription by ID
79
+ *
80
+ * @param subscriptionId - Subscription ID
81
+ * @returns Subscription details
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * const subscription = await square.subscriptions.get('SUB_123');
86
+ * ```
87
+ */
88
+ async get(subscriptionId) {
89
+ try {
90
+ const response = await this.client.subscriptions.get({ subscriptionId });
91
+ if (!response.subscription) {
92
+ throw new Error('Subscription not found');
93
+ }
94
+ return response.subscription;
95
+ }
96
+ catch (error) {
97
+ throw parseSquareError(error);
98
+ }
99
+ }
100
+ /**
101
+ * Update a subscription
102
+ *
103
+ * @param subscriptionId - Subscription ID
104
+ * @param options - Update options
105
+ * @returns Updated subscription
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * const subscription = await square.subscriptions.update('SUB_123', {
110
+ * priceOverride: 1500,
111
+ * });
112
+ * ```
113
+ */
114
+ async update(subscriptionId, options) {
115
+ try {
116
+ const response = await this.client.subscriptions.update({
117
+ subscriptionId,
118
+ subscription: {
119
+ priceOverrideMoney: options.priceOverride
120
+ ? {
121
+ amount: BigInt(options.priceOverride),
122
+ currency: 'USD',
123
+ }
124
+ : undefined,
125
+ cardId: options.cardId,
126
+ taxPercentage: options.taxPercentage,
127
+ },
128
+ });
129
+ if (!response.subscription) {
130
+ throw new Error('Subscription update failed');
131
+ }
132
+ return response.subscription;
133
+ }
134
+ catch (error) {
135
+ throw parseSquareError(error);
136
+ }
137
+ }
138
+ /**
139
+ * Cancel a subscription
140
+ *
141
+ * @param subscriptionId - Subscription ID to cancel
142
+ * @returns Cancelled subscription
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * const subscription = await square.subscriptions.cancel('SUB_123');
147
+ * ```
148
+ */
149
+ async cancel(subscriptionId) {
150
+ try {
151
+ const response = await this.client.subscriptions.cancel({ subscriptionId });
152
+ if (!response.subscription) {
153
+ throw new Error('Subscription cancellation failed');
154
+ }
155
+ return response.subscription;
156
+ }
157
+ catch (error) {
158
+ throw parseSquareError(error);
159
+ }
160
+ }
161
+ /**
162
+ * Pause a subscription
163
+ *
164
+ * @param subscriptionId - Subscription ID to pause
165
+ * @param options - Pause options
166
+ * @returns Paused subscription
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * const subscription = await square.subscriptions.pause('SUB_123', {
171
+ * pauseEffectiveDate: '2024-03-01',
172
+ * });
173
+ * ```
174
+ */
175
+ async pause(subscriptionId, options) {
176
+ try {
177
+ const response = await this.client.subscriptions.pause({
178
+ subscriptionId,
179
+ pauseEffectiveDate: options?.pauseEffectiveDate,
180
+ pauseCycleDuration: options?.pauseCycleDuration
181
+ ? BigInt(options.pauseCycleDuration)
182
+ : undefined,
183
+ });
184
+ if (!response.subscription) {
185
+ throw new Error('Subscription pause failed');
186
+ }
187
+ return response.subscription;
188
+ }
189
+ catch (error) {
190
+ throw parseSquareError(error);
191
+ }
192
+ }
193
+ /**
194
+ * Resume a paused subscription
195
+ *
196
+ * @param subscriptionId - Subscription ID to resume
197
+ * @param resumeEffectiveDate - Optional date to resume
198
+ * @returns Resumed subscription
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * const subscription = await square.subscriptions.resume('SUB_123');
203
+ * ```
204
+ */
205
+ async resume(subscriptionId, resumeEffectiveDate) {
206
+ try {
207
+ const response = await this.client.subscriptions.resume({
208
+ subscriptionId,
209
+ resumeEffectiveDate,
210
+ });
211
+ if (!response.subscription) {
212
+ throw new Error('Subscription resume failed');
213
+ }
214
+ return response.subscription;
215
+ }
216
+ catch (error) {
217
+ throw parseSquareError(error);
218
+ }
219
+ }
220
+ /**
221
+ * Search for subscriptions
222
+ *
223
+ * @param options - Search options
224
+ * @returns Matching subscriptions with pagination
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * const results = await square.subscriptions.search({
229
+ * customerId: 'CUST_123',
230
+ * });
231
+ * ```
232
+ */
233
+ async search(options) {
234
+ try {
235
+ const filters = [];
236
+ if (options?.customerId) {
237
+ filters.push({
238
+ customerIds: [options.customerId],
239
+ });
240
+ }
241
+ if (options?.locationIds) {
242
+ filters.push({
243
+ locationIds: options.locationIds,
244
+ });
245
+ }
246
+ const response = await this.client.subscriptions.search({
247
+ cursor: options?.cursor,
248
+ limit: options?.limit,
249
+ query: filters.length > 0
250
+ ? {
251
+ filter: filters.reduce((acc, f) => ({ ...acc, ...f }), {}),
252
+ }
253
+ : undefined,
254
+ });
255
+ return {
256
+ data: (response.subscriptions ?? []),
257
+ cursor: response.cursor,
258
+ };
259
+ }
260
+ catch (error) {
261
+ throw parseSquareError(error);
262
+ }
263
+ }
264
+ }
265
+ //# sourceMappingURL=subscriptions.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.service.js","sourceRoot":"","sources":["../../../src/core/services/subscriptions.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Square environment configuration
3
+ */
4
+ export type SquareEnvironment = 'sandbox' | 'production';
5
+ /**
6
+ * Currency codes supported by Square
7
+ */
8
+ export type CurrencyCode = 'USD' | 'CAD' | 'GBP' | 'EUR' | 'AUD' | 'JPY';
9
+ /**
10
+ * Payment source identifier
11
+ * Can be a card nonce, card ID, or digital wallet token
12
+ */
13
+ export type PaymentSource = string;
14
+ /**
15
+ * Common pagination options
16
+ */
17
+ export interface PaginationOptions {
18
+ cursor?: string;
19
+ limit?: number;
20
+ }
21
+ /**
22
+ * Common response with pagination
23
+ */
24
+ export interface PaginatedResponse<T> {
25
+ data: T[];
26
+ cursor?: string;
27
+ }
28
+ /**
29
+ * Simple money representation for API inputs
30
+ */
31
+ export interface MoneyInput {
32
+ amount: number;
33
+ currency?: CurrencyCode;
34
+ }
35
+ /**
36
+ * Line item for orders
37
+ */
38
+ export interface LineItemInput {
39
+ name?: string;
40
+ catalogObjectId?: string;
41
+ quantity?: number;
42
+ amount?: number;
43
+ note?: string;
44
+ }
45
+ /**
46
+ * Create payment options
47
+ */
48
+ export interface CreatePaymentOptions {
49
+ sourceId: PaymentSource;
50
+ amount: number;
51
+ currency?: CurrencyCode;
52
+ customerId?: string;
53
+ orderId?: string;
54
+ referenceId?: string;
55
+ note?: string;
56
+ autocomplete?: boolean;
57
+ idempotencyKey?: string;
58
+ }
59
+ /**
60
+ * Create order options
61
+ */
62
+ export interface CreateOrderOptions {
63
+ lineItems: LineItemInput[];
64
+ customerId?: string;
65
+ referenceId?: string;
66
+ idempotencyKey?: string;
67
+ }
68
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEzE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ import type { CurrencyCode } from './types/index.js';
2
+ /**
3
+ * Money representation
4
+ */
5
+ export interface Money {
6
+ amount: bigint;
7
+ currency: CurrencyCode;
8
+ }
9
+ /**
10
+ * Convert a dollar amount to cents (smallest currency unit)
11
+ *
12
+ * @param amount - Dollar amount (e.g., 10.50)
13
+ * @param currency - Currency code (default: USD)
14
+ * @returns Amount in smallest currency unit (e.g., 1050 for $10.50 USD)
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * toCents(10.50) // 1050
19
+ * toCents(10.50, 'USD') // 1050
20
+ * toCents(1000, 'JPY') // 1000 (JPY has no decimal places)
21
+ * ```
22
+ */
23
+ export declare function toCents(amount: number, currency?: CurrencyCode): bigint;
24
+ /**
25
+ * Convert cents (smallest currency unit) to dollar amount
26
+ *
27
+ * @param cents - Amount in smallest currency unit
28
+ * @param currency - Currency code (default: USD)
29
+ * @returns Dollar amount
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * fromCents(1050n) // 10.50
34
+ * fromCents(1050n, 'USD') // 10.50
35
+ * fromCents(1000n, 'JPY') // 1000
36
+ * ```
37
+ */
38
+ export declare function fromCents(cents: bigint | number, currency?: CurrencyCode): number;
39
+ /**
40
+ * Format money for display
41
+ *
42
+ * @param cents - Amount in smallest currency unit
43
+ * @param currency - Currency code (default: USD)
44
+ * @param locale - Locale for formatting (default: en-US)
45
+ * @returns Formatted currency string
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * formatMoney(1050n) // "$10.50"
50
+ * formatMoney(1050n, 'USD', 'en-US') // "$10.50"
51
+ * formatMoney(1000n, 'JPY', 'ja-JP') // "¥1,000"
52
+ * ```
53
+ */
54
+ export declare function formatMoney(cents: bigint | number, currency?: CurrencyCode, locale?: string): string;
55
+ /**
56
+ * Create a unique idempotency key for Square API requests
57
+ *
58
+ * @returns UUID string
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const key = createIdempotencyKey();
63
+ * // "550e8400-e29b-41d4-a716-446655440000"
64
+ * ```
65
+ */
66
+ export declare function createIdempotencyKey(): string;
67
+ /**
68
+ * Convert Money object to Square API format
69
+ */
70
+ export declare function toSquareMoney(amount: number | bigint, currency?: CurrencyCode): {
71
+ amount: bigint;
72
+ currency: string;
73
+ };
74
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;CACxB;AAcD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAE,YAAoB,GAAG,MAAM,CAI9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,GAAE,YAAoB,GAAG,MAAM,CAIxF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,GAAE,YAAoB,EAC9B,MAAM,GAAE,MAAgB,GACvB,MAAM,CAMR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,QAAQ,GAAE,YAAoB,GAC7B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAMtC"}
@@ -0,0 +1,96 @@
1
+ import { randomUUID } from 'crypto';
2
+ /**
3
+ * Zero-decimal currencies that don't use fractional units
4
+ */
5
+ const ZERO_DECIMAL_CURRENCIES = ['JPY'];
6
+ /**
7
+ * Get the multiplier for a currency
8
+ */
9
+ function getCurrencyMultiplier(currency) {
10
+ return ZERO_DECIMAL_CURRENCIES.includes(currency) ? 1 : 100;
11
+ }
12
+ /**
13
+ * Convert a dollar amount to cents (smallest currency unit)
14
+ *
15
+ * @param amount - Dollar amount (e.g., 10.50)
16
+ * @param currency - Currency code (default: USD)
17
+ * @returns Amount in smallest currency unit (e.g., 1050 for $10.50 USD)
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * toCents(10.50) // 1050
22
+ * toCents(10.50, 'USD') // 1050
23
+ * toCents(1000, 'JPY') // 1000 (JPY has no decimal places)
24
+ * ```
25
+ */
26
+ export function toCents(amount, currency = 'USD') {
27
+ const multiplier = getCurrencyMultiplier(currency);
28
+ // Use Math.round to handle floating point precision issues
29
+ return BigInt(Math.round(amount * multiplier));
30
+ }
31
+ /**
32
+ * Convert cents (smallest currency unit) to dollar amount
33
+ *
34
+ * @param cents - Amount in smallest currency unit
35
+ * @param currency - Currency code (default: USD)
36
+ * @returns Dollar amount
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * fromCents(1050n) // 10.50
41
+ * fromCents(1050n, 'USD') // 10.50
42
+ * fromCents(1000n, 'JPY') // 1000
43
+ * ```
44
+ */
45
+ export function fromCents(cents, currency = 'USD') {
46
+ const multiplier = getCurrencyMultiplier(currency);
47
+ const value = typeof cents === 'bigint' ? Number(cents) : cents;
48
+ return value / multiplier;
49
+ }
50
+ /**
51
+ * Format money for display
52
+ *
53
+ * @param cents - Amount in smallest currency unit
54
+ * @param currency - Currency code (default: USD)
55
+ * @param locale - Locale for formatting (default: en-US)
56
+ * @returns Formatted currency string
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * formatMoney(1050n) // "$10.50"
61
+ * formatMoney(1050n, 'USD', 'en-US') // "$10.50"
62
+ * formatMoney(1000n, 'JPY', 'ja-JP') // "¥1,000"
63
+ * ```
64
+ */
65
+ export function formatMoney(cents, currency = 'USD', locale = 'en-US') {
66
+ const amount = fromCents(cents, currency);
67
+ return new Intl.NumberFormat(locale, {
68
+ style: 'currency',
69
+ currency,
70
+ }).format(amount);
71
+ }
72
+ /**
73
+ * Create a unique idempotency key for Square API requests
74
+ *
75
+ * @returns UUID string
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const key = createIdempotencyKey();
80
+ * // "550e8400-e29b-41d4-a716-446655440000"
81
+ * ```
82
+ */
83
+ export function createIdempotencyKey() {
84
+ return randomUUID();
85
+ }
86
+ /**
87
+ * Convert Money object to Square API format
88
+ */
89
+ export function toSquareMoney(amount, currency = 'USD') {
90
+ const cents = typeof amount === 'bigint' ? amount : toCents(amount, currency);
91
+ return {
92
+ amount: cents,
93
+ currency,
94
+ };
95
+ }
96
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAWpC;;GAEG;AACH,MAAM,uBAAuB,GAAmB,CAAC,KAAK,CAAC,CAAC;AAExD;;GAEG;AACH,SAAS,qBAAqB,CAAC,QAAsB;IACnD,OAAO,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO,CAAC,MAAc,EAAE,WAAyB,KAAK;IACpE,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACnD,2DAA2D;IAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,KAAsB,EAAE,WAAyB,KAAK;IAC9E,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChE,OAAO,KAAK,GAAG,UAAU,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CACzB,KAAsB,EACtB,WAAyB,KAAK,EAC9B,SAAiB,OAAO;IAExB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACnC,KAAK,EAAE,UAAU;QACjB,QAAQ;KACT,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAuB,EACvB,WAAyB,KAAK;IAE9B,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9E,OAAO;QACL,MAAM,EAAE,KAAK;QACb,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import type { SquareProviderConfig, SquareContextValue } from './types.js';
3
+ declare const SquareContext: React.Context<SquareContextValue | null>;
4
+ /**
5
+ * Props for SquareProvider
6
+ */
7
+ export interface SquareProviderProps extends SquareProviderConfig {
8
+ children: React.ReactNode;
9
+ }
10
+ /**
11
+ * Square Provider component that initializes the Web Payments SDK
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * import { SquareProvider } from '@bates-solutions/squareup/react';
16
+ *
17
+ * function App() {
18
+ * return (
19
+ * <SquareProvider
20
+ * applicationId="sq0idp-xxx"
21
+ * locationId="LXXX"
22
+ * environment="sandbox"
23
+ * >
24
+ * <Checkout />
25
+ * </SquareProvider>
26
+ * );
27
+ * }
28
+ * ```
29
+ */
30
+ export declare function SquareProvider({ children, applicationId, locationId, environment, accessToken, currency, }: SquareProviderProps): import("react/jsx-runtime").JSX.Element;
31
+ /**
32
+ * Hook to access Square context
33
+ *
34
+ * @throws Error if used outside of SquareProvider
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * function Checkout() {
39
+ * const { sdkLoaded, payments, error } = useSquare();
40
+ *
41
+ * if (error) return <div>Error: {error.message}</div>;
42
+ * if (!sdkLoaded) return <div>Loading...</div>;
43
+ *
44
+ * return <div>Ready to accept payments!</div>;
45
+ * }
46
+ * ```
47
+ */
48
+ export declare function useSquare(): SquareContextValue;
49
+ export { SquareContext };
50
+ //# sourceMappingURL=SquareProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SquareProvider.d.ts","sourceRoot":"","sources":["../../src/react/SquareProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkE,MAAM,OAAO,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAY,MAAM,YAAY,CAAC;AAErF,QAAA,MAAM,aAAa,0CAAiD,CAAC;AAwCrE;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,aAAa,EACb,UAAU,EACV,WAAuB,EACvB,WAAW,EACX,QAAgB,GACjB,EAAE,mBAAmB,2CAqErB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAQ9C;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}