diff --git a/semgrep_output_v1.atd b/semgrep_output_v1.atd index 919f33d7..e9b9a9eb 100644 --- a/semgrep_output_v1.atd +++ b/semgrep_output_v1.atd @@ -1867,7 +1867,8 @@ type core_error = { those different files (because ATD does not have a proper module system yet). *) -type xlang = string wrap +type analyzer = + string wrap (* A target can either be a traditional code target (now with optional associated lockfile) or it can be a lockfile target, which will be used to @@ -1889,10 +1890,10 @@ type target = [ *) type code_target = { path: fpath (* source file *); - (* Must be a valid target analyzer as defined in Xlang.mli. + (* Must be a valid target analyzer as defined in Analyzer.mli. examples: "ocaml", "python", but also "spacegrep" or "regexp". *) - analyzer: xlang; + analyzer: analyzer; products: product list; ?lockfile_target: lockfile option; } diff --git a/semgrep_output_v1.jsonschema b/semgrep_output_v1.jsonschema index ace6318d..2368698e 100644 --- a/semgrep_output_v1.jsonschema +++ b/semgrep_output_v1.jsonschema @@ -1526,7 +1526,7 @@ "rule_id": { "$ref": "#/definitions/rule_id" } } }, - "xlang": { "type": "string" }, + "analyzer": { "type": "string" }, "target": { "oneOf": [ { @@ -1554,7 +1554,7 @@ "required": [ "path", "analyzer", "products" ], "properties": { "path": { "$ref": "#/definitions/fpath" }, - "analyzer": { "$ref": "#/definitions/xlang" }, + "analyzer": { "$ref": "#/definitions/analyzer" }, "products": { "type": "array", "items": { "$ref": "#/definitions/product" } diff --git a/semgrep_output_v1.proto b/semgrep_output_v1.proto index ce65ff5b..e8a7ab5b 100644 --- a/semgrep_output_v1.proto +++ b/semgrep_output_v1.proto @@ -1,6 +1,6 @@ // Generated by jsonschema2protobuf. DO NOT EDIT! // Source file: semgrep_output_v1.jsonschema -// Source file sha256 digest: 18d5eed99a95ef7ab173fc0b5a4b302224b414ffe16b5f33027813a6880c7097 +// Source file sha256 digest: b528a41b8d32b802921305aec117b05bf8623ba75a34ad2d8f12d1711ce89e54 syntax = "proto3"; diff --git a/semgrep_output_v1.py b/semgrep_output_v1.py index 395549e0..8f473d33 100644 --- a/semgrep_output_v1.py +++ b/semgrep_output_v1.py @@ -2169,27 +2169,6 @@ def to_json_string(self, **kw: Any) -> str: return json.dumps(self.to_json(), **kw) -@dataclass -class Xlang: - """Original type: xlang""" - - value: str - - @classmethod - def from_json(cls, x: Any) -> 'Xlang': - return cls(_atd_read_string(x)) - - def to_json(self) -> Any: - return _atd_write_string(self.value) - - @classmethod - def from_json_string(cls, x: str) -> 'Xlang': - return cls.from_json(json.loads(x)) - - def to_json_string(self, **kw: Any) -> str: - return json.dumps(self.to_json(), **kw) - - @dataclass class Version: """Original type: version""" @@ -3461,12 +3440,33 @@ def to_json_string(self, **kw: Any) -> str: return json.dumps(self.to_json(), **kw) +@dataclass +class Analyzer: + """Original type: analyzer""" + + value: str + + @classmethod + def from_json(cls, x: Any) -> 'Analyzer': + return cls(_atd_read_string(x)) + + def to_json(self) -> Any: + return _atd_write_string(self.value) + + @classmethod + def from_json_string(cls, x: str) -> 'Analyzer': + return cls.from_json(json.loads(x)) + + def to_json_string(self, **kw: Any) -> str: + return json.dumps(self.to_json(), **kw) + + @dataclass class CodeTarget: """Original type: code_target = { ... }""" path: Fpath - analyzer: Xlang + analyzer: Analyzer products: List[Product] lockfile_target: Optional[Lockfile] = None @@ -3475,7 +3475,7 @@ def from_json(cls, x: Any) -> 'CodeTarget': if isinstance(x, dict): return cls( path=Fpath.from_json(x['path']) if 'path' in x else _atd_missing_json_field('CodeTarget', 'path'), - analyzer=Xlang.from_json(x['analyzer']) if 'analyzer' in x else _atd_missing_json_field('CodeTarget', 'analyzer'), + analyzer=Analyzer.from_json(x['analyzer']) if 'analyzer' in x else _atd_missing_json_field('CodeTarget', 'analyzer'), products=_atd_read_list(Product.from_json)(x['products']) if 'products' in x else _atd_missing_json_field('CodeTarget', 'products'), lockfile_target=Lockfile.from_json(x['lockfile_target']) if 'lockfile_target' in x else None, ) diff --git a/semgrep_output_v1.ts b/semgrep_output_v1.ts index 7b93cc04..6209cf6b 100644 --- a/semgrep_output_v1.ts +++ b/semgrep_output_v1.ts @@ -838,7 +838,7 @@ export type CoreError = { rule_id?: RuleId; } -export type Xlang = string +export type Analyzer = string export type Target = | { kind: 'CodeTarget'; value: CodeTarget } @@ -846,7 +846,7 @@ export type Target = export type CodeTarget = { path: Fpath; - analyzer: Xlang; + analyzer: Analyzer; products: Product[]; lockfile_target?: Lockfile; } @@ -3544,11 +3544,11 @@ export function readCoreError(x: any, context: any = x): CoreError { }; } -export function writeXlang(x: Xlang, context: any = x): any { +export function writeAnalyzer(x: Analyzer, context: any = x): any { return _atd_write_string(x, context); } -export function readXlang(x: any, context: any = x): Xlang { +export function readAnalyzer(x: any, context: any = x): Analyzer { return _atd_read_string(x, context); } @@ -3577,7 +3577,7 @@ export function readTarget(x: any, context: any = x): Target { export function writeCodeTarget(x: CodeTarget, context: any = x): any { return { 'path': _atd_write_required_field('CodeTarget', 'path', writeFpath, x.path, x), - 'analyzer': _atd_write_required_field('CodeTarget', 'analyzer', writeXlang, x.analyzer, x), + 'analyzer': _atd_write_required_field('CodeTarget', 'analyzer', writeAnalyzer, x.analyzer, x), 'products': _atd_write_required_field('CodeTarget', 'products', _atd_write_array(writeProduct), x.products, x), 'lockfile_target': _atd_write_optional_field(writeLockfile, x.lockfile_target, x), }; @@ -3586,7 +3586,7 @@ export function writeCodeTarget(x: CodeTarget, context: any = x): any { export function readCodeTarget(x: any, context: any = x): CodeTarget { return { path: _atd_read_required_field('CodeTarget', 'path', readFpath, x['path'], x), - analyzer: _atd_read_required_field('CodeTarget', 'analyzer', readXlang, x['analyzer'], x), + analyzer: _atd_read_required_field('CodeTarget', 'analyzer', readAnalyzer, x['analyzer'], x), products: _atd_read_required_field('CodeTarget', 'products', _atd_read_array(readProduct), x['products'], x), lockfile_target: _atd_read_optional_field(readLockfile, x['lockfile_target'], x), }; diff --git a/semgrep_output_v1_j.ml b/semgrep_output_v1_j.ml index 79b61ccc..ed759d3d 100644 --- a/semgrep_output_v1_j.ml +++ b/semgrep_output_v1_j.ml @@ -177,8 +177,6 @@ type matching_explanation = Semgrep_output_v1_t.matching_explanation = { extra: matching_explanation_extra option } -type xlang = Semgrep_output_v1_t.xlang [@@deriving show] - type version = Semgrep_output_v1_t.version [@@deriving show] type uuid = Semgrep_output_v1_t.uuid @@ -276,9 +274,11 @@ type lockfile = Semgrep_output_v1_t.lockfile = { } [@@deriving show, eq] +type analyzer = Semgrep_output_v1_t.analyzer [@@deriving show] + type code_target = Semgrep_output_v1_t.code_target = { path: fpath; - analyzer: xlang; + analyzer: analyzer; products: product list; lockfile_target: lockfile option } @@ -7428,37 +7428,6 @@ and read_matching_explanation = ( ) and matching_explanation_of_string s = read_matching_explanation (Yojson.Safe.init_lexer ()) (Lexing.from_string s) -let write__x_893d00a = ( - fun ob x -> ( - let x = ( Xlang.unwrap ) x in ( - Yojson.Safe.write_string - ) ob x) -) -let string_of__x_893d00a ?(len = 1024) x = - let ob = Buffer.create len in - write__x_893d00a ob x; - Buffer.contents ob -let read__x_893d00a = ( - fun p lb -> - let x = ( - Atdgen_runtime.Oj_run.read_string - ) p lb in - ( Xlang.wrap ) x -) -let _x_893d00a_of_string s = - read__x_893d00a (Yojson.Safe.init_lexer ()) (Lexing.from_string s) -let write_xlang = ( - write__x_893d00a -) -let string_of_xlang ?(len = 1024) x = - let ob = Buffer.create len in - write_xlang ob x; - Buffer.contents ob -let read_xlang = ( - read__x_893d00a -) -let xlang_of_string s = - read_xlang (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write_version = ( Yojson.Safe.write_string ) @@ -10532,6 +10501,37 @@ let read_lockfile = ( ) let lockfile_of_string s = read_lockfile (Yojson.Safe.init_lexer ()) (Lexing.from_string s) +let write__x_7982d5d = ( + fun ob x -> ( + let x = ( Analyzer.unwrap ) x in ( + Yojson.Safe.write_string + ) ob x) +) +let string_of__x_7982d5d ?(len = 1024) x = + let ob = Buffer.create len in + write__x_7982d5d ob x; + Buffer.contents ob +let read__x_7982d5d = ( + fun p lb -> + let x = ( + Atdgen_runtime.Oj_run.read_string + ) p lb in + ( Analyzer.wrap ) x +) +let _x_7982d5d_of_string s = + read__x_7982d5d (Yojson.Safe.init_lexer ()) (Lexing.from_string s) +let write_analyzer = ( + write__x_7982d5d +) +let string_of_analyzer ?(len = 1024) x = + let ob = Buffer.create len in + write_analyzer ob x; + Buffer.contents ob +let read_analyzer = ( + read__x_7982d5d +) +let analyzer_of_string s = + read_analyzer (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write__product_list = ( Atdgen_runtime.Oj_run.write_list ( write_product @@ -10624,7 +10624,7 @@ let write_code_target : _ -> code_target -> _ = ( Buffer.add_char ob ','; Buffer.add_string ob "\"analyzer\":"; ( - write_xlang + write_analyzer ) ob x.analyzer; if !is_first then @@ -10728,7 +10728,7 @@ let read_code_target = ( field_analyzer := ( Some ( ( - read_xlang + read_analyzer ) p lb ) ); @@ -10821,7 +10821,7 @@ let read_code_target = ( field_analyzer := ( Some ( ( - read_xlang + read_analyzer ) p lb ) ); diff --git a/semgrep_output_v1_j.mli b/semgrep_output_v1_j.mli index 2b5c422c..92a24406 100644 --- a/semgrep_output_v1_j.mli +++ b/semgrep_output_v1_j.mli @@ -177,8 +177,6 @@ type matching_explanation = Semgrep_output_v1_t.matching_explanation = { extra: matching_explanation_extra option } -type xlang = Semgrep_output_v1_t.xlang [@@deriving show] - type version = Semgrep_output_v1_t.version [@@deriving show] type uuid = Semgrep_output_v1_t.uuid @@ -276,9 +274,11 @@ type lockfile = Semgrep_output_v1_t.lockfile = { } [@@deriving show, eq] +type analyzer = Semgrep_output_v1_t.analyzer [@@deriving show] + type code_target = Semgrep_output_v1_t.code_target = { path: fpath; - analyzer: xlang; + analyzer: analyzer; products: product list; lockfile_target: lockfile option } @@ -1510,26 +1510,6 @@ val matching_explanation_of_string : string -> matching_explanation (** Deserialize JSON data of type {!type:matching_explanation}. *) -val write_xlang : - Buffer.t -> xlang -> unit - (** Output a JSON value of type {!type:xlang}. *) - -val string_of_xlang : - ?len:int -> xlang -> string - (** Serialize a value of type {!type:xlang} - into a JSON string. - @param len specifies the initial length - of the buffer used internally. - Default: 1024. *) - -val read_xlang : - Yojson.Safe.lexer_state -> Lexing.lexbuf -> xlang - (** Input JSON data of type {!type:xlang}. *) - -val xlang_of_string : - string -> xlang - (** Deserialize JSON data of type {!type:xlang}. *) - val write_version : Buffer.t -> version -> unit (** Output a JSON value of type {!type:version}. *) @@ -1990,6 +1970,26 @@ val lockfile_of_string : string -> lockfile (** Deserialize JSON data of type {!type:lockfile}. *) +val write_analyzer : + Buffer.t -> analyzer -> unit + (** Output a JSON value of type {!type:analyzer}. *) + +val string_of_analyzer : + ?len:int -> analyzer -> string + (** Serialize a value of type {!type:analyzer} + into a JSON string. + @param len specifies the initial length + of the buffer used internally. + Default: 1024. *) + +val read_analyzer : + Yojson.Safe.lexer_state -> Lexing.lexbuf -> analyzer + (** Input JSON data of type {!type:analyzer}. *) + +val analyzer_of_string : + string -> analyzer + (** Deserialize JSON data of type {!type:analyzer}. *) + val write_code_target : Buffer.t -> code_target -> unit (** Output a JSON value of type {!type:code_target}. *)