diff --git a/lib/analyze.js b/lib/analyze.js index 2fc552fb1..5f256c6dd 100644 --- a/lib/analyze.js +++ b/lib/analyze.js @@ -39,35 +39,45 @@ async function finalizeDatabaseCreation(config, logger) { } // Runs queries and creates sarif files in the given folder async function runQueries(sarifFolder, memoryFlag, threadsFlag, config, logger) { - const codeql = codeql_1.getCodeQL(config.codeQLCmd); + const statusReport = {}; for (let language of config.languages) { logger.startGroup('Analyzing ' + language); - const queries = config.queries[language] || []; - if (queries.length === 0) { + const queries = config.queries[language]; + if (queries.builtin.length === 0 && queries.custom.length === 0) { throw new Error('Unable to analyse ' + language + ' as no queries were selected for this language'); } try { - const databasePath = util.getCodeQLDatabasePath(config.tempDir, language); - // Pass the queries to codeql using a file instead of using the command - // line to avoid command line length restrictions, particularly on windows. - const querySuite = databasePath + '-queries.qls'; - const querySuiteContents = queries.map(q => '- query: ' + q).join('\n'); - fs.writeFileSync(querySuite, querySuiteContents); - logger.debug('Query suite file for ' + language + '...\n' + querySuiteContents); - const sarifFile = path.join(sarifFolder, language + '.sarif'); - await codeql.databaseAnalyze(databasePath, sarifFile, querySuite, memoryFlag, threadsFlag); - logger.debug('SARIF results for database ' + language + ' created at "' + sarifFile + '"'); - logger.endGroup(); + for (const type of ['builtin', 'custom']) { + if (queries[type].length > 0) { + const startTime = new Date().getTime(); + const databasePath = util.getCodeQLDatabasePath(config.tempDir, language); + // Pass the queries to codeql using a file instead of using the command + // line to avoid command line length restrictions, particularly on windows. + const querySuitePath = `${databasePath}-queries-${type}.qls`; + const querySuiteContents = queries[type].map((q) => '- query: ' + q).join('\n'); + fs.writeFileSync(querySuitePath, querySuiteContents); + logger.debug('Query suite file for ' + language + '...\n' + querySuiteContents); + const sarifFile = path.join(sarifFolder, `${language}-${type}.sarif`); + const codeql = codeql_1.getCodeQL(config.codeQLCmd); + await codeql.databaseAnalyze(databasePath, sarifFile, querySuitePath, memoryFlag, threadsFlag); + logger.debug('SARIF results for database ' + language + ' created at "' + sarifFile + '"'); + logger.endGroup(); + // Record the performance + const endTime = new Date().getTime(); + statusReport[`analyze_${type}_queries_${language}_duration_ms`] = endTime - startTime; + } + } } catch (e) { - // For now the fields about query performance are not populated - return { - analyze_failure_language: language, - }; + logger.error(`Error running analysis for ${language}: ${e}`); + logger.info(e); + statusReport.analyze_failure_language = language; + return statusReport; } } - return {}; + return statusReport; } +exports.runQueries = runQueries; async function runAnalyze(repositoryNwo, commitOid, ref, analysisKey, analysisName, workflowRunID, checkoutPath, environment, githubAuth, githubUrl, doUpload, mode, outputDir, memoryFlag, threadsFlag, config, logger) { // Delete the tracer config env var to avoid tracing ourselves delete process.env[sharedEnv.ODASA_TRACER_CONFIGURATION]; diff --git a/lib/analyze.js.map b/lib/analyze.js.map index 3907718ac..7406f004f 100644 --- a/lib/analyze.js.map +++ b/lib/analyze.js.map @@ -1 +1 @@ -{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAE7B,gEAAkD;AAClD,qCAAqC;AAErC,2CAAgD;AAGhD,gEAAkD;AAClD,yDAA2C;AAC3C,6CAA+B;AAiC/B,KAAK,UAAU,4BAA4B,CACzC,MAA0B,EAC1B,MAAc;IAEd,sEAAsE;IACtE,oCAAoC;IACpC,aAAa,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,MAAM,GAAG,kBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;QACvC,IAAI,6BAAiB,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,CAAC,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;YAC5C,MAAM,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;YACpG,MAAM,CAAC,QAAQ,EAAE,CAAC;SACnB;KACF;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,MAA0B,EAC1B,MAAc;IAEd,MAAM,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,kBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;QACvC,MAAM,CAAC,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpF,MAAM,CAAC,QAAQ,EAAE,CAAC;KACnB;AACH,CAAC;AAED,2DAA2D;AACpD,KAAK,UAAU,UAAU,CAC9B,WAAmB,EACnB,UAAkB,EAClB,WAAmB,EACnB,MAA0B,EAC1B,MAAc;IAEd,MAAM,YAAY,GAAwB,EAAE,CAAC;IAE7C,KAAK,IAAI,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE;QACrC,MAAM,CAAC,UAAU,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/D,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,QAAQ,GAAG,gDAAgD,CAAC,CAAC;SACrG;QAED,IAAI;YACF,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;gBACxC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;oBAEvC,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC1E,uEAAuE;oBACvE,2EAA2E;oBAC3E,MAAM,cAAc,GAAG,GAAG,YAAY,YAAY,IAAI,MAAM,CAAC;oBAC7D,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxF,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;oBACrD,MAAM,CAAC,KAAK,CAAC,uBAAuB,GAAG,QAAQ,GAAG,OAAO,GAAG,kBAAkB,CAAC,CAAC;oBAEhF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,IAAI,IAAI,QAAQ,CAAC,CAAC;oBAEtE,MAAM,MAAM,GAAG,kBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC3C,MAAM,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;oBAE/F,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;oBAC3F,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAElB,yBAAyB;oBACzB,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;oBACrC,YAAY,CAAC,WAAW,IAAI,YAAY,QAAQ,cAAc,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;iBACvF;aACF;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,8BAA8B,QAAQ,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,YAAY,CAAC,wBAAwB,GAAG,QAAQ,CAAC;YACjD,OAAO,YAAY,CAAC;SACrB;KACF;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AApDD,gCAoDC;AAEM,KAAK,UAAU,UAAU,CAC9B,aAA4B,EAC5B,SAAiB,EACjB,GAAW,EACX,WAA+B,EAC/B,YAAgC,EAChC,aAAiC,EACjC,YAAoB,EACpB,WAA+B,EAC/B,UAAkB,EAClB,SAAiB,EACjB,QAAiB,EACjB,IAAe,EACf,SAAiB,EACjB,UAAkB,EAClB,WAAmB,EACnB,MAA0B,EAC1B,MAAc;IAEd,8DAA8D;IAC9D,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAEzD,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC5C,MAAM,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/C,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1F,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;KAC5B;IAED,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,MAAM,CACzC,SAAS,EACT,aAAa,EACb,SAAS,EACT,GAAG,EACH,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,CAAC,CAAC;IAEV,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,WAAW,EAAE,CAAC;AAC7C,CAAC;AAnDD,gCAmDC"} \ No newline at end of file diff --git a/lib/analyze.test.js b/lib/analyze.test.js new file mode 100644 index 000000000..7380b52eb --- /dev/null +++ b/lib/analyze.test.js @@ -0,0 +1,60 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; + result["default"] = mod; + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ava_1 = __importDefault(require("ava")); +const fs = __importStar(require("fs")); +const analyze_1 = require("./analyze"); +const codeql_1 = require("./codeql"); +const languages_1 = require("./languages"); +const logging_1 = require("./logging"); +const testing_utils_1 = require("./testing-utils"); +const util = __importStar(require("./util")); +testing_utils_1.setupTests(ava_1.default); +// Checks that the duration fields are populated for the correct language +// and correct case of builtin or custom. +ava_1.default('status report fields', async (t) => { + return await util.withTmpDir(async (tmpDir) => { + codeql_1.setCodeQL({ + databaseAnalyze: async () => undefined + }); + const memoryFlag = ''; + const threadsFlag = ''; + for (const language of Object.values(languages_1.Language)) { + const config = { + languages: [language], + queries: {}, + pathsIgnore: [], + paths: [], + originalUserInput: {}, + tempDir: tmpDir, + toolCacheDir: tmpDir, + codeQLCmd: '', + }; + fs.mkdirSync(util.getCodeQLDatabasePath(config.tempDir, language), { recursive: true }); + config.queries[language] = { + builtin: ['foo.ql'], + custom: [], + }; + const builtinStatusReport = await analyze_1.runQueries(tmpDir, memoryFlag, threadsFlag, config, logging_1.getRunnerLogger(true)); + t.deepEqual(Object.keys(builtinStatusReport).length, 1); + t.true(`analyze_builtin_queries_${language}_duration_ms` in builtinStatusReport); + config.queries[language] = { + builtin: [], + custom: ['foo.ql'], + }; + const customStatusReport = await analyze_1.runQueries(tmpDir, memoryFlag, threadsFlag, config, logging_1.getRunnerLogger(true)); + t.deepEqual(Object.keys(customStatusReport).length, 1); + t.true(`analyze_custom_queries_${language}_duration_ms` in customStatusReport); + } + }); +}); +//# sourceMappingURL=analyze.test.js.map \ No newline at end of file diff --git a/lib/analyze.test.js.map b/lib/analyze.test.js.map new file mode 100644 index 000000000..e66941209 --- /dev/null +++ b/lib/analyze.test.js.map @@ -0,0 +1 @@ +{"version":3,"file":"analyze.test.js","sourceRoot":"","sources":["../src/analyze.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAAuB;AACvB,uCAAyB;AAEzB,uCAAuC;AACvC,qCAAqC;AAErC,2CAAuC;AACvC,uCAA4C;AAC5C,mDAA6C;AAC7C,6CAA+B;AAE/B,0BAAU,CAAC,aAAI,CAAC,CAAC;AAEjB,yEAAyE;AACzE,yCAAyC;AACzC,aAAI,CAAC,sBAAsB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACrC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,kBAAS,CAAC;YACR,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;SACvC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAQ,CAAC,EAAE;YAC9C,MAAM,MAAM,GAAW;gBACrB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE;gBACf,KAAK,EAAE,EAAE;gBACT,iBAAiB,EAAE,EAAE;gBACrB,OAAO,EAAE,MAAM;gBACf,YAAY,EAAE,MAAM;gBACpB,SAAS,EAAE,EAAE;aACd,CAAC;YACF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAExF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACzB,OAAO,EAAE,CAAC,QAAQ,CAAC;gBACnB,MAAM,EAAE,EAAE;aACX,CAAC;YACF,MAAM,mBAAmB,GAAG,MAAM,oBAAU,CAC1C,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC,2BAA2B,QAAQ,cAAc,IAAI,mBAAmB,CAAC,CAAC;YAEjF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACzB,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,CAAC,QAAQ,CAAC;aACnB,CAAC;YACF,MAAM,kBAAkB,GAAG,MAAM,oBAAU,CACzC,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC,0BAA0B,QAAQ,cAAc,IAAI,kBAAkB,CAAC,CAAC;SAChF;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/lib/config-utils.js b/lib/config-utils.js index 5b0a4f62f..156e2d29c 100644 --- a/lib/config-utils.js +++ b/lib/config-utils.js @@ -61,17 +61,31 @@ function validateQueries(resolvedQueries) { } /** * Run 'codeql resolve queries' and add the results to resultMap + * + * If a checkout path is given then the queries are assumed to be custom queries + * and an error will be thrown if there is anything invalid about the queries. + * If a checkout path is not given then the queries are assumed to be builtin + * queries, and error checking will be suppressed. */ -async function runResolveQueries(codeQL, resultMap, toResolve, extraSearchPath, errorOnInvalidQueries) { +async function runResolveQueries(codeQL, resultMap, toResolve, extraSearchPath) { const resolvedQueries = await codeQL.resolveQueries(toResolve, extraSearchPath); - for (const [language, queries] of Object.entries(resolvedQueries.byLanguage)) { + if (extraSearchPath !== undefined) { + validateQueries(resolvedQueries); + } + for (const [language, queryPaths] of Object.entries(resolvedQueries.byLanguage)) { if (resultMap[language] === undefined) { - resultMap[language] = []; + resultMap[language] = { + builtin: [], + custom: [], + }; + } + const queries = Object.keys(queryPaths).filter(q => !queryIsDisabled(language, q)); + if (extraSearchPath !== undefined) { + resultMap[language].custom.push(...queries); + } + else { + resultMap[language].builtin.push(...queries); } - resultMap[language].push(...Object.keys(queries).filter(q => !queryIsDisabled(language, q))); - } - if (errorOnInvalidQueries) { - validateQueries(resolvedQueries); } } /** @@ -79,7 +93,7 @@ async function runResolveQueries(codeQL, resultMap, toResolve, extraSearchPath, */ async function addDefaultQueries(codeQL, languages, resultMap) { const suites = languages.map(l => l + '-code-scanning.qls'); - await runResolveQueries(codeQL, resultMap, suites, undefined, false); + await runResolveQueries(codeQL, resultMap, suites, undefined); } // The set of acceptable values for built-in suites from the codeql bundle const builtinSuites = ['security-extended', 'security-and-quality']; @@ -93,7 +107,7 @@ async function addBuiltinSuiteQueries(languages, codeQL, resultMap, suiteName, c throw new Error(getQueryUsesInvalid(configFile, suiteName)); } const suites = languages.map(l => l + '-' + suiteName + '.qls'); - await runResolveQueries(codeQL, resultMap, suites, undefined, false); + await runResolveQueries(codeQL, resultMap, suites, undefined); } /** * Retrieve the set of queries at localQueryPath and add them to resultMap. @@ -112,7 +126,7 @@ async function addLocalQueries(codeQL, resultMap, localQueryPath, checkoutPath, if (!(absoluteQueryPath + path.sep).startsWith(fs.realpathSync(checkoutPath) + path.sep)) { throw new Error(getLocalPathOutsideOfRepository(configFile, localQueryPath)); } - await runResolveQueries(codeQL, resultMap, [absoluteQueryPath], checkoutPath, true); + await runResolveQueries(codeQL, resultMap, [absoluteQueryPath], checkoutPath); } /** * Retrieve the set of queries at the referenced remote repo and add them to resultMap. @@ -140,7 +154,7 @@ async function addRemoteQueries(codeQL, resultMap, queryUses, tempDir, githubUrl const queryPath = tok.length > 2 ? path.join(checkoutPath, tok.slice(2).join('/')) : checkoutPath; - await runResolveQueries(codeQL, resultMap, [queryPath], checkoutPath, true); + await runResolveQueries(codeQL, resultMap, [queryPath], checkoutPath); } /** * Parse a query 'uses' field to a discrete set of query files and update resultMap. @@ -476,7 +490,8 @@ async function loadConfig(languagesInput, queriesInput, configFile, repository, // The list of queries should not be empty for any language. If it is then // it is a user configuration error. for (const language of languages) { - if (queries[language] === undefined || queries[language].length === 0) { + if (queries[language] === undefined || + (queries[language].builtin.length === 0 && queries[language].custom.length === 0)) { throw new Error(`Did not detect any queries to run for ${language}. ` + "Please make sure that the default queries are enabled, or you are specifying queries to run."); } diff --git a/lib/config-utils.js.map b/lib/config-utils.js.map index 116353526..ecf7c0c02 100644 --- a/lib/config-utils.js.map +++ b/lib/config-utils.js.map @@ -1 +1 @@ -{"version":3,"file":"config-utils.js","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"config-utils.js","sourceRoot":"","sources":["../src/config-utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/config-utils.test.js b/lib/config-utils.test.js index f23790c75..2a9d96af7 100644 --- a/lib/config-utils.test.js +++ b/lib/config-utils.test.js @@ -161,7 +161,10 @@ ava_1.default("load non-empty input", async (t) => { // And the config we expect it to parse to const expectedConfig = { languages: [languages_1.Language.javascript], - queries: { 'javascript': ['/foo/a.ql', '/bar/b.ql'] }, + queries: { 'javascript': { + builtin: [], + custom: ['/foo/a.ql', '/bar/b.ql'] + } }, pathsIgnore: ['a', 'b'], paths: ['c/d'], originalUserInput: { @@ -260,9 +263,10 @@ ava_1.default("Queries can be specified in config file", async (t) => { t.deepEqual(resolveQueriesArgs[1].queries.length, 1); t.regex(resolveQueriesArgs[1].queries[0], /.*\/foo$/); // Now check that the end result contains the default queries and the query from config - t.deepEqual(config.queries['javascript'].length, 2); - t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); - t.regex(config.queries['javascript'][1], /.*\/foo$/); + t.deepEqual(config.queries['javascript'].builtin.length, 1); + t.deepEqual(config.queries['javascript'].custom.length, 1); + t.regex(config.queries['javascript'].builtin[0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'].custom[0], /.*\/foo$/); }); }); ava_1.default("Queries from config file can be overridden in workflow file", async (t) => { @@ -292,9 +296,10 @@ ava_1.default("Queries from config file can be overridden in workflow file", asy t.deepEqual(resolveQueriesArgs[1].queries.length, 1); t.regex(resolveQueriesArgs[1].queries[0], /.*\/override$/); // Now check that the end result contains only the default queries and the override query - t.deepEqual(config.queries['javascript'].length, 2); - t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); - t.regex(config.queries['javascript'][1], /.*\/override$/); + t.deepEqual(config.queries['javascript'].builtin.length, 1); + t.deepEqual(config.queries['javascript'].custom.length, 1); + t.regex(config.queries['javascript'].builtin[0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'].custom[0], /.*\/override$/); }); }); ava_1.default("Queries in workflow file can be used in tandem with the 'disable default queries' option", async (t) => { @@ -323,8 +328,9 @@ ava_1.default("Queries in workflow file can be used in tandem with the 'disable t.deepEqual(resolveQueriesArgs[0].queries.length, 1); t.regex(resolveQueriesArgs[0].queries[0], /.*\/workflow-query$/); // Now check that the end result contains only the workflow query, and not the default one - t.deepEqual(config.queries['javascript'].length, 1); - t.regex(config.queries['javascript'][0], /.*\/workflow-query$/); + t.deepEqual(config.queries['javascript'].builtin.length, 0); + t.deepEqual(config.queries['javascript'].custom.length, 1); + t.regex(config.queries['javascript'].custom[0], /.*\/workflow-query$/); }); }); ava_1.default("Multiple queries can be specified in workflow file, no config file required", async (t) => { @@ -350,10 +356,11 @@ ava_1.default("Multiple queries can be specified in workflow file, no config fil t.regex(resolveQueriesArgs[1].queries[0], /.*\/override1$/); t.regex(resolveQueriesArgs[2].queries[0], /.*\/override2$/); // Now check that the end result contains both the queries from the workflow, as well as the defaults - t.deepEqual(config.queries['javascript'].length, 3); - t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); - t.regex(config.queries['javascript'][1], /.*\/override1$/); - t.regex(config.queries['javascript'][2], /.*\/override2$/); + t.deepEqual(config.queries['javascript'].builtin.length, 1); + t.deepEqual(config.queries['javascript'].custom.length, 2); + t.regex(config.queries['javascript'].builtin[0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'].custom[0], /.*\/override1$/); + t.regex(config.queries['javascript'].custom[1], /.*\/override2$/); }); }); ava_1.default("Queries in workflow file can be added to the set of queries without overriding config file", async (t) => { @@ -391,11 +398,12 @@ ava_1.default("Queries in workflow file can be added to the set of queries witho t.deepEqual(resolveQueriesArgs[3].queries.length, 1); t.regex(resolveQueriesArgs[3].queries[0], /.*\/foo$/); // Now check that the end result contains all the queries - t.deepEqual(config.queries['javascript'].length, 4); - t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); - t.regex(config.queries['javascript'][1], /.*\/additional1$/); - t.regex(config.queries['javascript'][2], /.*\/additional2$/); - t.regex(config.queries['javascript'][3], /.*\/foo$/); + t.deepEqual(config.queries['javascript'].builtin.length, 1); + t.deepEqual(config.queries['javascript'].custom.length, 3); + t.regex(config.queries['javascript'].builtin[0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'].custom[0], /.*\/additional1$/); + t.regex(config.queries['javascript'].custom[1], /.*\/additional2$/); + t.regex(config.queries['javascript'].custom[2], /.*\/foo$/); }); }); ava_1.default("Invalid queries in workflow file handled correctly", async (t) => { diff --git a/lib/config-utils.test.js.map b/lib/config-utils.test.js.map index ef56568d6..d4eb7efa4 100644 --- a/lib/config-utils.test.js.map +++ b/lib/config-utils.test.js.map @@ -1 +1 @@ -{"version":3,"file":"config-utils.test.js","sourceRoot":"","sources":["../src/config-utils.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"config-utils.test.js","sourceRoot":"","sources":["../src/config-utils.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wDAA0C;AAC1C,8CAAuB;AACvB,uCAAyB;AACzB,2CAA6B;AAC7B,kDAA0B;AAE1B,kDAAoC;AACpC,qCAAsD;AACtD,4DAA8C;AAC9C,2CAAuC;AACvC,uCAA4C;AAC5C,mDAA2C;AAC3C,6CAA+B;AAE/B,0BAAU,CAAC,aAAI,CAAC,CAAC;AAEjB,iDAAiD;AACjD,SAAS,gBAAgB,CAAC,iBAAyB,EAAE,MAAc;IACjE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC5D,OAAO,cAAc,CAAC;AACxB,CAAC;AAID,SAAS,eAAe,CAAC,OAA4B;IACnD,kEAAkE;IAClE,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,OAAO;KACd,CAAC;IACF,MAAM,cAAc,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAe,CAAC,CAAC;IACzF,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAmB;IAC5C,kEAAkE;IAClE,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,EAAE;KACT,CAAC;IACF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;KAC/B;IACD,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAe,CAAC,CAAC;IACpE,eAAK,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,aAAI,CAAC,mBAAmB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAClC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,MAAM,GAAG,yBAAe,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,mBAAmB,CAAC;QAEtC,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK;gBACnB,OAAO;oBACL,UAAU,EAAE,EAAE;oBACd,kBAAkB,EAAE,EAAE;oBACtB,yBAAyB,EAAE,EAAE;iBAC9B,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,SAAS,EACT,SAAS,EACT,SAAS,EACT,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,MAAM,CAAC,CAAC;QAEV,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,WAAW,CAAC,gBAAgB,CACpD,SAAS,EACT,SAAS,EACT,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,6BAA6B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC5C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,MAAM,GAAG,yBAAe,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK;gBACnB,OAAO;oBACL,UAAU,EAAE,EAAE;oBACd,kBAAkB,EAAE,EAAE;oBACtB,yBAAyB,EAAE,EAAE;iBAC9B,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAGH,4DAA4D;QAC5D,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtE,iFAAiF;QACjF,CAAC,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAC1C,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,MAAM,CAAC,CAAC;QAEV,yCAAyC;QACzC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAErE,6EAA6E;QAC7E,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,iCAAiC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAChD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,IAAI;YACF,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,UAAU,EACV,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,wBAAe,EAAE,EACjB,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QAAC,OAAO,GAAG,EAAE;YACZ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACnH;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,+CAA+C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC9D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,iCAAiC;QACjC,MAAM,UAAU,GAAG,6BAA6B,CAAC;QAEjD,IAAI;YACF,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,UAAU,EACV,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,wBAAe,EAAE,EACjB,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QAAC,OAAO,GAAG,EAAE;YACZ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,qCAAqC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;SAC/G;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,yBAAyB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACxC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,SAAS,GAAG,YAAY,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC;QAC3B,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI;YACF,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,UAAU,EACV,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,wBAAe,EAAE,EACjB,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QAAC,OAAO,GAAG,EAAE;YACZ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5G;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,sBAAsB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACrC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK;gBACnB,OAAO;oBACL,UAAU,EAAE;wBACV,YAAY,EAAE;4BACZ,WAAW,EAAE,EAAE;4BACf,WAAW,EAAE,EAAE;yBAChB;qBACF;oBACD,kBAAkB,EAAE,EAAE;oBACtB,yBAAyB,EAAE,EAAE;iBAC9B,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,6EAA6E;QAC7E,MAAM,iBAAiB,GAAG;;;;;;;;;cAShB,CAAC;QAEX,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAEvC,0CAA0C;QAC1C,MAAM,cAAc,GAAuB;YACzC,SAAS,EAAE,CAAC,oBAAQ,CAAC,UAAU,CAAC;YAChC,OAAO,EAAE,EAAC,YAAY,EAAE;oBACtB,OAAO,EAAE,EAAE;oBACX,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;iBACnC,EAAC;YACF,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YACvB,KAAK,EAAE,CAAC,KAAK,CAAC;YACd,iBAAiB,EAAE;gBACjB,IAAI,EAAE,WAAW;gBACjB,yBAAyB,EAAE,IAAI;gBAC/B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;gBAC1B,KAAK,EAAE,CAAC,KAAK,CAAC;aACf;YACD,OAAO,EAAE,MAAM;YACf,YAAY,EAAE,MAAM;YACpB,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE;SAC5B,CAAC;QAEF,MAAM,SAAS,GAAG,YAAY,CAAC;QAC/B,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAEnE,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,UAAU,CAC/C,SAAS,EACT,SAAS,EACT,cAAc,EACd,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzB,yDAAyD;QACzD,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,0BAA0B,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACzC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,kEAAkE;QAClE,kEAAkE;QAClE,qCAAqC;QACrC,+DAA+D;QAC/D,8BAA8B;QAE9B,MAAM,kBAAkB,GAA+D,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK,WAAU,OAAiB,EAAE,eAAmC;gBACnF,kBAAkB,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;gBACpD,OAAO;oBACL,UAAU,EAAE;wBACV,YAAY,EAAE;4BACZ,QAAQ,EAAE,EAAE;yBACb;qBACF;oBACD,kBAAkB,EAAE,EAAE;oBACtB,yBAAyB,EAAE,EAAE;iBAC9B,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,gEAAgE;QAChE,qCAAqC;QACrC,6DAA6D;QAC7D,MAAM,iBAAiB,GAAG;;cAEhB,CAAC;QAEX,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAEvC,MAAM,SAAS,GAAG,YAAY,CAAC;QAC/B,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAEnE,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,cAAc,EACd,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzB,6CAA6C;QAC7C,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAS,0BAA0B,CAAC,OAAiB;IACnD,MAAM,oBAAoB,GAAG,EAAE,CAAC;IAChC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO;QACL,UAAU,EAAE;YACV,YAAY,EAAE,oBAAoB;SACnC;QACD,kBAAkB,EAAE,EAAE;QACtB,yBAAyB,EAAE,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,aAAI,CAAC,yCAAyC,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACxD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,iBAAiB,GAAG;;;sBAGR,CAAC;QAEnB,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAEnE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAEvC,MAAM,kBAAkB,GAA+D,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK,WAAU,OAAiB,EAAE,eAAmC;gBACnF,kBAAkB,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;gBACpD,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,YAAY,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,SAAS,EACT,SAAS,EACT,cAAc,EACd,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzB,4CAA4C;QAC5C,+CAA+C;QAC/C,6CAA6C;QAC7C,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAEtD,uFAAuF;QACvF,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAClF,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,6DAA6D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC5E,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,iBAAiB,GAAG;;;sBAGR,CAAC;QAEnB,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAEnE,yGAAyG;QACzG,MAAM,OAAO,GAAG,YAAY,CAAC;QAE7B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACvC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;QAE5C,MAAM,kBAAkB,GAA+D,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK,WAAU,OAAiB,EAAE,eAAmC;gBACnF,kBAAkB,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;gBACpD,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,YAAY,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,SAAS,EACT,OAAO,EACP,cAAc,EACd,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzB,4CAA4C;QAC5C,0EAA0E;QAC1E,wDAAwD;QACxD,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QAE3D,yFAAyF;QACzF,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAClF,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,0FAA0F,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACzG,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;QAEzC,MAAM,iBAAiB,GAAG;;oCAEM,CAAC;QACjC,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAEnE,MAAM,OAAO,GAAG,kBAAkB,CAAC;QACnC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAElD,MAAM,kBAAkB,GAA+D,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK,WAAU,OAAiB,EAAE,eAAmC;gBACnF,kBAAkB,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;gBACpD,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,YAAY,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,SAAS,EACT,OAAO,EACP,cAAc,EACd,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzB,4CAA4C;QAC5C,+CAA+C;QAC/C,kEAAkE;QAClE,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAEjE,0FAA0F;QAC1F,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,6EAA6E,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC5F,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC7C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,yBAAyB,CAAC;QAE1C,MAAM,kBAAkB,GAA+D,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK,WAAU,OAAiB,EAAE,eAAmC;gBACnF,kBAAkB,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;gBACpD,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,YAAY,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,SAAS,EACT,OAAO,EACP,SAAS,EACT,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzB,6CAA6C;QAC7C,gDAAgD;QAChD,8DAA8D;QAC9D,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC5D,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAE5D,qGAAqG;QACrG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAClF,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAClE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,4FAA4F,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC3G,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;QAEzC,MAAM,iBAAiB,GAAG;;;sBAGR,CAAC;QACnB,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAEnE,oFAAoF;QACpF,MAAM,OAAO,GAAG,8BAA8B,CAAC;QAE/C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACvC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;QAC/C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;QAE/C,MAAM,kBAAkB,GAA+D,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK,WAAU,OAAiB,EAAE,eAAmC;gBACnF,kBAAkB,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,eAAe,EAAC,CAAC,CAAC;gBACpD,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,YAAY,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,UAAU,CACzC,SAAS,EACT,OAAO,EACP,cAAc,EACd,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzB,4CAA4C;QAC5C,gDAAgD;QAChD,gDAAgD;QAChD,4CAA4C;QAC5C,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC9D,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAC9D,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAEtD,yDAAyD;QACzD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAClF,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACpE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACpE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,oDAAoD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACnE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,OAAO,GAAG,eAAe,CAAC;QAChC,MAAM,SAAS,GAAG,YAAY,CAAC;QAE/B,+EAA+E;QAC/E,mDAAmD;QACnD,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK,WAAU,QAAkB,EAAE,gBAAoC;gBACrF,OAAO;oBACL,UAAU,EAAE;wBACV,YAAY,EAAE,EAAE;qBACjB;oBACD,kBAAkB,EAAE,EAAE;oBACtB,yBAAyB,EAAE,EAAE;iBAC9B,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,IAAI;YACF,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,OAAO,EACP,SAAS,EACT,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;SAC1C;QAAC,OAAO,GAAG,EAAE;YACZ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;SAC1F;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,4CAA4C,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC3D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,MAAM,GAAG,kBAAS,CAAC;YACvB,cAAc,EAAE,KAAK;gBACnB,OAAO;oBACL,UAAU,EAAE;wBACV,YAAY,EAAE;4BACZ,QAAQ,EAAE,EAAE;yBACb;qBACF;oBACD,kBAAkB,EAAE,EAAE;oBACtB,yBAAyB,EAAE,EAAE;iBAC9B,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG;;;;;;;;;;;cAWhB,CAAC;QACX,MAAM,aAAa,GAAG;YACpB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;SAC3D,CAAC;QACF,MAAM,cAAc,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;QAEtD,0DAA0D;QAC1D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,yCAAyC,CAAC;QAC7D,MAAM,SAAS,GAAG,YAAY,CAAC;QAE/B,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,UAAU,EACV,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,8DAA8D,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAC7E,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,aAAa,GAAG,EAAE,CAAC,CAAC,qCAAqC;QAC/D,eAAe,CAAC,aAAa,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,yCAAyC,CAAC;QAChE,IAAI;YACF,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,aAAa,EACb,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,wBAAe,EAAE,EACjB,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QAAC,OAAO,GAAG,EAAE;YACZ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,kCAAkC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC5F;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,mDAAmD,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAClE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,aAAa,GAAG;QACpB,kCAAkC;SACnC,CAAC;QACF,eAAe,CAAC,aAAa,CAAC,CAAC;QAE/B,MAAM,aAAa,GAAG,yCAAyC,CAAC;QAChE,IAAI;YACF,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,aAAa,EACb,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,wBAAe,EAAE,EACjB,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QAAC,OAAO,GAAG,EAAE;YACZ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,iCAAiC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC3F;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,uBAAuB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IACtC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAEtB,IAAI;YACF,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,SAAS,EACT,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,wBAAe,EAAE,EACjB,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QAAC,OAAO,GAAG,EAAE;YACZ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;SAChE;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,mBAAmB,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;IAClC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC1C,MAAM,SAAS,GAAG,cAAc,CAAC;QAEjC,IAAI;YACF,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,SAAS,EACT,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,wBAAe,EAAE,EACjB,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QAAC,OAAO,GAAG,EAAE;YACZ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACxF;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,kBAAkB,CACzB,QAAgB,EAChB,iBAAyB,EACzB,6BAA6D;IAE7D,aAAI,CAAC,uBAAuB,GAAG,QAAQ,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QACjD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YAC1C,MAAM,MAAM,GAAG,kBAAS,CAAC;gBACvB,cAAc,EAAE,KAAK;oBACnB,OAAO;wBACL,UAAU,EAAE,EAAE;wBACd,kBAAkB,EAAE,EAAE;wBACtB,yBAAyB,EAAE,EAAE;qBAC9B,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,YAAY,CAAC;YAC/B,MAAM,UAAU,GAAG,OAAO,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAChD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;YAEvD,IAAI;gBACF,MAAM,WAAW,CAAC,UAAU,CAC1B,SAAS,EACT,SAAS,EACT,UAAU,EACV,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAC,EACpC,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,4BAA4B,EAC5B,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;aACnD;YAAC,OAAO,GAAG,EAAE;gBACZ,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACvE;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kBAAkB,CAChB,mBAAmB,EACnB;;eAEa,EACb,WAAW,CAAC,cAAc,CAAC,CAAC;AAE9B,kBAAkB,CAChB,sCAAsC,EACtC,6BAA6B,EAC7B,WAAW,CAAC,+BAA+B,CAAC,CAAC;AAE/C,kBAAkB,CAChB,sBAAsB,EACtB,cAAc,EACd,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAEjC,kBAAkB,CAChB,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAErC,kBAAkB,CAChB,oBAAoB,EACpB,WAAW,EACX,WAAW,CAAC,eAAe,CAAC,CAAC;AAE/B,kBAAkB,CAChB,2BAA2B,EAC3B;;;qBAGmB,EACnB,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAEnC,SAAS,sBAAsB,CAC7B,KAAa,EACb,6BAA6D;IAE7D,8CAA8C;IAC9C,8CAA8C;IAC9C,MAAM,iBAAiB,GAAG;;;;eAIb,GAAG,KAAK,CAAC;IAEtB,kBAAkB,CAChB,iBAAiB,GAAG,KAAK,GAAG,IAAI,EAChC,iBAAiB,EACjB,6BAA6B,CAAC,CAAC;AACnC,CAAC;AAED,4DAA4D;AAC5D,sBAAsB,CACpB,IAAI,EACJ,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACtD,sBAAsB,CACpB,SAAS,EACT,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACtD,sBAAsB,CACpB,eAAe,EACf,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AAC5D,sBAAsB,CACpB,YAAY,EACZ,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AACzD,sBAAsB,CACpB,mCAAmC,EACnC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC,CAAC;AAChF,sBAAsB,CACpB,OAAO,EACP,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACvD,sBAAsB,CACpB,MAAM,EACN,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,GAAG;IACjB,KAAK;IACL,MAAM;IACN,QAAQ;IACR,SAAS;IACT,WAAW;IACX,mBAAmB;IACnB,KAAK;IACL,QAAQ;IACR,MAAM;CACP,CAAC;AACF,MAAM,YAAY,GAAG;IACnB,SAAS;IACT,OAAO;IACP,OAAO;IACP,IAAI;CACL,CAAC;AACF,aAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE;IAC3B,kDAAkD;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC;IAC7B,MAAM,UAAU,GAAG,6BAA6B,CAAC;IAEjD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;QAC7B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACtG;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;QAC/B,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,uBAAuB,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,yBAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC5G;AACH,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE;IAC5B,kDAAkD;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC;IAC7B,MAAM,UAAU,GAAG,6BAA6B,CAAC;IAEjD,+BAA+B;IAC/B,CAAC,CAAC,SAAS,CACT,WAAW,CAAC,uBAAuB,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,yBAAe,CAAC,IAAI,CAAC,CAAC,EAC/F,SAAS,CAAC,CAAC;IAEb,8BAA8B;IAC9B,CAAC,CAAC,SAAS,CACT,WAAW,CAAC,uBAAuB,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,yBAAe,CAAC,IAAI,CAAC,CAAC,EAC9F,MAAM,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/analyze.test.ts b/src/analyze.test.ts new file mode 100644 index 000000000..127bc8e77 --- /dev/null +++ b/src/analyze.test.ts @@ -0,0 +1,65 @@ +import test from 'ava'; +import * as fs from 'fs'; + +import { runQueries } from './analyze'; +import { setCodeQL } from './codeql'; +import { Config } from './config-utils'; +import { Language } from './languages'; +import { getRunnerLogger } from './logging'; +import { setupTests } from './testing-utils'; +import * as util from './util'; + +setupTests(test); + +// Checks that the duration fields are populated for the correct language +// and correct case of builtin or custom. +test('status report fields', async t => { + return await util.withTmpDir(async tmpDir => { + setCodeQL({ + databaseAnalyze: async () => undefined + }); + + const memoryFlag = ''; + const threadsFlag = ''; + + for (const language of Object.values(Language)) { + const config: Config = { + languages: [language], + queries: {}, + pathsIgnore: [], + paths: [], + originalUserInput: {}, + tempDir: tmpDir, + toolCacheDir: tmpDir, + codeQLCmd: '', + }; + fs.mkdirSync(util.getCodeQLDatabasePath(config.tempDir, language), { recursive: true }); + + config.queries[language] = { + builtin: ['foo.ql'], + custom: [], + }; + const builtinStatusReport = await runQueries( + tmpDir, + memoryFlag, + threadsFlag, + config, + getRunnerLogger(true)); + t.deepEqual(Object.keys(builtinStatusReport).length, 1); + t.true(`analyze_builtin_queries_${language}_duration_ms` in builtinStatusReport); + + config.queries[language] = { + builtin: [], + custom: ['foo.ql'], + }; + const customStatusReport = await runQueries( + tmpDir, + memoryFlag, + threadsFlag, + config, + getRunnerLogger(true)); + t.deepEqual(Object.keys(customStatusReport).length, 1); + t.true(`analyze_custom_queries_${language}_duration_ms` in customStatusReport); + } + }); +}); diff --git a/src/analyze.ts b/src/analyze.ts index 588238793..05e11a932 100644 --- a/src/analyze.ts +++ b/src/analyze.ts @@ -75,47 +75,58 @@ async function finalizeDatabaseCreation( } // Runs queries and creates sarif files in the given folder -async function runQueries( +export async function runQueries( sarifFolder: string, memoryFlag: string, threadsFlag: string, config: configUtils.Config, logger: Logger): Promise<QueriesStatusReport> { - const codeql = getCodeQL(config.codeQLCmd); + const statusReport: QueriesStatusReport = {}; + for (let language of config.languages) { logger.startGroup('Analyzing ' + language); - const queries = config.queries[language] || []; - if (queries.length === 0) { + const queries = config.queries[language]; + if (queries.builtin.length === 0 && queries.custom.length === 0) { throw new Error('Unable to analyse ' + language + ' as no queries were selected for this language'); } try { - const databasePath = util.getCodeQLDatabasePath(config.tempDir, language); - // Pass the queries to codeql using a file instead of using the command - // line to avoid command line length restrictions, particularly on windows. - const querySuite = databasePath + '-queries.qls'; - const querySuiteContents = queries.map(q => '- query: ' + q).join('\n'); - fs.writeFileSync(querySuite, querySuiteContents); - logger.debug('Query suite file for ' + language + '...\n' + querySuiteContents); - - const sarifFile = path.join(sarifFolder, language + '.sarif'); - - await codeql.databaseAnalyze(databasePath, sarifFile, querySuite, memoryFlag, threadsFlag); - - logger.debug('SARIF results for database ' + language + ' created at "' + sarifFile + '"'); - logger.endGroup(); - + for (const type of ['builtin', 'custom']) { + if (queries[type].length > 0) { + const startTime = new Date().getTime(); + + const databasePath = util.getCodeQLDatabasePath(config.tempDir, language); + // Pass the queries to codeql using a file instead of using the command + // line to avoid command line length restrictions, particularly on windows. + const querySuitePath = `${databasePath}-queries-${type}.qls`; + const querySuiteContents = queries[type].map((q: string) => '- query: ' + q).join('\n'); + fs.writeFileSync(querySuitePath, querySuiteContents); + logger.debug('Query suite file for ' + language + '...\n' + querySuiteContents); + + const sarifFile = path.join(sarifFolder, `${language}-${type}.sarif`); + + const codeql = getCodeQL(config.codeQLCmd); + await codeql.databaseAnalyze(databasePath, sarifFile, querySuitePath, memoryFlag, threadsFlag); + + logger.debug('SARIF results for database ' + language + ' created at "' + sarifFile + '"'); + logger.endGroup(); + + // Record the performance + const endTime = new Date().getTime(); + statusReport[`analyze_${type}_queries_${language}_duration_ms`] = endTime - startTime; + } + } } catch (e) { - // For now the fields about query performance are not populated - return { - analyze_failure_language: language, - }; + logger.error(`Error running analysis for ${language}: ${e}`); + logger.info(e); + statusReport.analyze_failure_language = language; + return statusReport; } } - return {}; + return statusReport; } export async function runAnalyze( diff --git a/src/config-utils.test.ts b/src/config-utils.test.ts index df34fb5f3..cb7aa29d9 100644 --- a/src/config-utils.test.ts +++ b/src/config-utils.test.ts @@ -239,7 +239,10 @@ test("load non-empty input", async t => { // And the config we expect it to parse to const expectedConfig: configUtils.Config = { languages: [Language.javascript], - queries: {'javascript': ['/foo/a.ql', '/bar/b.ql']}, + queries: {'javascript': { + builtin: [], + custom: ['/foo/a.ql', '/bar/b.ql'] + }}, pathsIgnore: ['a', 'b'], paths: ['c/d'], originalUserInput: { @@ -390,9 +393,10 @@ test("Queries can be specified in config file", async t => { t.regex(resolveQueriesArgs[1].queries[0], /.*\/foo$/); // Now check that the end result contains the default queries and the query from config - t.deepEqual(config.queries['javascript'].length, 2); - t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); - t.regex(config.queries['javascript'][1], /.*\/foo$/); + t.deepEqual(config.queries['javascript'].builtin.length, 1); + t.deepEqual(config.queries['javascript'].custom.length, 1); + t.regex(config.queries['javascript'].builtin[0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'].custom[0], /.*\/foo$/); }); }); @@ -442,9 +446,10 @@ test("Queries from config file can be overridden in workflow file", async t => { t.regex(resolveQueriesArgs[1].queries[0], /.*\/override$/); // Now check that the end result contains only the default queries and the override query - t.deepEqual(config.queries['javascript'].length, 2); - t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); - t.regex(config.queries['javascript'][1], /.*\/override$/); + t.deepEqual(config.queries['javascript'].builtin.length, 1); + t.deepEqual(config.queries['javascript'].custom.length, 1); + t.regex(config.queries['javascript'].builtin[0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'].custom[0], /.*\/override$/); }); }); @@ -492,8 +497,9 @@ test("Queries in workflow file can be used in tandem with the 'disable default q t.regex(resolveQueriesArgs[0].queries[0], /.*\/workflow-query$/); // Now check that the end result contains only the workflow query, and not the default one - t.deepEqual(config.queries['javascript'].length, 1); - t.regex(config.queries['javascript'][0], /.*\/workflow-query$/); + t.deepEqual(config.queries['javascript'].builtin.length, 0); + t.deepEqual(config.queries['javascript'].custom.length, 1); + t.regex(config.queries['javascript'].custom[0], /.*\/workflow-query$/); }); }); @@ -537,10 +543,11 @@ test("Multiple queries can be specified in workflow file, no config file require t.regex(resolveQueriesArgs[2].queries[0], /.*\/override2$/); // Now check that the end result contains both the queries from the workflow, as well as the defaults - t.deepEqual(config.queries['javascript'].length, 3); - t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); - t.regex(config.queries['javascript'][1], /.*\/override1$/); - t.regex(config.queries['javascript'][2], /.*\/override2$/); + t.deepEqual(config.queries['javascript'].builtin.length, 1); + t.deepEqual(config.queries['javascript'].custom.length, 2); + t.regex(config.queries['javascript'].builtin[0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'].custom[0], /.*\/override1$/); + t.regex(config.queries['javascript'].custom[1], /.*\/override2$/); }); }); @@ -598,11 +605,12 @@ test("Queries in workflow file can be added to the set of queries without overri t.regex(resolveQueriesArgs[3].queries[0], /.*\/foo$/); // Now check that the end result contains all the queries - t.deepEqual(config.queries['javascript'].length, 4); - t.regex(config.queries['javascript'][0], /javascript-code-scanning.qls$/); - t.regex(config.queries['javascript'][1], /.*\/additional1$/); - t.regex(config.queries['javascript'][2], /.*\/additional2$/); - t.regex(config.queries['javascript'][3], /.*\/foo$/); + t.deepEqual(config.queries['javascript'].builtin.length, 1); + t.deepEqual(config.queries['javascript'].custom.length, 3); + t.regex(config.queries['javascript'].builtin[0], /javascript-code-scanning.qls$/); + t.regex(config.queries['javascript'].custom[0], /.*\/additional1$/); + t.regex(config.queries['javascript'].custom[1], /.*\/additional2$/); + t.regex(config.queries['javascript'].custom[2], /.*\/foo$/); }); }); diff --git a/src/config-utils.ts b/src/config-utils.ts index c313b6c30..a5145291f 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -31,6 +31,22 @@ export interface UserConfig { paths?: string[]; } +/** + * Lists of query files for each language. + * Will only contain .ql files and not other kinds of files, + * and all file paths will be absolute. + * + * The queries are split between ones from a builtin suite + * and custom queries from unknown locations. This allows us to treat + * them separately if we want to, for example to measure performance. + */ +type Queries = { [language: string]: { + /** Queries from one of the builtin suites */ + builtin: string[]; + /** Custom queries, from a non-standard location */ + custom: string[]; +}}; + /** * Format of the parsed config file. */ @@ -41,10 +57,8 @@ export interface Config { languages: Language[]; /** * Map from language to query files. - * Will only contain .ql files and not other kinds of files, - * and all file paths will be absolute. */ - queries: { [language: string]: string[] }; + queries: Queries; /** * List of paths to ignore from analysis. */ @@ -122,34 +136,46 @@ function validateQueries(resolvedQueries: ResolveQueriesOutput) { /** * Run 'codeql resolve queries' and add the results to resultMap + * + * If a checkout path is given then the queries are assumed to be custom queries + * and an error will be thrown if there is anything invalid about the queries. + * If a checkout path is not given then the queries are assumed to be builtin + * queries, and error checking will be suppressed. */ async function runResolveQueries( codeQL: CodeQL, - resultMap: { [language: string]: string[] }, + resultMap: Queries, toResolve: string[], - extraSearchPath: string | undefined, - errorOnInvalidQueries: boolean) { + extraSearchPath: string | undefined) { const resolvedQueries = await codeQL.resolveQueries(toResolve, extraSearchPath); - for (const [language, queries] of Object.entries(resolvedQueries.byLanguage)) { - if (resultMap[language] === undefined) { - resultMap[language] = []; - } - resultMap[language].push(...Object.keys(queries).filter(q => !queryIsDisabled(language, q))); + if (extraSearchPath !== undefined) { + validateQueries(resolvedQueries); } - if (errorOnInvalidQueries) { - validateQueries(resolvedQueries); + for (const [language, queryPaths] of Object.entries(resolvedQueries.byLanguage)) { + if (resultMap[language] === undefined) { + resultMap[language] = { + builtin: [], + custom: [], + }; + } + const queries = Object.keys(queryPaths).filter(q => !queryIsDisabled(language, q)); + if (extraSearchPath !== undefined) { + resultMap[language].custom.push(...queries); + } else { + resultMap[language].builtin.push(...queries); + } } } /** * Get the set of queries included by default. */ -async function addDefaultQueries(codeQL: CodeQL, languages: string[], resultMap: { [language: string]: string[] }) { +async function addDefaultQueries(codeQL: CodeQL, languages: string[], resultMap: Queries) { const suites = languages.map(l => l + '-code-scanning.qls'); - await runResolveQueries(codeQL, resultMap, suites, undefined, false); + await runResolveQueries(codeQL, resultMap, suites, undefined); } // The set of acceptable values for built-in suites from the codeql bundle @@ -162,7 +188,7 @@ const builtinSuites = ['security-extended', 'security-and-quality'] as const; async function addBuiltinSuiteQueries( languages: string[], codeQL: CodeQL, - resultMap: { [language: string]: string[] }, + resultMap: Queries, suiteName: string, configFile?: string) { @@ -172,7 +198,7 @@ async function addBuiltinSuiteQueries( } const suites = languages.map(l => l + '-' + suiteName + '.qls'); - await runResolveQueries(codeQL, resultMap, suites, undefined, false); + await runResolveQueries(codeQL, resultMap, suites, undefined); } /** @@ -180,7 +206,7 @@ async function addBuiltinSuiteQueries( */ async function addLocalQueries( codeQL: CodeQL, - resultMap: { [language: string]: string[] }, + resultMap: Queries, localQueryPath: string, checkoutPath: string, configFile?: string) { @@ -202,7 +228,7 @@ async function addLocalQueries( throw new Error(getLocalPathOutsideOfRepository(configFile, localQueryPath)); } - await runResolveQueries(codeQL, resultMap, [absoluteQueryPath], checkoutPath, true); + await runResolveQueries(codeQL, resultMap, [absoluteQueryPath], checkoutPath); } /** @@ -210,7 +236,7 @@ async function addLocalQueries( */ async function addRemoteQueries( codeQL: CodeQL, - resultMap: { [language: string]: string[] }, + resultMap: Queries, queryUses: string, tempDir: string, githubUrl: string, @@ -249,7 +275,7 @@ async function addRemoteQueries( ? path.join(checkoutPath, tok.slice(2).join('/')) : checkoutPath; - await runResolveQueries(codeQL, resultMap, [queryPath], checkoutPath, true); + await runResolveQueries(codeQL, resultMap, [queryPath], checkoutPath); } /** @@ -263,7 +289,7 @@ async function addRemoteQueries( async function parseQueryUses( languages: string[], codeQL: CodeQL, - resultMap: { [language: string]: string[] }, + resultMap: Queries, queryUses: string, tempDir: string, checkoutPath: string, @@ -543,7 +569,7 @@ async function addQueriesFromWorkflow( codeQL: CodeQL, queriesInput: string, languages: string[], - resultMap: { [language: string]: string[] }, + resultMap: Queries, tempDir: string, checkoutPath: string, githubUrl: string, @@ -599,7 +625,7 @@ export async function getDefaultConfig( githubAuth, githubUrl, logger); - const queries = {}; + const queries: Queries = {}; await addDefaultQueries(codeQL, languages, queries); if (queriesInput) { await addQueriesFromWorkflow( @@ -672,7 +698,7 @@ async function loadConfig( githubUrl, logger); - const queries = {}; + const queries: Queries = {}; const pathsIgnore: string[] = []; const paths: string[] = []; @@ -750,7 +776,8 @@ async function loadConfig( // The list of queries should not be empty for any language. If it is then // it is a user configuration error. for (const language of languages) { - if (queries[language] === undefined || queries[language].length === 0) { + if (queries[language] === undefined || + (queries[language].builtin.length === 0 && queries[language].custom.length === 0)) { throw new Error(`Did not detect any queries to run for ${language}. ` + "Please make sure that the default queries are enabled, or you are specifying queries to run."); }