@hasna/connectors 0.5.7 → 0.5.9

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 (138) hide show
  1. package/README.md +48 -9
  2. package/bin/index.js +57 -1
  3. package/bin/mcp.js +57 -1
  4. package/bin/serve.js +56 -0
  5. package/connectors/connect-chargebee/.env.example +11 -0
  6. package/connectors/connect-chargebee/CLAUDE.md +272 -0
  7. package/connectors/connect-chargebee/README.md +193 -0
  8. package/connectors/connect-chargebee/package.json +51 -0
  9. package/connectors/connect-chargebee/scripts/release.ts +179 -0
  10. package/connectors/connect-chargebee/src/api/client.ts +213 -0
  11. package/connectors/connect-chargebee/src/api/example.ts +48 -0
  12. package/connectors/connect-chargebee/src/api/index.ts +51 -0
  13. package/connectors/connect-chargebee/src/cli/index.ts +254 -0
  14. package/connectors/connect-chargebee/src/index.ts +103 -0
  15. package/connectors/connect-chargebee/src/types/index.ts +237 -0
  16. package/connectors/connect-chargebee/src/utils/auth.ts +274 -0
  17. package/connectors/connect-chargebee/src/utils/bulk.ts +212 -0
  18. package/connectors/connect-chargebee/src/utils/config.ts +326 -0
  19. package/connectors/connect-chargebee/src/utils/output.ts +175 -0
  20. package/connectors/connect-chargebee/src/utils/settings.ts +114 -0
  21. package/connectors/connect-chargebee/src/utils/storage.ts +198 -0
  22. package/connectors/connect-chargebee/tsconfig.json +16 -0
  23. package/connectors/connect-databricks/.env.example +11 -0
  24. package/connectors/connect-databricks/CLAUDE.md +272 -0
  25. package/connectors/connect-databricks/README.md +193 -0
  26. package/connectors/connect-databricks/package.json +51 -0
  27. package/connectors/connect-databricks/scripts/release.ts +179 -0
  28. package/connectors/connect-databricks/src/api/client.ts +213 -0
  29. package/connectors/connect-databricks/src/api/example.ts +48 -0
  30. package/connectors/connect-databricks/src/api/index.ts +51 -0
  31. package/connectors/connect-databricks/src/cli/index.ts +254 -0
  32. package/connectors/connect-databricks/src/index.ts +103 -0
  33. package/connectors/connect-databricks/src/types/index.ts +237 -0
  34. package/connectors/connect-databricks/src/utils/auth.ts +274 -0
  35. package/connectors/connect-databricks/src/utils/bulk.ts +212 -0
  36. package/connectors/connect-databricks/src/utils/config.ts +326 -0
  37. package/connectors/connect-databricks/src/utils/output.ts +175 -0
  38. package/connectors/connect-databricks/src/utils/settings.ts +114 -0
  39. package/connectors/connect-databricks/src/utils/storage.ts +198 -0
  40. package/connectors/connect-databricks/tsconfig.json +16 -0
  41. package/connectors/connect-datadog/.env.example +11 -0
  42. package/connectors/connect-datadog/CLAUDE.md +170 -0
  43. package/connectors/connect-datadog/README.md +193 -0
  44. package/connectors/connect-datadog/package.json +53 -0
  45. package/connectors/connect-datadog/src/api/client.ts +150 -0
  46. package/connectors/connect-datadog/src/api/index.ts +537 -0
  47. package/connectors/connect-datadog/src/cli/index.ts +958 -0
  48. package/connectors/connect-datadog/src/index.ts +26 -0
  49. package/connectors/connect-datadog/src/types/index.ts +654 -0
  50. package/connectors/connect-datadog/src/utils/config.ts +219 -0
  51. package/connectors/connect-datadog/src/utils/output.ts +119 -0
  52. package/connectors/connect-datadog/tsconfig.json +16 -0
  53. package/connectors/connect-fathom/.env.example +11 -0
  54. package/connectors/connect-fathom/CLAUDE.md +272 -0
  55. package/connectors/connect-fathom/README.md +193 -0
  56. package/connectors/connect-fathom/package.json +51 -0
  57. package/connectors/connect-fathom/scripts/release.ts +179 -0
  58. package/connectors/connect-fathom/src/api/client.ts +213 -0
  59. package/connectors/connect-fathom/src/api/example.ts +48 -0
  60. package/connectors/connect-fathom/src/api/index.ts +51 -0
  61. package/connectors/connect-fathom/src/cli/index.ts +254 -0
  62. package/connectors/connect-fathom/src/index.ts +103 -0
  63. package/connectors/connect-fathom/src/types/index.ts +237 -0
  64. package/connectors/connect-fathom/src/utils/auth.ts +274 -0
  65. package/connectors/connect-fathom/src/utils/bulk.ts +212 -0
  66. package/connectors/connect-fathom/src/utils/config.ts +326 -0
  67. package/connectors/connect-fathom/src/utils/output.ts +175 -0
  68. package/connectors/connect-fathom/src/utils/settings.ts +114 -0
  69. package/connectors/connect-fathom/src/utils/storage.ts +198 -0
  70. package/connectors/connect-fathom/tsconfig.json +16 -0
  71. package/connectors/connect-grafana/.env.example +11 -0
  72. package/connectors/connect-grafana/CLAUDE.md +272 -0
  73. package/connectors/connect-grafana/README.md +193 -0
  74. package/connectors/connect-grafana/package.json +51 -0
  75. package/connectors/connect-grafana/scripts/release.ts +179 -0
  76. package/connectors/connect-grafana/src/api/client.ts +213 -0
  77. package/connectors/connect-grafana/src/api/example.ts +48 -0
  78. package/connectors/connect-grafana/src/api/index.ts +51 -0
  79. package/connectors/connect-grafana/src/cli/index.ts +254 -0
  80. package/connectors/connect-grafana/src/index.ts +103 -0
  81. package/connectors/connect-grafana/src/types/index.ts +237 -0
  82. package/connectors/connect-grafana/src/utils/auth.ts +274 -0
  83. package/connectors/connect-grafana/src/utils/bulk.ts +212 -0
  84. package/connectors/connect-grafana/src/utils/config.ts +326 -0
  85. package/connectors/connect-grafana/src/utils/output.ts +175 -0
  86. package/connectors/connect-grafana/src/utils/settings.ts +114 -0
  87. package/connectors/connect-grafana/src/utils/storage.ts +198 -0
  88. package/connectors/connect-grafana/tsconfig.json +16 -0
  89. package/connectors/connect-paddle/.env.example +11 -0
  90. package/connectors/connect-paddle/CLAUDE.md +272 -0
  91. package/connectors/connect-paddle/README.md +193 -0
  92. package/connectors/connect-paddle/package.json +51 -0
  93. package/connectors/connect-paddle/scripts/release.ts +179 -0
  94. package/connectors/connect-paddle/src/api/client.ts +213 -0
  95. package/connectors/connect-paddle/src/api/example.ts +48 -0
  96. package/connectors/connect-paddle/src/api/index.ts +51 -0
  97. package/connectors/connect-paddle/src/cli/index.ts +254 -0
  98. package/connectors/connect-paddle/src/index.ts +103 -0
  99. package/connectors/connect-paddle/src/types/index.ts +237 -0
  100. package/connectors/connect-paddle/src/utils/auth.ts +274 -0
  101. package/connectors/connect-paddle/src/utils/bulk.ts +212 -0
  102. package/connectors/connect-paddle/src/utils/config.ts +326 -0
  103. package/connectors/connect-paddle/src/utils/output.ts +175 -0
  104. package/connectors/connect-paddle/src/utils/settings.ts +114 -0
  105. package/connectors/connect-paddle/src/utils/storage.ts +198 -0
  106. package/connectors/connect-paddle/tsconfig.json +16 -0
  107. package/connectors/connect-snowflake/.env.example +11 -0
  108. package/connectors/connect-snowflake/CLAUDE.md +272 -0
  109. package/connectors/connect-snowflake/README.md +193 -0
  110. package/connectors/connect-snowflake/package.json +51 -0
  111. package/connectors/connect-snowflake/scripts/release.ts +179 -0
  112. package/connectors/connect-snowflake/src/api/client.ts +213 -0
  113. package/connectors/connect-snowflake/src/api/example.ts +48 -0
  114. package/connectors/connect-snowflake/src/api/index.ts +51 -0
  115. package/connectors/connect-snowflake/src/cli/index.ts +254 -0
  116. package/connectors/connect-snowflake/src/index.ts +103 -0
  117. package/connectors/connect-snowflake/src/types/index.ts +237 -0
  118. package/connectors/connect-snowflake/src/utils/auth.ts +274 -0
  119. package/connectors/connect-snowflake/src/utils/bulk.ts +212 -0
  120. package/connectors/connect-snowflake/src/utils/config.ts +326 -0
  121. package/connectors/connect-snowflake/src/utils/output.ts +175 -0
  122. package/connectors/connect-snowflake/src/utils/settings.ts +114 -0
  123. package/connectors/connect-snowflake/src/utils/storage.ts +198 -0
  124. package/connectors/connect-snowflake/tsconfig.json +16 -0
  125. package/connectors/connect-square/.env.example +11 -0
  126. package/connectors/connect-square/CLAUDE.md +128 -0
  127. package/connectors/connect-square/README.md +193 -0
  128. package/connectors/connect-square/package.json +52 -0
  129. package/connectors/connect-square/src/api/client.ts +152 -0
  130. package/connectors/connect-square/src/api/index.ts +343 -0
  131. package/connectors/connect-square/src/cli/index.ts +579 -0
  132. package/connectors/connect-square/src/index.ts +21 -0
  133. package/connectors/connect-square/src/types/index.ts +809 -0
  134. package/connectors/connect-square/src/utils/config.ts +209 -0
  135. package/connectors/connect-square/src/utils/output.ts +119 -0
  136. package/connectors/connect-square/tsconfig.json +16 -0
  137. package/dist/index.js +56 -0
  138. package/package.json +1 -1
