@armory-sh/middleware-bun 0.3.26 → 0.3.27

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.
@@ -8,7 +8,9 @@ var toSlug = (network) => {
8
8
  return normalizeNetworkName(net.name);
9
9
  }
10
10
  if (network.startsWith("eip155:")) {
11
- const chainId = parseInt(network.split(":")[1], 10);
11
+ const chainPart = network.split(":")[1];
12
+ if (!chainPart) throw new Error(`Invalid network format: ${network}`);
13
+ const chainId = parseInt(chainPart, 10);
12
14
  const net = getNetworkByChainId(chainId);
13
15
  if (!net) throw new Error(`No network found for chainId: ${chainId}`);
14
16
  return normalizeNetworkName(net.name);
@@ -38,12 +40,16 @@ var createV2Requirements = (config, expiry) => {
38
40
  const network = getNetworkConfig(networkName);
39
41
  if (!network) throw new Error(`Unsupported network: ${networkName}`);
40
42
  return {
43
+ scheme: "exact",
41
44
  amount: config.amount,
42
- to: config.payTo,
43
- chainId: getChainId(config.network),
44
- assetId: network.caipAssetId,
45
- nonce: `${Date.now()}-${crypto.randomUUID()}`,
46
- expiry
45
+ network: getChainId(config.network),
46
+ asset: network.usdcAddress,
47
+ payTo: config.payTo,
48
+ maxTimeoutSeconds: Math.max(1, expiry - Math.floor(Date.now() / 1e3)),
49
+ extra: {
50
+ name: "USDC",
51
+ version: "2"
52
+ }
47
53
  };
48
54
  };
49
55
  var createPaymentRequirements = (config) => {
@@ -80,7 +86,9 @@ var parsePaymentHeader = async (request, requirements) => {
80
86
  const paymentSig = request.headers.get(PAYMENT_SIGNATURE_HEADER);
81
87
  if (paymentSig) {
82
88
  try {
83
- const payload = decodePayloadHeader(paymentSig, { accepted: requirements });
89
+ const payload = decodePayloadHeader(paymentSig, {
90
+ accepted: requirements
91
+ });
84
92
  return { payload, payerAddress: extractPayerAddress(payload) };
85
93
  } catch {
86
94
  }
@@ -133,32 +141,58 @@ var createRouteAwareBunMiddleware = (config, handler) => {
133
141
  const { routes: resolvedRoutes, error: configError } = resolveRouteConfig(config);
134
142
  const middleware = async (request) => {
135
143
  if (configError) {
136
- return errorResponse(`Payment middleware configuration error: ${configError.message}`, 500);
144
+ return errorResponse(
145
+ `Payment middleware configuration error: ${configError.message}`,
146
+ 500
147
+ );
137
148
  }
138
149
  const path = new URL(request.url).pathname;
139
- const matchedRoute = resolvedRoutes.find((r) => matchRoute(r.pattern, path));
150
+ const matchedRoute = resolvedRoutes.find(
151
+ (r) => matchRoute(r.pattern, path)
152
+ );
140
153
  if (!matchedRoute) {
141
154
  return null;
142
155
  }
143
156
  const routeConfig = matchedRoute.config;
144
- const { facilitator, settlementMode = "settle", waitForSettlement = false } = routeConfig;
157
+ const {
158
+ facilitator,
159
+ settlementMode = "settle",
160
+ waitForSettlement = false
161
+ } = routeConfig;
145
162
  const requirements = createPaymentRequirements(routeConfig);
146
163
  const paymentResult = await parsePaymentHeader(request, requirements);
147
164
  if (!paymentResult) {
148
- return errorResponse("Payment required", 402, createPaymentRequiredHeaders(requirements), [requirements]);
165
+ return errorResponse(
166
+ "Payment required",
167
+ 402,
168
+ createPaymentRequiredHeaders(requirements),
169
+ [requirements]
170
+ );
149
171
  }
150
172
  const { payerAddress, payload } = paymentResult;
151
173
  if (facilitator) {
152
- const verifyResult = await verifyPayment(payload, requirements, { url: facilitator.url });
174
+ const verifyResult = await verifyPayment(payload, requirements, {
175
+ url: facilitator.url
176
+ });
153
177
  if (!verifyResult.isValid) {
154
- return errorResponse(`Payment verification failed: ${verifyResult.invalidReason}`, 402, createPaymentRequiredHeaders(requirements), [requirements]);
178
+ return errorResponse(
179
+ `Payment verification failed: ${verifyResult.invalidReason}`,
180
+ 402,
181
+ createPaymentRequiredHeaders(requirements),
182
+ [requirements]
183
+ );
155
184
  }
156
185
  }
157
186
  if (!handler) {
158
187
  if (settlementMode === "settle" && facilitator) {
159
188
  const settle = async () => {
160
- const result = await settlePayment(payload, requirements, { url: facilitator.url });
161
- return result.success ? successResponse(payerAddress, createSettlementResponse(true, result.transaction)) : errorResponse(result.errorReason ?? "Settlement failed", 400);
189
+ const result = await settlePayment(payload, requirements, {
190
+ url: facilitator.url
191
+ });
192
+ return result.success ? successResponse(
193
+ payerAddress,
194
+ createSettlementResponse(true, result.transaction)
195
+ ) : errorResponse(result.errorReason ?? "Settlement failed", 400);
162
196
  };
163
197
  if (waitForSettlement) {
164
198
  return await settle();
@@ -172,9 +206,14 @@ var createRouteAwareBunMiddleware = (config, handler) => {
172
206
  if (response.status >= 400 || settlementMode !== "settle" || !facilitator) {
173
207
  return response;
174
208
  }
175
- const settleResult = await settlePayment(payload, requirements, { url: facilitator.url });
209
+ const settleResult = await settlePayment(payload, requirements, {
210
+ url: facilitator.url
211
+ });
176
212
  if (!settleResult.success) {
177
- return errorResponse(settleResult.errorReason ?? "Settlement failed", 502);
213
+ return errorResponse(
214
+ settleResult.errorReason ?? "Settlement failed",
215
+ 502
216
+ );
178
217
  }
179
218
  const settlement = createSettlementResponse(true, settleResult.transaction);
180
219
  return appendSettlementHeaders(response, settlement);
package/dist/index.d.ts CHANGED
@@ -1,2 +1,10 @@
1
- export { B as BunHandler, a as BunMiddleware, b as BunMiddlewareConfig, RouteAwareBunMiddlewareConfig, c as createBunMiddleware, createRouteAwareBunMiddleware } from './routes.js';
1
+ import { M as MiddlewareConfig, B as BunHandler, a as BunMiddleware } from './routes-BKjM-6xh.js';
2
+ export { P as PaymentConfig, R as ResolvedRequirementsConfig, b as RouteAwareBunMiddlewareConfig, c as createPaymentRequirements, d as createRouteAwareBunMiddleware, p as paymentMiddleware, r as resolveFacilitatorUrlFromRequirement } from './routes-BKjM-6xh.js';
2
3
  import '@armory-sh/base';
4
+
5
+ interface BunMiddlewareConfig extends MiddlewareConfig {
6
+ waitForSettlement?: boolean;
7
+ }
8
+ declare const createBunMiddleware: (config: BunMiddlewareConfig, handler?: BunHandler) => BunMiddleware | ((request: Request) => Promise<Response>);
9
+
10
+ export { BunHandler, BunMiddleware, type BunMiddlewareConfig, createBunMiddleware };
package/dist/index.js CHANGED
@@ -1,19 +1,207 @@
1
- import { createPaymentRequirements } from './chunk-WLKV5FDR.js';
2
- export { createRouteAwareBunMiddleware } from './chunk-WLKV5FDR.js';
3
- import { createPaymentRequiredHeaders, verifyPayment, settlePayment, PAYMENT_SIGNATURE_HEADER, decodePayloadHeader, extractPayerAddress, createSettlementHeaders } from '@armory-sh/base';
1
+ import { createPaymentRequirements as createPaymentRequirements$1 } from './chunk-BJBLQMMR.js';
2
+ export { createRouteAwareBunMiddleware } from './chunk-BJBLQMMR.js';
3
+ import { resolveNetwork, isValidationError, resolveToken, createPaymentRequirements, PAYMENT_SIGNATURE_HEADER, createPaymentRequiredHeaders, decodePayloadHeader, findRequirementByAccepted, verifyPayment, extractPayerAddress, settlePayment, TOKENS, registerToken, createSettlementHeaders } from '@armory-sh/base';
4
4
 
5
+ function ensureTokensRegistered() {
6
+ for (const token of Object.values(TOKENS)) {
7
+ try {
8
+ registerToken(token);
9
+ } catch {
10
+ }
11
+ }
12
+ }
13
+ function resolveFacilitatorUrlFromRequirement(config, requirement) {
14
+ const chainId = parseInt(requirement.network.split(":")[1] || "0", 10);
15
+ const assetAddress = requirement.asset.toLowerCase();
16
+ if (config.facilitatorUrlByToken) {
17
+ for (const [chainKey, tokenMap] of Object.entries(
18
+ config.facilitatorUrlByToken
19
+ )) {
20
+ const resolvedChain = resolveNetwork(chainKey);
21
+ if (!isValidationError(resolvedChain) && resolvedChain.config.chainId === chainId) {
22
+ for (const [, url] of Object.entries(tokenMap)) {
23
+ const network = resolveNetwork(chainKey);
24
+ if (!isValidationError(network)) {
25
+ for (const tokenKey of Object.keys(tokenMap)) {
26
+ const resolvedToken = resolveToken(tokenKey, network);
27
+ if (!isValidationError(resolvedToken) && resolvedToken.config.contractAddress.toLowerCase() === assetAddress) {
28
+ return url;
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
36
+ if (config.facilitatorUrlByChain) {
37
+ for (const [chainKey, url] of Object.entries(
38
+ config.facilitatorUrlByChain
39
+ )) {
40
+ const resolvedChain = resolveNetwork(chainKey);
41
+ if (!isValidationError(resolvedChain) && resolvedChain.config.chainId === chainId) {
42
+ return url;
43
+ }
44
+ }
45
+ }
46
+ return config.facilitatorUrl;
47
+ }
48
+ function createPaymentRequirements2(config) {
49
+ if (config.requirements) {
50
+ return {
51
+ requirements: Array.isArray(config.requirements) ? config.requirements : [config.requirements]
52
+ };
53
+ }
54
+ if (!config.payTo) {
55
+ return {
56
+ requirements: [],
57
+ error: {
58
+ code: "VALIDATION_FAILED",
59
+ message: "Missing payment configuration: provide payTo or explicit requirements"
60
+ }
61
+ };
62
+ }
63
+ ensureTokensRegistered();
64
+ return createPaymentRequirements(config);
65
+ }
66
+ var errorResponse = (error, status, headers, accepts) => new Response(JSON.stringify({ error, accepts }), {
67
+ status,
68
+ headers: { "Content-Type": "application/json", ...headers }
69
+ });
70
+ var successResponse = (payerAddress, settlement) => {
71
+ return new Response(
72
+ JSON.stringify({
73
+ verified: true,
74
+ payerAddress,
75
+ settlement: void 0
76
+ }),
77
+ {
78
+ status: 200,
79
+ headers: {
80
+ "Content-Type": "application/json",
81
+ "X-Payment-Verified": "true",
82
+ "X-Payer-Address": payerAddress,
83
+ ...{}
84
+ }
85
+ }
86
+ );
87
+ };
88
+ var appendSettlementHeaders = (response, settlement) => {
89
+ const headers = new Headers(response.headers);
90
+ const settlementHeaders = createSettlementHeaders(settlement);
91
+ for (const [key, value] of Object.entries(settlementHeaders)) {
92
+ headers.set(key, value);
93
+ }
94
+ return new Response(response.body, {
95
+ status: response.status,
96
+ statusText: response.statusText,
97
+ headers
98
+ });
99
+ };
100
+ var paymentMiddleware = (config, handler) => {
101
+ const { requirements, error } = createPaymentRequirements2(config);
102
+ return async (request) => {
103
+ if (error) {
104
+ return errorResponse(
105
+ "Payment middleware configuration error",
106
+ 500,
107
+ void 0,
108
+ [error.message]
109
+ );
110
+ }
111
+ const primaryRequirement = requirements[0];
112
+ if (!primaryRequirement) {
113
+ return errorResponse(
114
+ "Payment middleware configuration error: No payment requirements configured",
115
+ 500
116
+ );
117
+ }
118
+ const paymentSig = request.headers.get(PAYMENT_SIGNATURE_HEADER);
119
+ if (!paymentSig) {
120
+ return errorResponse(
121
+ "Payment required",
122
+ 402,
123
+ createPaymentRequiredHeaders(requirements),
124
+ [requirements]
125
+ );
126
+ }
127
+ let payload;
128
+ try {
129
+ payload = decodePayloadHeader(paymentSig, {
130
+ accepted: primaryRequirement
131
+ });
132
+ } catch {
133
+ return errorResponse("Invalid payment payload", 400);
134
+ }
135
+ const selectedRequirement = findRequirementByAccepted(
136
+ requirements,
137
+ payload.accepted
138
+ );
139
+ if (!selectedRequirement) {
140
+ return errorResponse(
141
+ "Invalid payment payload: accepted requirement is not configured for this endpoint",
142
+ 400
143
+ );
144
+ }
145
+ const facilitatorUrl = resolveFacilitatorUrlFromRequirement(
146
+ config,
147
+ selectedRequirement
148
+ );
149
+ if (!facilitatorUrl) {
150
+ return errorResponse(
151
+ "Payment middleware configuration error: Facilitator URL is required",
152
+ 500
153
+ );
154
+ }
155
+ const verifyResult = await verifyPayment(
156
+ payload,
157
+ selectedRequirement,
158
+ { url: facilitatorUrl }
159
+ );
160
+ if (!verifyResult.isValid) {
161
+ return errorResponse(
162
+ `Payment verification failed: ${verifyResult.invalidReason}`,
163
+ 402,
164
+ createPaymentRequiredHeaders(requirements)
165
+ );
166
+ }
167
+ const payerAddress = verifyResult.payer ?? extractPayerAddress(payload);
168
+ if (!handler) {
169
+ return successResponse(payerAddress);
170
+ }
171
+ const response = await handler(request);
172
+ if (response.status >= 400) {
173
+ return response;
174
+ }
175
+ const settleResult = await settlePayment(
176
+ payload,
177
+ selectedRequirement,
178
+ { url: facilitatorUrl }
179
+ );
180
+ if (!settleResult.success) {
181
+ return errorResponse(
182
+ settleResult.errorReason ?? "Settlement failed",
183
+ 502
184
+ );
185
+ }
186
+ return appendSettlementHeaders(response, settleResult);
187
+ };
188
+ };
189
+
190
+ // src/index.ts
5
191
  var parsePaymentHeader = async (request, requirements) => {
6
192
  const paymentSig = request.headers.get(PAYMENT_SIGNATURE_HEADER);
7
193
  if (paymentSig) {
8
194
  try {
9
- const payload = decodePayloadHeader(paymentSig, { accepted: requirements });
195
+ const payload = decodePayloadHeader(paymentSig, {
196
+ accepted: requirements
197
+ });
10
198
  return { payload, payerAddress: extractPayerAddress(payload) };
11
199
  } catch {
12
200
  }
13
201
  }
14
202
  return null;
15
203
  };
16
- var errorResponse = (error, status, headers, accepts) => new Response(JSON.stringify({ error, accepts }), {
204
+ var errorResponse2 = (error, status, headers, accepts) => new Response(JSON.stringify({ error, accepts }), {
17
205
  status,
18
206
  headers: { "Content-Type": "application/json", ...headers }
19
207
  });
@@ -23,7 +211,7 @@ var createSettlementResponse = (success, txHash) => ({
23
211
  errorReason: void 0 ,
24
212
  network: "base"
25
213
  });
26
- var successResponse = (payerAddress, settlement) => {
214
+ var successResponse2 = (payerAddress, settlement) => {
27
215
  const isSuccess = settlement?.success;
28
216
  const txHash = settlement?.transaction;
29
217
  return new Response(
@@ -43,7 +231,7 @@ var successResponse = (payerAddress, settlement) => {
43
231
  }
44
232
  );
45
233
  };
46
- var appendSettlementHeaders = (response, settlement) => {
234
+ var appendSettlementHeaders2 = (response, settlement) => {
47
235
  const headers = new Headers(response.headers);
48
236
  const settlementHeaders = createSettlementHeaders(settlement);
49
237
  for (const [key, value] of Object.entries(settlementHeaders)) {
@@ -56,44 +244,72 @@ var appendSettlementHeaders = (response, settlement) => {
56
244
  });
57
245
  };
58
246
  var createBunMiddleware = (config, handler) => {
59
- const { facilitator, settlementMode = "settle", waitForSettlement = false } = config;
60
- const requirements = createPaymentRequirements(config);
247
+ const {
248
+ facilitator,
249
+ settlementMode = "settle",
250
+ waitForSettlement = false
251
+ } = config;
252
+ const requirements = createPaymentRequirements$1(config);
61
253
  const middleware = async (request) => {
62
254
  const paymentResult = await parsePaymentHeader(request, requirements);
63
255
  if (!paymentResult) {
64
- return errorResponse("Payment required", 402, createPaymentRequiredHeaders(requirements), [requirements]);
256
+ return errorResponse2(
257
+ "Payment required",
258
+ 402,
259
+ createPaymentRequiredHeaders(requirements),
260
+ [requirements]
261
+ );
65
262
  }
66
263
  const { payerAddress, payload } = paymentResult;
67
264
  if (facilitator) {
68
- const verifyResult = await verifyPayment(payload, requirements, { url: facilitator.url });
265
+ const verifyResult = await verifyPayment(
266
+ payload,
267
+ requirements,
268
+ { url: facilitator.url }
269
+ );
69
270
  if (!verifyResult.isValid) {
70
- return errorResponse(`Payment verification failed: ${verifyResult.invalidReason}`, 402, createPaymentRequiredHeaders(requirements), [requirements]);
271
+ return errorResponse2(
272
+ `Payment verification failed: ${verifyResult.invalidReason}`,
273
+ 402,
274
+ createPaymentRequiredHeaders(requirements),
275
+ [requirements]
276
+ );
71
277
  }
72
278
  }
73
279
  if (!handler) {
74
280
  if (settlementMode === "settle" && facilitator) {
75
281
  const settle = async () => {
76
- const result = await settlePayment(payload, requirements, { url: facilitator.url });
77
- return result.success ? successResponse(payerAddress, createSettlementResponse(true, result.transaction)) : errorResponse(result.errorReason ?? "Settlement failed", 400);
282
+ const result = await settlePayment(payload, requirements, {
283
+ url: facilitator.url
284
+ });
285
+ return result.success ? successResponse2(
286
+ payerAddress,
287
+ createSettlementResponse(true, result.transaction)
288
+ ) : errorResponse2(result.errorReason ?? "Settlement failed", 400);
78
289
  };
79
290
  if (waitForSettlement) {
80
291
  return await settle();
81
292
  }
82
293
  settle().catch(console.error);
83
- return successResponse(payerAddress);
294
+ return successResponse2(payerAddress);
84
295
  }
85
- return successResponse(payerAddress);
296
+ return successResponse2(payerAddress);
86
297
  }
87
298
  const response = await handler(request);
88
299
  if (response.status >= 400 || settlementMode !== "settle" || !facilitator) {
89
300
  return response;
90
301
  }
91
- const settleResult = await settlePayment(payload, requirements, { url: facilitator.url });
302
+ const settleResult = await settlePayment(payload, requirements, {
303
+ url: facilitator.url
304
+ });
92
305
  if (!settleResult.success) {
93
- return errorResponse(settleResult.errorReason ?? "Settlement failed", 502);
306
+ return errorResponse2(
307
+ settleResult.errorReason ?? "Settlement failed",
308
+ 502
309
+ );
94
310
  }
95
311
  const settlement = createSettlementResponse(true, settleResult.transaction);
96
- return appendSettlementHeaders(response, settlement);
312
+ return appendSettlementHeaders2(response, settlement);
97
313
  };
98
314
  if (!handler) {
99
315
  return middleware;
@@ -101,10 +317,10 @@ var createBunMiddleware = (config, handler) => {
101
317
  return async (request) => {
102
318
  const result = await middleware(request);
103
319
  if (!result) {
104
- return errorResponse("Payment middleware returned no response", 500);
320
+ return errorResponse2("Payment middleware returned no response", 500);
105
321
  }
106
322
  return result;
107
323
  };
108
324
  };
109
325
 
110
- export { createBunMiddleware };
326
+ export { createBunMiddleware, createPaymentRequirements2 as createPaymentRequirements, paymentMiddleware, resolveFacilitatorUrlFromRequirement };
@@ -0,0 +1,48 @@
1
+ import { PaymentRequirementsV2, PayToAddress, FacilitatorConfig, SettlementMode } from '@armory-sh/base';
2
+
3
+ type NetworkId = string | number;
4
+ type TokenId = string;
5
+ interface PaymentConfig {
6
+ payTo?: string;
7
+ requirements?: PaymentRequirementsV2 | PaymentRequirementsV2[];
8
+ chains?: NetworkId[];
9
+ chain?: NetworkId;
10
+ tokens?: TokenId[];
11
+ token?: TokenId;
12
+ amount?: string;
13
+ maxTimeoutSeconds?: number;
14
+ facilitatorUrl?: string;
15
+ facilitatorUrlByChain?: Record<string, string>;
16
+ facilitatorUrlByToken?: Record<string, Record<string, string>>;
17
+ }
18
+ interface ResolvedRequirementsConfig {
19
+ requirements: PaymentRequirementsV2[];
20
+ error?: {
21
+ code: string;
22
+ message: string;
23
+ };
24
+ }
25
+ type BunMiddleware$1 = (request: Request) => Promise<Response | null>;
26
+ type BunHandler = (request: Request) => Promise<Response> | Response;
27
+ declare function resolveFacilitatorUrlFromRequirement(config: PaymentConfig, requirement: PaymentRequirementsV2): string | undefined;
28
+ declare function createPaymentRequirements(config: PaymentConfig): ResolvedRequirementsConfig;
29
+ declare const paymentMiddleware: (config: PaymentConfig, handler?: BunHandler) => BunMiddleware$1;
30
+
31
+ interface MiddlewareConfig {
32
+ payTo: PayToAddress;
33
+ network: string | number;
34
+ amount: string;
35
+ facilitator?: FacilitatorConfig;
36
+ settlementMode?: SettlementMode;
37
+ }
38
+
39
+ type BunMiddleware = (request: Request) => Promise<Response | null>;
40
+ interface RouteAwareBunMiddlewareConfig extends MiddlewareConfig {
41
+ route?: string;
42
+ routes?: string[];
43
+ perRoute?: Record<string, Partial<MiddlewareConfig>>;
44
+ waitForSettlement?: boolean;
45
+ }
46
+ declare const createRouteAwareBunMiddleware: (config: RouteAwareBunMiddlewareConfig, handler?: BunHandler) => BunMiddleware | ((request: Request) => Promise<Response>);
47
+
48
+ export { type BunHandler as B, type MiddlewareConfig as M, type PaymentConfig as P, type ResolvedRequirementsConfig as R, type BunMiddleware$1 as a, type RouteAwareBunMiddlewareConfig as b, createPaymentRequirements as c, createRouteAwareBunMiddleware as d, type BunMiddleware as e, paymentMiddleware as p, resolveFacilitatorUrlFromRequirement as r };
package/dist/routes.d.ts CHANGED
@@ -1,27 +1,2 @@
1
- import { PayToAddress, FacilitatorConfig, SettlementMode } from '@armory-sh/base';
2
-
3
- interface MiddlewareConfig {
4
- payTo: PayToAddress;
5
- network: string | number;
6
- amount: string;
7
- facilitator?: FacilitatorConfig;
8
- settlementMode?: SettlementMode;
9
- }
10
-
11
- type BunMiddleware$1 = (request: Request) => Promise<Response | null>;
12
- interface RouteAwareBunMiddlewareConfig extends MiddlewareConfig {
13
- route?: string;
14
- routes?: string[];
15
- perRoute?: Record<string, Partial<MiddlewareConfig>>;
16
- waitForSettlement?: boolean;
17
- }
18
- declare const createRouteAwareBunMiddleware: (config: RouteAwareBunMiddlewareConfig, handler?: BunHandler) => BunMiddleware$1 | ((request: Request) => Promise<Response>);
19
-
20
- type BunMiddleware = (request: Request) => Promise<Response | null>;
21
- type BunHandler = (request: Request) => Promise<Response> | Response;
22
- interface BunMiddlewareConfig extends MiddlewareConfig {
23
- waitForSettlement?: boolean;
24
- }
25
- declare const createBunMiddleware: (config: BunMiddlewareConfig, handler?: BunHandler) => BunMiddleware | ((request: Request) => Promise<Response>);
26
-
27
- export { type BunHandler as B, type BunMiddleware$1 as BunMiddleware, type RouteAwareBunMiddlewareConfig, type BunMiddleware as a, type BunMiddlewareConfig as b, createBunMiddleware as c, createRouteAwareBunMiddleware };
1
+ export { e as BunMiddleware, b as RouteAwareBunMiddlewareConfig, d as createRouteAwareBunMiddleware } from './routes-BKjM-6xh.js';
2
+ import '@armory-sh/base';
package/dist/routes.js CHANGED
@@ -1 +1 @@
1
- export { createRouteAwareBunMiddleware } from './chunk-WLKV5FDR.js';
1
+ export { createRouteAwareBunMiddleware } from './chunk-BJBLQMMR.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@armory-sh/middleware-bun",
3
- "version": "0.3.26",
3
+ "version": "0.3.27",
4
4
  "license": "MIT",
5
5
  "author": "Sawyer Cutler <sawyer@dirtroad.dev>",
6
6
  "keywords": [
@@ -43,7 +43,7 @@
43
43
  "directory": "packages/middleware-bun"
44
44
  },
45
45
  "dependencies": {
46
- "@armory-sh/base": "0.2.28"
46
+ "@armory-sh/base": "0.2.29"
47
47
  },
48
48
  "devDependencies": {
49
49
  "bun-types": "latest",
@@ -52,6 +52,8 @@
52
52
  },
53
53
  "scripts": {
54
54
  "build": "rm -rf dist && tsup",
55
+ "lint": "bun run build",
56
+ "format": "bun run lint",
55
57
  "test": "bun test"
56
58
  }
57
59
  }