// modules/str.ts
var STR_OPERATORS = {
  "str/len": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "String length",
    hasSideEffects: false,
    returnType: "number",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/len", "hello"] // => 5'
  },
  "str/concat": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 99,
    description: "Concatenate strings together",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "strings", type: "string", description: "Strings to concatenate" }],
    example: '["str/concat", "/users/", "@entity.id"] // => "/users/123"'
  },
  "str/upper": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Convert to uppercase",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/upper", "hello"] // => "HELLO"'
  },
  "str/lower": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Convert to lowercase",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/lower", "HELLO"] // => "hello"'
  },
  "str/trim": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Remove leading and trailing whitespace",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/trim", "  hello  "] // => "hello"'
  },
  "str/trimStart": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Remove leading whitespace",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/trimStart", "  hello"] // => "hello"'
  },
  "str/trimEnd": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Remove trailing whitespace",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/trimEnd", "hello  "] // => "hello"'
  },
  "str/split": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 2,
    description: "Split string into array by delimiter",
    hasSideEffects: false,
    returnType: "array",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "delim", type: "string", description: "Delimiter" }
    ],
    example: '["str/split", "a,b,c", ","] // => ["a", "b", "c"]'
  },
  "str/join": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 2,
    description: "Join array elements into string",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "arr", type: "array", description: "Array to join" },
      { name: "delim", type: "string", description: "Delimiter" }
    ],
    example: '["str/join", ["a", "b", "c"], ", "] // => "a, b, c"'
  },
  "str/slice": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 3,
    description: "Extract substring",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "start", type: "number", description: "Start index" },
      { name: "end", type: "number", description: "End index (exclusive)", optional: true }
    ],
    example: '["str/slice", "hello", 1, 4] // => "ell"'
  },
  "str/replace": {
    module: "str",
    category: "std-str",
    minArity: 3,
    maxArity: 3,
    description: "Replace first occurrence",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "find", type: "string", description: "String to find" },
      { name: "replace", type: "string", description: "Replacement" }
    ],
    example: '["str/replace", "hello world", "world", "there"] // => "hello there"'
  },
  "str/replaceAll": {
    module: "str",
    category: "std-str",
    minArity: 3,
    maxArity: 3,
    description: "Replace all occurrences",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "find", type: "string", description: "String to find" },
      { name: "replace", type: "string", description: "Replacement" }
    ],
    example: '["str/replaceAll", "a-b-c", "-", "_"] // => "a_b_c"'
  },
  "str/includes": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 2,
    description: "Check if string contains substring",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "search", type: "string", description: "Substring to find" }
    ],
    example: '["str/includes", "hello world", "world"] // => true'
  },
  "str/startsWith": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 2,
    description: "Check if string starts with prefix",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "prefix", type: "string", description: "Prefix to check" }
    ],
    example: '["str/startsWith", "hello", "hel"] // => true'
  },
  "str/endsWith": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 2,
    description: "Check if string ends with suffix",
    hasSideEffects: false,
    returnType: "boolean",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "suffix", type: "string", description: "Suffix to check" }
    ],
    example: '["str/endsWith", "hello", "lo"] // => true'
  },
  "str/padStart": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 3,
    description: "Pad string from start to target length",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "len", type: "number", description: "Target length" },
      { name: "char", type: "string", description: "Padding character", optional: true, defaultValue: " " }
    ],
    example: '["str/padStart", "5", 3, "0"] // => "005"'
  },
  "str/padEnd": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 3,
    description: "Pad string from end to target length",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "len", type: "number", description: "Target length" },
      { name: "char", type: "string", description: "Padding character", optional: true, defaultValue: " " }
    ],
    example: '["str/padEnd", "5", 3, "0"] // => "500"'
  },
  "str/repeat": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 2,
    description: "Repeat string n times",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "count", type: "number", description: "Repeat count" }
    ],
    example: '["str/repeat", "ab", 3] // => "ababab"'
  },
  "str/reverse": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Reverse string",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/reverse", "hello"] // => "olleh"'
  },
  "str/capitalize": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Capitalize first character",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/capitalize", "hello"] // => "Hello"'
  },
  "str/titleCase": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Convert to Title Case",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/titleCase", "hello world"] // => "Hello World"'
  },
  "str/camelCase": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Convert to camelCase",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/camelCase", "hello world"] // => "helloWorld"'
  },
  "str/kebabCase": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Convert to kebab-case",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/kebabCase", "Hello World"] // => "hello-world"'
  },
  "str/snakeCase": {
    module: "str",
    category: "std-str",
    minArity: 1,
    maxArity: 1,
    description: "Convert to snake_case",
    hasSideEffects: false,
    returnType: "string",
    params: [{ name: "s", type: "string", description: "The string" }],
    example: '["str/snakeCase", "Hello World"] // => "hello_world"'
  },
  "str/default": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 2,
    description: "Return default if value is null/undefined/empty",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "s", type: "string | null", description: "The value" },
      { name: "default", type: "string", description: "Default value" }
    ],
    example: '["str/default", null, "N/A"] // => "N/A"'
  },
  "str/template": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 2,
    description: "Variable substitution in template string",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "template", type: "string", description: "Template with {placeholders}" },
      { name: "vars", type: "object", description: "Variables to substitute" }
    ],
    example: '["str/template", "Hello, {name}!", {"name": "World"}] // => "Hello, World!"'
  },
  "str/truncate": {
    module: "str",
    category: "std-str",
    minArity: 2,
    maxArity: 3,
    description: "Truncate string with optional suffix",
    hasSideEffects: false,
    returnType: "string",
    params: [
      { name: "s", type: "string", description: "The string" },
      { name: "len", type: "number", description: "Maximum length" },
      { name: "suffix", type: "string", description: "Suffix for truncated strings", optional: true, defaultValue: "..." }
    ],
    example: '["str/truncate", "Hello World", 8, "..."] // => "Hello..."'
  }
};
function getStrOperators() {
  return Object.keys(STR_OPERATORS);
}

export { STR_OPERATORS, getStrOperators };
//# sourceMappingURL=str.js.map
//# sourceMappingURL=str.js.map