@@ -0,0 +1,809 @@
1
+ // Square Connector Types
2
+
3
+ // ============================================
4
+ // Configuration
5
+ // ============================================
6
+
7
+ export interface SquareConfig {
8
+ accessToken: string;
9
+ baseUrl?: string; // sandbox or production
10
+ }
11
+
12
+ // ============================================
13
+ // Common Types
14
+ // ============================================
15
+
16
+ export type OutputFormat = 'json' | 'pretty';
17
+
18
+ export interface Money {
19
+ amount: number;
20
+ currency: string;
21
+ }
22
+
23
+ // ============================================
24
+ // Location Types
25
+ // ============================================
26
+
27
+ export interface Location {
28
+ id: string;
29
+ name: string;
30
+ address?: Address;
31
+ timezone?: string;
32
+ capabilities?: string[];
33
+ status?: 'ACTIVE' | 'INACTIVE';
34
+ created_at?: string;
35
+ merchant_id?: string;
36
+ country?: string;
37
+ language_code?: string;
38
+ currency?: string;
39
+ phone_number?: string;
40
+ business_name?: string;
41
+ type?: 'PHYSICAL' | 'MOBILE';
42
+ website_url?: string;
43
+ business_email?: string;
44
+ description?: string;
45
+ }
46
+
47
+ export interface Address {
48
+ address_line_1?: string;
49
+ address_line_2?: string;
50
+ address_line_3?: string;
51
+ locality?: string;
52
+ sublocality?: string;
53
+ administrative_district_level_1?: string;
54
+ postal_code?: string;
55
+ country?: string;
56
+ }
57
+
58
+ export interface LocationsListResponse {
59
+ locations?: Location[];
60
+ cursor?: string;
61
+ errors?: SquareError[];
62
+ }
63
+
64
+ // ============================================
65
+ // Customer Types
66
+ // ============================================
67
+
68
+ export interface Customer {
69
+ id: string;
70
+ created_at?: string;
71
+ updated_at?: string;
72
+ given_name?: string;
73
+ family_name?: string;
74
+ nickname?: string;
75
+ company_name?: string;
76
+ email_address?: string;
77
+ address?: Address;
78
+ phone_number?: string;
79
+ birthday?: string;
80
+ reference_id?: string;
81
+ note?: string;
82
+ preferences?: CustomerPreferences;
83
+ groups?: CustomerGroupInfo[];
84
+ creation_source?: string;
85
+ segment_ids?: string[];
86
+ version?: number;
87
+ }
88
+
89
+ export interface CustomerPreferences {
90
+ email_unsubscribed?: boolean;
91
+ }
92
+
93
+ export interface CustomerGroupInfo {
94
+ id: string;
95
+ name: string;
96
+ }
97
+
98
+ export interface CustomersListResponse {
99
+ customers?: Customer[];
100
+ cursor?: string;
101
+ errors?: SquareError[];
102
+ }
103
+
104
+ export interface CustomerResponse {
105
+ customer?: Customer;
106
+ errors?: SquareError[];
107
+ }
108
+
109
+ export interface CreateCustomerRequest {
110
+ given_name?: string;
111
+ family_name?: string;
112
+ company_name?: string;
113
+ nickname?: string;
114
+ email_address?: string;
115
+ address?: Address;
116
+ phone_number?: string;
117
+ reference_id?: string;
118
+ note?: string;
119
+ birthday?: string;
120
+ }
121
+
122
+ // ============================================
123
+ // Payment Types
124
+ // ============================================
125
+
126
+ export interface Payment {
127
+ id: string;
128
+ created_at?: string;
129
+ updated_at?: string;
130
+ amount_money?: Money;
131
+ tip_money?: Money;
132
+ total_money?: Money;
133
+ app_fee_money?: Money;
134
+ approved_money?: Money;
135
+ processing_fee?: ProcessingFee[];
136
+ refunded_money?: Money;
137
+ status?: 'APPROVED' | 'PENDING' | 'COMPLETED' | 'CANCELED' | 'FAILED';
138
+ delay_duration?: string;
139
+ delay_action?: string;
140
+ delayed_until?: string;
141
+ source_type?: string;
142
+ card_details?: CardPaymentDetails;
143
+ location_id?: string;
144
+ order_id?: string;
145
+ reference_id?: string;
146
+ customer_id?: string;
147
+ employee_id?: string;
148
+ refund_ids?: string[];
149
+ buyer_email_address?: string;
150
+ billing_address?: Address;
151
+ shipping_address?: Address;
152
+ note?: string;
153
+ receipt_number?: string;
154
+ receipt_url?: string;
155
+ version_token?: string;
156
+ }
157
+
158
+ export interface ProcessingFee {
159
+ effective_at?: string;
160
+ type?: string;
161
+ amount_money?: Money;
162
+ }
163
+
164
+ export interface CardPaymentDetails {
165
+ status?: string;
166
+ card?: Card;
167
+ entry_method?: string;
168
+ cvv_status?: string;
169
+ avs_status?: string;
170
+ auth_result_code?: string;
171
+ application_identifier?: string;
172
+ application_name?: string;
173
+ application_cryptogram?: string;
174
+ verification_method?: string;
175
+ verification_results?: string;
176
+ statement_description?: string;
177
+ }
178
+
179
+ export interface Card {
180
+ id?: string;
181
+ card_brand?: string;
182
+ last_4?: string;
183
+ exp_month?: number;
184
+ exp_year?: number;
185
+ cardholder_name?: string;
186
+ billing_address?: Address;
187
+ fingerprint?: string;
188
+ customer_id?: string;
189
+ merchant_id?: string;
190
+ reference_id?: string;
191
+ enabled?: boolean;
192
+ card_type?: string;
193
+ prepaid_type?: string;
194
+ bin?: string;
195
+ version?: number;
196
+ card_co_brand?: string;
197
+ }
198
+
199
+ export interface PaymentsListResponse {
200
+ payments?: Payment[];
201
+ cursor?: string;
202
+ errors?: SquareError[];
203
+ }
204
+
205
+ export interface PaymentResponse {
206
+ payment?: Payment;
207
+ errors?: SquareError[];
208
+ }
209
+
210
+ export interface CreatePaymentRequest {
211
+ source_id: string;
212
+ idempotency_key: string;
213
+ amount_money: Money;
214
+ tip_money?: Money;
215
+ app_fee_money?: Money;
216
+ delay_duration?: string;
217
+ autocomplete?: boolean;
218
+ order_id?: string;
219
+ customer_id?: string;
220
+ location_id?: string;
221
+ reference_id?: string;
222
+ note?: string;
223
+ buyer_email_address?: string;
224
+ billing_address?: Address;
225
+ shipping_address?: Address;
226
+ verification_token?: string;
227
+ accept_partial_authorization?: boolean;
228
+ }
229
+
230
+ // ============================================
231
+ // Order Types
232
+ // ============================================
233
+
234
+ export interface Order {
235
+ id?: string;
236
+ location_id: string;
237
+ reference_id?: string;
238
+ source?: OrderSource;
239
+ customer_id?: string;
240
+ line_items?: OrderLineItem[];
241
+ taxes?: OrderLineItemTax[];
242
+ discounts?: OrderLineItemDiscount[];
243
+ service_charges?: OrderServiceCharge[];
244
+ fulfillments?: OrderFulfillment[];
245
+ returns?: OrderReturn[];
246
+ return_amounts?: OrderMoneyAmounts;
247
+ net_amounts?: OrderMoneyAmounts;
248
+ rounding_adjustment?: OrderRoundingAdjustment;
249
+ tenders?: Tender[];
250
+ refunds?: Refund[];
251
+ metadata?: Record<string, string>;
252
+ created_at?: string;
253
+ updated_at?: string;
254
+ closed_at?: string;
255
+ state?: 'OPEN' | 'COMPLETED' | 'CANCELED' | 'DRAFT';
256
+ version?: number;
257
+ total_money?: Money;
258
+ total_tax_money?: Money;
259
+ total_discount_money?: Money;
260
+ total_tip_money?: Money;
261
+ total_service_charge_money?: Money;
262
+ }
263
+
264
+ export interface OrderSource {
265
+ name?: string;
266
+ }
267
+
268
+ export interface OrderLineItem {
269
+ uid?: string;
270
+ name?: string;
271
+ quantity: string;
272
+ quantity_unit?: OrderQuantityUnit;
273
+ note?: string;
274
+ catalog_object_id?: string;
275
+ catalog_version?: number;
276
+ variation_name?: string;
277
+ item_type?: string;
278
+ metadata?: Record<string, string>;
279
+ modifiers?: OrderLineItemModifier[];
280
+ applied_taxes?: OrderLineItemAppliedTax[];
281
+ applied_discounts?: OrderLineItemAppliedDiscount[];
282
+ base_price_money?: Money;
283
+ variation_total_price_money?: Money;
284
+ gross_sales_money?: Money;
285
+ total_tax_money?: Money;
286
+ total_discount_money?: Money;
287
+ total_money?: Money;
288
+ }
289
+
290
+ export interface OrderQuantityUnit {
291
+ measurement_unit?: MeasurementUnit;
292
+ precision?: number;
293
+ }
294
+
295
+ export interface MeasurementUnit {
296
+ custom_unit?: MeasurementUnitCustom;
297
+ area_unit?: string;
298
+ length_unit?: string;
299
+ volume_unit?: string;
300
+ weight_unit?: string;
301
+ generic_unit?: string;
302
+ time_unit?: string;
303
+ type?: string;
304
+ }
305
+
306
+ export interface MeasurementUnitCustom {
307
+ name: string;
308
+ abbreviation: string;
309
+ }
310
+
311
+ export interface OrderLineItemModifier {
312
+ uid?: string;
313
+ catalog_object_id?: string;
314
+ catalog_version?: number;
315
+ name?: string;
316
+ base_price_money?: Money;
317
+ total_price_money?: Money;
318
+ quantity?: string;
319
+ }
320
+
321
+ export interface OrderLineItemAppliedTax {
322
+ uid?: string;
323
+ tax_uid: string;
324
+ applied_money?: Money;
325
+ }
326
+
327
+ export interface OrderLineItemAppliedDiscount {
328
+ uid?: string;
329
+ discount_uid: string;
330
+ applied_money?: Money;
331
+ }
332
+
333
+ export interface OrderLineItemTax {
334
+ uid?: string;
335
+ catalog_object_id?: string;
336
+ catalog_version?: number;
337
+ name?: string;
338
+ type?: 'UNKNOWN_TAX' | 'ADDITIVE' | 'INCLUSIVE';
339
+ percentage?: string;
340
+ applied_money?: Money;
341
+ scope?: 'OTHER_TAX_SCOPE' | 'LINE_ITEM' | 'ORDER';
342
+ }
343
+
344
+ export interface OrderLineItemDiscount {
345
+ uid?: string;
346
+ catalog_object_id?: string;
347
+ catalog_version?: number;
348
+ name?: string;
349
+ type?: 'UNKNOWN_DISCOUNT' | 'FIXED_PERCENTAGE' | 'FIXED_AMOUNT' | 'VARIABLE_PERCENTAGE' | 'VARIABLE_AMOUNT';
350
+ percentage?: string;
351
+ amount_money?: Money;
352
+ applied_money?: Money;
353
+ scope?: 'OTHER_DISCOUNT_SCOPE' | 'LINE_ITEM' | 'ORDER';
354
+ }
355
+
356
+ export interface OrderServiceCharge {
357
+ uid?: string;
358
+ name?: string;
359
+ catalog_object_id?: string;
360
+ catalog_version?: number;
361
+ percentage?: string;
362
+ amount_money?: Money;
363
+ applied_money?: Money;
364
+ total_money?: Money;
365
+ total_tax_money?: Money;
366
+ calculation_phase?: 'SUBTOTAL_PHASE' | 'TOTAL_PHASE';
367
+ taxable?: boolean;
368
+ applied_taxes?: OrderLineItemAppliedTax[];
369
+ type?: string;
370
+ }
371
+
372
+ export interface OrderFulfillment {
373
+ uid?: string;
374
+ type?: 'PICKUP' | 'SHIPMENT' | 'DELIVERY';
375
+ state?: 'PROPOSED' | 'RESERVED' | 'PREPARED' | 'COMPLETED' | 'CANCELED' | 'FAILED';
376
+ line_item_application?: 'ALL' | 'ENTRY_LIST';
377
+ entries?: OrderFulfillmentFulfillmentEntry[];
378
+ pickup_details?: OrderFulfillmentPickupDetails;
379
+ shipment_details?: OrderFulfillmentShipmentDetails;
380
+ }
381
+
382
+ export interface OrderFulfillmentFulfillmentEntry {
383
+ uid?: string;
384
+ line_item_uid: string;
385
+ quantity: string;
386
+ }
387
+
388
+ export interface OrderFulfillmentPickupDetails {
389
+ recipient?: OrderFulfillmentRecipient;
390
+ expires_at?: string;
391
+ auto_complete_duration?: string;
392
+ schedule_type?: 'SCHEDULED' | 'ASAP';
393
+ pickup_at?: string;
394
+ pickup_window_duration?: string;
395
+ prep_time_duration?: string;
396
+ note?: string;
397
+ placed_at?: string;
398
+ accepted_at?: string;
399
+ rejected_at?: string;
400
+ ready_at?: string;
401
+ expired_at?: string;
402
+ picked_up_at?: string;
403
+ canceled_at?: string;
404
+ cancel_reason?: string;
405
+ is_curbside_pickup?: boolean;
406
+ curbside_pickup_details?: CurbsidePickupDetails;
407
+ }
408
+
409
+ export interface CurbsidePickupDetails {
410
+ curbside_details?: string;
411
+ buyer_arrived_at?: string;
412
+ }
413
+
414
+ export interface OrderFulfillmentShipmentDetails {
415
+ recipient?: OrderFulfillmentRecipient;
416
+ carrier?: string;
417
+ shipping_note?: string;
418
+ shipping_type?: string;
419
+ tracking_number?: string;
420
+ tracking_url?: string;
421
+ placed_at?: string;
422
+ in_progress_at?: string;
423
+ packaged_at?: string;
424
+ expected_shipped_at?: string;
425
+ shipped_at?: string;
426
+ canceled_at?: string;
427
+ cancel_reason?: string;
428
+ failed_at?: string;
429
+ failure_reason?: string;
430
+ }
431
+
432
+ export interface OrderFulfillmentRecipient {
433
+ customer_id?: string;
434
+ display_name?: string;
435
+ email_address?: string;
436
+ phone_number?: string;
437
+ address?: Address;
438
+ }
439
+
440
+ export interface OrderReturn {
441
+ uid?: string;
442
+ source_order_id?: string;
443
+ return_line_items?: OrderReturnLineItem[];
444
+ return_service_charges?: OrderReturnServiceCharge[];
445
+ return_taxes?: OrderReturnTax[];
446
+ return_discounts?: OrderReturnDiscount[];
447
+ rounding_adjustment?: OrderRoundingAdjustment;
448
+ return_amounts?: OrderMoneyAmounts;
449
+ }
450
+
451
+ export interface OrderReturnLineItem {
452
+ uid?: string;
453
+ source_line_item_uid?: string;
454
+ name?: string;
455
+ quantity: string;
456
+ quantity_unit?: OrderQuantityUnit;
457
+ note?: string;
458
+ catalog_object_id?: string;
459
+ catalog_version?: number;
460
+ variation_name?: string;
461
+ item_type?: string;
462
+ return_modifiers?: OrderReturnLineItemModifier[];
463
+ applied_taxes?: OrderLineItemAppliedTax[];
464
+ applied_discounts?: OrderLineItemAppliedDiscount[];
465
+ base_price_money?: Money;
466
+ variation_total_price_money?: Money;
467
+ gross_return_money?: Money;
468
+ total_tax_money?: Money;
469
+ total_discount_money?: Money;
470
+ total_money?: Money;
471
+ }
472
+
473
+ export interface OrderReturnLineItemModifier {
474
+ uid?: string;
475
+ source_modifier_uid?: string;
476
+ catalog_object_id?: string;
477
+ catalog_version?: number;
478
+ name?: string;
479
+ base_price_money?: Money;
480
+ total_price_money?: Money;
481
+ quantity?: string;
482
+ }
483
+
484
+ export interface OrderReturnServiceCharge {
485
+ uid?: string;
486
+ source_service_charge_uid?: string;
487
+ name?: string;
488
+ catalog_object_id?: string;
489
+ catalog_version?: number;
490
+ percentage?: string;
491
+ amount_money?: Money;
492
+ applied_money?: Money;
493
+ total_money?: Money;
494
+ total_tax_money?: Money;
495
+ calculation_phase?: string;
496
+ taxable?: boolean;
497
+ applied_taxes?: OrderLineItemAppliedTax[];
498
+ }
499
+
500
+ export interface OrderReturnTax {
501
+ uid?: string;
502
+ source_tax_uid?: string;
503
+ catalog_object_id?: string;
504
+ catalog_version?: number;
505
+ name?: string;
506
+ type?: string;
507
+ percentage?: string;
508
+ applied_money?: Money;
509
+ scope?: string;
510
+ }
511
+
512
+ export interface OrderReturnDiscount {
513
+ uid?: string;
514
+ source_discount_uid?: string;
515
+ catalog_object_id?: string;
516
+ catalog_version?: number;
517
+ name?: string;
518
+ type?: string;
519
+ percentage?: string;
520
+ amount_money?: Money;
521
+ applied_money?: Money;
522
+ scope?: string;
523
+ }
524
+
525
+ export interface OrderMoneyAmounts {
526
+ total_money?: Money;
527
+ tax_money?: Money;
528
+ discount_money?: Money;
529
+ tip_money?: Money;
530
+ service_charge_money?: Money;
531
+ }
532
+
533
+ export interface OrderRoundingAdjustment {
534
+ uid?: string;
535
+ name?: string;
536
+ amount_money?: Money;
537
+ }
538
+
539
+ export interface Tender {
540
+ id?: string;
541
+ location_id?: string;
542
+ transaction_id?: string;
543
+ created_at?: string;
544
+ note?: string;
545
+ amount_money?: Money;
546
+ tip_money?: Money;
547
+ processing_fee_money?: Money;
548
+ customer_id?: string;
549
+ type: string;
550
+ card_details?: TenderCardDetails;
551
+ cash_details?: TenderCashDetails;
552
+ payment_id?: string;
553
+ }
554
+
555
+ export interface TenderCardDetails {
556
+ status?: string;
557
+ card?: Card;
558
+ entry_method?: string;
559
+ }
560
+
561
+ export interface TenderCashDetails {
562
+ buyer_tendered_money?: Money;
563
+ change_back_money?: Money;
564
+ }
565
+
566
+ export interface Refund {
567
+ id: string;
568
+ location_id?: string;
569
+ transaction_id?: string;
570
+ tender_id?: string;
571
+ created_at?: string;
572
+ reason: string;
573
+ amount_money: Money;
574
+ status: string;
575
+ processing_fee_money?: Money;
576
+ }
577
+
578
+ export interface OrderResponse {
579
+ order?: Order;
580
+ errors?: SquareError[];
581
+ }
582
+
583
+ export interface OrdersSearchResponse {
584
+ orders?: Order[];
585
+ cursor?: string;
586
+ errors?: SquareError[];
587
+ }
588
+
589
+ export interface CreateOrderRequest {
590
+ order: {
591
+ location_id: string;
592
+ reference_id?: string;
593
+ customer_id?: string;
594
+ line_items?: OrderLineItem[];
595
+ taxes?: OrderLineItemTax[];
596
+ discounts?: OrderLineItemDiscount[];
597
+ fulfillments?: OrderFulfillment[];
598
+ metadata?: Record<string, string>;
599
+ };
600
+ idempotency_key?: string;
601
+ }
602
+
603
+ // ============================================
604
+ // Catalog Types
605
+ // ============================================
606
+
607
+ export interface CatalogObject {
608
+ type: string;
609
+ id: string;
610
+ updated_at?: string;
611
+ version?: number;
612
+ is_deleted?: boolean;
613
+ custom_attribute_values?: Record<string, CatalogCustomAttributeValue>;
614
+ catalog_v1_ids?: CatalogV1Id[];
615
+ present_at_all_locations?: boolean;
616
+ present_at_location_ids?: string[];
617
+ absent_at_location_ids?: string[];
618
+ item_data?: CatalogItem;
619
+ category_data?: CatalogCategory;
620
+ item_variation_data?: CatalogItemVariation;
621
+ tax_data?: CatalogTax;
622
+ discount_data?: CatalogDiscount;
623
+ modifier_list_data?: CatalogModifierList;
624
+ modifier_data?: CatalogModifier;
625
+ image_data?: CatalogImage;
626
+ }
627
+
628
+ export interface CatalogCustomAttributeValue {
629
+ name?: string;
630
+ string_value?: string;
631
+ custom_attribute_definition_id?: string;
632
+ type?: string;
633
+ number_value?: string;
634
+ boolean_value?: boolean;
635
+ selection_uid_values?: string[];
636
+ key?: string;
637
+ }
638
+
639
+ export interface CatalogV1Id {
640
+ catalog_v1_id?: string;
641
+ location_id?: string;
642
+ }
643
+
644
+ export interface CatalogItem {
645
+ name?: string;
646
+ description?: string;
647
+ abbreviation?: string;
648
+ label_color?: string;
649
+ available_online?: boolean;
650
+ available_for_pickup?: boolean;
651
+ available_electronically?: boolean;
652
+ category_id?: string;
653
+ tax_ids?: string[];
654
+ modifier_list_info?: CatalogItemModifierListInfo[];
655
+ variations?: CatalogObject[];
656
+ product_type?: string;
657
+ skip_modifier_screen?: boolean;
658
+ item_options?: CatalogItemOptionForItem[];
659
+ image_ids?: string[];
660
+ sort_name?: string;
661
+ description_html?: string;
662
+ description_plaintext?: string;
663
+ }
664
+
665
+ export interface CatalogItemModifierListInfo {
666
+ modifier_list_id: string;
667
+ modifier_overrides?: CatalogModifierOverride[];
668
+ min_selected_modifiers?: number;
669
+ max_selected_modifiers?: number;
670
+ enabled?: boolean;
671
+ }
672
+
673
+ export interface CatalogModifierOverride {
674
+ modifier_id: string;
675
+ on_by_default?: boolean;
676
+ }
677
+
678
+ export interface CatalogItemOptionForItem {
679
+ item_option_id?: string;
680
+ }
681
+
682
+ export interface CatalogCategory {
683
+ name?: string;
684
+ image_ids?: string[];
685
+ }
686
+
687
+ export interface CatalogItemVariation {
688
+ item_id?: string;
689
+ name?: string;
690
+ sku?: string;
691
+ upc?: string;
692
+ ordinal?: number;
693
+ pricing_type?: 'FIXED_PRICING' | 'VARIABLE_PRICING';
694
+ price_money?: Money;
695
+ location_overrides?: ItemVariationLocationOverrides[];
696
+ track_inventory?: boolean;
697
+ inventory_alert_type?: string;
698
+ inventory_alert_threshold?: number;
699
+ user_data?: string;
700
+ service_duration?: number;
701
+ available_for_booking?: boolean;
702
+ item_option_values?: CatalogItemOptionValueForItemVariation[];
703
+ measurement_unit_id?: string;
704
+ sellable?: boolean;
705
+ stockable?: boolean;
706
+ image_ids?: string[];
707
+ team_member_ids?: string[];
708
+ stockable_conversion?: CatalogStockConversion;
709
+ }
710
+
711
+ export interface ItemVariationLocationOverrides {
712
+ location_id?: string;
713
+ price_money?: Money;
714
+ pricing_type?: string;
715
+ track_inventory?: boolean;
716
+ inventory_alert_type?: string;
717
+ inventory_alert_threshold?: number;
718
+ sold_out?: boolean;
719
+ sold_out_valid_until?: string;
720
+ }
721
+
722
+ export interface CatalogItemOptionValueForItemVariation {
723
+ item_option_id?: string;
724
+ item_option_value_id?: string;
725
+ }
726
+
727
+ export interface CatalogStockConversion {
728
+ stockable_item_variation_id: string;
729
+ stockable_quantity: string;
730
+ nonstockable_quantity: string;
731
+ }
732
+
733
+ export interface CatalogTax {
734
+ name?: string;
735
+ calculation_phase?: string;
736
+ inclusion_type?: string;
737
+ percentage?: string;
738
+ applies_to_custom_amounts?: boolean;
739
+ enabled?: boolean;
740
+ }
741
+
742
+ export interface CatalogDiscount {
743
+ name?: string;
744
+ discount_type?: string;
745
+ percentage?: string;
746
+ amount_money?: Money;
747
+ pin_required?: boolean;
748
+ label_color?: string;
749
+ modify_tax_basis?: string;
750
+ maximum_amount_money?: Money;
751
+ }
752
+
753
+ export interface CatalogModifierList {
754
+ name?: string;
755
+ ordinal?: number;
756
+ selection_type?: 'SINGLE' | 'MULTIPLE';
757
+ modifiers?: CatalogObject[];
758
+ image_ids?: string[];
759
+ }
760
+
761
+ export interface CatalogModifier {
762
+ name?: string;
763
+ price_money?: Money;
764
+ ordinal?: number;
765
+ modifier_list_id?: string;
766
+ image_id?: string;
767
+ }
768
+
769
+ export interface CatalogImage {
770
+ name?: string;
771
+ url?: string;
772
+ caption?: string;
773
+ photo_studio_order_id?: string;
774
+ }
775
+
776
+ export interface CatalogListResponse {
777
+ objects?: CatalogObject[];
778
+ cursor?: string;
779
+ errors?: SquareError[];
780
+ }
781
+
782
+ export interface CatalogObjectResponse {
783
+ object?: CatalogObject;
784
+ related_objects?: CatalogObject[];
785
+ errors?: SquareError[];
786
+ }
787
+
788
+ // ============================================
789
+ // API Error Types
790
+ // ============================================
791
+
792
+ export interface SquareError {
793
+ category: string;
794
+ code: string;
795
+ detail?: string;
796
+ field?: string;
797
+ }
798
+
799
+ export class SquareApiError extends Error {
800
+ public readonly statusCode: number;
801
+ public readonly errors?: SquareError[];
802
+
803
+ constructor(message: string, statusCode: number, errors?: SquareError[]) {
804
+ super(message);
805
+ this.name = 'SquareApiError';
806
+ this.statusCode = statusCode;
807
+ this.errors = errors;
808
+ }
809
+ }