group: utils type: process entries: # throw - name: throw.Forbidden desc: Throw a 403 Forbidden exception args: - name: message type: string required: false desc: "Error message (default: \"Access denied\")" return: type: void desc: Does not return; throws exception - name: throw.Unauthorized desc: Throw a 401 Unauthorized exception args: - name: message type: string required: false desc: "Error message (default: \"Authentication required\")" return: type: void desc: Does not return; throws exception - name: throw.NotFound desc: Throw a 404 Not Found exception args: - name: message type: string required: false desc: "Error message (default: \"Resource not found\")" return: type: void desc: Does not return; throws exception - name: throw.BadRequest desc: Throw a 400 Bad Request exception args: - name: message type: string required: false desc: "Error message (default: \"Bad Request\")" return: type: void desc: Does not return; throws exception - name: throw.InternalError desc: Throw a 500 Internal Server Error exception args: - name: message type: string required: false desc: "Error message (default: \"Internal Error\")" return: type: void desc: Does not return; throws exception - name: throw.Exception desc: Throw a custom exception with specified message and HTTP status code args: - name: message type: string required: true desc: Error message - name: code type: number required: true desc: HTTP status code return: type: void desc: Does not return; throws exception # fmt - name: fmt.Printf desc: Print formatted output to stdout args: - name: format type: string required: true desc: Format string (Go fmt style) - name: args type: any required: false desc: Values to format (variadic) return: type: "null" desc: Returns null - name: fmt.ColorPrintf desc: Print colored formatted output to stdout args: - name: color type: string required: true desc: "Color name: red, green, yellow, blue, magenta, cyan, white, black, hired, higreen, etc." - name: format type: string required: true desc: Format string (Go fmt style) - name: args type: any required: false desc: Values to format (variadic) return: type: "null" desc: Returns null # str - name: str.Join desc: Join array elements into a string with a separator args: - name: array type: array required: true desc: Array of values to join - name: separator type: string required: true desc: Separator string return: type: string desc: Joined string - name: str.JoinPath desc: Join path segments into a file path args: - name: paths type: string required: true desc: Path segments to join (variadic, minimum 2 segments required) return: type: string desc: Joined file path - name: str.UUID desc: Generate a new UUID v4 string args: [] return: type: string desc: UUID string (e.g. "550e8400-e29b-41d4-a716-446655440000") - name: str.Pinyin desc: Convert Chinese characters to Pinyin args: - name: text type: string required: true desc: Chinese text to convert - name: options type: object required: false desc: "Options: {tone: bool|\"mark\"|\"number\"|\"none\", heteronym: bool, separator: string}" return: type: string desc: Pinyin string # tree - name: tree.Flatten desc: Flatten a tree structure into a flat array args: - name: array type: array required: true desc: Tree-structured array to flatten - name: options type: object required: false desc: "Options: {primary: \"id\", children: \"children\", parent: \"parent\"}" return: type: array desc: Flat array with parent references # now / time - name: now.Time desc: Get the current time as a string args: [] return: type: string desc: "Current time in HH:MM:SS format (e.g. \"15:04:05\")" - name: now.Date desc: Get the current date as a string args: [] return: type: string desc: "Current date in YYYY-MM-DD format (e.g. \"2006-01-02\")" - name: now.DateTime desc: Get the current date and time as a string args: [] return: type: string desc: "Current datetime in YYYY-MM-DD HH:MM:SS format" - name: now.Timestamp desc: Get the current Unix timestamp in seconds args: [] return: type: number desc: Unix timestamp in seconds - name: now.Timestampms desc: Get the current Unix timestamp in milliseconds args: [] return: type: number desc: Unix timestamp in milliseconds # url - name: url.ParseQuery desc: Parse a URL query string into key-value pairs args: - name: queryString type: string required: true desc: "URL query string (e.g. \"key1=val1&key2=val2\")" return: type: object desc: Parsed query parameters as map of string to string array - name: url.QueryParam desc: Convert URL values or map to QueryParam object args: - name: values type: any required: true desc: "URL values: url.Values, map[string][]string, or map[string]interface{}" return: type: object desc: QueryParam object - name: url.ParseURL desc: Parse a URL string into its components args: - name: url type: string required: true desc: URL string to parse return: type: object desc: "Parsed URL with scheme, host, domain, path, port, query, and url fields" # json - name: json.Validate desc: "[Warning: under development] Validate JSON data against rules" args: - name: data type: object required: true desc: JSON data to validate - name: rules type: array required: true desc: "Validation rules (e.g. [{\"haskey\": \"fieldName\"}])" return: type: bool desc: True if validation passes, false otherwise # jsonschema - name: jsonschema.ValidateSchema desc: Validate a JSON Schema structure args: - name: schema type: any required: true desc: "JSON Schema to validate (map, string, or bytes)" return: type: any desc: "Null if valid, error message string if invalid" - name: jsonschema.Validate desc: Validate data against a JSON Schema args: - name: schema type: any required: true desc: "JSON Schema (map, string, or bytes)" - name: data type: any required: true desc: Data to validate against the schema return: type: any desc: "Null if valid, error message string if invalid" # captcha (0.10.5+) - name: captcha.Generate desc: Generate a captcha image/audio with customizable options args: - name: options type: object required: true desc: "Options: {width, height, length, type, lang, background}" return: type: object desc: "Object with id and content (base64 image/audio)" - name: captcha.Validate desc: Validate a captcha code args: - name: id type: string required: true desc: Captcha ID returned by Generate - name: code type: string required: true desc: User-entered captcha code return: type: bool desc: True if valid; throws exception if invalid - name: captcha.Get desc: Get the captcha code by ID (for testing purposes) args: - name: id type: string required: true desc: Captcha ID return: type: string desc: The captcha answer code # otp (0.10.5+) - name: otp.Generate desc: Generate a one-time password (OTP) code args: - name: options type: object required: true desc: "Options: {length: number, expiration: number (seconds), type: string}" return: type: object desc: "Object with id and code" - name: otp.Validate desc: Validate a one-time password (OTP) code args: - name: id type: string required: true desc: OTP ID returned by Generate - name: code type: string required: true desc: OTP code to validate - name: clear type: bool required: false desc: "Whether to clear the OTP after validation (default: true)" return: type: bool desc: True if valid; throws exception if invalid or expired - name: otp.Get desc: Get the OTP code by ID (for testing purposes) args: - name: id type: string required: true desc: OTP ID return: type: string desc: The OTP code - name: otp.Delete desc: Delete an OTP code by ID args: - name: id type: string required: true desc: OTP ID to delete return: type: "null" desc: Returns null