@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,266 @@
1
+ import { parseSquareError, SquareValidationError } from '../errors.js';
2
+ import { createIdempotencyKey } from '../utils.js';
3
+ /**
4
+ * Inventory service for managing Square inventory
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * // Get inventory count for an item
9
+ * const counts = await square.inventory.getCounts('ITEM_VAR_123');
10
+ *
11
+ * // Adjust inventory
12
+ * await square.inventory.adjust({
13
+ * catalogObjectId: 'ITEM_VAR_123',
14
+ * locationId: 'LXXX',
15
+ * quantity: 10,
16
+ * });
17
+ * ```
18
+ */
19
+ export class InventoryService {
20
+ client;
21
+ defaultLocationId;
22
+ constructor(client, defaultLocationId) {
23
+ this.client = client;
24
+ this.defaultLocationId = defaultLocationId;
25
+ }
26
+ /**
27
+ * Get inventory counts for a catalog object
28
+ *
29
+ * @param catalogObjectId - Catalog object ID (usually item variation)
30
+ * @param locationId - Optional location ID filter
31
+ * @returns Array of inventory counts
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const counts = await square.inventory.getCounts('ITEM_VAR_123');
36
+ * console.log(`In stock: ${counts[0].quantity}`);
37
+ * ```
38
+ */
39
+ async getCounts(catalogObjectId, locationId) {
40
+ try {
41
+ const counts = [];
42
+ const page = await this.client.inventory.get({
43
+ catalogObjectId,
44
+ locationIds: locationId,
45
+ });
46
+ for await (const count of page) {
47
+ counts.push(count);
48
+ }
49
+ return counts;
50
+ }
51
+ catch (error) {
52
+ throw parseSquareError(error);
53
+ }
54
+ }
55
+ /**
56
+ * Batch retrieve inventory counts for multiple objects
57
+ *
58
+ * @param catalogObjectIds - Array of catalog object IDs
59
+ * @param locationIds - Optional array of location IDs
60
+ * @returns Array of inventory counts
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const counts = await square.inventory.batchGetCounts(
65
+ * ['ITEM_VAR_1', 'ITEM_VAR_2'],
66
+ * ['LOCATION_1']
67
+ * );
68
+ * ```
69
+ */
70
+ async batchGetCounts(catalogObjectIds, locationIds) {
71
+ if (catalogObjectIds.length === 0) {
72
+ return [];
73
+ }
74
+ try {
75
+ const counts = [];
76
+ const page = await this.client.inventory.batchGetCounts({
77
+ catalogObjectIds,
78
+ locationIds,
79
+ });
80
+ for await (const count of page) {
81
+ counts.push(count);
82
+ }
83
+ return counts;
84
+ }
85
+ catch (error) {
86
+ throw parseSquareError(error);
87
+ }
88
+ }
89
+ /**
90
+ * Set the inventory count for an item (physical count)
91
+ *
92
+ * @param options - Physical count options
93
+ * @returns Updated inventory counts
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * await square.inventory.setCount({
98
+ * catalogObjectId: 'ITEM_VAR_123',
99
+ * locationId: 'LXXX',
100
+ * quantity: 50,
101
+ * });
102
+ * ```
103
+ */
104
+ async setCount(options) {
105
+ const locationId = options.locationId ?? this.defaultLocationId;
106
+ if (!locationId) {
107
+ throw new SquareValidationError('locationId is required. Set it in client config or provide it explicitly.', 'locationId');
108
+ }
109
+ try {
110
+ const response = await this.client.inventory.batchCreateChanges({
111
+ idempotencyKey: options.idempotencyKey ?? createIdempotencyKey(),
112
+ changes: [
113
+ {
114
+ type: 'PHYSICAL_COUNT',
115
+ physicalCount: {
116
+ catalogObjectId: options.catalogObjectId,
117
+ state: 'IN_STOCK',
118
+ locationId,
119
+ quantity: String(options.quantity),
120
+ occurredAt: options.occurredAt ?? new Date().toISOString(),
121
+ },
122
+ },
123
+ ],
124
+ });
125
+ return (response.counts ?? []);
126
+ }
127
+ catch (error) {
128
+ throw parseSquareError(error);
129
+ }
130
+ }
131
+ /**
132
+ * Adjust inventory (add or remove stock)
133
+ *
134
+ * @param options - Adjustment options
135
+ * @returns Updated inventory counts
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * // Add 10 items to stock
140
+ * await square.inventory.adjust({
141
+ * catalogObjectId: 'ITEM_VAR_123',
142
+ * locationId: 'LXXX',
143
+ * quantity: 10,
144
+ * });
145
+ *
146
+ * // Remove 5 items (negative quantity)
147
+ * await square.inventory.adjust({
148
+ * catalogObjectId: 'ITEM_VAR_123',
149
+ * locationId: 'LXXX',
150
+ * quantity: -5,
151
+ * });
152
+ * ```
153
+ */
154
+ async adjust(options) {
155
+ const locationId = options.locationId ?? this.defaultLocationId;
156
+ if (!locationId) {
157
+ throw new SquareValidationError('locationId is required. Set it in client config or provide it explicitly.', 'locationId');
158
+ }
159
+ const isAdding = options.quantity > 0;
160
+ const absQuantity = Math.abs(options.quantity);
161
+ try {
162
+ const response = await this.client.inventory.batchCreateChanges({
163
+ idempotencyKey: options.idempotencyKey ?? createIdempotencyKey(),
164
+ changes: [
165
+ {
166
+ type: 'ADJUSTMENT',
167
+ adjustment: {
168
+ catalogObjectId: options.catalogObjectId,
169
+ fromState: isAdding ? 'NONE' : 'IN_STOCK',
170
+ toState: isAdding ? 'IN_STOCK' : 'SOLD',
171
+ locationId,
172
+ quantity: String(absQuantity),
173
+ occurredAt: new Date().toISOString(),
174
+ },
175
+ },
176
+ ],
177
+ });
178
+ return (response.counts ?? []);
179
+ }
180
+ catch (error) {
181
+ throw parseSquareError(error);
182
+ }
183
+ }
184
+ /**
185
+ * Transfer inventory between locations
186
+ *
187
+ * @param options - Transfer options
188
+ * @returns Updated inventory counts
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * await square.inventory.transfer({
193
+ * catalogObjectId: 'ITEM_VAR_123',
194
+ * fromLocationId: 'LOCATION_A',
195
+ * toLocationId: 'LOCATION_B',
196
+ * quantity: 5,
197
+ * });
198
+ * ```
199
+ */
200
+ async transfer(options) {
201
+ if (options.quantity <= 0) {
202
+ throw new SquareValidationError('Transfer quantity must be positive', 'quantity');
203
+ }
204
+ try {
205
+ const response = await this.client.inventory.batchCreateChanges({
206
+ idempotencyKey: options.idempotencyKey ?? createIdempotencyKey(),
207
+ changes: [
208
+ {
209
+ type: 'TRANSFER',
210
+ transfer: {
211
+ catalogObjectId: options.catalogObjectId,
212
+ fromLocationId: options.fromLocationId,
213
+ toLocationId: options.toLocationId,
214
+ state: 'IN_STOCK',
215
+ quantity: String(options.quantity),
216
+ occurredAt: new Date().toISOString(),
217
+ },
218
+ },
219
+ ],
220
+ });
221
+ return (response.counts ?? []);
222
+ }
223
+ catch (error) {
224
+ throw parseSquareError(error);
225
+ }
226
+ }
227
+ /**
228
+ * Batch apply multiple inventory changes
229
+ *
230
+ * @param changes - Array of inventory changes
231
+ * @param idempotencyKey - Optional idempotency key
232
+ * @returns Updated inventory counts
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * await square.inventory.batchChange([
237
+ * {
238
+ * type: 'ADJUSTMENT',
239
+ * adjustment: {
240
+ * catalogObjectId: 'ITEM_1',
241
+ * fromState: 'NONE',
242
+ * toState: 'IN_STOCK',
243
+ * locationId: 'LXXX',
244
+ * quantity: '10',
245
+ * },
246
+ * },
247
+ * ]);
248
+ * ```
249
+ */
250
+ async batchChange(changes, idempotencyKey) {
251
+ if (changes.length === 0) {
252
+ return [];
253
+ }
254
+ try {
255
+ const response = await this.client.inventory.batchCreateChanges({
256
+ idempotencyKey: idempotencyKey ?? createIdempotencyKey(),
257
+ changes: changes,
258
+ });
259
+ return (response.counts ?? []);
260
+ }
261
+ catch (error) {
262
+ throw parseSquareError(error);
263
+ }
264
+ }
265
+ }
266
+ //# sourceMappingURL=inventory.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory.service.js","sourceRoot":"","sources":["../../../src/core/services/inventory.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ import type { SquareClient } from 'square';
2
+ import type { CurrencyCode } from '../types/index.js';
3
+ /**
4
+ * Invoice status types
5
+ */
6
+ export type InvoiceStatus = 'DRAFT' | 'UNPAID' | 'SCHEDULED' | 'PARTIALLY_PAID' | 'PAID' | 'PARTIALLY_REFUNDED' | 'REFUNDED' | 'CANCELED' | 'FAILED' | 'PAYMENT_PENDING';
7
+ /**
8
+ * Invoice delivery method
9
+ */
10
+ export type InvoiceDeliveryMethod = 'EMAIL' | 'SHARE_MANUALLY' | 'SMS';
11
+ /**
12
+ * Invoice from Square API
13
+ */
14
+ export interface Invoice {
15
+ id?: string;
16
+ version?: number;
17
+ locationId?: string;
18
+ orderId?: string;
19
+ primaryRecipient?: {
20
+ customerId?: string;
21
+ givenName?: string;
22
+ familyName?: string;
23
+ emailAddress?: string;
24
+ phoneNumber?: string;
25
+ };
26
+ paymentRequests?: Array<{
27
+ uid?: string;
28
+ requestType?: 'BALANCE' | 'DEPOSIT' | 'INSTALLMENT';
29
+ dueDate?: string;
30
+ tippingEnabled?: boolean;
31
+ automaticPaymentSource?: 'NONE' | 'CARD_ON_FILE' | 'BANK_ON_FILE';
32
+ cardId?: string;
33
+ computedAmountMoney?: {
34
+ amount?: bigint;
35
+ currency?: string;
36
+ };
37
+ }>;
38
+ deliveryMethod?: InvoiceDeliveryMethod;
39
+ invoiceNumber?: string;
40
+ title?: string;
41
+ description?: string;
42
+ scheduledAt?: string;
43
+ publicUrl?: string;
44
+ status?: InvoiceStatus;
45
+ timezone?: string;
46
+ createdAt?: string;
47
+ updatedAt?: string;
48
+ }
49
+ /**
50
+ * Line item for invoice
51
+ */
52
+ export interface InvoiceLineItem {
53
+ name: string;
54
+ quantity: number;
55
+ amount: number;
56
+ currency?: CurrencyCode;
57
+ description?: string;
58
+ }
59
+ /**
60
+ * Options for creating an invoice
61
+ */
62
+ export interface CreateInvoiceOptions {
63
+ customerId: string;
64
+ locationId?: string;
65
+ lineItems: InvoiceLineItem[];
66
+ title?: string;
67
+ description?: string;
68
+ dueDate?: string;
69
+ deliveryMethod?: InvoiceDeliveryMethod;
70
+ invoiceNumber?: string;
71
+ tippingEnabled?: boolean;
72
+ idempotencyKey?: string;
73
+ }
74
+ /**
75
+ * Invoices service for managing Square invoices
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * // Create an invoice
80
+ * const invoice = await square.invoices.create({
81
+ * customerId: 'CUST_123',
82
+ * lineItems: [
83
+ * { name: 'Consulting', quantity: 2, amount: 15000 },
84
+ * ],
85
+ * dueDate: '2024-02-15',
86
+ * });
87
+ *
88
+ * // Publish (send) the invoice
89
+ * await square.invoices.publish(invoice.id, invoice.version);
90
+ * ```
91
+ */
92
+ export declare class InvoicesService {
93
+ private readonly client;
94
+ private readonly defaultLocationId?;
95
+ constructor(client: SquareClient, defaultLocationId?: string | undefined);
96
+ /**
97
+ * Create a draft invoice
98
+ *
99
+ * @param options - Invoice creation options
100
+ * @returns Created invoice (in DRAFT status)
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * const invoice = await square.invoices.create({
105
+ * customerId: 'CUST_123',
106
+ * lineItems: [
107
+ * { name: 'Web Development', quantity: 10, amount: 10000 },
108
+ * { name: 'Design Services', quantity: 5, amount: 7500 },
109
+ * ],
110
+ * title: 'January Services',
111
+ * dueDate: '2024-02-01',
112
+ * deliveryMethod: 'EMAIL',
113
+ * });
114
+ * ```
115
+ */
116
+ create(options: CreateInvoiceOptions): Promise<Invoice>;
117
+ /**
118
+ * Get an invoice by ID
119
+ *
120
+ * @param invoiceId - Invoice ID
121
+ * @returns Invoice details
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * const invoice = await square.invoices.get('INV_123');
126
+ * ```
127
+ */
128
+ get(invoiceId: string): Promise<Invoice>;
129
+ /**
130
+ * Publish (send) an invoice
131
+ *
132
+ * @param invoiceId - Invoice ID
133
+ * @param version - Invoice version (for optimistic concurrency)
134
+ * @returns Published invoice
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * const invoice = await square.invoices.publish('INV_123', 0);
139
+ * console.log(`Invoice sent: ${invoice.publicUrl}`);
140
+ * ```
141
+ */
142
+ publish(invoiceId: string, version: number): Promise<Invoice>;
143
+ /**
144
+ * Cancel an invoice
145
+ *
146
+ * @param invoiceId - Invoice ID
147
+ * @param version - Invoice version (for optimistic concurrency)
148
+ * @returns Cancelled invoice
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * const invoice = await square.invoices.cancel('INV_123', 1);
153
+ * ```
154
+ */
155
+ cancel(invoiceId: string, version: number): Promise<Invoice>;
156
+ /**
157
+ * Update an invoice
158
+ *
159
+ * @param invoiceId - Invoice ID
160
+ * @param version - Invoice version (for optimistic concurrency)
161
+ * @param options - Update options
162
+ * @returns Updated invoice
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const invoice = await square.invoices.update('INV_123', 0, {
167
+ * title: 'Updated Title',
168
+ * });
169
+ * ```
170
+ */
171
+ update(invoiceId: string, version: number, options: {
172
+ title?: string;
173
+ description?: string;
174
+ dueDate?: string;
175
+ }): Promise<Invoice>;
176
+ /**
177
+ * Delete a draft invoice
178
+ *
179
+ * @param invoiceId - Invoice ID
180
+ * @param version - Invoice version
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * await square.invoices.delete('INV_123', 0);
185
+ * ```
186
+ */
187
+ delete(invoiceId: string, version: number): Promise<void>;
188
+ /**
189
+ * Search for invoices
190
+ *
191
+ * @param options - Search options
192
+ * @returns Matching invoices with pagination
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * const results = await square.invoices.search({
197
+ * customerId: 'CUST_123',
198
+ * });
199
+ * ```
200
+ */
201
+ search(options?: {
202
+ locationIds?: string[];
203
+ customerId?: string;
204
+ cursor?: string;
205
+ limit?: number;
206
+ }): Promise<{
207
+ data: Invoice[];
208
+ cursor?: string;
209
+ }>;
210
+ }
211
+ //# sourceMappingURL=invoices.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoices.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/invoices.service.ts"],"names":[],"mappings":"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"}