From a09fcc196b482a0271bda0b3d40580a6a503b49c Mon Sep 17 00:00:00 2001 From: sandeep <8293321+ehsandeep@users.noreply.github.com> Date: Thu, 21 Nov 2024 18:16:12 +0530 Subject: [PATCH] auto gen docs update --- SYNTAX-REFERENCE.md | 66 ++++++++++++ nuclei-jsonschema.json | 21 ++++ pkg/templates/templates_doc.go | 179 +++++++++++++++++++-------------- 3 files changed, 192 insertions(+), 74 deletions(-) diff --git a/SYNTAX-REFERENCE.md b/SYNTAX-REFERENCE.md index 6d1d9effc4..24cbd04d38 100755 --- a/SYNTAX-REFERENCE.md +++ b/SYNTAX-REFERENCE.md @@ -1373,6 +1373,19 @@ Fuzzing describes schema to fuzz http requests
+analyzer analyzers.AnalyzerTemplate + +
+
+ +Analyzer is an analyzer to use for matching the response. + +
+ +
+ +
+ self-contained bool
@@ -2025,6 +2038,59 @@ Appears in: +## analyzers.AnalyzerTemplate +AnalyzerTemplate is the template for the analyzer + +Appears in: + + +- http.Request.analyzer + + + + + +
+ +
+ +name string + +
+
+ +Name is the name of the analyzer to use + + +Valid values: + + + - time_delay +
+ +
+ +
+ +parameters map[string]interface{} + +
+
+ +Parameters is the parameters for the analyzer + +Parameters are different for each analyzer. For example, you can customize +time_delay analyzer with sleep_duration, time_slope_error_range, etc. Refer +to the docs for each analyzer to get an idea about parameters. + +
+ +
+ + + + + ## SignatureTypeHolder SignatureTypeHolder is used to hold internal type of the signature diff --git a/nuclei-jsonschema.json b/nuclei-jsonschema.json index 97477e1f7e..ca1164ccb6 100644 --- a/nuclei-jsonschema.json +++ b/nuclei-jsonschema.json @@ -3,6 +3,22 @@ "$id": "https://templates.-template", "$ref": "#/$defs/templates.Template", "$defs": { + "analyzers.AnalyzerTemplate": { + "properties": { + "name": { + "type": "string" + }, + "parameters": { + "$ref": "#/$defs/map[string]interface {}" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "parameters" + ] + }, "code.Request": { "properties": { "matchers": { @@ -785,6 +801,11 @@ "title": "fuzzin rules for http fuzzing", "description": "Fuzzing describes rule schema to fuzz http requests" }, + "analyzer": { + "$ref": "#/$defs/analyzers.AnalyzerTemplate", + "title": "analyzer for http request", + "description": "Analyzer for HTTP Request" + }, "self-contained": { "type": "boolean" }, diff --git a/pkg/templates/templates_doc.go b/pkg/templates/templates_doc.go index 9bf754e24c..c6b2186ef8 100644 --- a/pkg/templates/templates_doc.go +++ b/pkg/templates/templates_doc.go @@ -20,6 +20,7 @@ var ( HTTPMethodTypeHolderDoc encoder.Doc FUZZRuleDoc encoder.Doc SliceOrMapSliceDoc encoder.Doc + ANALYZERSAnalyzerTemplateDoc encoder.Doc SignatureTypeHolderDoc encoder.Doc MATCHERSMatcherDoc encoder.Doc MatcherTypeHolderDoc encoder.Doc @@ -459,7 +460,7 @@ func init() { Value: "HTTP response headers in name:value format", }, } - HTTPRequestDoc.Fields = make([]encoder.Doc, 37) + HTTPRequestDoc.Fields = make([]encoder.Doc, 38) HTTPRequestDoc.Fields[0].Name = "path" HTTPRequestDoc.Fields[0].Type = "[]string" HTTPRequestDoc.Fields[0].Note = "" @@ -565,114 +566,119 @@ func init() { HTTPRequestDoc.Fields[15].Note = "" HTTPRequestDoc.Fields[15].Description = "Fuzzing describes schema to fuzz http requests" HTTPRequestDoc.Fields[15].Comments[encoder.LineComment] = " Fuzzing describes schema to fuzz http requests" - HTTPRequestDoc.Fields[16].Name = "self-contained" - HTTPRequestDoc.Fields[16].Type = "bool" + HTTPRequestDoc.Fields[16].Name = "analyzer" + HTTPRequestDoc.Fields[16].Type = "analyzers.AnalyzerTemplate" HTTPRequestDoc.Fields[16].Note = "" - HTTPRequestDoc.Fields[16].Description = "SelfContained specifies if the request is self-contained." - HTTPRequestDoc.Fields[16].Comments[encoder.LineComment] = "SelfContained specifies if the request is self-contained." - HTTPRequestDoc.Fields[17].Name = "signature" - HTTPRequestDoc.Fields[17].Type = "SignatureTypeHolder" + HTTPRequestDoc.Fields[16].Description = "Analyzer is an analyzer to use for matching the response." + HTTPRequestDoc.Fields[16].Comments[encoder.LineComment] = "Analyzer is an analyzer to use for matching the response." + HTTPRequestDoc.Fields[17].Name = "self-contained" + HTTPRequestDoc.Fields[17].Type = "bool" HTTPRequestDoc.Fields[17].Note = "" - HTTPRequestDoc.Fields[17].Description = "Signature is the request signature method" - HTTPRequestDoc.Fields[17].Comments[encoder.LineComment] = "Signature is the request signature method" - HTTPRequestDoc.Fields[17].Values = []string{ + HTTPRequestDoc.Fields[17].Description = "SelfContained specifies if the request is self-contained." + HTTPRequestDoc.Fields[17].Comments[encoder.LineComment] = "SelfContained specifies if the request is self-contained." + HTTPRequestDoc.Fields[18].Name = "signature" + HTTPRequestDoc.Fields[18].Type = "SignatureTypeHolder" + HTTPRequestDoc.Fields[18].Note = "" + HTTPRequestDoc.Fields[18].Description = "Signature is the request signature method" + HTTPRequestDoc.Fields[18].Comments[encoder.LineComment] = "Signature is the request signature method" + HTTPRequestDoc.Fields[18].Values = []string{ "AWS", } - HTTPRequestDoc.Fields[18].Name = "skip-secret-file" - HTTPRequestDoc.Fields[18].Type = "bool" - HTTPRequestDoc.Fields[18].Note = "" - HTTPRequestDoc.Fields[18].Description = "SkipSecretFile skips the authentication or authorization configured in the secret file." - HTTPRequestDoc.Fields[18].Comments[encoder.LineComment] = "SkipSecretFile skips the authentication or authorization configured in the secret file." - HTTPRequestDoc.Fields[19].Name = "cookie-reuse" + HTTPRequestDoc.Fields[19].Name = "skip-secret-file" HTTPRequestDoc.Fields[19].Type = "bool" HTTPRequestDoc.Fields[19].Note = "" - HTTPRequestDoc.Fields[19].Description = "CookieReuse is an optional setting that enables cookie reuse for\nall requests defined in raw section." - HTTPRequestDoc.Fields[19].Comments[encoder.LineComment] = "CookieReuse is an optional setting that enables cookie reuse for" - HTTPRequestDoc.Fields[20].Name = "disable-cookie" + HTTPRequestDoc.Fields[19].Description = "SkipSecretFile skips the authentication or authorization configured in the secret file." + HTTPRequestDoc.Fields[19].Comments[encoder.LineComment] = "SkipSecretFile skips the authentication or authorization configured in the secret file." + HTTPRequestDoc.Fields[20].Name = "cookie-reuse" HTTPRequestDoc.Fields[20].Type = "bool" HTTPRequestDoc.Fields[20].Note = "" - HTTPRequestDoc.Fields[20].Description = "DisableCookie is an optional setting that disables cookie reuse" - HTTPRequestDoc.Fields[20].Comments[encoder.LineComment] = "DisableCookie is an optional setting that disables cookie reuse" - HTTPRequestDoc.Fields[21].Name = "read-all" + HTTPRequestDoc.Fields[20].Description = "CookieReuse is an optional setting that enables cookie reuse for\nall requests defined in raw section." + HTTPRequestDoc.Fields[20].Comments[encoder.LineComment] = "CookieReuse is an optional setting that enables cookie reuse for" + HTTPRequestDoc.Fields[21].Name = "disable-cookie" HTTPRequestDoc.Fields[21].Type = "bool" HTTPRequestDoc.Fields[21].Note = "" - HTTPRequestDoc.Fields[21].Description = "Enables force reading of the entire raw unsafe request body ignoring\nany specified content length headers." - HTTPRequestDoc.Fields[21].Comments[encoder.LineComment] = "Enables force reading of the entire raw unsafe request body ignoring" - HTTPRequestDoc.Fields[22].Name = "redirects" + HTTPRequestDoc.Fields[21].Description = "DisableCookie is an optional setting that disables cookie reuse" + HTTPRequestDoc.Fields[21].Comments[encoder.LineComment] = "DisableCookie is an optional setting that disables cookie reuse" + HTTPRequestDoc.Fields[22].Name = "read-all" HTTPRequestDoc.Fields[22].Type = "bool" HTTPRequestDoc.Fields[22].Note = "" - HTTPRequestDoc.Fields[22].Description = "Redirects specifies whether redirects should be followed by the HTTP Client.\n\nThis can be used in conjunction with `max-redirects` to control the HTTP request redirects." - HTTPRequestDoc.Fields[22].Comments[encoder.LineComment] = "Redirects specifies whether redirects should be followed by the HTTP Client." - HTTPRequestDoc.Fields[23].Name = "host-redirects" + HTTPRequestDoc.Fields[22].Description = "Enables force reading of the entire raw unsafe request body ignoring\nany specified content length headers." + HTTPRequestDoc.Fields[22].Comments[encoder.LineComment] = "Enables force reading of the entire raw unsafe request body ignoring" + HTTPRequestDoc.Fields[23].Name = "redirects" HTTPRequestDoc.Fields[23].Type = "bool" HTTPRequestDoc.Fields[23].Note = "" - HTTPRequestDoc.Fields[23].Description = "Redirects specifies whether only redirects to the same host should be followed by the HTTP Client.\n\nThis can be used in conjunction with `max-redirects` to control the HTTP request redirects." - HTTPRequestDoc.Fields[23].Comments[encoder.LineComment] = "Redirects specifies whether only redirects to the same host should be followed by the HTTP Client." - HTTPRequestDoc.Fields[24].Name = "pipeline" + HTTPRequestDoc.Fields[23].Description = "Redirects specifies whether redirects should be followed by the HTTP Client.\n\nThis can be used in conjunction with `max-redirects` to control the HTTP request redirects." + HTTPRequestDoc.Fields[23].Comments[encoder.LineComment] = "Redirects specifies whether redirects should be followed by the HTTP Client." + HTTPRequestDoc.Fields[24].Name = "host-redirects" HTTPRequestDoc.Fields[24].Type = "bool" HTTPRequestDoc.Fields[24].Note = "" - HTTPRequestDoc.Fields[24].Description = "Pipeline defines if the attack should be performed with HTTP 1.1 Pipelining\n\nAll requests must be idempotent (GET/POST). This can be used for race conditions/billions requests." - HTTPRequestDoc.Fields[24].Comments[encoder.LineComment] = "Pipeline defines if the attack should be performed with HTTP 1.1 Pipelining" - HTTPRequestDoc.Fields[25].Name = "unsafe" + HTTPRequestDoc.Fields[24].Description = "Redirects specifies whether only redirects to the same host should be followed by the HTTP Client.\n\nThis can be used in conjunction with `max-redirects` to control the HTTP request redirects." + HTTPRequestDoc.Fields[24].Comments[encoder.LineComment] = "Redirects specifies whether only redirects to the same host should be followed by the HTTP Client." + HTTPRequestDoc.Fields[25].Name = "pipeline" HTTPRequestDoc.Fields[25].Type = "bool" HTTPRequestDoc.Fields[25].Note = "" - HTTPRequestDoc.Fields[25].Description = "Unsafe specifies whether to use rawhttp engine for sending Non RFC-Compliant requests.\n\nThis uses the [rawhttp](https://github.com/projectdiscovery/rawhttp) engine to achieve complete\ncontrol over the request, with no normalization performed by the client." - HTTPRequestDoc.Fields[25].Comments[encoder.LineComment] = "Unsafe specifies whether to use rawhttp engine for sending Non RFC-Compliant requests." - HTTPRequestDoc.Fields[26].Name = "race" + HTTPRequestDoc.Fields[25].Description = "Pipeline defines if the attack should be performed with HTTP 1.1 Pipelining\n\nAll requests must be idempotent (GET/POST). This can be used for race conditions/billions requests." + HTTPRequestDoc.Fields[25].Comments[encoder.LineComment] = "Pipeline defines if the attack should be performed with HTTP 1.1 Pipelining" + HTTPRequestDoc.Fields[26].Name = "unsafe" HTTPRequestDoc.Fields[26].Type = "bool" HTTPRequestDoc.Fields[26].Note = "" - HTTPRequestDoc.Fields[26].Description = "Race determines if all the request have to be attempted at the same time (Race Condition)\n\nThe actual number of requests that will be sent is determined by the `race_count` field." - HTTPRequestDoc.Fields[26].Comments[encoder.LineComment] = "Race determines if all the request have to be attempted at the same time (Race Condition)" - HTTPRequestDoc.Fields[27].Name = "req-condition" + HTTPRequestDoc.Fields[26].Description = "Unsafe specifies whether to use rawhttp engine for sending Non RFC-Compliant requests.\n\nThis uses the [rawhttp](https://github.com/projectdiscovery/rawhttp) engine to achieve complete\ncontrol over the request, with no normalization performed by the client." + HTTPRequestDoc.Fields[26].Comments[encoder.LineComment] = "Unsafe specifies whether to use rawhttp engine for sending Non RFC-Compliant requests." + HTTPRequestDoc.Fields[27].Name = "race" HTTPRequestDoc.Fields[27].Type = "bool" HTTPRequestDoc.Fields[27].Note = "" - HTTPRequestDoc.Fields[27].Description = "ReqCondition automatically assigns numbers to requests and preserves their history.\n\nThis allows matching on them later for multi-request conditions." - HTTPRequestDoc.Fields[27].Comments[encoder.LineComment] = "ReqCondition automatically assigns numbers to requests and preserves their history." - HTTPRequestDoc.Fields[28].Name = "stop-at-first-match" + HTTPRequestDoc.Fields[27].Description = "Race determines if all the request have to be attempted at the same time (Race Condition)\n\nThe actual number of requests that will be sent is determined by the `race_count` field." + HTTPRequestDoc.Fields[27].Comments[encoder.LineComment] = "Race determines if all the request have to be attempted at the same time (Race Condition)" + HTTPRequestDoc.Fields[28].Name = "req-condition" HTTPRequestDoc.Fields[28].Type = "bool" HTTPRequestDoc.Fields[28].Note = "" - HTTPRequestDoc.Fields[28].Description = "StopAtFirstMatch stops the execution of the requests and template as soon as a match is found." - HTTPRequestDoc.Fields[28].Comments[encoder.LineComment] = "StopAtFirstMatch stops the execution of the requests and template as soon as a match is found." - HTTPRequestDoc.Fields[29].Name = "skip-variables-check" + HTTPRequestDoc.Fields[28].Description = "ReqCondition automatically assigns numbers to requests and preserves their history.\n\nThis allows matching on them later for multi-request conditions." + HTTPRequestDoc.Fields[28].Comments[encoder.LineComment] = "ReqCondition automatically assigns numbers to requests and preserves their history." + HTTPRequestDoc.Fields[29].Name = "stop-at-first-match" HTTPRequestDoc.Fields[29].Type = "bool" HTTPRequestDoc.Fields[29].Note = "" - HTTPRequestDoc.Fields[29].Description = "SkipVariablesCheck skips the check for unresolved variables in request" - HTTPRequestDoc.Fields[29].Comments[encoder.LineComment] = "SkipVariablesCheck skips the check for unresolved variables in request" - HTTPRequestDoc.Fields[30].Name = "iterate-all" + HTTPRequestDoc.Fields[29].Description = "StopAtFirstMatch stops the execution of the requests and template as soon as a match is found." + HTTPRequestDoc.Fields[29].Comments[encoder.LineComment] = "StopAtFirstMatch stops the execution of the requests and template as soon as a match is found." + HTTPRequestDoc.Fields[30].Name = "skip-variables-check" HTTPRequestDoc.Fields[30].Type = "bool" HTTPRequestDoc.Fields[30].Note = "" - HTTPRequestDoc.Fields[30].Description = "IterateAll iterates all the values extracted from internal extractors" - HTTPRequestDoc.Fields[30].Comments[encoder.LineComment] = "IterateAll iterates all the values extracted from internal extractors" - HTTPRequestDoc.Fields[31].Name = "digest-username" - HTTPRequestDoc.Fields[31].Type = "string" + HTTPRequestDoc.Fields[30].Description = "SkipVariablesCheck skips the check for unresolved variables in request" + HTTPRequestDoc.Fields[30].Comments[encoder.LineComment] = "SkipVariablesCheck skips the check for unresolved variables in request" + HTTPRequestDoc.Fields[31].Name = "iterate-all" + HTTPRequestDoc.Fields[31].Type = "bool" HTTPRequestDoc.Fields[31].Note = "" - HTTPRequestDoc.Fields[31].Description = "DigestAuthUsername specifies the username for digest authentication" - HTTPRequestDoc.Fields[31].Comments[encoder.LineComment] = "DigestAuthUsername specifies the username for digest authentication" - HTTPRequestDoc.Fields[32].Name = "digest-password" + HTTPRequestDoc.Fields[31].Description = "IterateAll iterates all the values extracted from internal extractors" + HTTPRequestDoc.Fields[31].Comments[encoder.LineComment] = "IterateAll iterates all the values extracted from internal extractors" + HTTPRequestDoc.Fields[32].Name = "digest-username" HTTPRequestDoc.Fields[32].Type = "string" HTTPRequestDoc.Fields[32].Note = "" - HTTPRequestDoc.Fields[32].Description = "DigestAuthPassword specifies the password for digest authentication" - HTTPRequestDoc.Fields[32].Comments[encoder.LineComment] = "DigestAuthPassword specifies the password for digest authentication" - HTTPRequestDoc.Fields[33].Name = "disable-path-automerge" - HTTPRequestDoc.Fields[33].Type = "bool" + HTTPRequestDoc.Fields[32].Description = "DigestAuthUsername specifies the username for digest authentication" + HTTPRequestDoc.Fields[32].Comments[encoder.LineComment] = "DigestAuthUsername specifies the username for digest authentication" + HTTPRequestDoc.Fields[33].Name = "digest-password" + HTTPRequestDoc.Fields[33].Type = "string" HTTPRequestDoc.Fields[33].Note = "" - HTTPRequestDoc.Fields[33].Description = "DisablePathAutomerge disables merging target url path with raw request path" - HTTPRequestDoc.Fields[33].Comments[encoder.LineComment] = "DisablePathAutomerge disables merging target url path with raw request path" - HTTPRequestDoc.Fields[34].Name = "pre-condition" - HTTPRequestDoc.Fields[34].Type = "[]matchers.Matcher" + HTTPRequestDoc.Fields[33].Description = "DigestAuthPassword specifies the password for digest authentication" + HTTPRequestDoc.Fields[33].Comments[encoder.LineComment] = "DigestAuthPassword specifies the password for digest authentication" + HTTPRequestDoc.Fields[34].Name = "disable-path-automerge" + HTTPRequestDoc.Fields[34].Type = "bool" HTTPRequestDoc.Fields[34].Note = "" - HTTPRequestDoc.Fields[34].Description = "Fuzz PreCondition is matcher-like field to check if fuzzing should be performed on this request or not" - HTTPRequestDoc.Fields[34].Comments[encoder.LineComment] = "Fuzz PreCondition is matcher-like field to check if fuzzing should be performed on this request or not" - HTTPRequestDoc.Fields[35].Name = "pre-condition-operator" - HTTPRequestDoc.Fields[35].Type = "string" + HTTPRequestDoc.Fields[34].Description = "DisablePathAutomerge disables merging target url path with raw request path" + HTTPRequestDoc.Fields[34].Comments[encoder.LineComment] = "DisablePathAutomerge disables merging target url path with raw request path" + HTTPRequestDoc.Fields[35].Name = "pre-condition" + HTTPRequestDoc.Fields[35].Type = "[]matchers.Matcher" HTTPRequestDoc.Fields[35].Note = "" - HTTPRequestDoc.Fields[35].Description = "FuzzPreConditionOperator is the operator between multiple PreConditions for fuzzing Default is OR" - HTTPRequestDoc.Fields[35].Comments[encoder.LineComment] = "FuzzPreConditionOperator is the operator between multiple PreConditions for fuzzing Default is OR" - HTTPRequestDoc.Fields[36].Name = "global-matchers" - HTTPRequestDoc.Fields[36].Type = "bool" + HTTPRequestDoc.Fields[35].Description = "Fuzz PreCondition is matcher-like field to check if fuzzing should be performed on this request or not" + HTTPRequestDoc.Fields[35].Comments[encoder.LineComment] = "Fuzz PreCondition is matcher-like field to check if fuzzing should be performed on this request or not" + HTTPRequestDoc.Fields[36].Name = "pre-condition-operator" + HTTPRequestDoc.Fields[36].Type = "string" HTTPRequestDoc.Fields[36].Note = "" - HTTPRequestDoc.Fields[36].Description = "GlobalMatchers marks matchers as static and applies globally to all result events from other templates" - HTTPRequestDoc.Fields[36].Comments[encoder.LineComment] = "GlobalMatchers marks matchers as static and applies globally to all result events from other templates" + HTTPRequestDoc.Fields[36].Description = "FuzzPreConditionOperator is the operator between multiple PreConditions for fuzzing Default is OR" + HTTPRequestDoc.Fields[36].Comments[encoder.LineComment] = "FuzzPreConditionOperator is the operator between multiple PreConditions for fuzzing Default is OR" + HTTPRequestDoc.Fields[37].Name = "global-matchers" + HTTPRequestDoc.Fields[37].Type = "bool" + HTTPRequestDoc.Fields[37].Note = "" + HTTPRequestDoc.Fields[37].Description = "GlobalMatchers marks matchers as static and applies globally to all result events from other templates" + HTTPRequestDoc.Fields[37].Comments[encoder.LineComment] = "GlobalMatchers marks matchers as static and applies globally to all result events from other templates" GENERATORSAttackTypeHolderDoc.Type = "generators.AttackTypeHolder" GENERATORSAttackTypeHolderDoc.Comments[encoder.LineComment] = " AttackTypeHolder is used to hold internal type of the protocol" @@ -847,6 +853,30 @@ func init() { } SliceOrMapSliceDoc.Fields = make([]encoder.Doc, 0) + ANALYZERSAnalyzerTemplateDoc.Type = "analyzers.AnalyzerTemplate" + ANALYZERSAnalyzerTemplateDoc.Comments[encoder.LineComment] = " AnalyzerTemplate is the template for the analyzer" + ANALYZERSAnalyzerTemplateDoc.Description = "AnalyzerTemplate is the template for the analyzer" + ANALYZERSAnalyzerTemplateDoc.AppearsIn = []encoder.Appearance{ + { + TypeName: "http.Request", + FieldName: "analyzer", + }, + } + ANALYZERSAnalyzerTemplateDoc.Fields = make([]encoder.Doc, 2) + ANALYZERSAnalyzerTemplateDoc.Fields[0].Name = "name" + ANALYZERSAnalyzerTemplateDoc.Fields[0].Type = "string" + ANALYZERSAnalyzerTemplateDoc.Fields[0].Note = "" + ANALYZERSAnalyzerTemplateDoc.Fields[0].Description = "Name is the name of the analyzer to use" + ANALYZERSAnalyzerTemplateDoc.Fields[0].Comments[encoder.LineComment] = "Name is the name of the analyzer to use" + ANALYZERSAnalyzerTemplateDoc.Fields[0].Values = []string{ + "time_delay", + } + ANALYZERSAnalyzerTemplateDoc.Fields[1].Name = "parameters" + ANALYZERSAnalyzerTemplateDoc.Fields[1].Type = "map[string]interface{}" + ANALYZERSAnalyzerTemplateDoc.Fields[1].Note = "" + ANALYZERSAnalyzerTemplateDoc.Fields[1].Description = "Parameters is the parameters for the analyzer\n\nParameters are different for each analyzer. For example, you can customize\ntime_delay analyzer with sleep_duration, time_slope_error_range, etc. Refer\nto the docs for each analyzer to get an idea about parameters." + ANALYZERSAnalyzerTemplateDoc.Fields[1].Comments[encoder.LineComment] = "Parameters is the parameters for the analyzer" + SignatureTypeHolderDoc.Type = "SignatureTypeHolder" SignatureTypeHolderDoc.Comments[encoder.LineComment] = " SignatureTypeHolder is used to hold internal type of the signature" SignatureTypeHolderDoc.Description = "SignatureTypeHolder is used to hold internal type of the signature" @@ -2127,6 +2157,7 @@ func GetTemplateDoc() *encoder.FileDoc { &HTTPMethodTypeHolderDoc, &FUZZRuleDoc, &SliceOrMapSliceDoc, + &ANALYZERSAnalyzerTemplateDoc, &SignatureTypeHolderDoc, &MATCHERSMatcherDoc, &MatcherTypeHolderDoc,