@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,190 @@
1
+ import { createHmac, timingSafeEqual } from 'crypto';
2
+ /**
3
+ * Header name for Square webhook signature
4
+ */
5
+ export const SIGNATURE_HEADER = 'x-square-hmacsha256-signature';
6
+ /**
7
+ * Verify a Square webhook signature using HMAC-SHA256
8
+ *
9
+ * @param rawBody - The raw request body as a string
10
+ * @param signature - The signature from the x-square-hmacsha256-signature header
11
+ * @param signatureKey - Your webhook signature key from Square
12
+ * @param notificationUrl - The URL where the webhook was sent (optional, for additional verification)
13
+ * @returns Verification result with valid flag and optional error
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { verifySignature } from '@bates-solutions/squareup/server';
18
+ *
19
+ * const result = verifySignature(
20
+ * rawBody,
21
+ * req.headers['x-square-hmacsha256-signature'],
22
+ * process.env.SQUARE_WEBHOOK_KEY!
23
+ * );
24
+ *
25
+ * if (!result.valid) {
26
+ * return res.status(401).json({ error: result.error });
27
+ * }
28
+ * ```
29
+ */
30
+ export function verifySignature(rawBody, signature, signatureKey, notificationUrl) {
31
+ if (!rawBody) {
32
+ return { valid: false, error: 'Missing request body' };
33
+ }
34
+ if (!signature) {
35
+ return { valid: false, error: 'Missing signature header' };
36
+ }
37
+ if (!signatureKey) {
38
+ return { valid: false, error: 'Missing signature key' };
39
+ }
40
+ try {
41
+ // Build the string to sign
42
+ // Square uses: notificationUrl + rawBody (if URL provided) or just rawBody
43
+ const stringToSign = notificationUrl ? notificationUrl + rawBody : rawBody;
44
+ // Generate HMAC-SHA256 signature
45
+ const expectedSignature = createHmac('sha256', signatureKey)
46
+ .update(stringToSign)
47
+ .digest('base64');
48
+ // Use timing-safe comparison to prevent timing attacks
49
+ const signatureBuffer = Buffer.from(signature, 'base64');
50
+ const expectedBuffer = Buffer.from(expectedSignature, 'base64');
51
+ // Buffers must be same length for timingSafeEqual
52
+ if (signatureBuffer.length !== expectedBuffer.length) {
53
+ return { valid: false, error: 'Invalid signature' };
54
+ }
55
+ const isValid = timingSafeEqual(signatureBuffer, expectedBuffer);
56
+ if (!isValid) {
57
+ return { valid: false, error: 'Invalid signature' };
58
+ }
59
+ return { valid: true };
60
+ }
61
+ catch (error) {
62
+ return {
63
+ valid: false,
64
+ error: error instanceof Error ? error.message : 'Signature verification failed',
65
+ };
66
+ }
67
+ }
68
+ /**
69
+ * Parse a webhook request body into a typed event
70
+ *
71
+ * @param rawBody - The raw request body string
72
+ * @returns Parsed webhook event
73
+ * @throws Error if parsing fails
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const event = parseWebhookEvent(rawBody);
78
+ * console.log(event.type); // 'payment.completed'
79
+ * ```
80
+ */
81
+ export function parseWebhookEvent(rawBody) {
82
+ try {
83
+ return JSON.parse(rawBody);
84
+ }
85
+ catch {
86
+ throw new Error('Invalid webhook payload: failed to parse JSON');
87
+ }
88
+ }
89
+ /**
90
+ * Parse and verify a webhook request
91
+ *
92
+ * @param rawBody - The raw request body string
93
+ * @param signature - The signature from headers
94
+ * @param signatureKey - Your webhook signature key
95
+ * @param notificationUrl - Optional notification URL for verification
96
+ * @returns Parsed and verified webhook request
97
+ * @throws Error if verification or parsing fails
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * const { event } = parseAndVerifyWebhook(
102
+ * rawBody,
103
+ * signature,
104
+ * process.env.SQUARE_WEBHOOK_KEY!
105
+ * );
106
+ * ```
107
+ */
108
+ export function parseAndVerifyWebhook(rawBody, signature, signatureKey, notificationUrl) {
109
+ const verification = verifySignature(rawBody, signature, signatureKey, notificationUrl);
110
+ if (!verification.valid) {
111
+ throw new Error(verification.error ?? 'Signature verification failed');
112
+ }
113
+ const event = parseWebhookEvent(rawBody);
114
+ return {
115
+ rawBody,
116
+ signature,
117
+ event,
118
+ };
119
+ }
120
+ /**
121
+ * Process a webhook event by calling the appropriate handler
122
+ *
123
+ * @param event - The parsed webhook event
124
+ * @param config - Webhook configuration with handlers
125
+ * @returns Promise that resolves when handler completes
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * await processWebhookEvent(event, {
130
+ * signatureKey: process.env.SQUARE_WEBHOOK_KEY!,
131
+ * handlers: {
132
+ * 'payment.created': async (event) => {
133
+ * console.log('Payment created:', event.data.id);
134
+ * },
135
+ * },
136
+ * });
137
+ * ```
138
+ */
139
+ export async function processWebhookEvent(event, config) {
140
+ const handler = config.handlers[event.type];
141
+ if (handler) {
142
+ await handler(event);
143
+ }
144
+ }
145
+ /**
146
+ * Create a webhook handler function that verifies and processes events
147
+ *
148
+ * @param config - Webhook configuration
149
+ * @returns Handler function that processes raw webhook requests
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * const handleWebhook = createWebhookProcessor({
154
+ * signatureKey: process.env.SQUARE_WEBHOOK_KEY!,
155
+ * handlers: {
156
+ * 'payment.created': async (event) => {
157
+ * await sendReceipt(event.data.object.payment);
158
+ * },
159
+ * 'order.updated': async (event) => {
160
+ * await updateOrderStatus(event.data.object.order);
161
+ * },
162
+ * },
163
+ * });
164
+ *
165
+ * // Use in your route handler
166
+ * const result = await handleWebhook(rawBody, signature);
167
+ * ```
168
+ */
169
+ export function createWebhookProcessor(config) {
170
+ return async (rawBody, signature) => {
171
+ try {
172
+ const verification = verifySignature(rawBody, signature, config.signatureKey, config.notificationUrl);
173
+ if (!verification.valid) {
174
+ if (config.throwOnInvalidSignature !== false) {
175
+ return { success: false, error: verification.error };
176
+ }
177
+ }
178
+ const event = parseWebhookEvent(rawBody);
179
+ await processWebhookEvent(event, config);
180
+ return { success: true, event };
181
+ }
182
+ catch (error) {
183
+ return {
184
+ success: false,
185
+ error: error instanceof Error ? error.message : 'Unknown error',
186
+ };
187
+ }
188
+ };
189
+ }
190
+ //# sourceMappingURL=webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/server/webhook.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,118 @@
1
+ {
2
+ "name": "@bates-solutions/squareup",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript wrapper for Square API with React & Angular integrations",
5
+ "type": "module",
6
+ "main": "./dist/core/index.js",
7
+ "types": "./dist/core/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/core/index.d.ts",
11
+ "import": "./dist/core/index.js"
12
+ },
13
+ "./react": {
14
+ "types": "./dist/react/index.d.ts",
15
+ "import": "./dist/react/index.js"
16
+ },
17
+ "./angular": {
18
+ "types": "./dist/angular/index.d.ts",
19
+ "import": "./dist/angular/index.js"
20
+ },
21
+ "./server": {
22
+ "types": "./dist/server/index.d.ts",
23
+ "import": "./dist/server/index.js"
24
+ }
25
+ },
26
+ "files": [
27
+ "dist",
28
+ "README.md",
29
+ "LICENSE"
30
+ ],
31
+ "scripts": {
32
+ "build": "tsc",
33
+ "dev": "tsc --watch",
34
+ "lint": "eslint src",
35
+ "lint:fix": "eslint src --fix",
36
+ "typecheck": "tsc --noEmit",
37
+ "test": "vitest run",
38
+ "test:watch": "vitest",
39
+ "test:coverage": "vitest run --coverage",
40
+ "test:react": "vitest run --config vitest.react.config.ts",
41
+ "test:angular": "vitest run --config vitest.angular.config.ts",
42
+ "docs": "typedoc",
43
+ "prepublishOnly": "npm run build"
44
+ },
45
+ "keywords": [
46
+ "square",
47
+ "square-api",
48
+ "payments",
49
+ "payment-processing",
50
+ "react",
51
+ "react-hooks",
52
+ "angular",
53
+ "typescript",
54
+ "checkout",
55
+ "ecommerce",
56
+ "point-of-sale",
57
+ "pos",
58
+ "sdk",
59
+ "api"
60
+ ],
61
+ "author": "Bates Solutions",
62
+ "license": "MIT",
63
+ "repository": {
64
+ "type": "git",
65
+ "url": "git+https://github.com/mbates/squareup.git"
66
+ },
67
+ "bugs": {
68
+ "url": "https://github.com/mbates/squareup/issues"
69
+ },
70
+ "homepage": "https://github.com/mbates/squareup#readme",
71
+ "engines": {
72
+ "node": ">=18"
73
+ },
74
+ "peerDependencies": {
75
+ "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0",
76
+ "react": "^18.0.0 || ^19.0.0",
77
+ "square": "^43.2.1"
78
+ },
79
+ "peerDependenciesMeta": {
80
+ "react": {
81
+ "optional": true
82
+ },
83
+ "@angular/core": {
84
+ "optional": true
85
+ }
86
+ },
87
+ "devDependencies": {
88
+ "@angular/common": "^21.0.6",
89
+ "@angular/core": "^21.0.6",
90
+ "@angular/platform-browser": "^21.0.6",
91
+ "@angular/platform-browser-dynamic": "^21.0.6",
92
+ "@eslint/js": "^9.39.2",
93
+ "@testing-library/dom": "^10.4.1",
94
+ "@testing-library/jest-dom": "^6.9.1",
95
+ "@testing-library/react": "^16.3.1",
96
+ "@types/express": "^5.0.6",
97
+ "@types/node": "^25.0.3",
98
+ "@types/react": "^19.2.7",
99
+ "@typescript-eslint/eslint-plugin": "^8.51.0",
100
+ "@typescript-eslint/parser": "^8.51.0",
101
+ "@vitest/coverage-v8": "^4.0.0",
102
+ "eslint": "^9.39.2",
103
+ "eslint-config-prettier": "^10.1.8",
104
+ "eslint-plugin-prettier": "^5.1.0",
105
+ "jsdom": "^27.4.0",
106
+ "prettier": "^3.2.0",
107
+ "react": "^19.2.3",
108
+ "react-dom": "^19.2.3",
109
+ "rxjs": "^7.8.2",
110
+ "square": "^43.2.1",
111
+ "typedoc": "^0.28.15",
112
+ "typedoc-plugin-markdown": "^4.9.0",
113
+ "typescript": "^5.3.0",
114
+ "typescript-eslint": "^8.51.0",
115
+ "vitest": "^4.0.16",
116
+ "zone.js": "^0.16.0"
117
+ }
118
+ }