rockspec_format = "3.0"
package = "lua-doctor"
version = "0.6.1-1"
source = {
   url = "https://github.com/doctor-labs/lua-doctor/releases/download/v0.6.1/lua-doctor-0.6.1.tar.gz",
   dir = "lua-doctor-0.6.1",
}
description = {
   summary = "Static security scanner for Lua in embedded firmware: finds remote code execution.",
   detailed = [[
lua-doctor finds untrusted data reaching command execution, dynamic code loading and
firmware-specific sinks in Lua code from routers and IoT devices, and reports it
as plain text, JSON, SARIF or HTML with a 0-100 health score.
]],
   homepage = "https://github.com/doctor-labs/lua-doctor",
   license = "MIT",
   labels = {"security", "static-analysis", "firmware", "sarif"},
}
dependencies = {
   "lua >= 5.3",
}
build = {
   type = "builtin",
   modules = {
      ["luadoctor.api"] = "src/luadoctor/api.lua",
      ["luadoctor.bytecode.detect"] = "src/luadoctor/bytecode/detect.lua",
      ["luadoctor.bytecode.header"] = "src/luadoctor/bytecode/header.lua",
      ["luadoctor.bytecode.protos"] = "src/luadoctor/bytecode/protos.lua",
      ["luadoctor.bytecode.triage"] = "src/luadoctor/bytecode/triage.lua",
      ["luadoctor.cli.args"] = "src/luadoctor/cli/args.lua",
      ["luadoctor.cli.baseline"] = "src/luadoctor/cli/baseline.lua",
      ["luadoctor.cli.ci_cmd"] = "src/luadoctor/cli/ci_cmd.lua",
      ["luadoctor.cli.config"] = "src/luadoctor/cli/config.lua",
       ["luadoctor.cli.fix_cmd"] = "src/luadoctor/cli/fix_cmd.lua",
       ["luadoctor.cli.handoff"] = "src/luadoctor/cli/handoff.lua",
      ["luadoctor.cli.install_cmd"] = "src/luadoctor/cli/install_cmd.lua",
      ["luadoctor.cli.mcp_cmd"] = "src/luadoctor/cli/mcp_cmd.lua",
      ["luadoctor.cli.menu"] = "src/luadoctor/cli/menu.lua",
       ["luadoctor.cli.progress"] = "src/luadoctor/cli/progress.lua",
       ["luadoctor.cli.nginxconf"] = "src/luadoctor/cli/nginxconf.lua",
       ["luadoctor.cli.review"] = "src/luadoctor/cli/review.lua",
      ["luadoctor.cli.rules_cmd"] = "src/luadoctor/cli/rules_cmd.lua",
      ["luadoctor.cli.scope"] = "src/luadoctor/cli/scope.lua",
       ["luadoctor.cli.selection"] = "src/luadoctor/cli/selection.lua",
       ["luadoctor.cli.selector"] = "src/luadoctor/cli/selector.lua",
       ["luadoctor.cli.template"] = "src/luadoctor/cli/template.lua",
       ["luadoctor.cli.term"] = "src/luadoctor/cli/term.lua",
      ["luadoctor.cli.walk"] = "src/luadoctor/cli/walk.lua",
      ["luadoctor.cli.why_cmd"] = "src/luadoctor/cli/why_cmd.lua",
      ["luadoctor.engine.callgraph"] = "src/luadoctor/engine/callgraph.lua",
      ["luadoctor.engine.inline_directives"] = "src/luadoctor/engine/inline_directives.lua",
      ["luadoctor.engine.jobs"] = "src/luadoctor/engine/jobs.lua",
      ["luadoctor.engine.interprocedural"] = "src/luadoctor/engine/interprocedural.lua",
      ["luadoctor.engine.escapes"] = "src/luadoctor/engine/escapes.lua",
      ["luadoctor.engine.parse_context"] = "src/luadoctor/engine/parse_context.lua",
      ["luadoctor.engine.pipeline"] = "src/luadoctor/engine/pipeline.lua",
      ["luadoctor.engine.taint"] = "src/luadoctor/engine/taint.lua",
      ["luadoctor.engine.whole_program"] = "src/luadoctor/engine/whole_program.lua",
      ["luadoctor.main"] = "src/luadoctor/main.lua",
      ["luadoctor.registry.platform_api"] = "src/luadoctor/registry/platform_api.lua",
      ["luadoctor.registry.profiles"] = "src/luadoctor/registry/profiles.lua",
      ["luadoctor.registry.stds.cgilua"] = "src/luadoctor/registry/stds/cgilua.lua",
      ["luadoctor.registry.stds.espressif"] = "src/luadoctor/registry/stds/espressif.lua",
      ["luadoctor.registry.stds.hisi"] = "src/luadoctor/registry/stds/hisi.lua",
      ["luadoctor.registry.stds.luajit"] = "src/luadoctor/registry/stds/luajit.lua",
      ["luadoctor.registry.stds.luci"] = "src/luadoctor/registry/stds/luci.lua",
      ["luadoctor.registry.stds.openresty"] = "src/luadoctor/registry/stds/openresty.lua",
      ["luadoctor.registry.stds.openwrt"] = "src/luadoctor/registry/stds/openwrt.lua",
      ["luadoctor.registry.stds.signatures"] = "src/luadoctor/registry/stds/signatures.lua",
      ["luadoctor.report.doctor"] = "src/luadoctor/report/doctor.lua",
      ["luadoctor.report.findings"] = "src/luadoctor/report/findings.lua",
      ["luadoctor.report.html"] = "src/luadoctor/report/html.lua",
      ["luadoctor.report.json"] = "src/luadoctor/report/json.lua",
      ["luadoctor.report.plain"] = "src/luadoctor/report/plain.lua",
      ["luadoctor.report.render"] = "src/luadoctor/report/render.lua",
      ["luadoctor.report.sarif"] = "src/luadoctor/report/sarif.lua",
      ["luadoctor.report.score"] = "src/luadoctor/report/score.lua",
      ["luadoctor.report.summary"] = "src/luadoctor/report/summary.lua",
      ["luadoctor.rules.categories"] = "src/luadoctor/rules/categories.lua",
      ["luadoctor.rules.codes"] = "src/luadoctor/rules/codes.lua",
      ["luadoctor.rules.context"] = "src/luadoctor/rules/context.lua",
      ["luadoctor.rules.degraded"] = "src/luadoctor/rules/degraded.lua",
      ["luadoctor.rules.file_role"] = "src/luadoctor/rules/file_role.lua",
      ["luadoctor.rules.firmware"] = "src/luadoctor/rules/firmware.lua",
      ["luadoctor.rules.payloads"] = "src/luadoctor/rules/payloads.lua",
      ["luadoctor.rules.rawscan"] = "src/luadoctor/rules/rawscan.lua",
      ["luadoctor.rules.registry"] = "src/luadoctor/rules/registry.lua",
      ["luadoctor.rules.secrets"] = "src/luadoctor/rules/secrets.lua",
      ["luadoctor.util.const_eval"] = "src/luadoctor/util/const_eval.lua",
      ["luadoctor.util.uci_cursor"] = "src/luadoctor/util/uci_cursor.lua",
      ["luadoctor.util.util"] = "src/luadoctor/util/util.lua",
      ["luadoctor.validate.child"] = "src/luadoctor/validate/child.lua",
      ["luadoctor.validate.driver"] = "src/luadoctor/validate/driver.lua",
      ["luadoctor.validate.report"] = "src/luadoctor/validate/report.lua",
      ["luadoctor.version"] = "src/luadoctor/version.lua",
      ["luacheck.builtin_standards"] = "vendor/luacheck/builtin_standards/init.lua",
      ["luacheck.builtin_standards.love"] = "vendor/luacheck/builtin_standards/love.lua",
      ["luacheck.builtin_standards.luanti"] = "vendor/luacheck/builtin_standards/luanti.lua",
      ["luacheck.builtin_standards.ngx"] = "vendor/luacheck/builtin_standards/ngx.lua",
      ["luacheck.builtin_standards.playdate"] = "vendor/luacheck/builtin_standards/playdate.lua",
      ["luacheck.cache"] = "vendor/luacheck/cache.lua",
      ["luacheck.check"] = "vendor/luacheck/check.lua",
      ["luacheck.check_state"] = "vendor/luacheck/check_state.lua",
      ["luacheck.config"] = "vendor/luacheck/config.lua",
      ["luacheck.core_utils"] = "vendor/luacheck/core_utils.lua",
      ["luacheck.decoder"] = "vendor/luacheck/decoder.lua",
      ["luacheck.expand_rockspec"] = "vendor/luacheck/expand_rockspec.lua",
      ["luacheck.filter"] = "vendor/luacheck/filter.lua",
      ["luacheck.format"] = "vendor/luacheck/format.lua",
      ["luacheck.fs"] = "vendor/luacheck/fs.lua",
      ["luacheck.globbing"] = "vendor/luacheck/globbing.lua",
      ["luacheck"] = "vendor/luacheck/init.lua",
      ["luacheck.lexer"] = "vendor/luacheck/lexer.lua",
      ["luacheck.main"] = "vendor/luacheck/main.lua",
      ["luacheck.multithreading"] = "vendor/luacheck/multithreading.lua",
      ["luacheck.options"] = "vendor/luacheck/options.lua",
      ["luacheck.parser"] = "vendor/luacheck/parser.lua",
      ["luacheck.profiler"] = "vendor/luacheck/profiler.lua",
      ["luacheck.runner"] = "vendor/luacheck/runner.lua",
      ["luacheck.serializer"] = "vendor/luacheck/serializer.lua",
      ["luacheck.stages.detect_bad_whitespace"] = "vendor/luacheck/stages/detect_bad_whitespace.lua",
      ["luacheck.stages.detect_compound_operators"] = "vendor/luacheck/stages/detect_compound_operators.lua",
      ["luacheck.stages.detect_cyclomatic_complexity"] = "vendor/luacheck/stages/detect_cyclomatic_complexity.lua",
      ["luacheck.stages.detect_empty_blocks"] = "vendor/luacheck/stages/detect_empty_blocks.lua",
      ["luacheck.stages.detect_empty_statements"] = "vendor/luacheck/stages/detect_empty_statements.lua",
      ["luacheck.stages.detect_globals"] = "vendor/luacheck/stages/detect_globals.lua",
      ["luacheck.stages.detect_reversed_fornum_loops"] = "vendor/luacheck/stages/detect_reversed_fornum_loops.lua",
      ["luacheck.stages.detect_unbalanced_assignments"] = "vendor/luacheck/stages/detect_unbalanced_assignments.lua",
      ["luacheck.stages.detect_uninit_accesses"] = "vendor/luacheck/stages/detect_uninit_accesses.lua",
      ["luacheck.stages.detect_unreachable_code"] = "vendor/luacheck/stages/detect_unreachable_code.lua",
      ["luacheck.stages.detect_unused_fields"] = "vendor/luacheck/stages/detect_unused_fields.lua",
      ["luacheck.stages.detect_unused_locals"] = "vendor/luacheck/stages/detect_unused_locals.lua",
      ["luacheck.stages"] = "vendor/luacheck/stages/init.lua",
      ["luacheck.stages.linearize"] = "vendor/luacheck/stages/linearize.lua",
      ["luacheck.stages.name_functions"] = "vendor/luacheck/stages/name_functions.lua",
      ["luacheck.stages.parse"] = "vendor/luacheck/stages/parse.lua",
      ["luacheck.stages.parse_inline_options"] = "vendor/luacheck/stages/parse_inline_options.lua",
      ["luacheck.stages.resolve_locals"] = "vendor/luacheck/stages/resolve_locals.lua",
      ["luacheck.stages.unwrap_parens"] = "vendor/luacheck/stages/unwrap_parens.lua",
      ["luacheck.standards"] = "vendor/luacheck/standards.lua",
      ["luacheck.unicode"] = "vendor/luacheck/unicode.lua",
      ["luacheck.unicode_printability_boundaries"] = "vendor/luacheck/unicode_printability_boundaries.lua",
      ["luacheck.utils"] = "vendor/luacheck/utils.lua",
      ["luacheck.vendor.sha1.bit32_ops"] = "vendor/luacheck/vendor/sha1/bit32_ops.lua",
      ["luacheck.vendor.sha1.bit_ops"] = "vendor/luacheck/vendor/sha1/bit_ops.lua",
      ["luacheck.vendor.sha1.common"] = "vendor/luacheck/vendor/sha1/common.lua",
      ["luacheck.vendor.sha1"] = "vendor/luacheck/vendor/sha1/init.lua",
      ["luacheck.vendor.sha1.lua53_ops"] = "vendor/luacheck/vendor/sha1/lua53_ops.lua",
      ["luacheck.vendor.sha1.pure_lua_ops"] = "vendor/luacheck/vendor/sha1/pure_lua_ops.lua",
      ["luacheck.version"] = "vendor/luacheck/version.lua",
   },
   install = {
      bin = {["lua-doctor"] = "bin/lua-doctor.lua"},
   },
   copy_directories = {"docs"},
}
