sst-http 1.3.0 → 1.3.3-beta.2

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.
@@ -0,0 +1,51 @@
1
+ import { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyResultV2 } from 'aws-lambda';
2
+ import { R as ResponseLike, F as FirebaseAuthOptions, e as RouteOptions } from '../types-w1A7o_rd.js';
3
+ export { c as FirebaseAuthMetadata, d as FirebaseClaims, H as Handler, a as HandlerContext, b as HttpMethod } from '../types-w1A7o_rd.js';
4
+ import { ZodTypeAny } from 'zod/v4';
5
+ import { L as LegacyDecorator, a as LegacyParameterDecorator } from '../handler-DaM4Racx.js';
6
+
7
+ declare class HttpError extends Error {
8
+ readonly statusCode: number;
9
+ readonly headers?: Record<string, string>;
10
+ readonly details?: unknown;
11
+ constructor(statusCode: number, message: string, options?: {
12
+ cause?: unknown;
13
+ headers?: Record<string, string>;
14
+ details?: unknown;
15
+ });
16
+ }
17
+ declare function json(status: number, data: unknown, headers?: Record<string, string>): ResponseLike;
18
+ declare function text(status: number, body: string, headers?: Record<string, string>): ResponseLike;
19
+ declare function noContent(headers?: Record<string, string>): ResponseLike;
20
+ type EventBridgeEvent = {
21
+ "detail-type"?: string;
22
+ detailType?: string;
23
+ detail?: unknown;
24
+ eventBusName?: string;
25
+ };
26
+ type HttpLambdaEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
27
+ type LambdaEvent = HttpLambdaEvent | EventBridgeEvent;
28
+ type LambdaResult = APIGatewayProxyResult | APIGatewayProxyResultV2;
29
+ declare function createHandler(): (event: LambdaEvent, lambdaContext: unknown) => Promise<LambdaResult>;
30
+ declare function handleError(error: unknown, preferV2: boolean): LambdaResult;
31
+
32
+ declare const Get: (path?: string) => LegacyDecorator;
33
+ declare const Post: (path?: string) => LegacyDecorator;
34
+ declare const Put: (path?: string) => LegacyDecorator;
35
+ declare const Patch: (path?: string) => LegacyDecorator;
36
+ declare const Delete: (path?: string) => LegacyDecorator;
37
+ declare const Head: (path?: string) => LegacyDecorator;
38
+ declare const Options: (path?: string) => LegacyDecorator;
39
+ declare function FirebaseAuth(options?: FirebaseAuthOptions): LegacyDecorator;
40
+ declare function Auth(): LegacyParameterDecorator;
41
+ declare function Body(schema?: ZodTypeAny): LegacyParameterDecorator;
42
+ declare function Query(name?: string): LegacyParameterDecorator;
43
+ declare function Param(name?: string): LegacyParameterDecorator;
44
+ declare function Headers(): LegacyParameterDecorator;
45
+ declare function Header(name: string): LegacyParameterDecorator;
46
+ declare function Req(): LegacyParameterDecorator;
47
+ declare function Res(): LegacyParameterDecorator;
48
+
49
+ declare function configureRoutes(next?: RouteOptions): void;
50
+
51
+ export { Auth, Body, Delete, FirebaseAuth, FirebaseAuthOptions, Get, Head, Header, Headers, HttpError, Options, Param, Patch, Post, Put, Query, Req, Res, ResponseLike, RouteOptions, configureRoutes, createHandler, handleError, json, noContent, text };
@@ -0,0 +1,53 @@
1
+ import {
2
+ Auth,
3
+ Body,
4
+ Delete,
5
+ FirebaseAuth,
6
+ Get,
7
+ Head,
8
+ Header,
9
+ Headers,
10
+ HttpError,
11
+ Options,
12
+ Param,
13
+ Patch,
14
+ Post,
15
+ Put,
16
+ Query,
17
+ Req,
18
+ Res,
19
+ createHandler,
20
+ handleError,
21
+ json,
22
+ noContent,
23
+ text
24
+ } from "../chunk-SENBWWVV.js";
25
+ import "../chunk-5OUNKYO5.js";
26
+ import {
27
+ configureRoutes
28
+ } from "../chunk-YMGEGOSD.js";
29
+ export {
30
+ Auth,
31
+ Body,
32
+ Delete,
33
+ FirebaseAuth,
34
+ Get,
35
+ Head,
36
+ Header,
37
+ Headers,
38
+ HttpError,
39
+ Options,
40
+ Param,
41
+ Patch,
42
+ Post,
43
+ Put,
44
+ Query,
45
+ Req,
46
+ Res,
47
+ configureRoutes,
48
+ createHandler,
49
+ handleError,
50
+ json,
51
+ noContent,
52
+ text
53
+ };
package/dist/index.cjs CHANGED
@@ -29,6 +29,7 @@ __export(index_exports, {
29
29
  Header: () => Header,
30
30
  Headers: () => Headers,
31
31
  HttpError: () => HttpError,
32
+ On: () => On,
32
33
  Options: () => Options,
33
34
  Param: () => Param,
34
35
  Patch: () => Patch,
@@ -42,13 +43,15 @@ __export(index_exports, {
42
43
  handleError: () => handleError,
43
44
  json: () => json,
44
45
  noContent: () => noContent,
46
+ publish: () => publish,
45
47
  text: () => text
46
48
  });
47
49
  module.exports = __toCommonJS(index_exports);
48
50
 
49
- // src/registry.ts
51
+ // src/core/registry.ts
50
52
  var routeMeta = /* @__PURE__ */ new Map();
51
53
  var parameterMeta = /* @__PURE__ */ new Map();
54
+ var eventMeta = /* @__PURE__ */ new Map();
52
55
  var options = {
53
56
  inferPathFromName: false
54
57
  };
@@ -91,6 +94,12 @@ function registerParameter(target, meta) {
91
94
  list.sort((a, b) => a.index - b.index);
92
95
  parameterMeta.set(handler, list);
93
96
  }
97
+ function registerEvent(target, event) {
98
+ const handler = target;
99
+ const list = eventMeta.get(handler) ?? [];
100
+ list.push({ event });
101
+ eventMeta.set(handler, list);
102
+ }
94
103
  function getRegisteredRoutes() {
95
104
  const routes = [];
96
105
  for (const [handler, meta] of routeMeta.entries()) {
@@ -108,6 +117,18 @@ function getRegisteredRoutes() {
108
117
  }
109
118
  return routes;
110
119
  }
120
+ function getRegisteredEvents() {
121
+ const events = [];
122
+ for (const [handler, list] of eventMeta.entries()) {
123
+ for (const entry of list) {
124
+ events.push({
125
+ handler,
126
+ event: entry.event
127
+ });
128
+ }
129
+ }
130
+ return events;
131
+ }
111
132
  function inferPath(handler) {
112
133
  if (!options.inferPathFromName) {
113
134
  return void 0;
@@ -120,15 +141,15 @@ function inferPath(handler) {
120
141
  return slug ? `/${slug}` : void 0;
121
142
  }
122
143
 
123
- // src/router.ts
144
+ // src/http/router.ts
124
145
  var import_path_to_regexp = require("path-to-regexp");
125
146
 
126
- // src/paths.ts
147
+ // src/http/paths.ts
127
148
  function normalizeRouterPath(path) {
128
149
  return path.replace(/\{([^/{}]+)\}/g, ":$1");
129
150
  }
130
151
 
131
- // src/router.ts
152
+ // src/http/router.ts
132
153
  var Router = class {
133
154
  routes;
134
155
  constructor(entries) {
@@ -170,7 +191,7 @@ function normalizeParams(params) {
170
191
  return normalized;
171
192
  }
172
193
 
173
- // src/runtime.ts
194
+ // src/http/runtime.ts
174
195
  var HTTP_ERROR_MARKER = Symbol.for("sst-http.HttpError");
175
196
  var HttpError = class extends Error {
176
197
  statusCode;
@@ -218,10 +239,19 @@ function noContent(headers = {}) {
218
239
  function createHandler() {
219
240
  const routes = getRegisteredRoutes();
220
241
  const router = new Router(routes);
242
+ const eventHandlers = getRegisteredEvents();
221
243
  return async (event, lambdaContext) => {
222
- const method = extractMethod(event);
223
- const path = extractPath(event);
224
- const preferV2 = isHttpApiEvent(event);
244
+ if (isEventBridgeEvent(event)) {
245
+ await handleEventBridgeEvent(event, eventHandlers, lambdaContext);
246
+ return {
247
+ statusCode: 200,
248
+ body: ""
249
+ };
250
+ }
251
+ const httpEvent = event;
252
+ const method = extractMethod(httpEvent);
253
+ const path = extractPath(httpEvent);
254
+ const preferV2 = isHttpApiEvent(httpEvent);
225
255
  if (!method || !path) {
226
256
  return formatResponse(text(400, "Invalid request"), preferV2);
227
257
  }
@@ -243,14 +273,14 @@ function createHandler() {
243
273
  }, preferV2);
244
274
  }
245
275
  const { entry, params } = match2;
246
- const headers = normalizeHeaders(event.headers ?? {});
247
- const query = extractQuery(event);
276
+ const headers = normalizeHeaders(httpEvent.headers ?? {});
277
+ const query = extractQuery(httpEvent);
248
278
  let bodyValue = void 0;
249
279
  let bodyParsed = false;
250
280
  const requiresJson = entry.parameters.some((p) => p.type === "body");
251
281
  const ensureBody = () => {
252
282
  if (!bodyParsed) {
253
- bodyValue = parseBody(event, headers, requiresJson);
283
+ bodyValue = parseBody(httpEvent, headers, requiresJson);
254
284
  bodyParsed = true;
255
285
  }
256
286
  return bodyValue;
@@ -261,13 +291,13 @@ function createHandler() {
261
291
  noContent
262
292
  };
263
293
  const ctx = {
264
- event,
294
+ event: httpEvent,
265
295
  lambdaContext,
266
296
  params,
267
297
  query,
268
298
  body: void 0,
269
299
  headers,
270
- auth: extractAuthClaims(event, entry),
300
+ auth: extractAuthClaims(httpEvent, entry),
271
301
  response: ctxResponse
272
302
  };
273
303
  const getBody = (schema) => {
@@ -276,6 +306,7 @@ function createHandler() {
276
306
  try {
277
307
  bodyValue = schema.parse(current);
278
308
  } catch (error) {
309
+ console.error("[ERROR] Body validation failed", error);
279
310
  throw new HttpError(400, "Body validation failed", { cause: error });
280
311
  }
281
312
  }
@@ -295,6 +326,31 @@ function createHandler() {
295
326
  }
296
327
  };
297
328
  }
329
+ function isEventBridgeEvent(event) {
330
+ if (!event || typeof event !== "object") {
331
+ return false;
332
+ }
333
+ const e = event;
334
+ return typeof e["detail-type"] === "string" || typeof e.detailType === "string";
335
+ }
336
+ async function handleEventBridgeEvent(event, handlers, lambdaContext) {
337
+ const eventType = event["detail-type"] ?? event.detailType;
338
+ if (!eventType) {
339
+ return;
340
+ }
341
+ const matches = handlers.filter((entry) => {
342
+ if (entry.event !== eventType) {
343
+ return false;
344
+ }
345
+ return true;
346
+ });
347
+ if (matches.length === 0) {
348
+ return;
349
+ }
350
+ await Promise.all(
351
+ matches.map((entry) => Promise.resolve(entry.handler(event.detail, event, lambdaContext)))
352
+ );
353
+ }
298
354
  function buildHandlerArguments(entry, ctx, getBody) {
299
355
  const maxIndex = entry.parameters.reduce((max, meta) => Math.max(max, meta.index), -1);
300
356
  const length = Math.max(entry.handler.length, maxIndex + 1, 1);
@@ -499,7 +555,7 @@ function isSupportedMethod(value) {
499
555
  return SUPPORTED_METHODS.has(value);
500
556
  }
501
557
 
502
- // src/decorators.ts
558
+ // src/core/handler.ts
503
559
  function resolveHandler(target, propertyKey, descriptor) {
504
560
  if (descriptor?.value && typeof descriptor.value === "function") {
505
561
  return descriptor.value;
@@ -512,6 +568,8 @@ function resolveHandler(target, propertyKey, descriptor) {
512
568
  }
513
569
  throw new Error("Unable to determine decorated function. Ensure decorators are applied to functions.");
514
570
  }
571
+
572
+ // src/http/decorators.ts
515
573
  function createRouteDecorator(method) {
516
574
  return (path) => (target, propertyKey, descriptor) => {
517
575
  const handler = resolveHandler(target, propertyKey, descriptor);
@@ -566,6 +624,137 @@ function Req() {
566
624
  function Res() {
567
625
  return createParameterDecorator("res");
568
626
  }
627
+
628
+ // src/bus/decorators.ts
629
+ function On(event) {
630
+ return (target, propertyKey, descriptor) => {
631
+ if (!event) {
632
+ throw new Error("@On() requires an event name.");
633
+ }
634
+ const handler = resolveHandler(target, propertyKey, descriptor);
635
+ registerEvent(handler, event);
636
+ };
637
+ }
638
+
639
+ // src/bus/event-bus.ts
640
+ var import_node_crypto = require("crypto");
641
+ var AWS_TARGET = "AWSEvents.PutEvents";
642
+ var AWS_SERVICE = "events";
643
+ var DEFAULT_SOURCE = "sst-http";
644
+ async function publish(event, message) {
645
+ if (!event) {
646
+ throw new Error("publish() requires an event name.");
647
+ }
648
+ const payload = {
649
+ Entries: [
650
+ {
651
+ EventBusName: "default",
652
+ Source: DEFAULT_SOURCE,
653
+ DetailType: event,
654
+ Detail: JSON.stringify(message ?? null)
655
+ }
656
+ ]
657
+ };
658
+ console.log(payload);
659
+ await putEventsViaFetch(payload);
660
+ }
661
+ async function putEventsViaFetch(payload) {
662
+ const region = resolveRegion();
663
+ const creds = resolveCredentials();
664
+ const host = `events.${region}.amazonaws.com`;
665
+ const url = `https://${host}/`;
666
+ const body = JSON.stringify(payload);
667
+ const amzDate = toAmzDate(/* @__PURE__ */ new Date());
668
+ const dateStamp = amzDate.slice(0, 8);
669
+ const headers = {
670
+ "content-type": "application/x-amz-json-1.1",
671
+ "x-amz-date": amzDate,
672
+ "x-amz-target": AWS_TARGET,
673
+ host
674
+ };
675
+ if (creds.sessionToken) {
676
+ headers["x-amz-security-token"] = creds.sessionToken;
677
+ }
678
+ const signedHeaders = getSignedHeaders(headers);
679
+ const canonicalRequest = [
680
+ "POST",
681
+ "/",
682
+ "",
683
+ canonicalizeHeaders(headers),
684
+ signedHeaders,
685
+ sha256(body)
686
+ ].join("\n");
687
+ const scope = `${dateStamp}/${region}/${AWS_SERVICE}/aws4_request`;
688
+ const stringToSign = [
689
+ "AWS4-HMAC-SHA256",
690
+ amzDate,
691
+ scope,
692
+ sha256(canonicalRequest)
693
+ ].join("\n");
694
+ const signingKey = getSigningKey(creds.secretAccessKey, dateStamp, region, AWS_SERVICE);
695
+ const signature = hmac(signingKey, stringToSign);
696
+ const authorization = `AWS4-HMAC-SHA256 Credential=${creds.accessKeyId}/${scope}, SignedHeaders=${signedHeaders}, Signature=${signature}`;
697
+ const response = await fetch(url, {
698
+ method: "POST",
699
+ headers: {
700
+ ...headers,
701
+ Authorization: authorization
702
+ },
703
+ body
704
+ });
705
+ if (!response.ok) {
706
+ const text2 = await response.text();
707
+ throw new Error(`EventBridge PutEvents failed: ${response.status} ${text2}`);
708
+ }
709
+ }
710
+ function resolveRegion() {
711
+ const region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION;
712
+ if (!region) {
713
+ throw new Error("AWS region is not set");
714
+ }
715
+ return region;
716
+ }
717
+ function resolveCredentials() {
718
+ const accessKeyId = process.env.AWS_ACCESS_KEY_ID;
719
+ const secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY;
720
+ const sessionToken = process.env.AWS_SESSION_TOKEN;
721
+ if (!accessKeyId || !secretAccessKey) {
722
+ throw new Error("AWS credentials are not set");
723
+ }
724
+ return { accessKeyId, secretAccessKey, sessionToken };
725
+ }
726
+ function toAmzDate(date) {
727
+ const pad = (value) => value.toString().padStart(2, "0");
728
+ return [
729
+ date.getUTCFullYear(),
730
+ pad(date.getUTCMonth() + 1),
731
+ pad(date.getUTCDate()),
732
+ "T",
733
+ pad(date.getUTCHours()),
734
+ pad(date.getUTCMinutes()),
735
+ pad(date.getUTCSeconds()),
736
+ "Z"
737
+ ].join("");
738
+ }
739
+ function sha256(value) {
740
+ return (0, import_node_crypto.createHash)("sha256").update(value, "utf8").digest("hex");
741
+ }
742
+ function hmac(key, value) {
743
+ return (0, import_node_crypto.createHmac)("sha256", key).update(value, "utf8").digest("hex");
744
+ }
745
+ function getSigningKey(secret, date, region, service) {
746
+ const kDate = (0, import_node_crypto.createHmac)("sha256", `AWS4${secret}`).update(date, "utf8").digest();
747
+ const kRegion = (0, import_node_crypto.createHmac)("sha256", kDate).update(region, "utf8").digest();
748
+ const kService = (0, import_node_crypto.createHmac)("sha256", kRegion).update(service, "utf8").digest();
749
+ return (0, import_node_crypto.createHmac)("sha256", kService).update("aws4_request", "utf8").digest();
750
+ }
751
+ function canonicalizeHeaders(headers) {
752
+ return Object.keys(headers).map((key) => key.toLowerCase()).sort().map((key) => `${key}:${headers[key].trim()}
753
+ `).join("");
754
+ }
755
+ function getSignedHeaders(headers) {
756
+ return Object.keys(headers).map((key) => key.toLowerCase()).sort().join(";");
757
+ }
569
758
  // Annotate the CommonJS export names for ESM import in node:
570
759
  0 && (module.exports = {
571
760
  Auth,
@@ -577,6 +766,7 @@ function Res() {
577
766
  Header,
578
767
  Headers,
579
768
  HttpError,
769
+ On,
580
770
  Options,
581
771
  Param,
582
772
  Patch,
@@ -590,5 +780,6 @@ function Res() {
590
780
  handleError,
591
781
  json,
592
782
  noContent,
783
+ publish,
593
784
  text
594
785
  });
package/dist/index.d.cts CHANGED
@@ -1,45 +1,6 @@
1
- import { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyResultV2 } from 'aws-lambda';
2
- import { c as ResponseLike, F as FirebaseAuthOptions, d as RouteOptions } from './types-BF3w-wTx.cjs';
3
- export { g as FirebaseAuthMetadata, h as FirebaseClaims, e as Handler, f as HandlerContext, H as HttpMethod } from './types-BF3w-wTx.cjs';
4
- import { ZodTypeAny } from 'zod/v4';
5
-
6
- declare class HttpError extends Error {
7
- readonly statusCode: number;
8
- readonly headers?: Record<string, string>;
9
- readonly details?: unknown;
10
- constructor(statusCode: number, message: string, options?: {
11
- cause?: unknown;
12
- headers?: Record<string, string>;
13
- details?: unknown;
14
- });
15
- }
16
- declare function json(status: number, data: unknown, headers?: Record<string, string>): ResponseLike;
17
- declare function text(status: number, body: string, headers?: Record<string, string>): ResponseLike;
18
- declare function noContent(headers?: Record<string, string>): ResponseLike;
19
- type LambdaEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
20
- type LambdaResult = APIGatewayProxyResult | APIGatewayProxyResultV2;
21
- declare function createHandler(): (event: LambdaEvent, lambdaContext: unknown) => Promise<LambdaResult>;
22
- declare function handleError(error: unknown, preferV2: boolean): LambdaResult;
23
-
24
- type LegacyDecorator = (target: unknown, propertyKey?: string | symbol, descriptor?: PropertyDescriptor) => void;
25
- type LegacyParameterDecorator = (target: unknown, propertyKey: string | symbol | undefined, parameterIndex: number) => void;
26
- declare const Get: (path?: string) => LegacyDecorator;
27
- declare const Post: (path?: string) => LegacyDecorator;
28
- declare const Put: (path?: string) => LegacyDecorator;
29
- declare const Patch: (path?: string) => LegacyDecorator;
30
- declare const Delete: (path?: string) => LegacyDecorator;
31
- declare const Head: (path?: string) => LegacyDecorator;
32
- declare const Options: (path?: string) => LegacyDecorator;
33
- declare function FirebaseAuth(options?: FirebaseAuthOptions): LegacyDecorator;
34
- declare function Auth(): LegacyParameterDecorator;
35
- declare function Body(schema?: ZodTypeAny): LegacyParameterDecorator;
36
- declare function Query(name?: string): LegacyParameterDecorator;
37
- declare function Param(name?: string): LegacyParameterDecorator;
38
- declare function Headers(): LegacyParameterDecorator;
39
- declare function Header(name: string): LegacyParameterDecorator;
40
- declare function Req(): LegacyParameterDecorator;
41
- declare function Res(): LegacyParameterDecorator;
42
-
43
- declare function configureRoutes(next?: RouteOptions): void;
44
-
45
- export { Auth, Body, Delete, FirebaseAuth, FirebaseAuthOptions, Get, Head, Header, Headers, HttpError, Options, Param, Patch, Post, Put, Query, Req, Res, ResponseLike, RouteOptions, configureRoutes, createHandler, handleError, json, noContent, text };
1
+ export { Auth, Body, Delete, FirebaseAuth, Get, Head, Header, Headers, HttpError, Options, Param, Patch, Post, Put, Query, Req, Res, configureRoutes, createHandler, handleError, json, noContent, text } from './http/index.cjs';
2
+ export { c as FirebaseAuthMetadata, F as FirebaseAuthOptions, d as FirebaseClaims, H as Handler, a as HandlerContext, b as HttpMethod, R as ResponseLike, e as RouteOptions } from './types-w1A7o_rd.cjs';
3
+ export { On, publish } from './bus/index.cjs';
4
+ import 'aws-lambda';
5
+ import 'zod/v4';
6
+ import './handler-DaM4Racx.cjs';
package/dist/index.d.ts CHANGED
@@ -1,45 +1,6 @@
1
- import { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyResultV2 } from 'aws-lambda';
2
- import { c as ResponseLike, F as FirebaseAuthOptions, d as RouteOptions } from './types-BF3w-wTx.js';
3
- export { g as FirebaseAuthMetadata, h as FirebaseClaims, e as Handler, f as HandlerContext, H as HttpMethod } from './types-BF3w-wTx.js';
4
- import { ZodTypeAny } from 'zod/v4';
5
-
6
- declare class HttpError extends Error {
7
- readonly statusCode: number;
8
- readonly headers?: Record<string, string>;
9
- readonly details?: unknown;
10
- constructor(statusCode: number, message: string, options?: {
11
- cause?: unknown;
12
- headers?: Record<string, string>;
13
- details?: unknown;
14
- });
15
- }
16
- declare function json(status: number, data: unknown, headers?: Record<string, string>): ResponseLike;
17
- declare function text(status: number, body: string, headers?: Record<string, string>): ResponseLike;
18
- declare function noContent(headers?: Record<string, string>): ResponseLike;
19
- type LambdaEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
20
- type LambdaResult = APIGatewayProxyResult | APIGatewayProxyResultV2;
21
- declare function createHandler(): (event: LambdaEvent, lambdaContext: unknown) => Promise<LambdaResult>;
22
- declare function handleError(error: unknown, preferV2: boolean): LambdaResult;
23
-
24
- type LegacyDecorator = (target: unknown, propertyKey?: string | symbol, descriptor?: PropertyDescriptor) => void;
25
- type LegacyParameterDecorator = (target: unknown, propertyKey: string | symbol | undefined, parameterIndex: number) => void;
26
- declare const Get: (path?: string) => LegacyDecorator;
27
- declare const Post: (path?: string) => LegacyDecorator;
28
- declare const Put: (path?: string) => LegacyDecorator;
29
- declare const Patch: (path?: string) => LegacyDecorator;
30
- declare const Delete: (path?: string) => LegacyDecorator;
31
- declare const Head: (path?: string) => LegacyDecorator;
32
- declare const Options: (path?: string) => LegacyDecorator;
33
- declare function FirebaseAuth(options?: FirebaseAuthOptions): LegacyDecorator;
34
- declare function Auth(): LegacyParameterDecorator;
35
- declare function Body(schema?: ZodTypeAny): LegacyParameterDecorator;
36
- declare function Query(name?: string): LegacyParameterDecorator;
37
- declare function Param(name?: string): LegacyParameterDecorator;
38
- declare function Headers(): LegacyParameterDecorator;
39
- declare function Header(name: string): LegacyParameterDecorator;
40
- declare function Req(): LegacyParameterDecorator;
41
- declare function Res(): LegacyParameterDecorator;
42
-
43
- declare function configureRoutes(next?: RouteOptions): void;
44
-
45
- export { Auth, Body, Delete, FirebaseAuth, FirebaseAuthOptions, Get, Head, Header, Headers, HttpError, Options, Param, Patch, Post, Put, Query, Req, Res, ResponseLike, RouteOptions, configureRoutes, createHandler, handleError, json, noContent, text };
1
+ export { Auth, Body, Delete, FirebaseAuth, Get, Head, Header, Headers, HttpError, Options, Param, Patch, Post, Put, Query, Req, Res, configureRoutes, createHandler, handleError, json, noContent, text } from './http/index.js';
2
+ export { c as FirebaseAuthMetadata, F as FirebaseAuthOptions, d as FirebaseClaims, H as Handler, a as HandlerContext, b as HttpMethod, R as ResponseLike, e as RouteOptions } from './types-w1A7o_rd.js';
3
+ export { On, publish } from './bus/index.js';
4
+ import 'aws-lambda';
5
+ import 'zod/v4';
6
+ import './handler-DaM4Racx.js';