@bates-solutions/squareup 0.1.0 → 1.0.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 (144) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +167 -154
  3. package/package.json +87 -118
  4. package/README.md.backup +0 -292
  5. package/dist/angular/__tests__/setup.d.ts +0 -1
  6. package/dist/angular/__tests__/setup.d.ts.map +0 -1
  7. package/dist/angular/__tests__/setup.js +0 -5
  8. package/dist/angular/__tests__/setup.js.map +0 -1
  9. package/dist/angular/components/index.d.ts +0 -2
  10. package/dist/angular/components/index.d.ts.map +0 -1
  11. package/dist/angular/components/index.js +0 -2
  12. package/dist/angular/components/index.js.map +0 -1
  13. package/dist/angular/components/payment-button.component.d.ts +0 -49
  14. package/dist/angular/components/payment-button.component.d.ts.map +0 -1
  15. package/dist/angular/components/payment-button.component.js +0 -176
  16. package/dist/angular/components/payment-button.component.js.map +0 -1
  17. package/dist/angular/directives/index.d.ts +0 -2
  18. package/dist/angular/directives/index.d.ts.map +0 -1
  19. package/dist/angular/directives/index.js +0 -2
  20. package/dist/angular/directives/index.js.map +0 -1
  21. package/dist/angular/directives/square-card.directive.d.ts +0 -52
  22. package/dist/angular/directives/square-card.directive.d.ts.map +0 -1
  23. package/dist/angular/directives/square-card.directive.js +0 -98
  24. package/dist/angular/directives/square-card.directive.js.map +0 -1
  25. package/dist/angular/index.d.ts +0 -42
  26. package/dist/angular/index.d.ts.map +0 -1
  27. package/dist/angular/index.js +0 -45
  28. package/dist/angular/index.js.map +0 -1
  29. package/dist/angular/services/index.d.ts +0 -6
  30. package/dist/angular/services/index.d.ts.map +0 -1
  31. package/dist/angular/services/index.js +0 -6
  32. package/dist/angular/services/index.js.map +0 -1
  33. package/dist/angular/services/square-catalog.service.d.ts +0 -60
  34. package/dist/angular/services/square-catalog.service.d.ts.map +0 -1
  35. package/dist/angular/services/square-catalog.service.js +0 -152
  36. package/dist/angular/services/square-catalog.service.js.map +0 -1
  37. package/dist/angular/services/square-customers.service.d.ts +0 -77
  38. package/dist/angular/services/square-customers.service.d.ts.map +0 -1
  39. package/dist/angular/services/square-customers.service.js +0 -187
  40. package/dist/angular/services/square-customers.service.js.map +0 -1
  41. package/dist/angular/services/square-orders.service.d.ts +0 -66
  42. package/dist/angular/services/square-orders.service.d.ts.map +0 -1
  43. package/dist/angular/services/square-orders.service.js +0 -170
  44. package/dist/angular/services/square-orders.service.js.map +0 -1
  45. package/dist/angular/services/square-payments.service.d.ts +0 -73
  46. package/dist/angular/services/square-payments.service.d.ts.map +0 -1
  47. package/dist/angular/services/square-payments.service.js +0 -167
  48. package/dist/angular/services/square-payments.service.js.map +0 -1
  49. package/dist/angular/services/square-sdk.service.d.ts +0 -45
  50. package/dist/angular/services/square-sdk.service.d.ts.map +0 -1
  51. package/dist/angular/services/square-sdk.service.js +0 -133
  52. package/dist/angular/services/square-sdk.service.js.map +0 -1
  53. package/dist/angular/square.module.d.ts +0 -36
  54. package/dist/angular/square.module.d.ts.map +0 -1
  55. package/dist/angular/square.module.js +0 -75
  56. package/dist/angular/square.module.js.map +0 -1
  57. package/dist/angular/types.d.ts +0 -189
  58. package/dist/angular/types.d.ts.map +0 -1
  59. package/dist/angular/types.js +0 -8
  60. package/dist/angular/types.js.map +0 -1
  61. package/dist/react/SquareProvider.d.ts +0 -50
  62. package/dist/react/SquareProvider.d.ts.map +0 -1
  63. package/dist/react/SquareProvider.js +0 -134
  64. package/dist/react/SquareProvider.js.map +0 -1
  65. package/dist/react/__tests__/CardInput.test.d.ts +0 -2
  66. package/dist/react/__tests__/CardInput.test.d.ts.map +0 -1
  67. package/dist/react/__tests__/CardInput.test.js +0 -218
  68. package/dist/react/__tests__/CardInput.test.js.map +0 -1
  69. package/dist/react/__tests__/PaymentButton.test.d.ts +0 -2
  70. package/dist/react/__tests__/PaymentButton.test.d.ts.map +0 -1
  71. package/dist/react/__tests__/PaymentButton.test.js +0 -400
  72. package/dist/react/__tests__/PaymentButton.test.js.map +0 -1
  73. package/dist/react/__tests__/SquareProvider.test.d.ts +0 -2
  74. package/dist/react/__tests__/SquareProvider.test.d.ts.map +0 -1
  75. package/dist/react/__tests__/SquareProvider.test.js +0 -126
  76. package/dist/react/__tests__/SquareProvider.test.js.map +0 -1
  77. package/dist/react/__tests__/setup.d.ts +0 -2
  78. package/dist/react/__tests__/setup.d.ts.map +0 -1
  79. package/dist/react/__tests__/setup.js +0 -3
  80. package/dist/react/__tests__/setup.js.map +0 -1
  81. package/dist/react/__tests__/useCatalog.test.d.ts +0 -2
  82. package/dist/react/__tests__/useCatalog.test.d.ts.map +0 -1
  83. package/dist/react/__tests__/useCatalog.test.js +0 -277
  84. package/dist/react/__tests__/useCatalog.test.js.map +0 -1
  85. package/dist/react/__tests__/useCustomers.test.d.ts +0 -2
  86. package/dist/react/__tests__/useCustomers.test.d.ts.map +0 -1
  87. package/dist/react/__tests__/useCustomers.test.js +0 -312
  88. package/dist/react/__tests__/useCustomers.test.js.map +0 -1
  89. package/dist/react/__tests__/useOrders.test.d.ts +0 -2
  90. package/dist/react/__tests__/useOrders.test.d.ts.map +0 -1
  91. package/dist/react/__tests__/useOrders.test.js +0 -216
  92. package/dist/react/__tests__/useOrders.test.js.map +0 -1
  93. package/dist/react/__tests__/usePayments.test.d.ts +0 -2
  94. package/dist/react/__tests__/usePayments.test.d.ts.map +0 -1
  95. package/dist/react/__tests__/usePayments.test.js +0 -235
  96. package/dist/react/__tests__/usePayments.test.js.map +0 -1
  97. package/dist/react/__tests__/useSquarePayment.test.d.ts +0 -2
  98. package/dist/react/__tests__/useSquarePayment.test.d.ts.map +0 -1
  99. package/dist/react/__tests__/useSquarePayment.test.js +0 -447
  100. package/dist/react/__tests__/useSquarePayment.test.js.map +0 -1
  101. package/dist/react/components/CardInput.d.ts +0 -69
  102. package/dist/react/components/CardInput.d.ts.map +0 -1
  103. package/dist/react/components/CardInput.js +0 -58
  104. package/dist/react/components/CardInput.js.map +0 -1
  105. package/dist/react/components/PaymentButton.d.ts +0 -71
  106. package/dist/react/components/PaymentButton.d.ts.map +0 -1
  107. package/dist/react/components/PaymentButton.js +0 -140
  108. package/dist/react/components/PaymentButton.js.map +0 -1
  109. package/dist/react/components/index.d.ts +0 -5
  110. package/dist/react/components/index.d.ts.map +0 -1
  111. package/dist/react/components/index.js +0 -3
  112. package/dist/react/components/index.js.map +0 -1
  113. package/dist/react/hooks/index.d.ts +0 -11
  114. package/dist/react/hooks/index.d.ts.map +0 -1
  115. package/dist/react/hooks/index.js +0 -6
  116. package/dist/react/hooks/index.js.map +0 -1
  117. package/dist/react/hooks/useCatalog.d.ts +0 -98
  118. package/dist/react/hooks/useCatalog.d.ts.map +0 -1
  119. package/dist/react/hooks/useCatalog.js +0 -134
  120. package/dist/react/hooks/useCatalog.js.map +0 -1
  121. package/dist/react/hooks/useCustomers.d.ts +0 -105
  122. package/dist/react/hooks/useCustomers.d.ts.map +0 -1
  123. package/dist/react/hooks/useCustomers.js +0 -174
  124. package/dist/react/hooks/useCustomers.js.map +0 -1
  125. package/dist/react/hooks/useOrders.d.ts +0 -112
  126. package/dist/react/hooks/useOrders.d.ts.map +0 -1
  127. package/dist/react/hooks/useOrders.js +0 -115
  128. package/dist/react/hooks/useOrders.js.map +0 -1
  129. package/dist/react/hooks/usePayments.d.ts +0 -98
  130. package/dist/react/hooks/usePayments.d.ts.map +0 -1
  131. package/dist/react/hooks/usePayments.js +0 -89
  132. package/dist/react/hooks/usePayments.js.map +0 -1
  133. package/dist/react/hooks/useSquarePayment.d.ts +0 -52
  134. package/dist/react/hooks/useSquarePayment.d.ts.map +0 -1
  135. package/dist/react/hooks/useSquarePayment.js +0 -146
  136. package/dist/react/hooks/useSquarePayment.js.map +0 -1
  137. package/dist/react/index.d.ts +0 -8
  138. package/dist/react/index.d.ts.map +0 -1
  139. package/dist/react/index.js +0 -7
  140. package/dist/react/index.js.map +0 -1
  141. package/dist/react/types.d.ts +0 -183
  142. package/dist/react/types.d.ts.map +0 -1
  143. package/dist/react/types.js +0 -2
  144. package/dist/react/types.js.map +0 -1
