two-stroke 8.0.17 → 8.0.18

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.
Files changed (2) hide show
  1. package/package.json +2 -2
  2. package/src/index.ts +37 -36
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "two-stroke",
3
- "version": "8.0.17",
3
+ "version": "8.0.18",
4
4
  "description": "Simple Cloudflare Worker framework.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -30,7 +30,7 @@
30
30
  "zod": "^4.4.3"
31
31
  },
32
32
  "devDependencies": {
33
- "@cloudflare/vitest-pool-workers": "^0.18.5",
33
+ "@cloudflare/vitest-pool-workers": "^0.18.6",
34
34
  "knip": "^6.27.0",
35
35
  "oxfmt": "^0.59.0",
36
36
  "oxlint": "^1.74.0",
package/src/index.ts CHANGED
@@ -40,6 +40,7 @@ export function twoStroke<T>(
40
40
  context: ExecutionContext,
41
41
  ): Promise<Response> {
42
42
  const defaultHeaders = {
43
+ Very: "Origin",
43
44
  "Access-Control-Allow-Origin": origin
44
45
  ? (env.SENTRY_ENVIRONMENT === "staging" || env.SENTRY_ENVIRONMENT === "dev") &&
45
46
  req.headers.get("Origin")?.split(":")[1]?.endsWith("localhost")
@@ -101,9 +102,9 @@ export function twoStroke<T>(
101
102
  rawBody = route.input
102
103
  ? req.headers.get("Content-Type") === "application/x-www-form-urlencoded"
103
104
  ? // oxlint-disable-next-line no-await-in-loop
104
- Object.fromEntries(new URLSearchParams(await req.text()))
105
+ Object.fromEntries(new URLSearchParams(await req.text()))
105
106
  : // oxlint-disable-next-line no-await-in-loop
106
- await req.json()
107
+ await req.json()
107
108
  : undefined;
108
109
  } catch (error) {
109
110
  console.error({
@@ -124,10 +125,10 @@ export function twoStroke<T>(
124
125
  const body = route.input
125
126
  ? route.input.safeParse(rawBody)
126
127
  : {
127
- success: true,
128
- data: undefined,
129
- error: undefined,
130
- };
128
+ success: true,
129
+ data: undefined,
130
+ error: undefined,
131
+ };
131
132
  if (body.success)
132
133
  // oxlint-disable-next-line no-await-in-loop
133
134
  response = await route.handler({
@@ -297,41 +298,41 @@ export function twoStroke<T>(
297
298
  noAuth,
298
299
  pbkdf:
299
300
  (k: keyof T, customHeaderName = "Authorization") =>
300
- async ({ req, env }: { req: Request; env: T }) => {
301
- const [scheme, token] = (req.headers.get(customHeaderName) ?? " ").split(" ");
302
- if (
303
- (scheme === "token" || scheme === "Bearer") &&
304
- // oxlint-disable-next-line typescript/no-unsafe-type-assertion
305
- (await pbkdfVerify(env[k] as string, token ?? ""))
306
- )
307
- return;
308
- throw new Error("Invalid");
309
- },
301
+ async ({ req, env }: { req: Request; env: T }) => {
302
+ const [scheme, token] = (req.headers.get(customHeaderName) ?? " ").split(" ");
303
+ if (
304
+ (scheme === "token" || scheme === "Bearer") &&
305
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion
306
+ (await pbkdfVerify(env[k] as string, token ?? ""))
307
+ )
308
+ return;
309
+ throw new Error("Invalid");
310
+ },
310
311
  jwt:
311
312
  <J>(k: keyof T, ak: keyof T) =>
312
- async ({ req, env }: { req: Request; env: T }) => {
313
- const [scheme, token] = (req.headers.get("Authorization") ?? " ").split(" ");
314
- if (scheme === "Bearer") {
315
- // oxlint-disable-next-line typescript/no-unsafe-type-assertion
316
- const rawIssuer = env[k] as string;
317
- // oxlint-disable-next-line typescript/no-unsafe-type-assertion
318
- const rawAudience = env[ak] as string;
319
- const issuer = rawIssuer.startsWith("{")
320
- ? // oxlint-disable-next-line typescript/no-unsafe-type-assertion
313
+ async ({ req, env }: { req: Request; env: T }) => {
314
+ const [scheme, token] = (req.headers.get("Authorization") ?? " ").split(" ");
315
+ if (scheme === "Bearer") {
316
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion
317
+ const rawIssuer = env[k] as string;
318
+ // oxlint-disable-next-line typescript/no-unsafe-type-assertion
319
+ const rawAudience = env[ak] as string;
320
+ const issuer = rawIssuer.startsWith("{")
321
+ ? // oxlint-disable-next-line typescript/no-unsafe-type-assertion
321
322
  (JSON.parse(rawIssuer) as Record<string, JSONWebKeySet | true>)
322
- : { [rawIssuer]: true as const };
323
- const audience = rawAudience.startsWith("[")
324
- ? // oxlint-disable-next-line typescript/no-unsafe-type-assertion
323
+ : { [rawIssuer]: true as const };
324
+ const audience = rawAudience.startsWith("[")
325
+ ? // oxlint-disable-next-line typescript/no-unsafe-type-assertion
325
326
  (JSON.parse(rawAudience) as string[])
326
- : [rawAudience];
327
- const claims = await jwkVerifyMulti<J>(token ?? "", issuer, audience);
328
- if (!claims) {
329
- throw new Error("Invalid");
327
+ : [rawAudience];
328
+ const claims = await jwkVerifyMulti<J>(token ?? "", issuer, audience);
329
+ if (!claims) {
330
+ throw new Error("Invalid");
331
+ }
332
+ return claims;
330
333
  }
331
- return claims;
332
- }
333
- throw new Error("Invalid");
334
- },
334
+ throw new Error("Invalid");
335
+ },
335
336
  queueHandler<I extends ZodType>(
336
337
  input: I,
337
338
  handler: (c: {