@bates-solutions/squareup 1.6.0 → 1.8.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.
- package/README.md +22 -0
- package/dist/core/services/orders.service.d.ts +35 -1
- package/dist/core/services/orders.service.d.ts.map +1 -1
- package/dist/core/services/orders.service.js +56 -0
- package/dist/core/services/orders.service.js.map +1 -1
- package/dist/core/types/index.d.ts +11 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/middleware/lambda.d.ts +74 -0
- package/dist/server/middleware/lambda.d.ts.map +1 -0
- package/dist/server/middleware/lambda.js +115 -0
- package/dist/server/middleware/lambda.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -72,6 +72,12 @@ const order = await client.orders.create(
|
|
|
72
72
|
.build()
|
|
73
73
|
);
|
|
74
74
|
|
|
75
|
+
// Search recent completed orders
|
|
76
|
+
const { data: orders } = await client.orders.searchRecent({
|
|
77
|
+
states: ['COMPLETED'],
|
|
78
|
+
since: new Date(Date.now() - 60 * 60 * 1000), // last hour
|
|
79
|
+
});
|
|
80
|
+
|
|
75
81
|
// Manage customers
|
|
76
82
|
const customer = await client.customers.create({
|
|
77
83
|
givenName: 'John',
|
|
@@ -158,6 +164,22 @@ const orderId = getOrderId(event); // works on payment, order, and refund ev
|
|
|
158
164
|
const customerId = getCustomerId(event); // works on payment and customer events
|
|
159
165
|
```
|
|
160
166
|
|
|
167
|
+
### Webhook Handling (AWS Lambda)
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
import { createLambdaWebhookHandler } from '@bates-solutions/squareup/server';
|
|
171
|
+
|
|
172
|
+
export const handler = createLambdaWebhookHandler({
|
|
173
|
+
signatureKey: process.env.SQUARE_WEBHOOK_SIGNATURE_KEY!,
|
|
174
|
+
handlers: {
|
|
175
|
+
'payment.completed': async (event, context) => {
|
|
176
|
+
// context.orderId, context.customerId auto-extracted
|
|
177
|
+
await processPayment(event.data.id, context.orderId!);
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
```
|
|
182
|
+
|
|
161
183
|
## Available Services
|
|
162
184
|
|
|
163
185
|
| Service | Description |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SquareClient } from 'square';
|
|
2
|
-
import type { CreateOrderOptions, SearchOrdersOptions } from '../types/index.js';
|
|
2
|
+
import type { CreateOrderOptions, SearchOrdersOptions, SearchRecentOrdersOptions } from '../types/index.js';
|
|
3
3
|
import { OrderBuilder, type Order } from '../builders/order.builder.js';
|
|
4
4
|
/**
|
|
5
5
|
* Orders service for managing Square orders
|
|
@@ -139,5 +139,39 @@ export declare class OrdersService {
|
|
|
139
139
|
data: Order[];
|
|
140
140
|
cursor?: string;
|
|
141
141
|
}>;
|
|
142
|
+
/**
|
|
143
|
+
* Search for recent orders with simplified filter options
|
|
144
|
+
*
|
|
145
|
+
* @param options - Simplified search options
|
|
146
|
+
* @returns Paginated list of orders
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* // Get completed orders from the last hour
|
|
151
|
+
* const { data } = await square.orders.searchRecent({
|
|
152
|
+
* states: ['COMPLETED'],
|
|
153
|
+
* since: new Date(Date.now() - 60 * 60 * 1000),
|
|
154
|
+
* });
|
|
155
|
+
*
|
|
156
|
+
* // Get first page of orders from a date range
|
|
157
|
+
* const { data, cursor } = await square.orders.searchRecent({
|
|
158
|
+
* since: new Date('2024-01-01'),
|
|
159
|
+
* until: new Date('2024-01-31'),
|
|
160
|
+
* limit: 50,
|
|
161
|
+
* });
|
|
162
|
+
*
|
|
163
|
+
* // Fetch next page
|
|
164
|
+
* const page2 = await square.orders.searchRecent({
|
|
165
|
+
* since: new Date('2024-01-01'),
|
|
166
|
+
* until: new Date('2024-01-31'),
|
|
167
|
+
* cursor,
|
|
168
|
+
* limit: 50,
|
|
169
|
+
* });
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
searchRecent(options?: SearchRecentOrdersOptions): Promise<{
|
|
173
|
+
data: Order[];
|
|
174
|
+
cursor?: string;
|
|
175
|
+
}>;
|
|
142
176
|
}
|
|
143
177
|
//# sourceMappingURL=orders.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/orders.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"orders.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/orders.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAG5G,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBADlB,MAAM,EAAE,YAAY,EACpB,iBAAiB,CAAC,EAAE,MAAM,YAAA;IAG7C;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY;IAW1C;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IA+B9E;;;;;;;;;;OAUG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAc1C;;;;;;OAMG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,EACD,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC;IA8BjB;;;;;;;;;;;OAWG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IAkBhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACG,MAAM,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAwBxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,YAAY,CAChB,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC;QAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CA+B/C"}
|
|
@@ -231,5 +231,61 @@ export class OrdersService {
|
|
|
231
231
|
throw parseSquareError(error);
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Search for recent orders with simplified filter options
|
|
236
|
+
*
|
|
237
|
+
* @param options - Simplified search options
|
|
238
|
+
* @returns Paginated list of orders
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* ```typescript
|
|
242
|
+
* // Get completed orders from the last hour
|
|
243
|
+
* const { data } = await square.orders.searchRecent({
|
|
244
|
+
* states: ['COMPLETED'],
|
|
245
|
+
* since: new Date(Date.now() - 60 * 60 * 1000),
|
|
246
|
+
* });
|
|
247
|
+
*
|
|
248
|
+
* // Get first page of orders from a date range
|
|
249
|
+
* const { data, cursor } = await square.orders.searchRecent({
|
|
250
|
+
* since: new Date('2024-01-01'),
|
|
251
|
+
* until: new Date('2024-01-31'),
|
|
252
|
+
* limit: 50,
|
|
253
|
+
* });
|
|
254
|
+
*
|
|
255
|
+
* // Fetch next page
|
|
256
|
+
* const page2 = await square.orders.searchRecent({
|
|
257
|
+
* since: new Date('2024-01-01'),
|
|
258
|
+
* until: new Date('2024-01-31'),
|
|
259
|
+
* cursor,
|
|
260
|
+
* limit: 50,
|
|
261
|
+
* });
|
|
262
|
+
* ```
|
|
263
|
+
*/
|
|
264
|
+
async searchRecent(options) {
|
|
265
|
+
const filter = {};
|
|
266
|
+
if (options?.states) {
|
|
267
|
+
filter.stateFilter = { states: options.states };
|
|
268
|
+
}
|
|
269
|
+
if (options?.since || options?.until) {
|
|
270
|
+
filter.dateTimeFilter = {
|
|
271
|
+
closedAt: {
|
|
272
|
+
...(options.since ? { startAt: options.since.toISOString() } : {}),
|
|
273
|
+
...(options.until ? { endAt: options.until.toISOString() } : {}),
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
const query = {
|
|
278
|
+
sort: { sortField: 'CLOSED_AT', sortOrder: 'DESC' },
|
|
279
|
+
};
|
|
280
|
+
if (Object.keys(filter).length > 0) {
|
|
281
|
+
query.filter = filter;
|
|
282
|
+
}
|
|
283
|
+
return this.search({
|
|
284
|
+
locationIds: options?.locationIds,
|
|
285
|
+
cursor: options?.cursor,
|
|
286
|
+
limit: options?.limit,
|
|
287
|
+
query,
|
|
288
|
+
});
|
|
289
|
+
}
|
|
234
290
|
}
|
|
235
291
|
//# sourceMappingURL=orders.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders.service.js","sourceRoot":"","sources":["../../../src/core/services/orders.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orders.service.js","sourceRoot":"","sources":["../../../src/core/services/orders.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,YAAY,EAAc,MAAM,8BAA8B,CAAC;AAExE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,aAAa;IAEL;IACA;IAFnB,YACmB,MAAoB,EACpB,iBAA0B;QAD1B,WAAM,GAAN,MAAM,CAAc;QACpB,sBAAiB,GAAjB,iBAAiB,CAAS;IAC1C,CAAC;IAEJ;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,UAAmB;QACzB,MAAM,QAAQ,GAAG,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,qBAAqB,CAC7B,2EAA2E,EAC3E,YAAY,CACb,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,MAAM,CAAC,OAA2B,EAAE,UAAmB;QAC3D,MAAM,QAAQ,GAAG,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,qBAAqB,CAC7B,2EAA2E,EAC3E,YAAY,CACb,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,qBAAqB,CAAC,wCAAwC,EAAE,WAAW,CAAC,CAAC;QACzF,CAAC;QAED,mDAAmD;QACnD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAExD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAE3D,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrC,CAAC;YAED,OAAO,QAAQ,CAAC,KAAc,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,OAAe,EACf,OAGC,EACD,UAAmB;QAEnB,MAAM,QAAQ,GAAG,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,qBAAqB,CAC7B,2EAA2E,EAC3E,YAAY,CACb,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC/C,OAAO;gBACP,KAAK,EAAE;oBACL,UAAU,EAAE,QAAQ;oBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC;gBACD,cAAc,EAAE,oBAAoB,EAAE;aACvC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,QAAQ,CAAC,KAAc,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,UAAoB;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC5C,OAAO;gBACP,cAAc,EAAE,oBAAoB,EAAE;gBACtC,UAAU;aACX,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC1C,CAAC;YAED,OAAO,QAAQ,CAAC,KAAc,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,KAAK,CAAC,MAAM,CAAC,OAA6B;QACxC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAErG,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,qBAAqB,CAAC,gDAAgD,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC/C,WAAW;gBACX,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,KAAK,EAAE,OAAO,EAAE,KAAK;gBACrB,KAAK,EAAE,OAAO,EAAE,KAAK;aACtB,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAY;gBACxC,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,YAAY,CAChB,OAAmC;QAEnC,MAAM,MAAM,GAAwC,EAAE,CAAC;QAEvD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,WAAW,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAClD,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;YACrC,MAAM,CAAC,cAAc,GAAG;gBACtB,QAAQ,EAAE;oBACR,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAuC;YAChD,IAAI,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;SACpD,CAAC;QAEF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -78,4 +78,15 @@ export interface SearchOrdersOptions {
|
|
|
78
78
|
limit?: number;
|
|
79
79
|
query?: import('square').SearchOrdersQuery;
|
|
80
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Simplified options for searching recent orders
|
|
83
|
+
*/
|
|
84
|
+
export interface SearchRecentOrdersOptions {
|
|
85
|
+
locationIds?: string[];
|
|
86
|
+
states?: import('square').OrderState[];
|
|
87
|
+
since?: Date;
|
|
88
|
+
until?: Date;
|
|
89
|
+
limit?: number;
|
|
90
|
+
cursor?: string;
|
|
91
|
+
}
|
|
81
92
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEzE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,SAAS,EACT,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,SAAS,GACV,MAAM,QAAQ,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,QAAQ,EAAE,iBAAiB,CAAC;CAC5C"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEzE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,uBAAuB,EACvB,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,SAAS,EACT,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,SAAS,GACV,MAAM,QAAQ,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,QAAQ,EAAE,iBAAiB,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -40,4 +40,5 @@ export type { WebhookEventType, PaymentEventType, RefundEventType, OrderEventTyp
|
|
|
40
40
|
export { SIGNATURE_HEADER, verifySignature, parseWebhookEvent, parseAndVerifyWebhook, processWebhookEvent, createWebhookProcessor, getPaymentId, getOrderId, getCustomerId, } from './webhook.js';
|
|
41
41
|
export { createExpressWebhookHandler, rawBodyMiddleware, type SquareWebhookRequest, type ExpressWebhookOptions, } from './middleware/express.js';
|
|
42
42
|
export { createNextWebhookHandler, createNextPagesWebhookHandler, parseNextWebhook, type WebhookResponse, } from './middleware/nextjs.js';
|
|
43
|
+
export { createLambdaWebhookHandler, type LambdaProxyEvent, type LambdaProxyResult, type LambdaWebhookConfig, type LambdaWebhookHandler, type LambdaWebhookHandlers, type WebhookEventContext, } from './middleware/lambda.js';
|
|
43
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,gBAAgB,EAChB,KAAK,eAAe,GACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,wBAAwB,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -42,4 +42,6 @@ export { SIGNATURE_HEADER, verifySignature, parseWebhookEvent, parseAndVerifyWeb
|
|
|
42
42
|
export { createExpressWebhookHandler, rawBodyMiddleware, } from './middleware/express.js';
|
|
43
43
|
// Next.js handlers
|
|
44
44
|
export { createNextWebhookHandler, createNextPagesWebhookHandler, parseNextWebhook, } from './middleware/nextjs.js';
|
|
45
|
+
// Lambda handler
|
|
46
|
+
export { createLambdaWebhookHandler, } from './middleware/lambda.js';
|
|
45
47
|
//# sourceMappingURL=index.js.map
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAgCH,yBAAyB;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,qBAAqB;AACrB,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,GAGlB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAgCH,yBAAyB;AACzB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,qBAAqB;AACrB,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,GAGlB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAEhC,iBAAiB;AACjB,OAAO,EACL,0BAA0B,GAO3B,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { WebhookEvent } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Minimal API Gateway proxy event shape (avoids aws-lambda dependency)
|
|
4
|
+
*/
|
|
5
|
+
export interface LambdaProxyEvent {
|
|
6
|
+
httpMethod: string;
|
|
7
|
+
headers?: Record<string, string | undefined> | null;
|
|
8
|
+
body: string | null;
|
|
9
|
+
isBase64Encoded?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* API Gateway proxy result shape
|
|
13
|
+
*/
|
|
14
|
+
export interface LambdaProxyResult {
|
|
15
|
+
statusCode: number;
|
|
16
|
+
headers: Record<string, string>;
|
|
17
|
+
body: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Context passed to Lambda webhook handlers with auto-extracted entity IDs
|
|
21
|
+
*/
|
|
22
|
+
export interface WebhookEventContext {
|
|
23
|
+
paymentId?: string;
|
|
24
|
+
orderId?: string;
|
|
25
|
+
customerId?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Handler function for Lambda webhook events
|
|
29
|
+
*/
|
|
30
|
+
export type LambdaWebhookHandler<T = unknown> = (event: WebhookEvent<T>, context: WebhookEventContext) => void | Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Map of event types to their Lambda handlers
|
|
33
|
+
*/
|
|
34
|
+
export type LambdaWebhookHandlers = {
|
|
35
|
+
[K in import('../types.js').WebhookEventType]?: LambdaWebhookHandler;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Configuration for Lambda webhook handling
|
|
39
|
+
*/
|
|
40
|
+
export interface LambdaWebhookConfig {
|
|
41
|
+
/** Square webhook signature key */
|
|
42
|
+
signatureKey: string;
|
|
43
|
+
/** Event handlers by type */
|
|
44
|
+
handlers: LambdaWebhookHandlers;
|
|
45
|
+
/** URL where webhooks are received (for signature verification) */
|
|
46
|
+
notificationUrl?: string;
|
|
47
|
+
/** Custom CORS headers (merged with defaults) */
|
|
48
|
+
corsHeaders?: Record<string, string>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Create an AWS Lambda handler for Square webhooks
|
|
52
|
+
*
|
|
53
|
+
* Handles CORS preflight, signature verification, event parsing,
|
|
54
|
+
* routing to handlers, and entity ID extraction.
|
|
55
|
+
*
|
|
56
|
+
* @param config - Lambda webhook configuration
|
|
57
|
+
* @returns Lambda handler function
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* import { createLambdaWebhookHandler } from '@bates-solutions/squareup/server';
|
|
62
|
+
*
|
|
63
|
+
* export const handler = createLambdaWebhookHandler({
|
|
64
|
+
* signatureKey: process.env.SQUARE_WEBHOOK_SIGNATURE_KEY!,
|
|
65
|
+
* handlers: {
|
|
66
|
+
* 'payment.completed': async (event, context) => {
|
|
67
|
+
* await processPayment(event.data.id, context.orderId);
|
|
68
|
+
* },
|
|
69
|
+
* },
|
|
70
|
+
* });
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function createLambdaWebhookHandler(config: LambdaWebhookConfig): (proxyEvent: LambdaProxyEvent) => Promise<LambdaProxyResult>;
|
|
74
|
+
//# sourceMappingURL=lambda.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda.d.ts","sourceRoot":"","sources":["../../../src/server/middleware/lambda.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;IACpD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI,CAC9C,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,OAAO,EAAE,mBAAmB,KACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;KACjC,CAAC,IAAI,OAAO,aAAa,EAAE,gBAAgB,CAAC,CAAC,EAAE,oBAAoB;CACrE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAoBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,mBAAmB,IAGtD,YAAY,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAAC,CAqFxE"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { verifySignature, parseWebhookEvent, getPaymentId, getOrderId, getCustomerId, SIGNATURE_HEADER, } from '../webhook.js';
|
|
2
|
+
const DEFAULT_CORS_HEADERS = {
|
|
3
|
+
'Access-Control-Allow-Origin': '*',
|
|
4
|
+
'Access-Control-Allow-Methods': 'POST, OPTIONS',
|
|
5
|
+
'Access-Control-Allow-Headers': 'Content-Type, ' + SIGNATURE_HEADER,
|
|
6
|
+
};
|
|
7
|
+
function normalizeHeaders(headers) {
|
|
8
|
+
const normalized = {};
|
|
9
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
10
|
+
if (value !== undefined) {
|
|
11
|
+
normalized[key.toLowerCase()] = value;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return normalized;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create an AWS Lambda handler for Square webhooks
|
|
18
|
+
*
|
|
19
|
+
* Handles CORS preflight, signature verification, event parsing,
|
|
20
|
+
* routing to handlers, and entity ID extraction.
|
|
21
|
+
*
|
|
22
|
+
* @param config - Lambda webhook configuration
|
|
23
|
+
* @returns Lambda handler function
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* import { createLambdaWebhookHandler } from '@bates-solutions/squareup/server';
|
|
28
|
+
*
|
|
29
|
+
* export const handler = createLambdaWebhookHandler({
|
|
30
|
+
* signatureKey: process.env.SQUARE_WEBHOOK_SIGNATURE_KEY!,
|
|
31
|
+
* handlers: {
|
|
32
|
+
* 'payment.completed': async (event, context) => {
|
|
33
|
+
* await processPayment(event.data.id, context.orderId);
|
|
34
|
+
* },
|
|
35
|
+
* },
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function createLambdaWebhookHandler(config) {
|
|
40
|
+
const corsHeaders = { ...DEFAULT_CORS_HEADERS, ...config.corsHeaders };
|
|
41
|
+
return async (proxyEvent) => {
|
|
42
|
+
// Handle CORS preflight
|
|
43
|
+
if (proxyEvent.httpMethod === 'OPTIONS') {
|
|
44
|
+
return { statusCode: 204, headers: corsHeaders, body: '' };
|
|
45
|
+
}
|
|
46
|
+
const headers = normalizeHeaders(proxyEvent.headers ?? {});
|
|
47
|
+
const signature = headers[SIGNATURE_HEADER];
|
|
48
|
+
const rawBody = proxyEvent.isBase64Encoded && proxyEvent.body
|
|
49
|
+
? Buffer.from(proxyEvent.body, 'base64').toString('utf-8')
|
|
50
|
+
: proxyEvent.body;
|
|
51
|
+
if (!rawBody) {
|
|
52
|
+
return {
|
|
53
|
+
statusCode: 400,
|
|
54
|
+
headers: corsHeaders,
|
|
55
|
+
body: JSON.stringify({ error: 'Missing request body' }),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (!signature) {
|
|
59
|
+
return {
|
|
60
|
+
statusCode: 401,
|
|
61
|
+
headers: corsHeaders,
|
|
62
|
+
body: JSON.stringify({ error: 'Missing signature header' }),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const verification = verifySignature(rawBody, signature, config.signatureKey, config.notificationUrl);
|
|
66
|
+
if (!verification.valid) {
|
|
67
|
+
return {
|
|
68
|
+
statusCode: 401,
|
|
69
|
+
headers: corsHeaders,
|
|
70
|
+
body: JSON.stringify({ error: verification.error }),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
let event;
|
|
74
|
+
try {
|
|
75
|
+
event = parseWebhookEvent(rawBody);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
return {
|
|
79
|
+
statusCode: 400,
|
|
80
|
+
headers: corsHeaders,
|
|
81
|
+
body: JSON.stringify({
|
|
82
|
+
error: error instanceof Error ? error.message : 'Invalid webhook payload',
|
|
83
|
+
}),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const context = {
|
|
88
|
+
paymentId: getPaymentId(event),
|
|
89
|
+
orderId: getOrderId(event),
|
|
90
|
+
customerId: getCustomerId(event),
|
|
91
|
+
};
|
|
92
|
+
const handler = config.handlers[event.type];
|
|
93
|
+
if (handler) {
|
|
94
|
+
await handler(event, context);
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
statusCode: 200,
|
|
98
|
+
headers: corsHeaders,
|
|
99
|
+
body: JSON.stringify({ success: true, eventId: event.event_id, ...context }),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
// Return 200 on handler errors — Square retries on 5xx
|
|
104
|
+
return {
|
|
105
|
+
statusCode: 200,
|
|
106
|
+
headers: corsHeaders,
|
|
107
|
+
body: JSON.stringify({
|
|
108
|
+
success: false,
|
|
109
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
110
|
+
}),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=lambda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../src/server/middleware/lambda.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC;AA4DvB,MAAM,oBAAoB,GAA2B;IACnD,6BAA6B,EAAE,GAAG;IAClC,8BAA8B,EAAE,eAAe;IAC/C,8BAA8B,EAAE,gBAAgB,GAAG,gBAAgB;CACpE,CAAC;AAEF,SAAS,gBAAgB,CACvB,OAA2C;IAE3C,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAA2B;IACpE,MAAM,WAAW,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEvE,OAAO,KAAK,EAAE,UAA4B,EAA8B,EAAE;QACxE,wBAAwB;QACxB,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC7D,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,IAAI,UAAU,CAAC,IAAI;YAC3D,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1D,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAEpB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;aACxD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;aAC5D,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,eAAe,CAClC,OAAO,EACP,SAAS,EACT,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,eAAe,CACvB,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC;aACpD,CAAC;QACJ,CAAC;QAED,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB;iBAC1E,CAAC;aACH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAwB;gBACnC,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC;gBAC9B,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC;gBAC1B,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC;aACjC,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAChC,CAAC;YAED,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;aAC7E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uDAAuD;YACvD,OAAO;gBACL,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAChE,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|