@@ -1,71 +0,0 @@
1
- import React from 'react';
2
- import type { DigitalWalletOptions } from '../types.js';
3
- /**
4
- * Payment method type
5
- */
6
- export type PaymentMethodType = 'googlePay' | 'applePay';
7
- /**
8
- * Props for PaymentButton component
9
- */
10
- export interface PaymentButtonProps {
11
- /** Payment method type */
12
- type: PaymentMethodType;
13
- /** Amount to display/charge (for display purposes) */
14
- amount?: number;
15
- /** Currency code */
16
- currency?: string;
17
- /** Button styling options */
18
- buttonOptions?: DigitalWalletOptions;
19
- /** Additional CSS class name */
20
- className?: string;
21
- /** Inline styles for the container */
22
- style?: React.CSSProperties;
23
- /** Callback when payment method is ready */
24
- onReady?: () => void;
25
- /** Callback when payment is successful */
26
- onPayment?: (token: string) => void;
27
- /** Callback when an error occurs */
28
- onError?: (error: Error) => void;
29
- /** Callback when payment is cancelled */
30
- onCancel?: () => void;
31
- }
32
- /**
33
- * Digital wallet payment button (Google Pay / Apple Pay)
34
- *
35
- * @example
36
- * ```tsx
37
- * import { PaymentButton } from '@bates-solutions/squareup/react';
38
- *
39
- * function Checkout() {
40
- * const handlePayment = async (token: string) => {
41
- * // Send token to your server to complete payment
42
- * const response = await fetch('/api/payments', {
43
- * method: 'POST',
44
- * headers: { 'Content-Type': 'application/json' },
45
- * body: JSON.stringify({ sourceId: token, amount: 1000 }),
46
- * });
47
- * };
48
- *
49
- * return (
50
- * <div>
51
- * <PaymentButton
52
- * type="googlePay"
53
- * amount={1000}
54
- * currency="USD"
55
- * onPayment={handlePayment}
56
- * onError={(err) => console.error('Error:', err)}
57
- * />
58
- * <PaymentButton
59
- * type="applePay"
60
- * amount={1000}
61
- * currency="USD"
62
- * onPayment={handlePayment}
63
- * onError={(err) => console.error('Error:', err)}
64
- * />
65
- * </div>
66
- * );
67
- * }
68
- * ```
69
- */
70
- export declare function PaymentButton({ type, amount: _amount, currency: _currency, buttonOptions, className, style, onReady, onPayment, onError, onCancel, }: PaymentButtonProps): import("react/jsx-runtime").JSX.Element;
71
- //# sourceMappingURL=PaymentButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaymentButton.d.ts","sourceRoot":"","sources":["../../../src/react/components/PaymentButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,KAAK,EAAuB,oBAAoB,EAAe,MAAM,aAAa,CAAC;AAE1F;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,UAAU,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,IAAI,EAAE,iBAAiB,CAAC;IACxB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,SAAS,EACnB,aAAa,EACb,SAAS,EACT,KAAK,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,GACT,EAAE,kBAAkB,2CAsHpB"}
@@ -1,140 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useRef, useState, useCallback } from 'react';
3
- import { useSquare } from '../SquareProvider.js';
4
- /**
5
- * Digital wallet payment button (Google Pay / Apple Pay)
6
- *
7
- * @example
8
- * ```tsx
9
- * import { PaymentButton } from '@bates-solutions/squareup/react';
10
- *
11
- * function Checkout() {
12
- * const handlePayment = async (token: string) => {
13
- * // Send token to your server to complete payment
14
- * const response = await fetch('/api/payments', {
15
- * method: 'POST',
16
- * headers: { 'Content-Type': 'application/json' },
17
- * body: JSON.stringify({ sourceId: token, amount: 1000 }),
18
- * });
19
- * };
20
- *
21
- * return (
22
- * <div>
23
- * <PaymentButton
24
- * type="googlePay"
25
- * amount={1000}
26
- * currency="USD"
27
- * onPayment={handlePayment}
28
- * onError={(err) => console.error('Error:', err)}
29
- * />
30
- * <PaymentButton
31
- * type="applePay"
32
- * amount={1000}
33
- * currency="USD"
34
- * onPayment={handlePayment}
35
- * onError={(err) => console.error('Error:', err)}
36
- * />
37
- * </div>
38
- * );
39
- * }
40
- * ```
41
- */
42
- export function PaymentButton({ type, amount: _amount, currency: _currency, buttonOptions, className, style, onReady, onPayment, onError, onCancel, }) {
43
- const { payments, sdkLoaded, error: sdkError } = useSquare();
44
- const containerRef = useRef(null);
45
- const paymentMethodRef = useRef(null);
46
- const [ready, setReady] = useState(false);
47
- const [loading, setLoading] = useState(false);
48
- const [_error, setError] = useState(sdkError);
49
- // Initialize payment method
50
- useEffect(() => {
51
- if (!sdkLoaded || !payments || !containerRef.current) {
52
- return;
53
- }
54
- let mounted = true;
55
- async function initializePaymentMethod() {
56
- if (!payments)
57
- return;
58
- try {
59
- let paymentMethod;
60
- if (type === 'googlePay') {
61
- paymentMethod = await payments.googlePay({});
62
- }
63
- else {
64
- paymentMethod = await payments.applePay({});
65
- }
66
- if (!mounted || !containerRef.current) {
67
- await paymentMethod.destroy();
68
- return;
69
- }
70
- await paymentMethod.attach(containerRef.current, buttonOptions);
71
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
72
- if (!mounted) {
73
- await paymentMethod.destroy();
74
- return;
75
- }
76
- paymentMethodRef.current = paymentMethod;
77
- setReady(true);
78
- setError(null);
79
- onReady?.();
80
- }
81
- catch (err) {
82
- if (!mounted)
83
- return;
84
- const error = err instanceof Error ? err : new Error(`Failed to initialize ${type}`);
85
- setError(error);
86
- onError?.(error);
87
- }
88
- }
89
- void initializePaymentMethod();
90
- return () => {
91
- mounted = false;
92
- if (paymentMethodRef.current) {
93
- void paymentMethodRef.current.destroy();
94
- paymentMethodRef.current = null;
95
- }
96
- };
97
- }, [sdkLoaded, payments, type, buttonOptions, onReady, onError]);
98
- // Handle click/tap on the button
99
- const handleClick = useCallback(async () => {
100
- if (!paymentMethodRef.current || loading)
101
- return;
102
- setLoading(true);
103
- setError(null);
104
- try {
105
- const result = await paymentMethodRef.current.tokenize();
106
- if (result.status === 'OK' && result.token) {
107
- onPayment?.(result.token);
108
- }
109
- else if (result.status === 'Cancel') {
110
- onCancel?.();
111
- }
112
- else {
113
- const errorMessage = result.errors?.map((e) => e.message).join(', ') ?? 'Payment failed';
114
- throw new Error(errorMessage);
115
- }
116
- }
117
- catch (err) {
118
- const error = err instanceof Error ? err : new Error('Payment failed');
119
- setError(error);
120
- onError?.(error);
121
- }
122
- finally {
123
- setLoading(false);
124
- }
125
- }, [loading, onPayment, onCancel, onError]);
126
- // Update error state when SDK error changes
127
- useEffect(() => {
128
- if (sdkError) {
129
- setError(sdkError);
130
- onError?.(sdkError);
131
- }
132
- }, [sdkError, onError]);
133
- return (_jsx("div", { ref: containerRef, className: className, style: {
134
- minHeight: '48px',
135
- cursor: ready && !loading ? 'pointer' : 'default',
136
- opacity: loading ? 0.7 : 1,
137
- ...style,
138
- }, onClick: () => { void handleClick(); }, role: "button", tabIndex: ready ? 0 : -1, "aria-disabled": !ready || loading, "aria-label": `Pay with ${type === 'googlePay' ? 'Google Pay' : 'Apple Pay'}` }));
139
- }
140
- //# sourceMappingURL=PaymentButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaymentButton.js","sourceRoot":"","sources":["../../../src/react/components/PaymentButton.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export { CardInput } from './CardInput.js';
2
- export type { CardInputProps, CardInputHandle } from './CardInput.js';
3
- export { PaymentButton } from './PaymentButton.js';
4
- export type { PaymentMethodType, PaymentButtonProps } from './PaymentButton.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { CardInput } from './CardInput.js';
2
- export { PaymentButton } from './PaymentButton.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,11 +0,0 @@
1
- export { useSquarePayment } from './useSquarePayment.js';
2
- export type { UseSquarePaymentOptions } from './useSquarePayment.js';
3
- export { usePayments } from './usePayments.js';
4
- export type { CreatePaymentInput, PaymentResponse, UsePaymentsOptions, UsePaymentsReturn, } from './usePayments.js';
5
- export { useOrders } from './useOrders.js';
6
- export type { OrderLineItemInput, CreateOrderInput, OrderResponse, UseOrdersOptions, UseOrdersReturn, } from './useOrders.js';
7
- export { useCustomers } from './useCustomers.js';
8
- export type { CustomerAddressInput, CustomerInput, CustomerResponse, UseCustomersOptions, UseCustomersReturn, } from './useCustomers.js';
9
- export { useCatalog } from './useCatalog.js';
10
- export type { CatalogObjectType, CatalogItemResponse, CatalogSearchOptions, UseCatalogOptions, UseCatalogReturn, } from './useCatalog.js';
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC"}
@@ -1,6 +0,0 @@
1
- export { useSquarePayment } from './useSquarePayment.js';
2
- export { usePayments } from './usePayments.js';
3
- export { useOrders } from './useOrders.js';
4
- export { useCustomers } from './useCustomers.js';
5
- export { useCatalog } from './useCatalog.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAS3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,98 +0,0 @@
1
- import type { QueryState } from '../types.js';
2
- /**
3
- * Catalog object type
4
- */
5
- export type CatalogObjectType = 'ITEM' | 'ITEM_VARIATION' | 'CATEGORY' | 'DISCOUNT' | 'TAX' | 'MODIFIER' | 'MODIFIER_LIST' | 'IMAGE';
6
- /**
7
- * Catalog item response
8
- */
9
- export interface CatalogItemResponse {
10
- type: CatalogObjectType;
11
- id: string;
12
- name?: string;
13
- description?: string;
14
- categoryId?: string;
15
- variations?: Array<{
16
- id: string;
17
- name?: string;
18
- sku?: string;
19
- price?: {
20
- amount: number;
21
- currency: string;
22
- };
23
- }>;
24
- imageUrl?: string;
25
- }
26
- /**
27
- * Catalog search options
28
- */
29
- export interface CatalogSearchOptions {
30
- /** Object types to include */
31
- objectTypes?: CatalogObjectType[];
32
- /** Search query string */
33
- query?: string;
34
- /** Category IDs to filter by */
35
- categoryIds?: string[];
36
- /** Maximum results */
37
- limit?: number;
38
- }
39
- /**
40
- * Options for useCatalog hook
41
- */
42
- export interface UseCatalogOptions {
43
- /** API endpoint for catalog (default: /api/catalog) */
44
- apiEndpoint?: string;
45
- /** Initial search options */
46
- initialOptions?: CatalogSearchOptions;
47
- /** Fetch on mount */
48
- fetchOnMount?: boolean;
49
- /** Callback on error */
50
- onError?: (error: Error) => void;
51
- }
52
- /**
53
- * Return type for useCatalog hook
54
- */
55
- export interface UseCatalogReturn extends QueryState<CatalogItemResponse[]> {
56
- /** Search catalog items */
57
- search: (options?: CatalogSearchOptions) => Promise<CatalogItemResponse[]>;
58
- /** Get a catalog item by ID */
59
- get: (objectId: string) => Promise<CatalogItemResponse>;
60
- /** List items by type */
61
- list: (type: CatalogObjectType, limit?: number) => Promise<CatalogItemResponse[]>;
62
- }
63
- /**
64
- * Hook for accessing catalog data via your backend API
65
- *
66
- * @param options - Hook configuration
67
- * @returns Catalog query functions and state
68
- *
69
- * @example
70
- * ```tsx
71
- * function ProductList() {
72
- * const { data: items, loading, error, search } = useCatalog({
73
- * initialOptions: { objectTypes: ['ITEM'], limit: 20 },
74
- * fetchOnMount: true,
75
- * });
76
- *
77
- * if (loading) return <div>Loading...</div>;
78
- * if (error) return <div>Error: {error.message}</div>;
79
- *
80
- * return (
81
- * <div>
82
- * <input
83
- * type="text"
84
- * onChange={(e) => search({ query: e.target.value })}
85
- * placeholder="Search products..."
86
- * />
87
- * <ul>
88
- * {items?.map((item) => (
89
- * <li key={item.id}>{item.name}</li>
90
- * ))}
91
- * </ul>
92
- * </div>
93
- * );
94
- * }
95
- * ```
96
- */
97
- export declare function useCatalog(options?: UseCatalogOptions): UseCatalogReturn;
98
- //# sourceMappingURL=useCatalog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCatalog.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useCatalog.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,gBAAgB,GAChB,UAAU,GACV,UAAU,GACV,KAAK,GACL,UAAU,GACV,eAAe,GACf,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE;YACN,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,8BAA8B;IAC9B,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,qBAAqB;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU,CAAC,mBAAmB,EAAE,CAAC;IACzE,2BAA2B;IAC3B,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC3E,+BAA+B;IAC/B,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxD,yBAAyB;IACzB,IAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CACnF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CA2H5E"}
@@ -1,134 +0,0 @@
1
- import { useState, useCallback, useEffect } from 'react';
2
- /**
3
- * Hook for accessing catalog data via your backend API
4
- *
5
- * @param options - Hook configuration
6
- * @returns Catalog query functions and state
7
- *
8
- * @example
9
- * ```tsx
10
- * function ProductList() {
11
- * const { data: items, loading, error, search } = useCatalog({
12
- * initialOptions: { objectTypes: ['ITEM'], limit: 20 },
13
- * fetchOnMount: true,
14
- * });
15
- *
16
- * if (loading) return <div>Loading...</div>;
17
- * if (error) return <div>Error: {error.message}</div>;
18
- *
19
- * return (
20
- * <div>
21
- * <input
22
- * type="text"
23
- * onChange={(e) => search({ query: e.target.value })}
24
- * placeholder="Search products..."
25
- * />
26
- * <ul>
27
- * {items?.map((item) => (
28
- * <li key={item.id}>{item.name}</li>
29
- * ))}
30
- * </ul>
31
- * </div>
32
- * );
33
- * }
34
- * ```
35
- */
36
- export function useCatalog(options = {}) {
37
- const { apiEndpoint = '/api/catalog', initialOptions, fetchOnMount = false, onError, } = options;
38
- const [data, setData] = useState(null);
39
- const [error, setError] = useState(null);
40
- const [loading, setLoading] = useState(false);
41
- const search = useCallback(async (searchOptions) => {
42
- setLoading(true);
43
- setError(null);
44
- try {
45
- const params = new URLSearchParams();
46
- const opts = searchOptions ?? initialOptions ?? {};
47
- if (opts.objectTypes?.length) {
48
- params.set('types', opts.objectTypes.join(','));
49
- }
50
- if (opts.query) {
51
- params.set('query', opts.query);
52
- }
53
- if (opts.categoryIds?.length) {
54
- params.set('categoryIds', opts.categoryIds.join(','));
55
- }
56
- if (opts.limit) {
57
- params.set('limit', String(opts.limit));
58
- }
59
- const url = params.toString() ? `${apiEndpoint}?${params.toString()}` : apiEndpoint;
60
- const response = await fetch(url, {
61
- method: 'GET',
62
- headers: {
63
- 'Content-Type': 'application/json',
64
- },
65
- });
66
- if (!response.ok) {
67
- const errorData = (await response.json().catch(() => ({})));
68
- throw new Error(errorData.message ?? `Catalog search failed: ${response.statusText}`);
69
- }
70
- const result = (await response.json());
71
- const items = result.items;
72
- setData(items);
73
- return items;
74
- }
75
- catch (err) {
76
- const error = err instanceof Error ? err : new Error('Catalog search failed');
77
- setError(error);
78
- onError?.(error);
79
- throw error;
80
- }
81
- finally {
82
- setLoading(false);
83
- }
84
- }, [apiEndpoint, initialOptions, onError]);
85
- const get = useCallback(async (objectId) => {
86
- setLoading(true);
87
- setError(null);
88
- try {
89
- const response = await fetch(`${apiEndpoint}/${objectId}`, {
90
- method: 'GET',
91
- headers: {
92
- 'Content-Type': 'application/json',
93
- },
94
- });
95
- if (!response.ok) {
96
- const errorData = (await response.json().catch(() => ({})));
97
- throw new Error(errorData.message ?? `Failed to get catalog item: ${response.statusText}`);
98
- }
99
- const item = (await response.json());
100
- return item;
101
- }
102
- catch (err) {
103
- const error = err instanceof Error ? err : new Error('Failed to get catalog item');
104
- setError(error);
105
- onError?.(error);
106
- throw error;
107
- }
108
- finally {
109
- setLoading(false);
110
- }
111
- }, [apiEndpoint, onError]);
112
- const list = useCallback(async (type, limit) => {
113
- return search({ objectTypes: [type], limit });
114
- }, [search]);
115
- const refetch = useCallback(async () => {
116
- await search(initialOptions);
117
- }, [search, initialOptions]);
118
- // Fetch on mount if requested
119
- useEffect(() => {
120
- if (fetchOnMount) {
121
- void search(initialOptions);
122
- }
123
- }, [fetchOnMount, search, initialOptions]);
124
- return {
125
- data,
126
- error,
127
- loading,
128
- search,
129
- get,
130
- list,
131
- refetch,
132
- };
133
- }
134
- //# sourceMappingURL=useCatalog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCatalog.js","sourceRoot":"","sources":["../../../src/react/hooks/useCatalog.ts"],"names":[],"mappings":"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"}
@@ -1,105 +0,0 @@
1
- import type { MutationState } from '../types.js';
2
- /**
3
- * Customer address input
4
- */
5
- export interface CustomerAddressInput {
6
- addressLine1?: string;
7
- addressLine2?: string;
8
- locality?: string;
9
- administrativeDistrictLevel1?: string;
10
- postalCode?: string;
11
- country?: string;
12
- }
13
- /**
14
- * Customer creation/update options
15
- */
16
- export interface CustomerInput {
17
- givenName?: string;
18
- familyName?: string;
19
- emailAddress?: string;
20
- phoneNumber?: string;
21
- companyName?: string;
22
- nickname?: string;
23
- note?: string;
24
- referenceId?: string;
25
- address?: CustomerAddressInput;
26
- }
27
- /**
28
- * Customer response
29
- */
30
- export interface CustomerResponse {
31
- id: string;
32
- givenName?: string;
33
- familyName?: string;
34
- emailAddress?: string;
35
- phoneNumber?: string;
36
- companyName?: string;
37
- nickname?: string;
38
- note?: string;
39
- referenceId?: string;
40
- address?: CustomerAddressInput;
41
- createdAt?: string;
42
- updatedAt?: string;
43
- }
44
- /**
45
- * Options for useCustomers hook
46
- */
47
- export interface UseCustomersOptions {
48
- /** API endpoint for customers (default: /api/customers) */
49
- apiEndpoint?: string;
50
- /** Callback on successful operation */
51
- onSuccess?: (customer: CustomerResponse) => void;
52
- /** Callback on error */
53
- onError?: (error: Error) => void;
54
- }
55
- /**
56
- * Return type for useCustomers hook
57
- */
58
- export interface UseCustomersReturn extends MutationState<CustomerResponse> {
59
- /** Create a new customer */
60
- create: (input: CustomerInput) => Promise<CustomerResponse>;
61
- /** Get a customer by ID */
62
- get: (customerId: string) => Promise<CustomerResponse>;
63
- /** Update a customer */
64
- update: (customerId: string, input: CustomerInput) => Promise<CustomerResponse>;
65
- /** Search for customers */
66
- search: (query: {
67
- email?: string;
68
- phone?: string;
69
- }) => Promise<CustomerResponse[]>;
70
- /** Reset the hook state */
71
- reset: () => void;
72
- }
73
- /**
74
- * Hook for managing customers via your backend API
75
- *
76
- * @param options - Hook configuration
77
- * @returns Customer management functions and state
78
- *
79
- * @example
80
- * ```tsx
81
- * function CustomerForm() {
82
- * const { create: createCustomer, loading, error, data } = useCustomers({
83
- * onSuccess: (customer) => console.log('Created:', customer.id),
84
- * });
85
- *
86
- * const handleSubmit = async (formData: CustomerInput) => {
87
- * await createCustomer({
88
- * givenName: formData.givenName,
89
- * familyName: formData.familyName,
90
- * emailAddress: formData.emailAddress,
91
- * });
92
- * };
93
- *
94
- * return (
95
- * <form onSubmit={handleSubmit}>
96
- * {loading && <p>Creating customer...</p>}
97
- * {error && <p>Error: {error.message}</p>}
98
- * {data && <p>Customer created: {data.id}</p>}
99
- * </form>
100
- * );
101
- * }
102
- * ```
103
- */
104
- export declare function useCustomers(options?: UseCustomersOptions): UseCustomersReturn;
105
- //# sourceMappingURL=useCustomers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCustomers.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useCustomers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACjD,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa,CAAC,gBAAgB,CAAC;IACzE,4BAA4B;IAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5D,2BAA2B;IAC3B,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvD,wBAAwB;IACxB,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChF,2BAA2B;IAC3B,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACnF,2BAA2B;IAC3B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,mBAAwB,GAAG,kBAAkB,CAkKlF"}