qstd 0.3.18 → 0.3.19

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.
@@ -13,5 +13,54 @@ export declare const createRestHandler: (fn: (event: import("aws-lambda").APIGat
13
13
  * @returns
14
14
  */
15
15
  export declare const createWebsocketHandler: (fn: (event: import("aws-lambda").APIGatewayProxyEvent) => Promise<_t.ApigwResult> | _t.ApigwResult) => (event: import("aws-lambda").APIGatewayProxyEvent) => Promise<_t.Response | _t.ApigwResult>;
16
- export declare const createSqsHandler: (fn: _t.SQSHandler) => (event: _t.SqsEvent, context: _t.SqsContext, callback: _t.SqsCallback) => void | Promise<void | import("aws-lambda").SQSBatchResponse>;
16
+ /**
17
+ * Creates a batch failures tracker for SQS handlers.
18
+ * Provides a simple `add(id)` method instead of pushing objects.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const failures = Lambda.withBatchFailures();
23
+ *
24
+ * for (const record of event.Records) {
25
+ * try {
26
+ * // process record
27
+ * } catch (err) {
28
+ * failures.add(record.messageId);
29
+ * }
30
+ * }
31
+ *
32
+ * return { batchItemFailures: failures.items };
33
+ * ```
34
+ */
35
+ export declare const withBatchFailures: () => {
36
+ /** Add a failed message by its ID */
37
+ add: (itemIdentifier: string) => void;
38
+ /** The failures array for the response */
39
+ items: import("aws-lambda").SQSBatchItemFailure[];
40
+ };
41
+ /**
42
+ * Creates a type-safe SQS handler that enforces returning `{ batchItemFailures }`.
43
+ *
44
+ * Provides:
45
+ * - **Compile-time safety**: TypeScript enforces the return type
46
+ * - **Runtime safety**: Validates response shape before returning
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * export const handler = Lambda.createSqsHandler(async (event) => {
51
+ * const failures = Lambda.withBatchFailures();
52
+ *
53
+ * for (const record of event.Records) {
54
+ * try {
55
+ * // process record
56
+ * } catch (err) {
57
+ * failures.add(record.messageId);
58
+ * }
59
+ * }
60
+ *
61
+ * return { batchItemFailures: failures.items };
62
+ * });
63
+ * ```
64
+ */
65
+ export declare const createSqsHandler: (fn: _t.SqsHandlerFn) => _t.SqsHandlerFn;
17
66
  //# sourceMappingURL=domain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/lambda/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,6GAeujD,kDAAQ,0CAfphD,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2GAQkjD,gDAAQ,0CAP/iD,CAAC;AAE/C,eAAO,MAAM,gBAAgB,GAC1B,IAAI,EAAE,CAAC,UAAU,MACjB,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,WAAW,iEAEpE,CAAC"}
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/lambda/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,6GA+E5B,kDACA,0CAhFuE,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2GAwEjC,gDACA,0CAxE4C,CAAC;AAE/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB;IAG1B,qCAAqC;0BACf,MAAM;IAG5B,0CAA0C;;CAG7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,gBAAgB,GAC1B,IAAI,EAAE,CAAC,YAAY,KAAG,EAAE,CAAC,YAazB,CAAC"}
@@ -1,4 +1,13 @@
1
- import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResultV2, SQSHandler as AwsSqsHandler, SQSBatchResponse, Callback, Context, SQSEvent } from "aws-lambda";
1
+ import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResultV2, SQSHandler as AwsSqsHandler, SQSBatchItemFailure, SQSBatchResponse, Callback, Context, SQSEvent } from "aws-lambda";
2
+ /** SQS batch response - return this from SQS handlers */
3
+ export type SqsBatchResponse = SQSBatchResponse;
4
+ /** Individual failure item - add to batchItemFailures array */
5
+ export type SqsBatchItemFailure = SQSBatchItemFailure;
6
+ /**
7
+ * Type-safe SQS handler that enforces returning { batchItemFailures }.
8
+ * Use with Lambda.createSqsHandler for compile + runtime safety.
9
+ */
10
+ export type SqsHandlerFn = (event: SQSEvent) => Promise<SQSBatchResponse>;
2
11
  export type Response = {
3
12
  statusCode: number;
4
13
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/lambda/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,IAAI,aAAa,EAC3B,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,6BAA6B,EAAE,MAAM,CAAC;QACtC,8BAA8B,EAAE,MAAM,CAAC;QACvC,8BAA8B,EAAE,MAAM,CAAC;QACvC,kCAAkC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtD,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAChC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACzE,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAE9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE/B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;SAGK;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uGAAuG;IACvG,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/aws/lambda/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,UAAU,IAAI,aAAa,EAC3B,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB,yDAAyD;AACzD,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE1E,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,6BAA6B,EAAE,MAAM,CAAC;QACtC,8BAA8B,EAAE,MAAM,CAAC;QACvC,8BAA8B,EAAE,MAAM,CAAC;QACvC,kCAAkC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtD,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAChD,MAAM,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAElD,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;AAChC,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAE5D,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACzE,iBAAiB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAE9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE/B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;SAGK;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uGAAuG;IACvG,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC"}
@@ -659,7 +659,8 @@ __export(lambda_exports, {
659
659
  createRestHandler: () => createRestHandler,
660
660
  createSqsHandler: () => createSqsHandler,
661
661
  createWebsocketHandler: () => createWebsocketHandler,
662
- response: () => response
662
+ response: () => response,
663
+ withBatchFailures: () => withBatchFailures
663
664
  });
664
665
 
665
666
  // src/server/aws/lambda/literals.ts
@@ -728,8 +729,25 @@ var createHandlerFactory = () => (fn) => async (event) => {
728
729
  // src/server/aws/lambda/domain.ts
729
730
  var createRestHandler = createHandlerFactory();
730
731
  var createWebsocketHandler = createHandlerFactory();
731
- var createSqsHandler = (fn) => (event, context, callback) => {
732
- return fn(event, context, callback);
732
+ var withBatchFailures = () => {
733
+ const items = [];
734
+ return {
735
+ /** Add a failed message by its ID */
736
+ add: (itemIdentifier) => {
737
+ items.push({ itemIdentifier });
738
+ },
739
+ /** The failures array for the response */
740
+ items
741
+ };
742
+ };
743
+ var createSqsHandler = (fn) => async (event) => {
744
+ const result = await fn(event);
745
+ if (!result || !Array.isArray(result.batchItemFailures)) {
746
+ throw new Error(
747
+ "SQS handler must return { batchItemFailures: [] }. Return an empty array for success, or include failed messageIds for partial failures."
748
+ );
749
+ }
750
+ return result;
733
751
  };
734
752
 
735
753
  // src/server/aws/ddb/index.ts
@@ -657,7 +657,8 @@ __export(lambda_exports, {
657
657
  createRestHandler: () => createRestHandler,
658
658
  createSqsHandler: () => createSqsHandler,
659
659
  createWebsocketHandler: () => createWebsocketHandler,
660
- response: () => response
660
+ response: () => response,
661
+ withBatchFailures: () => withBatchFailures
661
662
  });
662
663
 
663
664
  // src/server/aws/lambda/literals.ts
@@ -726,8 +727,25 @@ var createHandlerFactory = () => (fn) => async (event) => {
726
727
  // src/server/aws/lambda/domain.ts
727
728
  var createRestHandler = createHandlerFactory();
728
729
  var createWebsocketHandler = createHandlerFactory();
729
- var createSqsHandler = (fn) => (event, context, callback) => {
730
- return fn(event, context, callback);
730
+ var withBatchFailures = () => {
731
+ const items = [];
732
+ return {
733
+ /** Add a failed message by its ID */
734
+ add: (itemIdentifier) => {
735
+ items.push({ itemIdentifier });
736
+ },
737
+ /** The failures array for the response */
738
+ items
739
+ };
740
+ };
741
+ var createSqsHandler = (fn) => async (event) => {
742
+ const result = await fn(event);
743
+ if (!result || !Array.isArray(result.batchItemFailures)) {
744
+ throw new Error(
745
+ "SQS handler must return { batchItemFailures: [] }. Return an empty array for success, or include failed messageIds for partial failures."
746
+ );
747
+ }
748
+ return result;
731
749
  };
732
750
 
733
751
  // src/server/aws/ddb/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qstd",
3
- "version": "0.3.18",
3
+ "version": "0.3.19",
4
4
  "description": "Standard Block component and utilities library with Panda CSS",
5
5
  "author": "malin1",
6
6
  "license": "MIT",