@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,246 @@
1
+ import { parseSquareError, SquareValidationError } from '../errors.js';
2
+ import { createIdempotencyKey } from '../utils.js';
3
+ /**
4
+ * Customers service for managing Square customers
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * // Create a customer
9
+ * const customer = await square.customers.create({
10
+ * givenName: 'John',
11
+ * familyName: 'Doe',
12
+ * emailAddress: 'john@example.com',
13
+ * });
14
+ *
15
+ * // Search customers
16
+ * const results = await square.customers.search({
17
+ * emailAddress: 'john@example.com',
18
+ * });
19
+ * ```
20
+ */
21
+ export class CustomersService {
22
+ client;
23
+ constructor(client) {
24
+ this.client = client;
25
+ }
26
+ /**
27
+ * Create a new customer
28
+ *
29
+ * @param options - Customer creation options
30
+ * @returns Created customer
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const customer = await square.customers.create({
35
+ * givenName: 'John',
36
+ * familyName: 'Doe',
37
+ * emailAddress: 'john@example.com',
38
+ * phoneNumber: '+15551234567',
39
+ * });
40
+ * ```
41
+ */
42
+ async create(options) {
43
+ // At least one identifying field should be provided
44
+ if (!options.givenName &&
45
+ !options.familyName &&
46
+ !options.emailAddress &&
47
+ !options.phoneNumber &&
48
+ !options.companyName) {
49
+ throw new SquareValidationError('At least one of givenName, familyName, emailAddress, phoneNumber, or companyName is required');
50
+ }
51
+ try {
52
+ const response = await this.client.customers.create({
53
+ idempotencyKey: options.idempotencyKey ?? createIdempotencyKey(),
54
+ givenName: options.givenName,
55
+ familyName: options.familyName,
56
+ emailAddress: options.emailAddress,
57
+ phoneNumber: options.phoneNumber,
58
+ companyName: options.companyName,
59
+ nickname: options.nickname,
60
+ note: options.note,
61
+ referenceId: options.referenceId,
62
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment
63
+ address: options.address,
64
+ });
65
+ if (!response.customer) {
66
+ throw new Error('Customer was not created');
67
+ }
68
+ return response.customer;
69
+ }
70
+ catch (error) {
71
+ throw parseSquareError(error);
72
+ }
73
+ }
74
+ /**
75
+ * Get a customer by ID
76
+ *
77
+ * @param customerId - Customer ID
78
+ * @returns Customer details
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const customer = await square.customers.get('CUST_123');
83
+ * ```
84
+ */
85
+ async get(customerId) {
86
+ try {
87
+ const response = await this.client.customers.get({ customerId });
88
+ if (!response.customer) {
89
+ throw new Error('Customer not found');
90
+ }
91
+ return response.customer;
92
+ }
93
+ catch (error) {
94
+ throw parseSquareError(error);
95
+ }
96
+ }
97
+ /**
98
+ * Update a customer
99
+ *
100
+ * @param customerId - Customer ID to update
101
+ * @param options - Update options
102
+ * @returns Updated customer
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const customer = await square.customers.update('CUST_123', {
107
+ * emailAddress: 'newemail@example.com',
108
+ * });
109
+ * ```
110
+ */
111
+ async update(customerId, options) {
112
+ try {
113
+ const response = await this.client.customers.update({
114
+ customerId,
115
+ givenName: options.givenName,
116
+ familyName: options.familyName,
117
+ emailAddress: options.emailAddress,
118
+ phoneNumber: options.phoneNumber,
119
+ companyName: options.companyName,
120
+ nickname: options.nickname,
121
+ note: options.note,
122
+ referenceId: options.referenceId,
123
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment
124
+ address: options.address,
125
+ });
126
+ if (!response.customer) {
127
+ throw new Error('Customer update failed');
128
+ }
129
+ return response.customer;
130
+ }
131
+ catch (error) {
132
+ throw parseSquareError(error);
133
+ }
134
+ }
135
+ /**
136
+ * Delete a customer
137
+ *
138
+ * @param customerId - Customer ID to delete
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * await square.customers.delete('CUST_123');
143
+ * ```
144
+ */
145
+ async delete(customerId) {
146
+ try {
147
+ await this.client.customers.delete({ customerId });
148
+ }
149
+ catch (error) {
150
+ throw parseSquareError(error);
151
+ }
152
+ }
153
+ /**
154
+ * Search for customers
155
+ *
156
+ * @param options - Search options
157
+ * @returns Matching customers with pagination
158
+ *
159
+ * @example
160
+ * ```typescript
161
+ * // Search by email
162
+ * const results = await square.customers.search({
163
+ * emailAddress: 'john@example.com',
164
+ * });
165
+ *
166
+ * // Search by phone
167
+ * const results = await square.customers.search({
168
+ * phoneNumber: '+15551234567',
169
+ * });
170
+ * ```
171
+ */
172
+ async search(options) {
173
+ try {
174
+ // Build the query filter
175
+ const filters = [];
176
+ if (options?.emailAddress) {
177
+ filters.push({
178
+ emailAddress: {
179
+ exact: options.emailAddress,
180
+ },
181
+ });
182
+ }
183
+ if (options?.phoneNumber) {
184
+ filters.push({
185
+ phoneNumber: {
186
+ exact: options.phoneNumber,
187
+ },
188
+ });
189
+ }
190
+ if (options?.referenceId) {
191
+ filters.push({
192
+ referenceId: {
193
+ exact: options.referenceId,
194
+ },
195
+ });
196
+ }
197
+ const response = await this.client.customers.search({
198
+ cursor: options?.cursor,
199
+ limit: options?.limit ? BigInt(options.limit) : undefined,
200
+ query: filters.length > 0
201
+ ? {
202
+ filter: {
203
+ ...filters.reduce((acc, f) => ({ ...acc, ...f }), {}),
204
+ },
205
+ }
206
+ : undefined,
207
+ });
208
+ return {
209
+ data: (response.customers ?? []),
210
+ cursor: response.cursor,
211
+ };
212
+ }
213
+ catch (error) {
214
+ throw parseSquareError(error);
215
+ }
216
+ }
217
+ /**
218
+ * List all customers
219
+ *
220
+ * @param options - List options
221
+ * @returns Array of customers
222
+ *
223
+ * @example
224
+ * ```typescript
225
+ * const customers = await square.customers.list({ limit: 50 });
226
+ * ```
227
+ */
228
+ async list(options) {
229
+ try {
230
+ const customers = [];
231
+ const limit = options?.limit ?? 100;
232
+ const page = await this.client.customers.list({});
233
+ for await (const customer of page) {
234
+ customers.push(customer);
235
+ if (customers.length >= limit) {
236
+ break;
237
+ }
238
+ }
239
+ return customers;
240
+ }
241
+ catch (error) {
242
+ throw parseSquareError(error);
243
+ }
244
+ }
245
+ }
246
+ //# sourceMappingURL=customers.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customers.service.js","sourceRoot":"","sources":["../../../src/core/services/customers.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ import type { SquareClient } from 'square';
2
+ /**
3
+ * Inventory state types
4
+ */
5
+ export type InventoryState = 'CUSTOM' | 'IN_STOCK' | 'SOLD' | 'RETURNED_BY_CUSTOMER' | 'RESERVED_FOR_SALE' | 'SOLD_ONLINE' | 'ORDERED_FROM_VENDOR' | 'RECEIVED_FROM_VENDOR' | 'IN_TRANSIT_TO' | 'NONE' | 'WASTE' | 'UNLINKED_RETURN' | 'COMPOSED' | 'DECOMPOSED' | 'SUPPORTED_BY_NEWER_VERSION';
6
+ /**
7
+ * Inventory count from Square API
8
+ */
9
+ export interface InventoryCount {
10
+ catalogObjectId?: string;
11
+ catalogObjectType?: string;
12
+ state?: InventoryState;
13
+ locationId?: string;
14
+ quantity?: string;
15
+ calculatedAt?: string;
16
+ }
17
+ /**
18
+ * Inventory change for adjustments
19
+ */
20
+ export interface InventoryChange {
21
+ type: 'PHYSICAL_COUNT' | 'ADJUSTMENT' | 'TRANSFER';
22
+ physicalCount?: {
23
+ catalogObjectId: string;
24
+ state: InventoryState;
25
+ locationId: string;
26
+ quantity: string;
27
+ occurredAt?: string;
28
+ };
29
+ adjustment?: {
30
+ catalogObjectId: string;
31
+ fromState?: InventoryState;
32
+ toState: InventoryState;
33
+ locationId: string;
34
+ quantity: string;
35
+ occurredAt?: string;
36
+ };
37
+ transfer?: {
38
+ catalogObjectId: string;
39
+ fromLocationId: string;
40
+ toLocationId: string;
41
+ state: InventoryState;
42
+ quantity: string;
43
+ occurredAt?: string;
44
+ };
45
+ }
46
+ /**
47
+ * Inventory service for managing Square inventory
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * // Get inventory count for an item
52
+ * const counts = await square.inventory.getCounts('ITEM_VAR_123');
53
+ *
54
+ * // Adjust inventory
55
+ * await square.inventory.adjust({
56
+ * catalogObjectId: 'ITEM_VAR_123',
57
+ * locationId: 'LXXX',
58
+ * quantity: 10,
59
+ * });
60
+ * ```
61
+ */
62
+ export declare class InventoryService {
63
+ private readonly client;
64
+ private readonly defaultLocationId?;
65
+ constructor(client: SquareClient, defaultLocationId?: string | undefined);
66
+ /**
67
+ * Get inventory counts for a catalog object
68
+ *
69
+ * @param catalogObjectId - Catalog object ID (usually item variation)
70
+ * @param locationId - Optional location ID filter
71
+ * @returns Array of inventory counts
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const counts = await square.inventory.getCounts('ITEM_VAR_123');
76
+ * console.log(`In stock: ${counts[0].quantity}`);
77
+ * ```
78
+ */
79
+ getCounts(catalogObjectId: string, locationId?: string): Promise<InventoryCount[]>;
80
+ /**
81
+ * Batch retrieve inventory counts for multiple objects
82
+ *
83
+ * @param catalogObjectIds - Array of catalog object IDs
84
+ * @param locationIds - Optional array of location IDs
85
+ * @returns Array of inventory counts
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const counts = await square.inventory.batchGetCounts(
90
+ * ['ITEM_VAR_1', 'ITEM_VAR_2'],
91
+ * ['LOCATION_1']
92
+ * );
93
+ * ```
94
+ */
95
+ batchGetCounts(catalogObjectIds: string[], locationIds?: string[]): Promise<InventoryCount[]>;
96
+ /**
97
+ * Set the inventory count for an item (physical count)
98
+ *
99
+ * @param options - Physical count options
100
+ * @returns Updated inventory counts
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * await square.inventory.setCount({
105
+ * catalogObjectId: 'ITEM_VAR_123',
106
+ * locationId: 'LXXX',
107
+ * quantity: 50,
108
+ * });
109
+ * ```
110
+ */
111
+ setCount(options: {
112
+ catalogObjectId: string;
113
+ locationId?: string;
114
+ quantity: number;
115
+ occurredAt?: string;
116
+ idempotencyKey?: string;
117
+ }): Promise<InventoryCount[]>;
118
+ /**
119
+ * Adjust inventory (add or remove stock)
120
+ *
121
+ * @param options - Adjustment options
122
+ * @returns Updated inventory counts
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // Add 10 items to stock
127
+ * await square.inventory.adjust({
128
+ * catalogObjectId: 'ITEM_VAR_123',
129
+ * locationId: 'LXXX',
130
+ * quantity: 10,
131
+ * });
132
+ *
133
+ * // Remove 5 items (negative quantity)
134
+ * await square.inventory.adjust({
135
+ * catalogObjectId: 'ITEM_VAR_123',
136
+ * locationId: 'LXXX',
137
+ * quantity: -5,
138
+ * });
139
+ * ```
140
+ */
141
+ adjust(options: {
142
+ catalogObjectId: string;
143
+ locationId?: string;
144
+ quantity: number;
145
+ reason?: string;
146
+ idempotencyKey?: string;
147
+ }): Promise<InventoryCount[]>;
148
+ /**
149
+ * Transfer inventory between locations
150
+ *
151
+ * @param options - Transfer options
152
+ * @returns Updated inventory counts
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * await square.inventory.transfer({
157
+ * catalogObjectId: 'ITEM_VAR_123',
158
+ * fromLocationId: 'LOCATION_A',
159
+ * toLocationId: 'LOCATION_B',
160
+ * quantity: 5,
161
+ * });
162
+ * ```
163
+ */
164
+ transfer(options: {
165
+ catalogObjectId: string;
166
+ fromLocationId: string;
167
+ toLocationId: string;
168
+ quantity: number;
169
+ idempotencyKey?: string;
170
+ }): Promise<InventoryCount[]>;
171
+ /**
172
+ * Batch apply multiple inventory changes
173
+ *
174
+ * @param changes - Array of inventory changes
175
+ * @param idempotencyKey - Optional idempotency key
176
+ * @returns Updated inventory counts
177
+ *
178
+ * @example
179
+ * ```typescript
180
+ * await square.inventory.batchChange([
181
+ * {
182
+ * type: 'ADJUSTMENT',
183
+ * adjustment: {
184
+ * catalogObjectId: 'ITEM_1',
185
+ * fromState: 'NONE',
186
+ * toState: 'IN_STOCK',
187
+ * locationId: 'LXXX',
188
+ * quantity: '10',
189
+ * },
190
+ * },
191
+ * ]);
192
+ * ```
193
+ */
194
+ batchChange(changes: InventoryChange[], idempotencyKey?: string): Promise<InventoryCount[]>;
195
+ }
196
+ //# sourceMappingURL=inventory.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/inventory.service.ts"],"names":[],"mappings":"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"}