@bates-solutions/squareup 1.8.0 → 1.9.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/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/middleware/lambda.d.ts +11 -0
- package/dist/server/middleware/lambda.d.ts.map +1 -1
- package/dist/server/middleware/lambda.js +21 -0
- package/dist/server/middleware/lambda.js.map +1 -1
- package/package.json +1 -1
package/dist/server/index.d.ts
CHANGED
|
@@ -40,5 +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
|
+
export { createLambdaWebhookHandler, type LambdaProxyEvent, type LambdaProxyResult, type LambdaWebhookConfig, type LambdaWebhookHandler, type LambdaWebhookHandlers, type WebhookEventContext, type WebhookLogger, } from './middleware/lambda.js';
|
|
44
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;AAGhC,OAAO,EACL,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,
|
|
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,EACxB,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC"}
|
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;AAEhC,iBAAiB;AACjB,OAAO,EACL,0BAA0B,
|
|
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,GAQ3B,MAAM,wBAAwB,CAAC"}
|
|
@@ -34,6 +34,13 @@ export type LambdaWebhookHandler<T = unknown> = (event: WebhookEvent<T>, context
|
|
|
34
34
|
export type LambdaWebhookHandlers = {
|
|
35
35
|
[K in import('../types.js').WebhookEventType]?: LambdaWebhookHandler;
|
|
36
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Logger interface for Lambda webhook handler
|
|
39
|
+
*/
|
|
40
|
+
export interface WebhookLogger {
|
|
41
|
+
info: (message: string, data?: Record<string, unknown>) => void;
|
|
42
|
+
error: (message: string, data?: Record<string, unknown>) => void;
|
|
43
|
+
}
|
|
37
44
|
/**
|
|
38
45
|
* Configuration for Lambda webhook handling
|
|
39
46
|
*/
|
|
@@ -46,6 +53,10 @@ export interface LambdaWebhookConfig {
|
|
|
46
53
|
notificationUrl?: string;
|
|
47
54
|
/** Custom CORS headers (merged with defaults) */
|
|
48
55
|
corsHeaders?: Record<string, string>;
|
|
56
|
+
/** Logger instance (defaults to console) */
|
|
57
|
+
logger?: WebhookLogger | false;
|
|
58
|
+
/** Callback for events with no registered handler */
|
|
59
|
+
onUnhandledEvent?: (event: WebhookEvent, context: WebhookEventContext) => void | Promise<void>;
|
|
49
60
|
}
|
|
50
61
|
/**
|
|
51
62
|
* Create an AWS Lambda handler for Square webhooks
|
|
@@ -1 +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;
|
|
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,aAAa;IAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAChE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAClE;AAOD;;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;IACrC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC;IAC/B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChG;AAoBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,mBAAmB,IAItD,YAAY,gBAAgB,KAAG,OAAO,CAAC,iBAAiB,CAAC,CAsGxE"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { verifySignature, parseWebhookEvent, getPaymentId, getOrderId, getCustomerId, SIGNATURE_HEADER, } from '../webhook.js';
|
|
2
|
+
const defaultLogger = {
|
|
3
|
+
info: (message, data) => { console.info(message, data); },
|
|
4
|
+
error: (message, data) => { console.error(message, data); },
|
|
5
|
+
};
|
|
2
6
|
const DEFAULT_CORS_HEADERS = {
|
|
3
7
|
'Access-Control-Allow-Origin': '*',
|
|
4
8
|
'Access-Control-Allow-Methods': 'POST, OPTIONS',
|
|
@@ -38,6 +42,7 @@ function normalizeHeaders(headers) {
|
|
|
38
42
|
*/
|
|
39
43
|
export function createLambdaWebhookHandler(config) {
|
|
40
44
|
const corsHeaders = { ...DEFAULT_CORS_HEADERS, ...config.corsHeaders };
|
|
45
|
+
const logger = config.logger === false ? undefined : (config.logger ?? defaultLogger);
|
|
41
46
|
return async (proxyEvent) => {
|
|
42
47
|
// Handle CORS preflight
|
|
43
48
|
if (proxyEvent.httpMethod === 'OPTIONS') {
|
|
@@ -89,10 +94,21 @@ export function createLambdaWebhookHandler(config) {
|
|
|
89
94
|
orderId: getOrderId(event),
|
|
90
95
|
customerId: getCustomerId(event),
|
|
91
96
|
};
|
|
97
|
+
logger?.info('Webhook event received', {
|
|
98
|
+
type: event.type,
|
|
99
|
+
eventId: event.event_id,
|
|
100
|
+
...context,
|
|
101
|
+
});
|
|
92
102
|
const handler = config.handlers[event.type];
|
|
93
103
|
if (handler) {
|
|
94
104
|
await handler(event, context);
|
|
95
105
|
}
|
|
106
|
+
else {
|
|
107
|
+
logger?.info('No handler registered for event type', { type: event.type });
|
|
108
|
+
if (config.onUnhandledEvent) {
|
|
109
|
+
await config.onUnhandledEvent(event, context);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
96
112
|
return {
|
|
97
113
|
statusCode: 200,
|
|
98
114
|
headers: corsHeaders,
|
|
@@ -100,6 +116,11 @@ export function createLambdaWebhookHandler(config) {
|
|
|
100
116
|
};
|
|
101
117
|
}
|
|
102
118
|
catch (error) {
|
|
119
|
+
logger?.error('Webhook handler error', {
|
|
120
|
+
type: event.type,
|
|
121
|
+
eventId: event.event_id,
|
|
122
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
123
|
+
});
|
|
103
124
|
// Return 200 on handler errors — Square retries on 5xx
|
|
104
125
|
return {
|
|
105
126
|
statusCode: 200,
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../src/server/middleware/lambda.ts"],"names":[],"mappings":"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"}
|