diff --git a/packages/core/src/schemas/eventFilter.ts b/packages/core/src/schemas/eventFilter.ts index 75108a340..d07dc9009 100644 --- a/packages/core/src/schemas/eventFilter.ts +++ b/packages/core/src/schemas/eventFilter.ts @@ -1,6 +1,6 @@ import { z } from "zod"; -const stringPatternMatchers = [ +export const stringPatternMatchers = [ z.object({ $endsWith: z.string(), }), diff --git a/packages/core/src/schemas/index.ts b/packages/core/src/schemas/index.ts index 09f3a15c0..a0b513817 100644 --- a/packages/core/src/schemas/index.ts +++ b/packages/core/src/schemas/index.ts @@ -2,6 +2,7 @@ export * from "./api"; export * from "./json"; export * from "./triggers"; export * from "./eventFilter"; +export * from "./requestFilter"; export * from "./errors"; export * from "./tasks"; export * from "./properties"; diff --git a/packages/core/src/schemas/requestFilter.ts b/packages/core/src/schemas/requestFilter.ts new file mode 100644 index 000000000..34425472a --- /dev/null +++ b/packages/core/src/schemas/requestFilter.ts @@ -0,0 +1,14 @@ +import { z } from "zod"; +import { EventFilterSchema, stringPatternMatchers } from "./eventFilter"; + +const StringMatchSchema = z.union([ + /** Match against a string */ + z.array(z.string()), + z.array(z.union(stringPatternMatchers)), +]); + +export const RequestFilterSchema = z.object({ + headers: z.record(StringMatchSchema), + query: z.record(StringMatchSchema), + body: EventFilterSchema.optional(), +});