// modules/validate.ts
var VALIDATE_OPERATORS = {
  "validate/required": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is not null, undefined, or empty string",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "any", description: "Value to check" }],
    example: '["validate/required", "@payload.name"]'
  },
  "validate/string": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is a string",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "any", description: "Value to check" }],
    example: '["validate/string", "@payload.name"]'
  },
  "validate/number": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is a number",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "any", description: "Value to check" }],
    example: '["validate/number", "@payload.age"]'
  },
  "validate/boolean": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is a boolean",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "any", description: "Value to check" }],
    example: '["validate/boolean", "@payload.active"]'
  },
  "validate/array": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is an array",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "any", description: "Value to check" }],
    example: '["validate/array", "@payload.items"]'
  },
  "validate/object": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is an object",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "any", description: "Value to check" }],
    example: '["validate/object", "@payload.data"]'
  },
  "validate/email": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is a valid email format",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "string", description: "Email to validate" }],
    example: '["validate/email", "@payload.email"]'
  },
  "validate/url": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is a valid URL format",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "string", description: "URL to validate" }],
    example: '["validate/url", "@payload.website"]'
  },
  "validate/uuid": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is a valid UUID",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "string", description: "UUID to validate" }],
    example: '["validate/uuid", "@payload.id"]'
  },
  "validate/phone": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is a valid phone number",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "string", description: "Phone number to validate" }],
    example: '["validate/phone", "@payload.phone"]'
  },
  "validate/creditCard": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is a valid credit card number (Luhn algorithm)",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "string", description: "Card number to validate" }],
    example: '["validate/creditCard", "@payload.cardNumber"]'
  },
  "validate/date": {
    module: "validate",
    category: "std-validate",
    minArity: 1,
    maxArity: 1,
    description: "Check if value is a valid date",
    hasSideEffects: false,
    returnType: "boolean",
    params: [{ name: "value", type: "any", description: "Value to check" }],
    example: '["validate/date", "@payload.birthDate"]'
  },
  "validate/minLength": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Check if string/array has minimum length",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "value", type: "string | array", description: "Value to check" },
      { name: "min", type: "number", description: "Minimum length" }
    ],
    example: '["validate/minLength", "@payload.password", 8]'
  },
  "validate/maxLength": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Check if string/array has maximum length",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "value", type: "string | array", description: "Value to check" },
      { name: "max", type: "number", description: "Maximum length" }
    ],
    example: '["validate/maxLength", "@payload.name", 50]'
  },
  "validate/length": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Check if string/array has exact length",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "value", type: "string | array", description: "Value to check" },
      { name: "exact", type: "number", description: "Required length" }
    ],
    example: '["validate/length", "@payload.code", 6]'
  },
  "validate/min": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Check if number is >= minimum",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "value", type: "number", description: "Number to check" },
      { name: "min", type: "number", description: "Minimum value" }
    ],
    example: '["validate/min", "@payload.age", 18]'
  },
  "validate/max": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Check if number is <= maximum",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "value", type: "number", description: "Number to check" },
      { name: "max", type: "number", description: "Maximum value" }
    ],
    example: '["validate/max", "@payload.quantity", 100]'
  },
  "validate/range": {
    module: "validate",
    category: "std-validate",
    minArity: 3,
    maxArity: 3,
    description: "Check if number is within range [min, max]",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "value", type: "number", description: "Number to check" },
      { name: "min", type: "number", description: "Minimum value" },
      { name: "max", type: "number", description: "Maximum value" }
    ],
    example: '["validate/range", "@payload.rating", 1, 5]'
  },
  "validate/pattern": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Check if string matches regex pattern",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "value", type: "string", description: "String to check" },
      { name: "regex", type: "string", description: "Regex pattern" }
    ],
    example: '["validate/pattern", "@payload.code", "^[A-Z]{3}[0-9]{3}$"]'
  },
  "validate/oneOf": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Check if value is in list of allowed values",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "value", type: "any", description: "Value to check" },
      { name: "options", type: "array", description: "Allowed values" }
    ],
    example: '["validate/oneOf", "@payload.role", ["admin", "user", "guest"]]'
  },
  "validate/noneOf": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Check if value is not in list of disallowed values",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "value", type: "any", description: "Value to check" },
      { name: "options", type: "array", description: "Disallowed values" }
    ],
    example: '["validate/noneOf", "@payload.username", ["admin", "root", "system"]]'
  },
  "validate/equals": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Deep equality check",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "a", type: "any", description: "First value" },
      { name: "b", type: "any", description: "Second value" }
    ],
    example: '["validate/equals", "@payload.password", "@payload.confirmPassword"]'
  },
  "validate/check": {
    module: "validate",
    category: "std-validate",
    minArity: 2,
    maxArity: 2,
    description: "Run multiple validation rules, return { valid, errors }",
    hasSideEffects: false,
    returnType: "any",
    params: [
      { name: "value", type: "any", description: "Value or object to validate" },
      { name: "rules", type: "object", description: "Validation rules by field" }
    ],
    example: `["validate/check", "@payload.data", {
  "name": [["required"], ["minLength", 2], ["maxLength", 50]],
  "email": [["required"], ["email"]],
  "age": [["number"], ["min", 18]]
}]`
  }
};
function getValidateOperators() {
  return Object.keys(VALIDATE_OPERATORS);
}

export { VALIDATE_OPERATORS, getValidateOperators };
//# sourceMappingURL=validate.js.map
//# sourceMappingURL=validate.js.map