@zapier/policy
Advanced tools
+42
-130
| 'use strict'; | ||
| var zod = require('zod'); | ||
| var policySchema = require('@zapier/policy-schema'); | ||
| // src/schema.ts | ||
| var ScalarSchema = zod.z.union([zod.z.string(), zod.z.number(), zod.z.boolean()]); | ||
| var PathSchema = zod.z.array(zod.z.union([zod.z.string(), zod.z.number()])).min(1); | ||
| var EqualsConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("equals"), | ||
| value: ScalarSchema | ||
| }).strict(); | ||
| var InConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("in"), | ||
| value: zod.z.array(ScalarSchema).min(1) | ||
| }).strict(); | ||
| var MatchesConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("matches"), | ||
| value: zod.z.string() | ||
| }).strict(); | ||
| var MatchesHostConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("matches_host"), | ||
| value: zod.z.string() | ||
| }).strict(); | ||
| var MatchesPathConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("matches_path"), | ||
| value: zod.z.string() | ||
| }).strict(); | ||
| var RangeValueSchema = zod.z.object({ | ||
| min: zod.z.number().finite().optional(), | ||
| max: zod.z.number().finite().optional() | ||
| }).strict().refine((v) => v.min !== void 0 || v.max !== void 0, { | ||
| message: "Range must have at least min or max" | ||
| }); | ||
| var RangeConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("range"), | ||
| value: RangeValueSchema | ||
| }).strict(); | ||
| var ValuesInConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("values_in"), | ||
| value: zod.z.array(ScalarSchema).min(1) | ||
| }).strict(); | ||
| var ExistsConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("exists") | ||
| }).strict(); | ||
| var KeysInConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("keys_in"), | ||
| value: zod.z.array(zod.z.string()) | ||
| }).strict(); | ||
| var SizeValueSchema = zod.z.union([ | ||
| zod.z.number().int().nonnegative(), | ||
| RangeValueSchema | ||
| ]); | ||
| var SizeConditionSchema = zod.z.object({ | ||
| path: PathSchema, | ||
| operator: zod.z.literal("size"), | ||
| value: SizeValueSchema | ||
| }).strict(); | ||
| var ConditionSchema = zod.z.union([ | ||
| // Scalar operators | ||
| EqualsConditionSchema, | ||
| InConditionSchema, | ||
| MatchesConditionSchema, | ||
| MatchesHostConditionSchema, | ||
| MatchesPathConditionSchema, | ||
| RangeConditionSchema, | ||
| // Array operators | ||
| ValuesInConditionSchema, | ||
| // Other operators | ||
| ExistsConditionSchema, | ||
| KeysInConditionSchema, | ||
| SizeConditionSchema | ||
| ]); | ||
| var ScalarOperatorSchema = zod.z.enum([ | ||
| "equals", | ||
| "in", | ||
| "matches", | ||
| "matches_host", | ||
| "matches_path", | ||
| "range" | ||
| ]); | ||
| var ArrayOperatorSchema = zod.z.enum(["values_in"]); | ||
| var OtherOperatorSchema = zod.z.enum(["exists", "keys_in", "size"]); | ||
| var OperatorSchema = zod.z.enum([ | ||
| // Scalar | ||
| "equals", | ||
| "in", | ||
| "matches", | ||
| "matches_host", | ||
| "matches_path", | ||
| "range", | ||
| // Array | ||
| "values_in", | ||
| // Other | ||
| "exists", | ||
| "keys_in", | ||
| "size" | ||
| ]); | ||
| var ConditionValueSchema = zod.z.union([ | ||
| ScalarSchema, | ||
| zod.z.array(ScalarSchema), | ||
| RangeValueSchema, | ||
| SizeValueSchema, | ||
| zod.z.array(zod.z.string()) | ||
| ]); | ||
| var StatementSchema = zod.z.object({ | ||
| effect: zod.z.enum(["allow", "deny"]), | ||
| permissions: zod.z.array(zod.z.string()).min(1), | ||
| resources: zod.z.array(zod.z.string()).min(1), | ||
| conditions: zod.z.array(ConditionSchema).optional() | ||
| }).strict(); | ||
| var PolicySchema = zod.z.object({ | ||
| version: zod.z.literal(1), | ||
| statements: zod.z.array(StatementSchema) | ||
| }).strict(); | ||
| // src/index.ts | ||
@@ -552,13 +434,43 @@ // src/match.ts | ||
| exports.ArrayOperatorSchema = ArrayOperatorSchema; | ||
| exports.ConditionSchema = ConditionSchema; | ||
| exports.ConditionValueSchema = ConditionValueSchema; | ||
| Object.defineProperty(exports, "ArrayOperatorSchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.ArrayOperatorSchema; } | ||
| }); | ||
| Object.defineProperty(exports, "ConditionSchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.ConditionSchema; } | ||
| }); | ||
| Object.defineProperty(exports, "ConditionValueSchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.ConditionValueSchema; } | ||
| }); | ||
| Object.defineProperty(exports, "OperatorSchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.OperatorSchema; } | ||
| }); | ||
| Object.defineProperty(exports, "OtherOperatorSchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.OtherOperatorSchema; } | ||
| }); | ||
| Object.defineProperty(exports, "PolicySchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.PolicySchema; } | ||
| }); | ||
| Object.defineProperty(exports, "RangeValueSchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.RangeValueSchema; } | ||
| }); | ||
| Object.defineProperty(exports, "ScalarOperatorSchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.ScalarOperatorSchema; } | ||
| }); | ||
| Object.defineProperty(exports, "SizeValueSchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.SizeValueSchema; } | ||
| }); | ||
| Object.defineProperty(exports, "StatementSchema", { | ||
| enumerable: true, | ||
| get: function () { return policySchema.StatementSchema; } | ||
| }); | ||
| exports.HppDetectedError = HppDetectedError; | ||
| exports.OperatorSchema = OperatorSchema; | ||
| exports.OtherOperatorSchema = OtherOperatorSchema; | ||
| exports.PolicySchema = PolicySchema; | ||
| exports.RangeValueSchema = RangeValueSchema; | ||
| exports.ScalarOperatorSchema = ScalarOperatorSchema; | ||
| exports.SizeValueSchema = SizeValueSchema; | ||
| exports.StatementSchema = StatementSchema; | ||
| exports.buildUrl = buildUrl; | ||
@@ -565,0 +477,0 @@ exports.createPolicyHttpRequest = createPolicyHttpRequest; |
+3
-919
@@ -1,920 +0,4 @@ | ||
| import { z } from 'zod'; | ||
| import { Policy, PolicyRequest, PolicyResult, ParsedUrl, PolicyHttpRequest, Condition } from '@zapier/policy-schema'; | ||
| export { ArrayOperator, ArrayOperatorSchema, Condition, ConditionSchema, ConditionValue, ConditionValueSchema, Effect, Operator, OperatorSchema, OtherOperator, OtherOperatorSchema, ParsedUrl, Policy, PolicyHttpRequest, PolicyRequest, PolicyResult, PolicySchema, RangeValue, RangeValueSchema, ScalarOperator, ScalarOperatorSchema, SizeValue, SizeValueSchema, Statement, StatementSchema } from '@zapier/policy-schema'; | ||
| type ScalarOperator = "equals" | "in" | "matches" | "matches_host" | "matches_path" | "range"; | ||
| type ArrayOperator = "values_in"; | ||
| type OtherOperator = "exists" | "keys_in" | "size"; | ||
| type Operator = ScalarOperator | ArrayOperator | OtherOperator; | ||
| type RangeValue = { | ||
| min?: number; | ||
| max?: number; | ||
| }; | ||
| type SizeValue = number | RangeValue; | ||
| type ConditionValue = string | number | boolean | (string | number | boolean)[] | RangeValue | SizeValue; | ||
| interface Condition { | ||
| path: (string | number)[]; | ||
| operator: Operator; | ||
| value?: ConditionValue; | ||
| } | ||
| type Effect = "allow" | "deny"; | ||
| interface Statement { | ||
| effect: Effect; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: Condition[]; | ||
| } | ||
| interface Policy { | ||
| version: 1; | ||
| statements: Statement[]; | ||
| } | ||
| interface PolicyRequest { | ||
| permission: string; | ||
| resource: string; | ||
| context?: Record<string, unknown>; | ||
| } | ||
| interface PolicyResult { | ||
| allowed: boolean; | ||
| matchedStatement?: Statement; | ||
| } | ||
| interface ParsedUrl { | ||
| scheme: string; | ||
| host: string; | ||
| port: number; | ||
| path: string; | ||
| query: Record<string, string[]>; | ||
| } | ||
| interface PolicyHttpRequest { | ||
| method: string; | ||
| url: ParsedUrl; | ||
| headers: Record<string, string | string[]>; | ||
| body: string | null; | ||
| body_json: unknown; | ||
| } | ||
| declare const RangeValueSchema: z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>; | ||
| declare const SizeValueSchema: z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>; | ||
| declare const ConditionSchema: z.ZodUnion<[z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"equals">; | ||
| value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_host">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_path">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"range">; | ||
| value: z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"values_in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"exists">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"keys_in">; | ||
| value: z.ZodArray<z.ZodString, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"size">; | ||
| value: z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }>]>; | ||
| declare const ScalarOperatorSchema: z.ZodEnum<["equals", "in", "matches", "matches_host", "matches_path", "range"]>; | ||
| declare const ArrayOperatorSchema: z.ZodEnum<["values_in"]>; | ||
| declare const OtherOperatorSchema: z.ZodEnum<["exists", "keys_in", "size"]>; | ||
| declare const OperatorSchema: z.ZodEnum<["equals", "in", "matches", "matches_host", "matches_path", "range", "values_in", "exists", "keys_in", "size"]>; | ||
| declare const ConditionValueSchema: z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>, z.ZodArray<z.ZodString, "many">]>; | ||
| declare const StatementSchema: z.ZodObject<{ | ||
| effect: z.ZodEnum<["allow", "deny"]>; | ||
| permissions: z.ZodArray<z.ZodString, "many">; | ||
| resources: z.ZodArray<z.ZodString, "many">; | ||
| conditions: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"equals">; | ||
| value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_host">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_path">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"range">; | ||
| value: z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"values_in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"exists">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"keys_in">; | ||
| value: z.ZodArray<z.ZodString, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"size">; | ||
| value: z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }>]>, "many">>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }, { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }>; | ||
| declare const PolicySchema: z.ZodObject<{ | ||
| version: z.ZodLiteral<1>; | ||
| statements: z.ZodArray<z.ZodObject<{ | ||
| effect: z.ZodEnum<["allow", "deny"]>; | ||
| permissions: z.ZodArray<z.ZodString, "many">; | ||
| resources: z.ZodArray<z.ZodString, "many">; | ||
| conditions: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"equals">; | ||
| value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_host">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_path">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"range">; | ||
| value: z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"values_in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"exists">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"keys_in">; | ||
| value: z.ZodArray<z.ZodString, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"size">; | ||
| value: z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }>]>, "many">>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }, { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| version: 1; | ||
| statements: { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }[]; | ||
| }, { | ||
| version: 1; | ||
| statements: { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }[]; | ||
| }>; | ||
| /** | ||
@@ -1108,2 +192,2 @@ * Evaluate a policy against a request. | ||
| export { type ArrayOperator, ArrayOperatorSchema, type Condition, ConditionSchema, type ConditionValue, ConditionValueSchema, type CreatePolicyHttpRequestOptions, type Effect, HppDetectedError, type Operator, OperatorSchema, type OtherOperator, OtherOperatorSchema, type ParsedUrl, type Policy, type PolicyHttpRequest, type PolicyRequest, type PolicyResult, PolicySchema, type RangeValue, RangeValueSchema, type ScalarOperator, ScalarOperatorSchema, type SizeValue, SizeValueSchema, type Statement, StatementSchema, buildUrl, createPolicyHttpRequest, doesPolicyRequireBodyInspection, evaluateCondition, evaluateConditions, evaluatePolicy, getValueAtPath, matchGlob, matchResource, matchSegments, parseUrlForPolicyContext }; | ||
| export { type CreatePolicyHttpRequestOptions, HppDetectedError, buildUrl, createPolicyHttpRequest, doesPolicyRequireBodyInspection, evaluateCondition, evaluateConditions, evaluatePolicy, getValueAtPath, matchGlob, matchResource, matchSegments, parseUrlForPolicyContext }; |
+3
-919
@@ -1,920 +0,4 @@ | ||
| import { z } from 'zod'; | ||
| import { Policy, PolicyRequest, PolicyResult, ParsedUrl, PolicyHttpRequest, Condition } from '@zapier/policy-schema'; | ||
| export { ArrayOperator, ArrayOperatorSchema, Condition, ConditionSchema, ConditionValue, ConditionValueSchema, Effect, Operator, OperatorSchema, OtherOperator, OtherOperatorSchema, ParsedUrl, Policy, PolicyHttpRequest, PolicyRequest, PolicyResult, PolicySchema, RangeValue, RangeValueSchema, ScalarOperator, ScalarOperatorSchema, SizeValue, SizeValueSchema, Statement, StatementSchema } from '@zapier/policy-schema'; | ||
| type ScalarOperator = "equals" | "in" | "matches" | "matches_host" | "matches_path" | "range"; | ||
| type ArrayOperator = "values_in"; | ||
| type OtherOperator = "exists" | "keys_in" | "size"; | ||
| type Operator = ScalarOperator | ArrayOperator | OtherOperator; | ||
| type RangeValue = { | ||
| min?: number; | ||
| max?: number; | ||
| }; | ||
| type SizeValue = number | RangeValue; | ||
| type ConditionValue = string | number | boolean | (string | number | boolean)[] | RangeValue | SizeValue; | ||
| interface Condition { | ||
| path: (string | number)[]; | ||
| operator: Operator; | ||
| value?: ConditionValue; | ||
| } | ||
| type Effect = "allow" | "deny"; | ||
| interface Statement { | ||
| effect: Effect; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: Condition[]; | ||
| } | ||
| interface Policy { | ||
| version: 1; | ||
| statements: Statement[]; | ||
| } | ||
| interface PolicyRequest { | ||
| permission: string; | ||
| resource: string; | ||
| context?: Record<string, unknown>; | ||
| } | ||
| interface PolicyResult { | ||
| allowed: boolean; | ||
| matchedStatement?: Statement; | ||
| } | ||
| interface ParsedUrl { | ||
| scheme: string; | ||
| host: string; | ||
| port: number; | ||
| path: string; | ||
| query: Record<string, string[]>; | ||
| } | ||
| interface PolicyHttpRequest { | ||
| method: string; | ||
| url: ParsedUrl; | ||
| headers: Record<string, string | string[]>; | ||
| body: string | null; | ||
| body_json: unknown; | ||
| } | ||
| declare const RangeValueSchema: z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>; | ||
| declare const SizeValueSchema: z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>; | ||
| declare const ConditionSchema: z.ZodUnion<[z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"equals">; | ||
| value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_host">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_path">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"range">; | ||
| value: z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"values_in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"exists">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"keys_in">; | ||
| value: z.ZodArray<z.ZodString, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"size">; | ||
| value: z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }>]>; | ||
| declare const ScalarOperatorSchema: z.ZodEnum<["equals", "in", "matches", "matches_host", "matches_path", "range"]>; | ||
| declare const ArrayOperatorSchema: z.ZodEnum<["values_in"]>; | ||
| declare const OtherOperatorSchema: z.ZodEnum<["exists", "keys_in", "size"]>; | ||
| declare const OperatorSchema: z.ZodEnum<["equals", "in", "matches", "matches_host", "matches_path", "range", "values_in", "exists", "keys_in", "size"]>; | ||
| declare const ConditionValueSchema: z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>, z.ZodArray<z.ZodString, "many">]>; | ||
| declare const StatementSchema: z.ZodObject<{ | ||
| effect: z.ZodEnum<["allow", "deny"]>; | ||
| permissions: z.ZodArray<z.ZodString, "many">; | ||
| resources: z.ZodArray<z.ZodString, "many">; | ||
| conditions: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"equals">; | ||
| value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_host">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_path">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"range">; | ||
| value: z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"values_in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"exists">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"keys_in">; | ||
| value: z.ZodArray<z.ZodString, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"size">; | ||
| value: z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }>]>, "many">>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }, { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }>; | ||
| declare const PolicySchema: z.ZodObject<{ | ||
| version: z.ZodLiteral<1>; | ||
| statements: z.ZodArray<z.ZodObject<{ | ||
| effect: z.ZodEnum<["allow", "deny"]>; | ||
| permissions: z.ZodArray<z.ZodString, "many">; | ||
| resources: z.ZodArray<z.ZodString, "many">; | ||
| conditions: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"equals">; | ||
| value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }, { | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_host">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"matches_path">; | ||
| value: z.ZodString; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }, { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"range">; | ||
| value: z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }, { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"values_in">; | ||
| value: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }, { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"exists">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }, { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"keys_in">; | ||
| value: z.ZodArray<z.ZodString, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }, { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| }>, z.ZodObject<{ | ||
| path: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber]>, "many">; | ||
| operator: z.ZodLiteral<"size">; | ||
| value: z.ZodUnion<[z.ZodNumber, z.ZodEffects<z.ZodObject<{ | ||
| min: z.ZodOptional<z.ZodNumber>; | ||
| max: z.ZodOptional<z.ZodNumber>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }, { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }>]>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }, { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| }>]>, "many">>; | ||
| }, "strict", z.ZodTypeAny, { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }, { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }>, "many">; | ||
| }, "strict", z.ZodTypeAny, { | ||
| version: 1; | ||
| statements: { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }[]; | ||
| }, { | ||
| version: 1; | ||
| statements: { | ||
| effect: "allow" | "deny"; | ||
| permissions: string[]; | ||
| resources: string[]; | ||
| conditions?: ({ | ||
| value: string | number | boolean; | ||
| path: (string | number)[]; | ||
| operator: "equals"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "in"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_host"; | ||
| } | { | ||
| value: string; | ||
| path: (string | number)[]; | ||
| operator: "matches_path"; | ||
| } | { | ||
| value: { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "range"; | ||
| } | { | ||
| value: (string | number | boolean)[]; | ||
| path: (string | number)[]; | ||
| operator: "values_in"; | ||
| } | { | ||
| path: (string | number)[]; | ||
| operator: "exists"; | ||
| } | { | ||
| value: string[]; | ||
| path: (string | number)[]; | ||
| operator: "keys_in"; | ||
| } | { | ||
| value: number | { | ||
| min?: number | undefined; | ||
| max?: number | undefined; | ||
| }; | ||
| path: (string | number)[]; | ||
| operator: "size"; | ||
| })[] | undefined; | ||
| }[]; | ||
| }>; | ||
| /** | ||
@@ -1108,2 +192,2 @@ * Evaluate a policy against a request. | ||
| export { type ArrayOperator, ArrayOperatorSchema, type Condition, ConditionSchema, type ConditionValue, ConditionValueSchema, type CreatePolicyHttpRequestOptions, type Effect, HppDetectedError, type Operator, OperatorSchema, type OtherOperator, OtherOperatorSchema, type ParsedUrl, type Policy, type PolicyHttpRequest, type PolicyRequest, type PolicyResult, PolicySchema, type RangeValue, RangeValueSchema, type ScalarOperator, ScalarOperatorSchema, type SizeValue, SizeValueSchema, type Statement, StatementSchema, buildUrl, createPolicyHttpRequest, doesPolicyRequireBodyInspection, evaluateCondition, evaluateConditions, evaluatePolicy, getValueAtPath, matchGlob, matchResource, matchSegments, parseUrlForPolicyContext }; | ||
| export { type CreatePolicyHttpRequestOptions, HppDetectedError, buildUrl, createPolicyHttpRequest, doesPolicyRequireBodyInspection, evaluateCondition, evaluateConditions, evaluatePolicy, getValueAtPath, matchGlob, matchResource, matchSegments, parseUrlForPolicyContext }; |
+3
-121
@@ -1,122 +0,4 @@ | ||
| import { z } from 'zod'; | ||
| export { ArrayOperatorSchema, ConditionSchema, ConditionValueSchema, OperatorSchema, OtherOperatorSchema, PolicySchema, RangeValueSchema, ScalarOperatorSchema, SizeValueSchema, StatementSchema } from '@zapier/policy-schema'; | ||
| // src/schema.ts | ||
| var ScalarSchema = z.union([z.string(), z.number(), z.boolean()]); | ||
| var PathSchema = z.array(z.union([z.string(), z.number()])).min(1); | ||
| var EqualsConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("equals"), | ||
| value: ScalarSchema | ||
| }).strict(); | ||
| var InConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("in"), | ||
| value: z.array(ScalarSchema).min(1) | ||
| }).strict(); | ||
| var MatchesConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("matches"), | ||
| value: z.string() | ||
| }).strict(); | ||
| var MatchesHostConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("matches_host"), | ||
| value: z.string() | ||
| }).strict(); | ||
| var MatchesPathConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("matches_path"), | ||
| value: z.string() | ||
| }).strict(); | ||
| var RangeValueSchema = z.object({ | ||
| min: z.number().finite().optional(), | ||
| max: z.number().finite().optional() | ||
| }).strict().refine((v) => v.min !== void 0 || v.max !== void 0, { | ||
| message: "Range must have at least min or max" | ||
| }); | ||
| var RangeConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("range"), | ||
| value: RangeValueSchema | ||
| }).strict(); | ||
| var ValuesInConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("values_in"), | ||
| value: z.array(ScalarSchema).min(1) | ||
| }).strict(); | ||
| var ExistsConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("exists") | ||
| }).strict(); | ||
| var KeysInConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("keys_in"), | ||
| value: z.array(z.string()) | ||
| }).strict(); | ||
| var SizeValueSchema = z.union([ | ||
| z.number().int().nonnegative(), | ||
| RangeValueSchema | ||
| ]); | ||
| var SizeConditionSchema = z.object({ | ||
| path: PathSchema, | ||
| operator: z.literal("size"), | ||
| value: SizeValueSchema | ||
| }).strict(); | ||
| var ConditionSchema = z.union([ | ||
| // Scalar operators | ||
| EqualsConditionSchema, | ||
| InConditionSchema, | ||
| MatchesConditionSchema, | ||
| MatchesHostConditionSchema, | ||
| MatchesPathConditionSchema, | ||
| RangeConditionSchema, | ||
| // Array operators | ||
| ValuesInConditionSchema, | ||
| // Other operators | ||
| ExistsConditionSchema, | ||
| KeysInConditionSchema, | ||
| SizeConditionSchema | ||
| ]); | ||
| var ScalarOperatorSchema = z.enum([ | ||
| "equals", | ||
| "in", | ||
| "matches", | ||
| "matches_host", | ||
| "matches_path", | ||
| "range" | ||
| ]); | ||
| var ArrayOperatorSchema = z.enum(["values_in"]); | ||
| var OtherOperatorSchema = z.enum(["exists", "keys_in", "size"]); | ||
| var OperatorSchema = z.enum([ | ||
| // Scalar | ||
| "equals", | ||
| "in", | ||
| "matches", | ||
| "matches_host", | ||
| "matches_path", | ||
| "range", | ||
| // Array | ||
| "values_in", | ||
| // Other | ||
| "exists", | ||
| "keys_in", | ||
| "size" | ||
| ]); | ||
| var ConditionValueSchema = z.union([ | ||
| ScalarSchema, | ||
| z.array(ScalarSchema), | ||
| RangeValueSchema, | ||
| SizeValueSchema, | ||
| z.array(z.string()) | ||
| ]); | ||
| var StatementSchema = z.object({ | ||
| effect: z.enum(["allow", "deny"]), | ||
| permissions: z.array(z.string()).min(1), | ||
| resources: z.array(z.string()).min(1), | ||
| conditions: z.array(ConditionSchema).optional() | ||
| }).strict(); | ||
| var PolicySchema = z.object({ | ||
| version: z.literal(1), | ||
| statements: z.array(StatementSchema) | ||
| }).strict(); | ||
| // src/index.ts | ||
@@ -550,2 +432,2 @@ // src/match.ts | ||
| export { ArrayOperatorSchema, ConditionSchema, ConditionValueSchema, HppDetectedError, OperatorSchema, OtherOperatorSchema, PolicySchema, RangeValueSchema, ScalarOperatorSchema, SizeValueSchema, StatementSchema, buildUrl, createPolicyHttpRequest, doesPolicyRequireBodyInspection, evaluateCondition, evaluateConditions, evaluatePolicy, getValueAtPath, matchGlob, matchResource, matchSegments, parseUrlForPolicyContext }; | ||
| export { HppDetectedError, buildUrl, createPolicyHttpRequest, doesPolicyRequireBodyInspection, evaluateCondition, evaluateConditions, evaluatePolicy, getValueAtPath, matchGlob, matchResource, matchSegments, parseUrlForPolicyContext }; |
+2
-3
| { | ||
| "name": "@zapier/policy", | ||
| "version": "0.1.0", | ||
| "version": "0.3.0", | ||
| "description": "IAM-inspired policy engine for JWT authorization", | ||
@@ -29,6 +29,5 @@ "type": "module", | ||
| "dependencies": { | ||
| "zod": "3.24.1" | ||
| "@zapier/policy-schema": "0.3.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@changesets/cli": "^2.28.0", | ||
| "@types/node": "^22.0.0", | ||
@@ -35,0 +34,0 @@ "prettier": "^3.5.0", |
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
5
-16.67%42611
-59.96%1089
-50.75%+ Added
+ Added
+ Added
- Removed
- Removed