mirror of
https://github.com/larksuite/cli.git
synced 2026-08-03 08:32:46 +08:00
An unknown --format now fails with a typed ValidationError instead of printing a stderr warning and silently degrading to JSON, and unfulfillable combinations are rejected at the flag boundary rather than dropped silently. - Add FormatPretty to the Format enum and ParseFormatStrict, which returns a typed validation error (param --format) for any unrecognized format. - EmitOptions.Format / StreamOptions.Format / Emitter.streamFormat are now the typed output.Format; the upstream .String() -> ParseFormat round-trip and the Emitter's internal unknown-format fallback (printLegacyDataJSON) are removed. - Strict parsing runs at the api, service, and shortcut boundaries, before the dry-run branch so both dry-run and emit reject an unknown format. The strict contract applies only to the framework-injected --format; a shortcut that declares its own format flag (base +record-* markdown|json, mail +watch json|data) keeps its own enum, validated by validateEnumFlags. - The raw api/service commands reject --format pretty on the emit path (no response pretty renderer) while preserving the dry-run plain-text preview; the check runs before confirmation and client init. - ValidateJqFlags classifies the format via ParseFormat so --jq's JSON-only check is case-insensitive and single-sourced: --format JSON --jq no longer mis-rejects, while any non-JSON value (including a shortcut's markdown/data) still conflicts with --jq. BREAKING CHANGE: an unknown --format value (e.g. a typo like `--format tabel`) is now a typed validation error with a non-zero exit code instead of a stderr warning plus JSON output. Scripts that relied on the unknown-format JSON fallback must pass a valid format (json, ndjson, table, csv, or pretty).