From bad0a744dd6cc1f427923791a468b79438e0532a Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Fri, 10 Apr 2026 17:33:06 +0100 Subject: [PATCH 1/2] Store all built-in languages While we want the CodeQL Action to work with third-party language support, having a list of all built-in languages can help us create better type-level checks to ensure that we don't miss things that we want to customize for each of our built-in languages. --- .github/workflows/script/tsconfig.json | 11 + .../script/update-builtin-languages.ts | 88 + .github/workflows/update-bundle.yml | 7 +- lib/analyze-action-post.js | 30 + lib/analyze-action.js | 30 + lib/autobuild-action.js | 30 + lib/init-action-post.js | 30 + lib/init-action.js | 30 +- lib/resolve-environment-action.js | 30 + lib/setup-codeql-action.js | 30 + lib/start-proxy-action-post.js | 30 + lib/start-proxy-action.js | 1948 ++++++++--------- lib/upload-lib.js | 30 + lib/upload-sarif-action-post.js | 30 + lib/upload-sarif-action.js | 30 + package.json | 2 +- src/config-utils.test.ts | 2 +- src/known-language-aliases.json | 11 - src/languages/builtin.json | 25 + src/languages/index.test.ts | 46 + src/{languages.ts => languages/index.ts} | 25 + src/start-proxy-action.ts | 7 +- src/start-proxy.test.ts | 28 - src/start-proxy.ts | 32 +- 24 files changed, 1495 insertions(+), 1067 deletions(-) create mode 100644 .github/workflows/script/tsconfig.json create mode 100644 .github/workflows/script/update-builtin-languages.ts delete mode 100644 src/known-language-aliases.json create mode 100644 src/languages/builtin.json create mode 100644 src/languages/index.test.ts rename src/{languages.ts => languages/index.ts} (53%) diff --git a/.github/workflows/script/tsconfig.json b/.github/workflows/script/tsconfig.json new file mode 100644 index 0000000000..f0499903e9 --- /dev/null +++ b/.github/workflows/script/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "lib": ["esnext"], + "rootDir": "../../..", + "sourceMap": false, + "noEmit": true, + }, + "include": ["./*.ts"], + "exclude": ["node_modules"] +} diff --git a/.github/workflows/script/update-builtin-languages.ts b/.github/workflows/script/update-builtin-languages.ts new file mode 100644 index 0000000000..471c4fc336 --- /dev/null +++ b/.github/workflows/script/update-builtin-languages.ts @@ -0,0 +1,88 @@ +#!/usr/bin/env npx tsx + +/** + * Updates src/languages/builtin.json by querying the CodeQL CLI for: + * - Languages that have default queries (via codeql-extractor.yml) + * - Language aliases (via `codeql resolve languages --format=betterjson --extractor-include-aliases`) + * + * Usage: + * npx tsx .github/workflows/script/update-builtin-languages.ts [path-to-codeql] + * + * If no path is given, falls back to "codeql". + */ + +import { execFileSync } from "node:child_process"; +import * as fs from "node:fs"; +import * as path from "node:path"; + +import * as yaml from "yaml"; + +const codeqlPath = process.argv[2] || "codeql"; + +// Step 1: Resolve all language extractor directories. +const resolveJson: Record = JSON.parse( + execFileSync( + codeqlPath, + ["resolve", "languages", "--format=json"], + { encoding: "utf8" }, + ), +); + +// Step 2: For each language, read codeql-extractor.yml and check default_queries. +const languages: string[] = []; + +for (const [language, dirs] of Object.entries(resolveJson)) { + const extractorDir = dirs[0]; + const extractorYmlPath = path.join(extractorDir, "codeql-extractor.yml"); + + if (!fs.existsSync(extractorYmlPath)) { + throw new Error(`Extractor YAML not found for language '${language}' at expected path: ${extractorYmlPath}`); + } + + const extractorYml = yaml.parse(fs.readFileSync(extractorYmlPath, "utf8")); + const defaultQueries: unknown[] | undefined = extractorYml.default_queries; + + if (Array.isArray(defaultQueries) && defaultQueries.length > 0) { + console.log(` ✅ ${language}: included (default_queries: ${JSON.stringify(defaultQueries)})`); + languages.push(language); + } else { + console.log(` ❌ ${language}: excluded (no default queries)`); + } +} + +languages.sort(); + +// Step 3: Resolve aliases, filtered to only those targeting included languages. +const betterjsonOutput = JSON.parse( + execFileSync( + codeqlPath, + ["resolve", "languages", "--format=betterjson", "--extractor-include-aliases"], + { encoding: "utf8" }, + ), +); + +const languageSet = new Set(languages); +const aliases: Record = Object.fromEntries( + Object.entries((betterjsonOutput.aliases ?? {}) as Record) + .filter(([, target]) => languageSet.has(target)) + .sort(([a], [b]) => a.localeCompare(b)), +); + +// Step 4: Write builtin.json. +const outputPath = path.join( + __dirname, + "..", + "..", + "..", + "src", + "languages", + "builtin.json", +); + +const content = JSON.stringify({ languages, aliases }, null, 2) + "\n"; +fs.mkdirSync(path.dirname(outputPath), { recursive: true }); +fs.writeFileSync(outputPath, content); + +console.log(`\nWrote ${outputPath}`); +console.log(` Languages: ${languages.join(", ")}`); +console.log(` Aliases: ${Object.keys(aliases).join(", ")}`); diff --git a/.github/workflows/update-bundle.yml b/.github/workflows/update-bundle.yml index acc8fc27eb..55c6f37c5f 100644 --- a/.github/workflows/update-bundle.yml +++ b/.github/workflows/update-bundle.yml @@ -63,13 +63,10 @@ jobs: with: tools: https://github.com/github/codeql-action/releases/download/${{ github.event.release.tag_name }}/codeql-bundle-linux64.tar.gz - - name: Update language aliases + - name: Update built-in languages + run: npx tsx .github/workflows/script/update-builtin-languages.ts "$CODEQL_PATH" env: CODEQL_PATH: ${{ steps.setup-codeql.outputs.codeql-path }} - run: | - "$CODEQL_PATH" resolve languages --format=betterjson --extractor-include-aliases \ - | jq -S '.aliases // {}' \ - > src/known-language-aliases.json - name: Bump Action minor version if new CodeQL minor version series id: bump-action-version diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index 32196392d0..d40047e2a2 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -162606,6 +162606,36 @@ var featureConfig = { } }; +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 85cab13bf4..6d6eae83a7 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -108680,6 +108680,36 @@ ${jsonContents}` } } +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index a0accec339..3c72ad257e 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -104981,6 +104981,36 @@ function initFeatures(gitHubVersion, repositoryNwo, tempDir, logger) { } } +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/init-action-post.js b/lib/init-action-post.js index ddd0308c31..33eef97318 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -166466,6 +166466,36 @@ ${jsonContents}` } } +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var fs7 = __toESM(require("fs")); var path7 = __toESM(require("path")); diff --git a/lib/init-action.js b/lib/init-action.js index ac1f72ea58..6f5a5ad32f 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -106373,7 +106373,34 @@ function getDiffRanges(fileDiff, logger) { return diffRanges; } -// src/languages.ts +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts var KnownLanguage = /* @__PURE__ */ ((KnownLanguage2) => { KnownLanguage2["actions"] = "actions"; KnownLanguage2["cpp"] = "cpp"; @@ -106387,6 +106414,7 @@ var KnownLanguage = /* @__PURE__ */ ((KnownLanguage2) => { KnownLanguage2["swift"] = "swift"; return KnownLanguage2; })(KnownLanguage || {}); +var knownLanguageSet = new Set(builtin_default.languages); // src/overlay/diagnostics.ts async function addOverlayDisablementDiagnostics(config, codeql, overlayDisabledReason) { diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index 6d6e29821f..fd441b9d1c 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -104649,6 +104649,36 @@ var featureConfig = { } }; +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index 73541a3b87..e6fe903831 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -105214,6 +105214,36 @@ function writeDiagnostic(config, language, diagnostic) { } } +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/start-proxy-action-post.js b/lib/start-proxy-action-post.js index 25d0f40c6b..bbe938bed5 100644 --- a/lib/start-proxy-action-post.js +++ b/lib/start-proxy-action-post.js @@ -161933,6 +161933,36 @@ var featureConfig = { } }; +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 072deb113a..0662f93bfc 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -1586,8 +1586,8 @@ var require_util = __commonJS({ function isUSVString(val) { return hasIsWellFormed ? `${val}`.isWellFormed() : toUSVString(val) === `${val}`; } - function isTokenCharCode(c2) { - switch (c2) { + function isTokenCharCode(c) { + switch (c) { case 34: case 40: case 41: @@ -1607,7 +1607,7 @@ var require_util = __commonJS({ case 125: return false; default: - return c2 >= 33 && c2 <= 126; + return c >= 33 && c <= 126; } } function isValidHTTPToken(characters) { @@ -3179,7 +3179,7 @@ var require_constants2 = __commonJS({ exports2.HEADER_CHARS.push(i); } } - exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS.filter((c2) => c2 !== 44); + exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS.filter((c) => c !== 44); exports2.MAJOR = exports2.NUM_MAP; exports2.MINOR = exports2.MAJOR; var HEADER_STATE; @@ -4318,10 +4318,10 @@ var require_util2 = __commonJS({ } function isValidReasonPhrase(statusText) { for (let i = 0; i < statusText.length; ++i) { - const c2 = statusText.charCodeAt(i); - if (!(c2 === 9 || // HTAB - c2 >= 32 && c2 <= 126 || // SP / VCHAR - c2 >= 128 && c2 <= 255)) { + const c = statusText.charCodeAt(i); + if (!(c === 9 || // HTAB + c >= 32 && c <= 126 || // SP / VCHAR + c >= 128 && c <= 255)) { return false; } } @@ -8281,7 +8281,7 @@ var require_pool_base = __commonJS({ pool.emit("drain", origin, [pool, ...targets]); } if (pool[kClosedResolve] && queue.isEmpty()) { - Promise.all(pool[kClients].map((c2) => c2.close())).then(pool[kClosedResolve]); + Promise.all(pool[kClients].map((c) => c.close())).then(pool[kClosedResolve]); } }; this[kOnConnect] = (origin, targets) => { @@ -8330,7 +8330,7 @@ var require_pool_base = __commonJS({ } async [kClose]() { if (this[kQueue].isEmpty()) { - await Promise.all(this[kClients].map((c2) => c2.close())); + await Promise.all(this[kClients].map((c) => c.close())); } else { await new Promise((resolve2) => { this[kClosedResolve] = resolve2; @@ -8345,7 +8345,7 @@ var require_pool_base = __commonJS({ } item.handler.onError(err); } - await Promise.all(this[kClients].map((c2) => c2.destroy(err))); + await Promise.all(this[kClients].map((c) => c.destroy(err))); } [kDispatch](opts, handler2) { const dispatcher = this[kGetDispatcher](); @@ -15073,8 +15073,8 @@ var require_util4 = __commonJS({ return new TextDecoder(encoding).decode(sliced); } function BOMSniffing(ioQueue) { - const [a, b, c2] = ioQueue; - if (a === 239 && b === 187 && c2 === 191) { + const [a, b, c] = ioQueue; + if (a === 239 && b === 187 && c === 191) { return "UTF-8"; } else if (a === 254 && b === 255) { return "UTF-16BE"; @@ -19488,7 +19488,7 @@ var require_lib = __commonJS({ } }; exports2.HttpClient = HttpClient; - var lowercaseKeys2 = (obj) => Object.keys(obj).reduce((c2, k) => (c2[k.toLowerCase()] = obj[k], c2), {}); + var lowercaseKeys2 = (obj) => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {}); } }); @@ -20898,39 +20898,39 @@ var require_toolrunner = __commonJS({ let inQuotes = false; let escaped = false; let arg = ""; - function append(c2) { - if (escaped && c2 !== '"') { + function append(c) { + if (escaped && c !== '"') { arg += "\\"; } - arg += c2; + arg += c; escaped = false; } for (let i = 0; i < argString.length; i++) { - const c2 = argString.charAt(i); - if (c2 === '"') { + const c = argString.charAt(i); + if (c === '"') { if (!escaped) { inQuotes = !inQuotes; } else { - append(c2); + append(c); } continue; } - if (c2 === "\\" && escaped) { - append(c2); + if (c === "\\" && escaped) { + append(c); continue; } - if (c2 === "\\" && inQuotes) { + if (c === "\\" && inQuotes) { escaped = true; continue; } - if (c2 === " " && !inQuotes) { + if (c === " " && !inQuotes) { if (arg.length > 0) { args.push(arg); arg = ""; } continue; } - append(c2); + append(c); } if (arg.length > 0) { args.push(arg.trim()); @@ -22584,8 +22584,8 @@ var require_util9 = __commonJS({ function isUSVString(val) { return hasIsWellFormed ? `${val}`.isWellFormed() : toUSVString(val) === `${val}`; } - function isTokenCharCode(c2) { - switch (c2) { + function isTokenCharCode(c) { + switch (c) { case 34: case 40: case 41: @@ -22605,7 +22605,7 @@ var require_util9 = __commonJS({ case 125: return false; default: - return c2 >= 33 && c2 <= 126; + return c >= 33 && c <= 126; } } function isValidHTTPToken(characters) { @@ -24177,7 +24177,7 @@ var require_constants7 = __commonJS({ exports2.HEADER_CHARS.push(i); } } - exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS.filter((c2) => c2 !== 44); + exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS.filter((c) => c !== 44); exports2.MAJOR = exports2.NUM_MAP; exports2.MINOR = exports2.MAJOR; var HEADER_STATE; @@ -25316,10 +25316,10 @@ var require_util10 = __commonJS({ } function isValidReasonPhrase(statusText) { for (let i = 0; i < statusText.length; ++i) { - const c2 = statusText.charCodeAt(i); - if (!(c2 === 9 || // HTAB - c2 >= 32 && c2 <= 126 || // SP / VCHAR - c2 >= 128 && c2 <= 255)) { + const c = statusText.charCodeAt(i); + if (!(c === 9 || // HTAB + c >= 32 && c <= 126 || // SP / VCHAR + c >= 128 && c <= 255)) { return false; } } @@ -29279,7 +29279,7 @@ var require_pool_base2 = __commonJS({ pool.emit("drain", origin, [pool, ...targets]); } if (pool[kClosedResolve] && queue.isEmpty()) { - Promise.all(pool[kClients].map((c2) => c2.close())).then(pool[kClosedResolve]); + Promise.all(pool[kClients].map((c) => c.close())).then(pool[kClosedResolve]); } }; this[kOnConnect] = (origin, targets) => { @@ -29328,7 +29328,7 @@ var require_pool_base2 = __commonJS({ } async [kClose]() { if (this[kQueue].isEmpty()) { - await Promise.all(this[kClients].map((c2) => c2.close())); + await Promise.all(this[kClients].map((c) => c.close())); } else { await new Promise((resolve2) => { this[kClosedResolve] = resolve2; @@ -29343,7 +29343,7 @@ var require_pool_base2 = __commonJS({ } item.handler.onError(err); } - await Promise.all(this[kClients].map((c2) => c2.destroy(err))); + await Promise.all(this[kClients].map((c) => c.destroy(err))); } [kDispatch](opts, handler2) { const dispatcher = this[kGetDispatcher](); @@ -36071,8 +36071,8 @@ var require_util12 = __commonJS({ return new TextDecoder(encoding).decode(sliced); } function BOMSniffing(ioQueue) { - const [a, b, c2] = ioQueue; - if (a === 239 && b === 187 && c2 === 191) { + const [a, b, c] = ioQueue; + if (a === 239 && b === 187 && c === 191) { return "UTF-8"; } else if (a === 254 && b === 255) { return "UTF-16BE"; @@ -40160,8 +40160,8 @@ function encodeReserved(str2) { }).join(""); } function encodeUnreserved(str2) { - return encodeURIComponent(str2).replace(/[!'()*]/g, function(c2) { - return "%" + c2.charCodeAt(0).toString(16).toUpperCase(); + return encodeURIComponent(str2).replace(/[!'()*]/g, function(c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); }); } function encodeValue(operator, value, key) { @@ -44946,19 +44946,19 @@ var require_range = __commonJS({ this.loose = !!options.loose; this.includePrerelease = !!options.includePrerelease; this.raw = range.trim().replace(SPACE_CHARACTERS, " "); - this.set = this.raw.split("||").map((r) => this.parseRange(r.trim())).filter((c2) => c2.length); + this.set = this.raw.split("||").map((r) => this.parseRange(r.trim())).filter((c) => c.length); if (!this.set.length) { throw new TypeError(`Invalid SemVer Range: ${this.raw}`); } if (this.set.length > 1) { const first = this.set[0]; - this.set = this.set.filter((c2) => !isNullSet(c2[0])); + this.set = this.set.filter((c) => !isNullSet(c[0])); if (this.set.length === 0) { this.set = [first]; } else if (this.set.length > 1) { - for (const c2 of this.set) { - if (c2.length === 1 && isAny(c2[0])) { - this.set = [c2]; + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c]; break; } } @@ -45079,8 +45079,8 @@ var require_range = __commonJS({ caretTrimReplace } = require_re(); var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants11(); - var isNullSet = (c2) => c2.value === "<0.0.0-0"; - var isAny = (c2) => c2.value === ""; + var isNullSet = (c) => c.value === "<0.0.0-0"; + var isAny = (c) => c.value === ""; var isSatisfiable = (comparators, options) => { let result = true; const remainingComparators = comparators.slice(); @@ -45108,7 +45108,7 @@ var require_range = __commonJS({ }; var isX = (id) => !id || id.toLowerCase() === "x" || id === "*"; var replaceTildes = (comp, options) => { - return comp.trim().split(/\s+/).map((c2) => replaceTilde(c2, options)).join(" "); + return comp.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" "); }; var replaceTilde = (comp, options) => { const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]; @@ -45132,7 +45132,7 @@ var require_range = __commonJS({ }); }; var replaceCarets = (comp, options) => { - return comp.trim().split(/\s+/).map((c2) => replaceCaret(c2, options)).join(" "); + return comp.trim().split(/\s+/).map((c) => replaceCaret(c, options)).join(" "); }; var replaceCaret = (comp, options) => { debug5("caret", comp, options); @@ -45180,7 +45180,7 @@ var require_range = __commonJS({ }; var replaceXRanges = (comp, options) => { debug5("replaceXRanges", comp, options); - return comp.split(/\s+/).map((c2) => replaceXRange(c2, options)).join(" "); + return comp.split(/\s+/).map((c) => replaceXRange(c, options)).join(" "); }; var replaceXRange = (comp, options) => { comp = comp.trim(); @@ -45433,7 +45433,7 @@ var require_to_comparators = __commonJS({ "node_modules/semver/ranges/to-comparators.js"(exports2, module2) { "use strict"; var Range2 = require_range(); - var toComparators = (range, options) => new Range2(range, options).set.map((comp) => comp.map((c2) => c2.value).join(" ").trim().split(" ")); + var toComparators = (range, options) => new Range2(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" ")); module2.exports = toComparators; } }); @@ -45778,13 +45778,13 @@ var require_subset = __commonJS({ } const eqSet = /* @__PURE__ */ new Set(); let gt, lt; - for (const c2 of sub) { - if (c2.operator === ">" || c2.operator === ">=") { - gt = higherGT(gt, c2, options); - } else if (c2.operator === "<" || c2.operator === "<=") { - lt = lowerLT(lt, c2, options); + for (const c of sub) { + if (c.operator === ">" || c.operator === ">=") { + gt = higherGT(gt, c, options); + } else if (c.operator === "<" || c.operator === "<=") { + lt = lowerLT(lt, c, options); } else { - eqSet.add(c2.semver); + eqSet.add(c.semver); } } if (eqSet.size > 1) { @@ -45806,8 +45806,8 @@ var require_subset = __commonJS({ if (lt && !satisfies2(eq, String(lt), options)) { return null; } - for (const c2 of dom) { - if (!satisfies2(eq, String(c2), options)) { + for (const c of dom) { + if (!satisfies2(eq, String(c), options)) { return false; } } @@ -45820,40 +45820,40 @@ var require_subset = __commonJS({ if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0) { needDomLTPre = false; } - for (const c2 of dom) { - hasDomGT = hasDomGT || c2.operator === ">" || c2.operator === ">="; - hasDomLT = hasDomLT || c2.operator === "<" || c2.operator === "<="; + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === ">" || c.operator === ">="; + hasDomLT = hasDomLT || c.operator === "<" || c.operator === "<="; if (gt) { if (needDomGTPre) { - if (c2.semver.prerelease && c2.semver.prerelease.length && c2.semver.major === needDomGTPre.major && c2.semver.minor === needDomGTPre.minor && c2.semver.patch === needDomGTPre.patch) { + if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) { needDomGTPre = false; } } - if (c2.operator === ">" || c2.operator === ">=") { - higher = higherGT(gt, c2, options); - if (higher === c2 && higher !== gt) { + if (c.operator === ">" || c.operator === ">=") { + higher = higherGT(gt, c, options); + if (higher === c && higher !== gt) { return false; } - } else if (gt.operator === ">=" && !satisfies2(gt.semver, String(c2), options)) { + } else if (gt.operator === ">=" && !satisfies2(gt.semver, String(c), options)) { return false; } } if (lt) { if (needDomLTPre) { - if (c2.semver.prerelease && c2.semver.prerelease.length && c2.semver.major === needDomLTPre.major && c2.semver.minor === needDomLTPre.minor && c2.semver.patch === needDomLTPre.patch) { + if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) { needDomLTPre = false; } } - if (c2.operator === "<" || c2.operator === "<=") { - lower = lowerLT(lt, c2, options); - if (lower === c2 && lower !== lt) { + if (c.operator === "<" || c.operator === "<=") { + lower = lowerLT(lt, c, options); + if (lower === c && lower !== lt) { return false; } - } else if (lt.operator === "<=" && !satisfies2(lt.semver, String(c2), options)) { + } else if (lt.operator === "<=" && !satisfies2(lt.semver, String(c), options)) { return false; } } - if (!c2.operator && (lt || gt) && gtltComp !== 0) { + if (!c.operator && (lt || gt) && gtltComp !== 0) { return false; } } @@ -47815,25 +47815,25 @@ var require_brace_expansion = __commonJS({ var pad = n.some(isPadded); N = []; for (var i = x; test(i, y); i += incr) { - var c2; + var c; if (isAlphaSequence) { - c2 = String.fromCharCode(i); - if (c2 === "\\") - c2 = ""; + c = String.fromCharCode(i); + if (c === "\\") + c = ""; } else { - c2 = String(i); + c = String(i); if (pad) { - var need = width - c2.length; + var need = width - c.length; if (need > 0) { var z = new Array(need + 1).join("0"); if (i < 0) - c2 = "-" + z + c2.slice(1); + c = "-" + z + c.slice(1); else - c2 = z + c2; + c = z + c; } } } - N.push(c2); + N.push(c); } } else { N = concatMap(n, function(el) { @@ -47881,8 +47881,8 @@ var require_minimatch = __commonJS({ var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; var reSpecials = charSet("().*{}+?[]^$\\!"); function charSet(s) { - return s.split("").reduce(function(set2, c2) { - set2[c2] = true; + return s.split("").reduce(function(set2, c) { + set2[c] = true; return set2; }, {}); } @@ -48086,14 +48086,14 @@ var require_minimatch = __commonJS({ stateChar = false; } } - for (var i = 0, len = pattern.length, c2; i < len && (c2 = pattern.charAt(i)); i++) { - this.debug("%s %s %s %j", pattern, i, re, c2); - if (escaping && reSpecials[c2]) { - re += "\\" + c2; + for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) { + this.debug("%s %s %s %j", pattern, i, re, c); + if (escaping && reSpecials[c]) { + re += "\\" + c; escaping = false; continue; } - switch (c2) { + switch (c) { /* istanbul ignore next */ case "/": { return false; @@ -48109,17 +48109,17 @@ var require_minimatch = __commonJS({ case "+": case "@": case "!": - this.debug("%s %s %s %j <-- stateChar", pattern, i, re, c2); + this.debug("%s %s %s %j <-- stateChar", pattern, i, re, c); if (inClass) { this.debug(" in class"); - if (c2 === "!" && i === classStart + 1) c2 = "^"; - re += c2; + if (c === "!" && i === classStart + 1) c = "^"; + re += c; continue; } - if (c2 === "*" && stateChar === "*") continue; + if (c === "*" && stateChar === "*") continue; self2.debug("call clearStateChar %j", stateChar); clearStateChar(); - stateChar = c2; + stateChar = c; if (options.noext) clearStateChar(); continue; case "(": @@ -48169,17 +48169,17 @@ var require_minimatch = __commonJS({ case "[": clearStateChar(); if (inClass) { - re += "\\" + c2; + re += "\\" + c; continue; } inClass = true; classStart = i; reClassStart = re.length; - re += c2; + re += c; continue; case "]": if (i === classStart + 1 || !inClass) { - re += "\\" + c2; + re += "\\" + c; escaping = false; continue; } @@ -48195,16 +48195,16 @@ var require_minimatch = __commonJS({ } hasMagic = true; inClass = false; - re += c2; + re += c; continue; default: clearStateChar(); if (escaping) { escaping = false; - } else if (reSpecials[c2] && !(c2 === "^" && inClass)) { + } else if (reSpecials[c] && !(c === "^" && inClass)) { re += "\\"; } - re += c2; + re += c; } } if (inClass) { @@ -48802,25 +48802,25 @@ var require_internal_pattern = __commonJS({ static getLiteral(segment) { let literal = ""; for (let i = 0; i < segment.length; i++) { - const c2 = segment[i]; - if (c2 === "\\" && !IS_WINDOWS && i + 1 < segment.length) { + const c = segment[i]; + if (c === "\\" && !IS_WINDOWS && i + 1 < segment.length) { literal += segment[++i]; continue; - } else if (c2 === "*" || c2 === "?") { + } else if (c === "*" || c === "?") { return ""; - } else if (c2 === "[" && i + 1 < segment.length) { + } else if (c === "[" && i + 1 < segment.length) { let set2 = ""; let closed = -1; for (let i2 = i + 1; i2 < segment.length; i2++) { - const c22 = segment[i2]; - if (c22 === "\\" && !IS_WINDOWS && i2 + 1 < segment.length) { + const c2 = segment[i2]; + if (c2 === "\\" && !IS_WINDOWS && i2 + 1 < segment.length) { set2 += segment[++i2]; continue; - } else if (c22 === "]") { + } else if (c2 === "]") { closed = i2; break; } else { - set2 += c22; + set2 += c2; } } if (closed >= 0) { @@ -48834,7 +48834,7 @@ var require_internal_pattern = __commonJS({ } } } - literal += c2; + literal += c; } return literal; } @@ -50020,8 +50020,8 @@ var require_semver3 = __commonJS({ this.raw = range.trim().split(/\s+/).join(" "); this.set = this.raw.split("||").map(function(range2) { return this.parseRange(range2.trim()); - }, this).filter(function(c2) { - return c2.length; + }, this).filter(function(c) { + return c.length; }); if (!this.set.length) { throw new TypeError("Invalid SemVer Range: " + this.raw); @@ -50090,8 +50090,8 @@ var require_semver3 = __commonJS({ exports2.toComparators = toComparators; function toComparators(range, options) { return new Range2(range, options).set.map(function(comp) { - return comp.map(function(c2) { - return c2.value; + return comp.map(function(c) { + return c.value; }).join(" ").trim().split(" "); }); } @@ -50852,10 +50852,10 @@ function __rest(s, e) { return t; } function __decorate(decorators, target, key, desc) { - var c2 = arguments.length, r = c2 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c2 < 3 ? d(r) : c2 > 3 ? d(target, key, r) : d(target, key)) || r; - return c2 > 3 && r && Object.defineProperty(target, key, r), r; + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function(target, key) { @@ -53603,8 +53603,8 @@ var require_browser = __commonJS({ if (!this.useColors) { return; } - const c2 = "color: " + this.color; - args.splice(1, 0, c2, "color: inherit"); + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); let index = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, (match) => { @@ -53616,7 +53616,7 @@ var require_browser = __commonJS({ lastC = index; } }); - args.splice(lastC, 0, c2); + args.splice(lastC, 0, c); } exports2.log = console.debug || console.log || (() => { }); @@ -53900,8 +53900,8 @@ var require_node = __commonJS({ function formatArgs(args) { const { namespace: name, useColors: useColors2 } = this; if (useColors2) { - const c2 = this.color; - const colorCode = "\x1B[3" + (c2 < 8 ? c2 : "8;5;" + c2); + const c = this.color; + const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c); const prefix = ` ${colorCode};1m${name} \x1B[0m`; args[0] = prefix + args[0].split("\n").join("\n" + prefix); args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m"); @@ -60567,7 +60567,7 @@ var require_fxp = __commonJS({ { let o2 = r2; if (r2++, "!" === t2[r2]) { - r2 = c2(t2, r2); + r2 = c(t2, r2); continue; } { @@ -60608,7 +60608,7 @@ var require_fxp = __commonJS({ } for (r2++; r2 < t2.length; r2++) if ("<" === t2[r2]) { if ("!" === t2[r2 + 1]) { - r2++, r2 = c2(t2, r2); + r2++, r2 = c(t2, r2); continue; } if ("?" !== t2[r2 + 1]) break; @@ -60640,7 +60640,7 @@ var require_fxp = __commonJS({ } return e2; } - function c2(t2, e2) { + function c(t2, e2) { if (t2.length > e2 + 5 && "-" === t2[e2 + 1] && "-" === t2[e2 + 2]) { for (e2 += 3; e2 < t2.length; e2++) if ("-" === t2[e2] && "-" === t2[e2 + 1] && ">" === t2[e2 + 2]) { e2 += 2; @@ -61215,14 +61215,14 @@ var require_fxp = __commonJS({ i2 && n2 && "!xml" !== i2.tagname && (n2 = this.saveTextToParentTag(n2, i2, this.matcher, false)); const u2 = i2; u2 && -1 !== this.options.unpairedTags.indexOf(u2.tagname) && (i2 = this.tagsNodeStack.pop(), this.matcher.pop()); - let c3 = false; - h2.length > 0 && h2.lastIndexOf("/") === h2.length - 1 && (c3 = true, "/" === o2[o2.length - 1] ? (o2 = o2.substr(0, o2.length - 1), h2 = o2) : h2 = h2.substr(0, h2.length - 1), l2 = o2 !== h2); + let c2 = false; + h2.length > 0 && h2.lastIndexOf("/") === h2.length - 1 && (c2 = true, "/" === o2[o2.length - 1] ? (o2 = o2.substr(0, o2.length - 1), h2 = o2) : h2 = h2.substr(0, h2.length - 1), l2 = o2 !== h2); let d2, f2 = null, g2 = {}; d2 = U(a2), o2 !== e2.tagname && this.matcher.push(o2, {}, d2), o2 !== h2 && l2 && (f2 = this.buildAttributesMap(h2, this.matcher, o2), f2 && (g2 = R(f2, this.options))), o2 !== e2.tagname && (this.isCurrentNodeStopNode = this.isItStopNode(this.stopNodeExpressions, this.matcher)); const m2 = r2; if (this.isCurrentNodeStopNode) { let e3 = ""; - if (c3) r2 = s3.closeIndex; + if (c2) r2 = s3.closeIndex; else if (-1 !== this.options.unpairedTags.indexOf(o2)) r2 = s3.closeIndex; else { const i3 = this.readStopNodeData(t2, a2, p2 + 1); @@ -61232,7 +61232,7 @@ var require_fxp = __commonJS({ const n3 = new $(o2); f2 && (n3[":@"] = f2), n3.add(this.options.textNodeName, e3), this.matcher.pop(), this.isCurrentNodeStopNode = false, this.addChild(i2, n3, this.matcher, m2); } else { - if (c3) { + if (c2) { ({ tagName: o2, tagExp: h2 } = rt(this.options.transformTagName, o2, h2, this.options)); const t3 = new $(o2); f2 && (t3[":@"] = f2), this.addChild(i2, t3, this.matcher, m2), this.matcher.pop(), this.isCurrentNodeStopNode = false; @@ -61551,11 +61551,11 @@ var require_fxp = __commonJS({ a3 = 0 !== a3.length ? " " + a3 : "", r2 += s3 + `<${l2}${a3}${t3}?>`, o2 = true, n2.pop(); continue; } - let c3 = i2; - "" !== c3 && (c3 += e2.indentBy); + let c2 = i2; + "" !== c2 && (c2 += e2.indentBy); const d2 = i2 + `<${l2}${yt(h2[":@"], e2, u2)}`; let f2; - f2 = u2 ? Nt(h2[l2], e2) : mt(h2[l2], e2, c3, n2, s2), -1 !== e2.unpairedTags.indexOf(l2) ? e2.suppressUnpairedNode ? r2 += d2 + ">" : r2 += d2 + "/>" : f2 && 0 !== f2.length || !e2.suppressEmptyNode ? f2 && f2.endsWith(">") ? r2 += d2 + `>${f2}${i2}` : (r2 += d2 + ">", f2 && "" !== i2 && (f2.includes("/>") || f2.includes("`) : r2 += d2 + "/>", o2 = true, n2.pop(); + f2 = u2 ? Nt(h2[l2], e2) : mt(h2[l2], e2, c2, n2, s2), -1 !== e2.unpairedTags.indexOf(l2) ? e2.suppressUnpairedNode ? r2 += d2 + ">" : r2 += d2 + "/>" : f2 && 0 !== f2.length || !e2.suppressEmptyNode ? f2 && f2.endsWith(">") ? r2 += d2 + `>${f2}${i2}` : (r2 += d2 + ">", f2 && "" !== i2 && (f2.includes("/>") || f2.includes("`) : r2 += d2 + "/>", o2 = true, n2.pop(); } return r2; } @@ -84329,7 +84329,7 @@ var require_poller3 = __commonJS({ onProgress(callback) { this.pollProgressCallbacks.push(callback); return () => { - this.pollProgressCallbacks = this.pollProgressCallbacks.filter((c2) => c2 !== callback); + this.pollProgressCallbacks = this.pollProgressCallbacks.filter((c) => c !== callback); }; } /** @@ -89430,8 +89430,8 @@ var require_AccountSASPermissions = __commonJS({ */ static parse(permissions) { const accountSASPermissions = new _AccountSASPermissions(); - for (const c2 of permissions) { - switch (c2) { + for (const c of permissions) { + switch (c) { case "r": accountSASPermissions.read = true; break; @@ -89472,7 +89472,7 @@ var require_AccountSASPermissions = __commonJS({ accountSASPermissions.permanentDelete = true; break; default: - throw new RangeError(`Invalid permission character: ${c2}`); + throw new RangeError(`Invalid permission character: ${c}`); } } return accountSASPermissions; @@ -89651,8 +89651,8 @@ var require_AccountSASResourceTypes = __commonJS({ */ static parse(resourceTypes) { const accountSASResourceTypes = new _AccountSASResourceTypes(); - for (const c2 of resourceTypes) { - switch (c2) { + for (const c of resourceTypes) { + switch (c) { case "s": accountSASResourceTypes.service = true; break; @@ -89663,7 +89663,7 @@ var require_AccountSASResourceTypes = __commonJS({ accountSASResourceTypes.object = true; break; default: - throw new RangeError(`Invalid resource type: ${c2}`); + throw new RangeError(`Invalid resource type: ${c}`); } } return accountSASResourceTypes; @@ -89719,8 +89719,8 @@ var require_AccountSASServices = __commonJS({ */ static parse(services) { const accountSASServices = new _AccountSASServices(); - for (const c2 of services) { - switch (c2) { + for (const c of services) { + switch (c) { case "b": accountSASServices.blob = true; break; @@ -89734,7 +89734,7 @@ var require_AccountSASServices = __commonJS({ accountSASServices.table = true; break; default: - throw new RangeError(`Invalid service character: ${c2}`); + throw new RangeError(`Invalid service character: ${c}`); } } return accountSASServices; @@ -93195,9 +93195,9 @@ var require_json_format_contract = __commonJS({ exports2.jsonWriteOptions = jsonWriteOptions; function mergeJsonOptions(a, b) { var _a, _b; - let c2 = Object.assign(Object.assign({}, a), b); - c2.typeRegistry = [...(_a = a === null || a === void 0 ? void 0 : a.typeRegistry) !== null && _a !== void 0 ? _a : [], ...(_b = b === null || b === void 0 ? void 0 : b.typeRegistry) !== null && _b !== void 0 ? _b : []]; - return c2; + let c = Object.assign(Object.assign({}, a), b); + c.typeRegistry = [...(_a = a === null || a === void 0 ? void 0 : a.typeRegistry) !== null && _a !== void 0 ? _a : [], ...(_b = b === null || b === void 0 ? void 0 : b.typeRegistry) !== null && _b !== void 0 ? _b : []]; + return c; } exports2.mergeJsonOptions = mergeJsonOptions; } @@ -95334,14 +95334,14 @@ var require_rpc_options = __commonJS({ function copy(a, into) { if (!a) return; - let c2 = into; + let c = into; for (let [k, v] of Object.entries(a)) { if (v instanceof Date) - c2[k] = new Date(v.getTime()); + c[k] = new Date(v.getTime()); else if (Array.isArray(v)) - c2[k] = v.concat(); + c[k] = v.concat(); else - c2[k] = v; + c[k] = v; } } } @@ -98729,9 +98729,9 @@ var require_tool_cache = __commonJS({ core13.debug("finished caching tool"); } function isExplicitVersion(versionSpec) { - const c2 = semver6.clean(versionSpec) || ""; - core13.debug(`isExplicit: ${c2}`); - const valid2 = semver6.valid(c2) != null; + const c = semver6.clean(versionSpec) || ""; + core13.debug(`isExplicit: ${c}`); + const valid2 = semver6.valid(c) != null; core13.debug(`explicit? ${valid2}`); return valid2; } @@ -100493,9 +100493,9 @@ var require_util19 = __commonJS({ return this.data.charCodeAt(this.data.length - 1); }; util.ByteStringBuffer.prototype.copy = function() { - var c2 = util.createBuffer(this.data); - c2.read = this.read; - return c2; + var c = util.createBuffer(this.data); + c.read = this.read; + return c; }; util.ByteStringBuffer.prototype.compact = function() { if (this.read > 0) { @@ -100854,15 +100854,15 @@ var require_util19 = __commonJS({ } return new util.ByteBuffer(input); }; - util.fillString = function(c2, n) { + util.fillString = function(c, n) { var s = ""; while (n > 0) { if (n & 1) { - s += c2; + s += c; } n >>>= 1; if (n > 0) { - c2 += c2; + c += c; } } return s; @@ -100872,16 +100872,16 @@ var require_util19 = __commonJS({ var b = ""; var t = ""; var i = 0; - var c2 = 0; + var c = 0; for (; n > 0; --n, ++i) { b = s1.charCodeAt(i) ^ s2.charCodeAt(i); - if (c2 >= 10) { + if (c >= 10) { s3 += t; t = ""; - c2 = 0; + c = 0; } t += String.fromCharCode(b); - ++c2; + ++c; } s3 += t; return s3; @@ -101368,12 +101368,12 @@ var require_util19 = __commonJS({ return parts.join(""); }; util.formatNumber = function(number, decimals, dec_point, thousands_sep) { - var n = number, c2 = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals; + var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals; var d = dec_point === void 0 ? "," : dec_point; var t = thousands_sep === void 0 ? "." : thousands_sep, s = n < 0 ? "-" : ""; - var i = parseInt(n = Math.abs(+n || 0).toFixed(c2), 10) + ""; + var i = parseInt(n = Math.abs(+n || 0).toFixed(c), 10) + ""; var j = i.length > 3 ? i.length % 3 : 0; - return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c2 ? d + Math.abs(n - i).toFixed(c2).slice(2) : ""); + return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); }; util.formatSize = function(size) { if (size >= 1073741824) { @@ -102310,8 +102310,8 @@ var require_cipherModes = __commonJS({ } m[0] = [0, 0, 0, 0]; for (i = half + 1; i < size; ++i) { - var c2 = m[i ^ half]; - m[i] = [mid[0] ^ c2[0], mid[1] ^ c2[1], mid[2] ^ c2[2], mid[3] ^ c2[3]]; + var c = m[i ^ half]; + m[i] = [mid[0] ^ c[0], mid[1] ^ c[1], mid[2] ^ c[2], mid[3] ^ c[3]]; } return m; }; @@ -102578,25 +102578,25 @@ var require_aes = __commonJS({ m3 = mix[3]; sub = sbox; } - var a, b, c2, d, a2, b2, c22; + var a, b, c, d, a2, b2, c2; a = input[0] ^ w[0]; b = input[decrypt ? 3 : 1] ^ w[1]; - c2 = input[2] ^ w[2]; + c = input[2] ^ w[2]; d = input[decrypt ? 1 : 3] ^ w[3]; var i = 3; for (var round = 1; round < Nr; ++round) { - a2 = m0[a >>> 24] ^ m1[b >>> 16 & 255] ^ m2[c2 >>> 8 & 255] ^ m3[d & 255] ^ w[++i]; - b2 = m0[b >>> 24] ^ m1[c2 >>> 16 & 255] ^ m2[d >>> 8 & 255] ^ m3[a & 255] ^ w[++i]; - c22 = m0[c2 >>> 24] ^ m1[d >>> 16 & 255] ^ m2[a >>> 8 & 255] ^ m3[b & 255] ^ w[++i]; - d = m0[d >>> 24] ^ m1[a >>> 16 & 255] ^ m2[b >>> 8 & 255] ^ m3[c2 & 255] ^ w[++i]; + a2 = m0[a >>> 24] ^ m1[b >>> 16 & 255] ^ m2[c >>> 8 & 255] ^ m3[d & 255] ^ w[++i]; + b2 = m0[b >>> 24] ^ m1[c >>> 16 & 255] ^ m2[d >>> 8 & 255] ^ m3[a & 255] ^ w[++i]; + c2 = m0[c >>> 24] ^ m1[d >>> 16 & 255] ^ m2[a >>> 8 & 255] ^ m3[b & 255] ^ w[++i]; + d = m0[d >>> 24] ^ m1[a >>> 16 & 255] ^ m2[b >>> 8 & 255] ^ m3[c & 255] ^ w[++i]; a = a2; b = b2; - c2 = c22; + c = c2; } - output[0] = sub[a >>> 24] << 24 ^ sub[b >>> 16 & 255] << 16 ^ sub[c2 >>> 8 & 255] << 8 ^ sub[d & 255] ^ w[++i]; - output[decrypt ? 3 : 1] = sub[b >>> 24] << 24 ^ sub[c2 >>> 16 & 255] << 16 ^ sub[d >>> 8 & 255] << 8 ^ sub[a & 255] ^ w[++i]; - output[2] = sub[c2 >>> 24] << 24 ^ sub[d >>> 16 & 255] << 16 ^ sub[a >>> 8 & 255] << 8 ^ sub[b & 255] ^ w[++i]; - output[decrypt ? 1 : 3] = sub[d >>> 24] << 24 ^ sub[a >>> 16 & 255] << 16 ^ sub[b >>> 8 & 255] << 8 ^ sub[c2 & 255] ^ w[++i]; + output[0] = sub[a >>> 24] << 24 ^ sub[b >>> 16 & 255] << 16 ^ sub[c >>> 8 & 255] << 8 ^ sub[d & 255] ^ w[++i]; + output[decrypt ? 3 : 1] = sub[b >>> 24] << 24 ^ sub[c >>> 16 & 255] << 16 ^ sub[d >>> 8 & 255] << 8 ^ sub[a & 255] ^ w[++i]; + output[2] = sub[c >>> 24] << 24 ^ sub[d >>> 16 & 255] << 16 ^ sub[a >>> 8 & 255] << 8 ^ sub[b & 255] ^ w[++i]; + output[decrypt ? 1 : 3] = sub[d >>> 24] << 24 ^ sub[a >>> 16 & 255] << 16 ^ sub[b >>> 8 & 255] << 8 ^ sub[c & 255] ^ w[++i]; } function _createCipher(options) { options = options || {}; @@ -103194,9 +103194,9 @@ var require_asn1 = __commonJS({ var mm = parseInt(utc.substr(8, 2), 10); var ss = 0; if (utc.length > 11) { - var c2 = utc.charAt(10); + var c = utc.charAt(10); var end = 10; - if (c2 !== "+" && c2 !== "-") { + if (c !== "+" && c !== "-") { ss = parseInt(utc.substr(10, 2), 10); end += 2; } @@ -103204,13 +103204,13 @@ var require_asn1 = __commonJS({ date.setUTCFullYear(year, MM, DD); date.setUTCHours(hh, mm, ss, 0); if (end) { - c2 = utc.charAt(end); - if (c2 === "+" || c2 === "-") { + c = utc.charAt(end); + if (c === "+" || c === "-") { var hhoffset = parseInt(utc.substr(end + 1, 2), 10); var mmoffset = parseInt(utc.substr(end + 4, 2), 10); var offset = hhoffset * 60 + mmoffset; offset *= 6e4; - if (c2 === "+") { + if (c === "+") { date.setTime(+date - offset); } else { date.setTime(+date + offset); @@ -103233,13 +103233,13 @@ var require_asn1 = __commonJS({ if (gentime.charAt(gentime.length - 1) === "Z") { isUTC = true; } - var end = gentime.length - 5, c2 = gentime.charAt(end); - if (c2 === "+" || c2 === "-") { + var end = gentime.length - 5, c = gentime.charAt(end); + if (c === "+" || c === "-") { var hhoffset = parseInt(gentime.substr(end + 1, 2), 10); var mmoffset = parseInt(gentime.substr(end + 4, 2), 10); offset = hhoffset * 60 + mmoffset; offset *= 6e4; - if (c2 === "+") { + if (c === "+") { offset *= -1; } isUTC = true; @@ -103918,53 +103918,53 @@ var require_md5 = __commonJS({ _initialized = true; } function _update(s, w, bytes) { - var t, a, b, c2, d, f, r, i; + var t, a, b, c, d, f, r, i; var len = bytes.length(); while (len >= 64) { a = s.h0; b = s.h1; - c2 = s.h2; + c = s.h2; d = s.h3; for (i = 0; i < 16; ++i) { w[i] = bytes.getInt32Le(); - f = d ^ b & (c2 ^ d); + f = d ^ b & (c ^ d); t = a + f + _k[i] + w[i]; r = _r[i]; a = d; - d = c2; - c2 = b; + d = c; + c = b; b += t << r | t >>> 32 - r; } for (; i < 32; ++i) { - f = c2 ^ d & (b ^ c2); + f = c ^ d & (b ^ c); t = a + f + _k[i] + w[_g[i]]; r = _r[i]; a = d; - d = c2; - c2 = b; + d = c; + c = b; b += t << r | t >>> 32 - r; } for (; i < 48; ++i) { - f = b ^ c2 ^ d; + f = b ^ c ^ d; t = a + f + _k[i] + w[_g[i]]; r = _r[i]; a = d; - d = c2; - c2 = b; + d = c; + c = b; b += t << r | t >>> 32 - r; } for (; i < 64; ++i) { - f = c2 ^ (b | ~d); + f = c ^ (b | ~d); t = a + f + _k[i] + w[_g[i]]; r = _r[i]; a = d; - d = c2; - c2 = b; + d = c; + c = b; b += t << r | t >>> 32 - r; } s.h0 = s.h0 + a | 0; s.h1 = s.h1 + b | 0; - s.h2 = s.h2 + c2 | 0; + s.h2 = s.h2 + c | 0; s.h3 = s.h3 + d | 0; len -= 64; } @@ -104373,7 +104373,7 @@ var require_pbkdf2 = __commonJS({ if (forge.util.isNodejs && !forge.options.usePureJavaScript) { crypto2 = require("crypto"); } - module2.exports = forge.pbkdf2 = pkcs5.pbkdf2 = function(p, s, c2, dkLen, md2, callback) { + module2.exports = forge.pbkdf2 = pkcs5.pbkdf2 = function(p, s, c, dkLen, md2, callback) { if (typeof md2 === "function") { callback = md2; md2 = null; @@ -104386,19 +104386,19 @@ var require_pbkdf2 = __commonJS({ s = Buffer.from(s, "binary"); if (!callback) { if (crypto2.pbkdf2Sync.length === 4) { - return crypto2.pbkdf2Sync(p, s, c2, dkLen).toString("binary"); + return crypto2.pbkdf2Sync(p, s, c, dkLen).toString("binary"); } - return crypto2.pbkdf2Sync(p, s, c2, dkLen, md2).toString("binary"); + return crypto2.pbkdf2Sync(p, s, c, dkLen, md2).toString("binary"); } if (crypto2.pbkdf2Sync.length === 4) { - return crypto2.pbkdf2(p, s, c2, dkLen, function(err2, key) { + return crypto2.pbkdf2(p, s, c, dkLen, function(err2, key) { if (err2) { return callback(err2); } callback(null, key.toString("binary")); }); } - return crypto2.pbkdf2(p, s, c2, dkLen, md2, function(err2, key) { + return crypto2.pbkdf2(p, s, c, dkLen, md2, function(err2, key) { if (err2) { return callback(err2); } @@ -104434,7 +104434,7 @@ var require_pbkdf2 = __commonJS({ prf.update(s); prf.update(forge.util.int32ToBytes(i)); xor = u_c1 = prf.digest().getBytes(); - for (var j = 2; j <= c2; ++j) { + for (var j = 2; j <= c; ++j) { prf.start(null, null); prf.update(u_c1); u_c = prf.digest().getBytes(); @@ -104458,7 +104458,7 @@ var require_pbkdf2 = __commonJS({ inner(); } function inner() { - if (j <= c2) { + if (j <= c) { prf.start(null, null); prf.update(u_c1); u_c = prf.digest().getBytes(); @@ -104658,7 +104658,7 @@ var require_sha2562 = __commonJS({ _initialized = true; } function _update(s, w, bytes) { - var t1, t2, s0, s1, ch, maj, i, a, b, c2, d, e, f, g, h; + var t1, t2, s0, s1, ch, maj, i, a, b, c, d, e, f, g, h; var len = bytes.length(); while (len >= 64) { for (i = 0; i < 16; ++i) { @@ -104673,7 +104673,7 @@ var require_sha2562 = __commonJS({ } a = s.h0; b = s.h1; - c2 = s.h2; + c = s.h2; d = s.h3; e = s.h4; f = s.h5; @@ -104683,21 +104683,21 @@ var require_sha2562 = __commonJS({ s1 = (e >>> 6 | e << 26) ^ (e >>> 11 | e << 21) ^ (e >>> 25 | e << 7); ch = g ^ e & (f ^ g); s0 = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10); - maj = a & b | c2 & (a ^ b); + maj = a & b | c & (a ^ b); t1 = h + s1 + ch + _k[i] + w[i]; t2 = s0 + maj; h = g; g = f; f = e; e = d + t1 >>> 0; - d = c2; - c2 = b; + d = c; + c = b; b = a; a = t1 + t2 >>> 0; } s.h0 = s.h0 + a | 0; s.h1 = s.h1 + b | 0; - s.h2 = s.h2 + c2 | 0; + s.h2 = s.h2 + c | 0; s.h3 = s.h3 + d | 0; s.h4 = s.h4 + e | 0; s.h5 = s.h5 + f | 0; @@ -105526,10 +105526,10 @@ var require_jsbn = __commonJS({ var dbits; var canary = 244837814094590; var j_lm = (canary & 16777215) == 15715070; - function BigInteger(a, b, c2) { + function BigInteger(a, b, c) { this.data = []; if (a != null) - if ("number" == typeof a) this.fromNumber(a, b, c2); + if ("number" == typeof a) this.fromNumber(a, b, c); else if (b == null && "string" != typeof a) this.fromString(a, 256); else this.fromString(a, b); } @@ -105537,37 +105537,37 @@ var require_jsbn = __commonJS({ function nbi() { return new BigInteger(null); } - function am1(i, x, w, j, c2, n) { + function am1(i, x, w, j, c, n) { while (--n >= 0) { - var v = x * this.data[i++] + w.data[j] + c2; - c2 = Math.floor(v / 67108864); + var v = x * this.data[i++] + w.data[j] + c; + c = Math.floor(v / 67108864); w.data[j++] = v & 67108863; } - return c2; + return c; } - function am2(i, x, w, j, c2, n) { + function am2(i, x, w, j, c, n) { var xl = x & 32767, xh = x >> 15; while (--n >= 0) { var l = this.data[i] & 32767; var h = this.data[i++] >> 15; var m = xh * l + h * xl; - l = xl * l + ((m & 32767) << 15) + w.data[j] + (c2 & 1073741823); - c2 = (l >>> 30) + (m >>> 15) + xh * h + (c2 >>> 30); + l = xl * l + ((m & 32767) << 15) + w.data[j] + (c & 1073741823); + c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30); w.data[j++] = l & 1073741823; } - return c2; + return c; } - function am3(i, x, w, j, c2, n) { + function am3(i, x, w, j, c, n) { var xl = x & 16383, xh = x >> 14; while (--n >= 0) { var l = this.data[i] & 16383; var h = this.data[i++] >> 14; var m = xh * l + h * xl; - l = xl * l + ((m & 16383) << 14) + w.data[j] + c2; - c2 = (l >> 28) + (m >> 14) + xh * h; + l = xl * l + ((m & 16383) << 14) + w.data[j] + c; + c = (l >> 28) + (m >> 14) + xh * h; w.data[j++] = l & 268435455; } - return c2; + return c; } if (typeof navigator === "undefined") { BigInteger.prototype.am = am3; @@ -105603,8 +105603,8 @@ var require_jsbn = __commonJS({ return BI_RM.charAt(n); } function intAt(s, i) { - var c2 = BI_RC[s.charCodeAt(i)]; - return c2 == null ? -1 : c2; + var c = BI_RC[s.charCodeAt(i)]; + return c == null ? -1 : c; } function bnpCopyTo(r) { for (var i = this.t - 1; i >= 0; --i) r.data[i] = this.data[i]; @@ -105663,8 +105663,8 @@ var require_jsbn = __commonJS({ if (mi) BigInteger.ZERO.subTo(this, this); } function bnpClamp() { - var c2 = this.s & this.DM; - while (this.t > 0 && this.data[this.t - 1] == c2) --this.t; + var c = this.s & this.DM; + while (this.t > 0 && this.data[this.t - 1] == c) --this.t; } function bnToString(b) { if (this.s < 0) return "-" + this.negate().toString(b); @@ -105760,13 +105760,13 @@ var require_jsbn = __commonJS({ var bs = n % this.DB; var cbs = this.DB - bs; var bm = (1 << cbs) - 1; - var ds = Math.floor(n / this.DB), c2 = this.s << bs & this.DM, i; + var ds = Math.floor(n / this.DB), c = this.s << bs & this.DM, i; for (i = this.t - 1; i >= 0; --i) { - r.data[i + ds + 1] = this.data[i] >> cbs | c2; - c2 = (this.data[i] & bm) << bs; + r.data[i + ds + 1] = this.data[i] >> cbs | c; + c = (this.data[i] & bm) << bs; } for (i = ds - 1; i >= 0; --i) r.data[i] = 0; - r.data[ds] = c2; + r.data[ds] = c; r.t = this.t + ds + 1; r.s = this.s; r.clamp(); @@ -105791,32 +105791,32 @@ var require_jsbn = __commonJS({ r.clamp(); } function bnpSubTo(a, r) { - var i = 0, c2 = 0, m = Math.min(a.t, this.t); + var i = 0, c = 0, m = Math.min(a.t, this.t); while (i < m) { - c2 += this.data[i] - a.data[i]; - r.data[i++] = c2 & this.DM; - c2 >>= this.DB; + c += this.data[i] - a.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; } if (a.t < this.t) { - c2 -= a.s; + c -= a.s; while (i < this.t) { - c2 += this.data[i]; - r.data[i++] = c2 & this.DM; - c2 >>= this.DB; + c += this.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; } - c2 += this.s; + c += this.s; } else { - c2 += this.s; + c += this.s; while (i < a.t) { - c2 -= a.data[i]; - r.data[i++] = c2 & this.DM; - c2 >>= this.DB; + c -= a.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; } - c2 -= a.s; + c -= a.s; } - r.s = c2 < 0 ? -1 : 0; - if (c2 < -1) r.data[i++] = this.DV + c2; - else if (c2 > 0) r.data[i++] = c2; + r.s = c < 0 ? -1 : 0; + if (c < -1) r.data[i++] = this.DV + c; + else if (c > 0) r.data[i++] = c; r.t = i; r.clamp(); } @@ -105835,8 +105835,8 @@ var require_jsbn = __commonJS({ var i = r.t = 2 * x.t; while (--i >= 0) r.data[i] = 0; for (i = 0; i < x.t - 1; ++i) { - var c2 = x.am(i, x.data[i], r, 2 * i, 0, 1); - if ((r.data[i + x.t] += x.am(i + 1, 2 * x.data[i], r, 2 * i + 1, c2, x.t - i - 1)) >= x.DV) { + var c = x.am(i, x.data[i], r, 2 * i, 0, 1); + if ((r.data[i + x.t] += x.am(i + 1, 2 * x.data[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) { r.data[i + x.t] -= x.DV; r.data[i + x.t + 1] = 1; } @@ -106102,11 +106102,11 @@ var require_jsbn = __commonJS({ } if (mi) BigInteger.ZERO.subTo(this, this); } - function bnpFromNumber(a, b, c2) { + function bnpFromNumber(a, b, c) { if ("number" == typeof b) { if (a < 2) this.fromInt(1); else { - this.fromNumber(a, c2); + this.fromNumber(a, c); if (!this.testBit(a - 1)) this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this); if (this.isEven()) this.dAddOffset(1, 0); @@ -106285,32 +106285,32 @@ var require_jsbn = __commonJS({ return this.changeBit(n, op_xor); } function bnpAddTo(a, r) { - var i = 0, c2 = 0, m = Math.min(a.t, this.t); + var i = 0, c = 0, m = Math.min(a.t, this.t); while (i < m) { - c2 += this.data[i] + a.data[i]; - r.data[i++] = c2 & this.DM; - c2 >>= this.DB; + c += this.data[i] + a.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; } if (a.t < this.t) { - c2 += a.s; + c += a.s; while (i < this.t) { - c2 += this.data[i]; - r.data[i++] = c2 & this.DM; - c2 >>= this.DB; + c += this.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; } - c2 += this.s; + c += this.s; } else { - c2 += this.s; + c += this.s; while (i < a.t) { - c2 += a.data[i]; - r.data[i++] = c2 & this.DM; - c2 >>= this.DB; + c += a.data[i]; + r.data[i++] = c & this.DM; + c >>= this.DB; } - c2 += a.s; + c += a.s; } - r.s = c2 < 0 ? -1 : 0; - if (c2 > 0) r.data[i++] = c2; - else if (c2 < -1) r.data[i++] = this.DV + c2; + r.s = c < 0 ? -1 : 0; + if (c > 0) r.data[i++] = c; + else if (c < -1) r.data[i++] = this.DV + c; r.t = i; r.clamp(); } @@ -106563,7 +106563,7 @@ var require_jsbn = __commonJS({ var ac = m.isEven(); if (this.isEven() && ac || m.signum() == 0) return BigInteger.ZERO; var u = m.clone(), v = this.clone(); - var a = nbv(1), b = nbv(0), c2 = nbv(0), d = nbv(1); + var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1); while (u.signum() != 0) { while (u.isEven()) { u.rShiftTo(1, u); @@ -106579,21 +106579,21 @@ var require_jsbn = __commonJS({ while (v.isEven()) { v.rShiftTo(1, v); if (ac) { - if (!c2.isEven() || !d.isEven()) { - c2.addTo(this, c2); + if (!c.isEven() || !d.isEven()) { + c.addTo(this, c); d.subTo(m, d); } - c2.rShiftTo(1, c2); + c.rShiftTo(1, c); } else if (!d.isEven()) d.subTo(m, d); d.rShiftTo(1, d); } if (u.compareTo(v) >= 0) { u.subTo(v, u); - if (ac) a.subTo(c2, a); + if (ac) a.subTo(c, a); b.subTo(d, b); } else { v.subTo(u, v); - if (ac) c2.subTo(a, c2); + if (ac) c.subTo(a, c); d.subTo(b, d); } } @@ -106812,22 +106812,22 @@ var require_sha1 = __commonJS({ _initialized = true; } function _update(s, w, bytes) { - var t, a, b, c2, d, e, f, i; + var t, a, b, c, d, e, f, i; var len = bytes.length(); while (len >= 64) { a = s.h0; b = s.h1; - c2 = s.h2; + c = s.h2; d = s.h3; e = s.h4; for (i = 0; i < 16; ++i) { t = bytes.getInt32(); w[i] = t; - f = d ^ b & (c2 ^ d); + f = d ^ b & (c ^ d); t = (a << 5 | a >>> 27) + f + e + 1518500249 + t; e = d; - d = c2; - c2 = (b << 30 | b >>> 2) >>> 0; + d = c; + c = (b << 30 | b >>> 2) >>> 0; b = a; a = t; } @@ -106835,11 +106835,11 @@ var require_sha1 = __commonJS({ t = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]; t = t << 1 | t >>> 31; w[i] = t; - f = d ^ b & (c2 ^ d); + f = d ^ b & (c ^ d); t = (a << 5 | a >>> 27) + f + e + 1518500249 + t; e = d; - d = c2; - c2 = (b << 30 | b >>> 2) >>> 0; + d = c; + c = (b << 30 | b >>> 2) >>> 0; b = a; a = t; } @@ -106847,11 +106847,11 @@ var require_sha1 = __commonJS({ t = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]; t = t << 1 | t >>> 31; w[i] = t; - f = b ^ c2 ^ d; + f = b ^ c ^ d; t = (a << 5 | a >>> 27) + f + e + 1859775393 + t; e = d; - d = c2; - c2 = (b << 30 | b >>> 2) >>> 0; + d = c; + c = (b << 30 | b >>> 2) >>> 0; b = a; a = t; } @@ -106859,11 +106859,11 @@ var require_sha1 = __commonJS({ t = w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]; t = t << 2 | t >>> 30; w[i] = t; - f = b ^ c2 ^ d; + f = b ^ c ^ d; t = (a << 5 | a >>> 27) + f + e + 1859775393 + t; e = d; - d = c2; - c2 = (b << 30 | b >>> 2) >>> 0; + d = c; + c = (b << 30 | b >>> 2) >>> 0; b = a; a = t; } @@ -106871,11 +106871,11 @@ var require_sha1 = __commonJS({ t = w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]; t = t << 2 | t >>> 30; w[i] = t; - f = b & c2 | d & (b ^ c2); + f = b & c | d & (b ^ c); t = (a << 5 | a >>> 27) + f + e + 2400959708 + t; e = d; - d = c2; - c2 = (b << 30 | b >>> 2) >>> 0; + d = c; + c = (b << 30 | b >>> 2) >>> 0; b = a; a = t; } @@ -106883,17 +106883,17 @@ var require_sha1 = __commonJS({ t = w[i - 6] ^ w[i - 16] ^ w[i - 28] ^ w[i - 32]; t = t << 2 | t >>> 30; w[i] = t; - f = b ^ c2 ^ d; + f = b ^ c ^ d; t = (a << 5 | a >>> 27) + f + e + 3395469782 + t; e = d; - d = c2; - c2 = (b << 30 | b >>> 2) >>> 0; + d = c; + c = (b << 30 | b >>> 2) >>> 0; b = a; a = t; } s.h0 = s.h0 + a | 0; s.h1 = s.h1 + b | 0; - s.h2 = s.h2 + c2 | 0; + s.h2 = s.h2 + c | 0; s.h3 = s.h3 + d | 0; s.h4 = s.h4 + e | 0; len -= 64; @@ -107039,14 +107039,14 @@ var require_pkcs1 = __commonJS({ var t = ""; var count = Math.ceil(maskLength / hash.digestLength); for (var i = 0; i < count; ++i) { - var c2 = String.fromCharCode( + var c = String.fromCharCode( i >> 24 & 255, i >> 16 & 255, i >> 8 & 255, i & 255 ); hash.start(); - hash.update(seed + c2); + hash.update(seed + c); t += hash.digest().getBytes(); } return t.substring(0, maskLength); @@ -108931,8 +108931,8 @@ var require_pbe = __commonJS({ } var I = S; I.putBuffer(P); - var c2 = Math.ceil(n / u); - for (var i = 1; i <= c2; i++) { + var c = Math.ceil(n / u); + for (var i = 1; i <= c; i++) { var buf = new forge.util.ByteBuffer(); buf.putBytes(D.bytes()); buf.putBytes(I.bytes()); @@ -109515,10 +109515,10 @@ var require_mgf1 = __commonJS({ var t = new forge.util.ByteBuffer(); var len = Math.ceil(maskLen / md2.digestLength); for (var i = 0; i < len; i++) { - var c2 = new forge.util.ByteBuffer(); - c2.putInt32(i); + var c = new forge.util.ByteBuffer(); + c.putInt32(i); md2.start(); - md2.update(seed + c2.getBytes()); + md2.update(seed + c.getBytes()); t.putBuffer(md2.digest()); } t.truncate(t.length() - maskLen); @@ -112772,10 +112772,10 @@ var require_tls = __commonJS({ hmac.update(b.getBytes()); return hmac.digest().getBytes(); }; - var deflate = function(c2, record, s) { + var deflate = function(c, record, s) { var rval = false; try { - var bytes = c2.deflate(record.fragment.getBytes()); + var bytes = c.deflate(record.fragment.getBytes()); record.fragment = forge.util.createBuffer(bytes); record.length = bytes.length; rval = true; @@ -112783,10 +112783,10 @@ var require_tls = __commonJS({ } return rval; }; - var inflate = function(c2, record, s) { + var inflate = function(c, record, s) { var rval = false; try { - var bytes = c2.inflate(record.fragment.getBytes()); + var bytes = c.inflate(record.fragment.getBytes()); record.fragment = forge.util.createBuffer(bytes); record.length = bytes.length; rval = true; @@ -112923,10 +112923,10 @@ var require_tls = __commonJS({ } return rval; }; - tls.handleUnexpected = function(c2, record) { - var ignore = !c2.open && c2.entity === tls.ConnectionEnd.client; + tls.handleUnexpected = function(c, record) { + var ignore = !c.open && c.entity === tls.ConnectionEnd.client; if (!ignore) { - c2.error(c2, { + c.error(c, { message: "Unexpected message. Received TLS record out of order.", send: true, alert: { @@ -112936,21 +112936,21 @@ var require_tls = __commonJS({ }); } }; - tls.handleHelloRequest = function(c2, record, length) { - if (!c2.handshaking && c2.handshakes > 0) { - tls.queue(c2, tls.createAlert(c2, { + tls.handleHelloRequest = function(c, record, length) { + if (!c.handshaking && c.handshakes > 0) { + tls.queue(c, tls.createAlert(c, { level: tls.Alert.Level.warning, description: tls.Alert.Description.no_renegotiation })); - tls.flush(c2); + tls.flush(c); } - c2.process(); + c.process(); }; - tls.parseHelloMessage = function(c2, record, length) { + tls.parseHelloMessage = function(c, record, length) { var msg = null; - var client = c2.entity === tls.ConnectionEnd.client; + var client = c.entity === tls.ConnectionEnd.client; if (length < 38) { - c2.error(c2, { + c.error(c, { message: client ? "Invalid ServerHello message. Message too short." : "Invalid ClientHello message. Message too short.", send: true, alert: { @@ -112996,7 +112996,7 @@ var require_tls = __commonJS({ if (snType !== 0) { break; } - c2.session.extensions.server_name.serverNameList.push( + c.session.extensions.server_name.serverNameList.push( readVector(snl, 2).getBytes() ); } @@ -113004,9 +113004,9 @@ var require_tls = __commonJS({ } } } - if (c2.session.version) { - if (msg.version.major !== c2.session.version.major || msg.version.minor !== c2.session.version.minor) { - return c2.error(c2, { + if (c.session.version) { + if (msg.version.major !== c.session.version.major || msg.version.minor !== c.session.version.minor) { + return c.error(c, { message: "TLS version change is disallowed during renegotiation.", send: true, alert: { @@ -113017,18 +113017,18 @@ var require_tls = __commonJS({ } } if (client) { - c2.session.cipherSuite = tls.getCipherSuite(msg.cipher_suite); + c.session.cipherSuite = tls.getCipherSuite(msg.cipher_suite); } else { var tmp = forge.util.createBuffer(msg.cipher_suites.bytes()); while (tmp.length() > 0) { - c2.session.cipherSuite = tls.getCipherSuite(tmp.getBytes(2)); - if (c2.session.cipherSuite !== null) { + c.session.cipherSuite = tls.getCipherSuite(tmp.getBytes(2)); + if (c.session.cipherSuite !== null) { break; } } } - if (c2.session.cipherSuite === null) { - return c2.error(c2, { + if (c.session.cipherSuite === null) { + return c.error(c, { message: "No cipher suites in common.", send: true, alert: { @@ -113039,20 +113039,20 @@ var require_tls = __commonJS({ }); } if (client) { - c2.session.compressionMethod = msg.compression_method; + c.session.compressionMethod = msg.compression_method; } else { - c2.session.compressionMethod = tls.CompressionMethod.none; + c.session.compressionMethod = tls.CompressionMethod.none; } } return msg; }; - tls.createSecurityParameters = function(c2, msg) { - var client = c2.entity === tls.ConnectionEnd.client; + tls.createSecurityParameters = function(c, msg) { + var client = c.entity === tls.ConnectionEnd.client; var msgRandom = msg.random.bytes(); - var cRandom = client ? c2.session.sp.client_random : msgRandom; + var cRandom = client ? c.session.sp.client_random : msgRandom; var sRandom = client ? msgRandom : tls.createRandom().getBytes(); - c2.session.sp = { - entity: c2.entity, + c.session.sp = { + entity: c.entity, prf_algorithm: tls.PRFAlgorithm.tls_prf_sha256, bulk_cipher_algorithm: null, cipher_type: null, @@ -113063,22 +113063,22 @@ var require_tls = __commonJS({ mac_algorithm: null, mac_length: null, mac_key_length: null, - compression_algorithm: c2.session.compressionMethod, + compression_algorithm: c.session.compressionMethod, pre_master_secret: null, master_secret: null, client_random: cRandom, server_random: sRandom }; }; - tls.handleServerHello = function(c2, record, length) { - var msg = tls.parseHelloMessage(c2, record, length); - if (c2.fail) { + tls.handleServerHello = function(c, record, length) { + var msg = tls.parseHelloMessage(c, record, length); + if (c.fail) { return; } - if (msg.version.minor <= c2.version.minor) { - c2.version.minor = msg.version.minor; + if (msg.version.minor <= c.version.minor) { + c.version.minor = msg.version.minor; } else { - return c2.error(c2, { + return c.error(c, { message: "Incompatible TLS version.", send: true, alert: { @@ -113087,29 +113087,29 @@ var require_tls = __commonJS({ } }); } - c2.session.version = c2.version; + c.session.version = c.version; var sessionId = msg.session_id.bytes(); - if (sessionId.length > 0 && sessionId === c2.session.id) { - c2.expect = SCC; - c2.session.resuming = true; - c2.session.sp.server_random = msg.random.bytes(); + if (sessionId.length > 0 && sessionId === c.session.id) { + c.expect = SCC; + c.session.resuming = true; + c.session.sp.server_random = msg.random.bytes(); } else { - c2.expect = SCE; - c2.session.resuming = false; - tls.createSecurityParameters(c2, msg); + c.expect = SCE; + c.session.resuming = false; + tls.createSecurityParameters(c, msg); } - c2.session.id = sessionId; - c2.process(); + c.session.id = sessionId; + c.process(); }; - tls.handleClientHello = function(c2, record, length) { - var msg = tls.parseHelloMessage(c2, record, length); - if (c2.fail) { + tls.handleClientHello = function(c, record, length) { + var msg = tls.parseHelloMessage(c, record, length); + if (c.fail) { return; } var sessionId = msg.session_id.bytes(); var session = null; - if (c2.sessionCache) { - session = c2.sessionCache.getSession(sessionId); + if (c.sessionCache) { + session = c.sessionCache.getSession(sessionId); if (session === null) { sessionId = ""; } else if (session.version.major !== msg.version.major || session.version.minor > msg.version.minor) { @@ -113120,12 +113120,12 @@ var require_tls = __commonJS({ if (sessionId.length === 0) { sessionId = forge.random.getBytes(32); } - c2.session.id = sessionId; - c2.session.clientHelloVersion = msg.version; - c2.session.sp = {}; + c.session.id = sessionId; + c.session.clientHelloVersion = msg.version; + c.session.sp = {}; if (session) { - c2.version = c2.session.version = session.version; - c2.session.sp = session.sp; + c.version = c.session.version = session.version; + c.session.sp = session.sp; } else { var version; for (var i = 1; i < tls.SupportedVersions.length; ++i) { @@ -113134,62 +113134,62 @@ var require_tls = __commonJS({ break; } } - c2.version = { major: version.major, minor: version.minor }; - c2.session.version = c2.version; + c.version = { major: version.major, minor: version.minor }; + c.session.version = c.version; } if (session !== null) { - c2.expect = CCC; - c2.session.resuming = true; - c2.session.sp.client_random = msg.random.bytes(); + c.expect = CCC; + c.session.resuming = true; + c.session.sp.client_random = msg.random.bytes(); } else { - c2.expect = c2.verifyClient !== false ? CCE : CKE; - c2.session.resuming = false; - tls.createSecurityParameters(c2, msg); + c.expect = c.verifyClient !== false ? CCE : CKE; + c.session.resuming = false; + tls.createSecurityParameters(c, msg); } - c2.open = true; - tls.queue(c2, tls.createRecord(c2, { + c.open = true; + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createServerHello(c2) + data: tls.createServerHello(c) })); - if (c2.session.resuming) { - tls.queue(c2, tls.createRecord(c2, { + if (c.session.resuming) { + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.change_cipher_spec, data: tls.createChangeCipherSpec() })); - c2.state.pending = tls.createConnectionState(c2); - c2.state.current.write = c2.state.pending.write; - tls.queue(c2, tls.createRecord(c2, { + c.state.pending = tls.createConnectionState(c); + c.state.current.write = c.state.pending.write; + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createFinished(c2) + data: tls.createFinished(c) })); } else { - tls.queue(c2, tls.createRecord(c2, { + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createCertificate(c2) + data: tls.createCertificate(c) })); - if (!c2.fail) { - tls.queue(c2, tls.createRecord(c2, { + if (!c.fail) { + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createServerKeyExchange(c2) + data: tls.createServerKeyExchange(c) })); - if (c2.verifyClient !== false) { - tls.queue(c2, tls.createRecord(c2, { + if (c.verifyClient !== false) { + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createCertificateRequest(c2) + data: tls.createCertificateRequest(c) })); } - tls.queue(c2, tls.createRecord(c2, { + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createServerHelloDone(c2) + data: tls.createServerHelloDone(c) })); } } - tls.flush(c2); - c2.process(); + tls.flush(c); + c.process(); }; - tls.handleCertificate = function(c2, record, length) { + tls.handleCertificate = function(c, record, length) { if (length < 3) { - return c2.error(c2, { + return c.error(c, { message: "Invalid Certificate message. Message too short.", send: true, alert: { @@ -113212,7 +113212,7 @@ var require_tls = __commonJS({ certs.push(cert); } } catch (ex) { - return c2.error(c2, { + return c.error(c, { message: "Could not parse certificate list.", cause: ex, send: true, @@ -113222,9 +113222,9 @@ var require_tls = __commonJS({ } }); } - var client = c2.entity === tls.ConnectionEnd.client; - if ((client || c2.verifyClient === true) && certs.length === 0) { - c2.error(c2, { + var client = c.entity === tls.ConnectionEnd.client; + if ((client || c.verifyClient === true) && certs.length === 0) { + c.error(c, { message: client ? "No server certificate provided." : "No client certificate provided.", send: true, alert: { @@ -113233,22 +113233,22 @@ var require_tls = __commonJS({ } }); } else if (certs.length === 0) { - c2.expect = client ? SKE : CKE; + c.expect = client ? SKE : CKE; } else { if (client) { - c2.session.serverCertificate = certs[0]; + c.session.serverCertificate = certs[0]; } else { - c2.session.clientCertificate = certs[0]; + c.session.clientCertificate = certs[0]; } - if (tls.verifyCertificateChain(c2, certs)) { - c2.expect = client ? SKE : CKE; + if (tls.verifyCertificateChain(c, certs)) { + c.expect = client ? SKE : CKE; } } - c2.process(); + c.process(); }; - tls.handleServerKeyExchange = function(c2, record, length) { + tls.handleServerKeyExchange = function(c, record, length) { if (length > 0) { - return c2.error(c2, { + return c.error(c, { message: "Invalid key parameters. Only RSA is supported.", send: true, alert: { @@ -113257,12 +113257,12 @@ var require_tls = __commonJS({ } }); } - c2.expect = SCR; - c2.process(); + c.expect = SCR; + c.process(); }; - tls.handleClientKeyExchange = function(c2, record, length) { + tls.handleClientKeyExchange = function(c, record, length) { if (length < 48) { - return c2.error(c2, { + return c.error(c, { message: "Invalid key parameters. Only RSA is supported.", send: true, alert: { @@ -113276,12 +113276,12 @@ var require_tls = __commonJS({ enc_pre_master_secret: readVector(b, 2).getBytes() }; var privateKey = null; - if (c2.getPrivateKey) { + if (c.getPrivateKey) { try { - privateKey = c2.getPrivateKey(c2, c2.session.serverCertificate); + privateKey = c.getPrivateKey(c, c.session.serverCertificate); privateKey = forge.pki.privateKeyFromPem(privateKey); } catch (ex) { - c2.error(c2, { + c.error(c, { message: "Could not get private key.", cause: ex, send: true, @@ -113293,7 +113293,7 @@ var require_tls = __commonJS({ } } if (privateKey === null) { - return c2.error(c2, { + return c.error(c, { message: "No private key set.", send: true, alert: { @@ -113303,24 +113303,24 @@ var require_tls = __commonJS({ }); } try { - var sp = c2.session.sp; + var sp = c.session.sp; sp.pre_master_secret = privateKey.decrypt(msg.enc_pre_master_secret); - var version = c2.session.clientHelloVersion; + var version = c.session.clientHelloVersion; if (version.major !== sp.pre_master_secret.charCodeAt(0) || version.minor !== sp.pre_master_secret.charCodeAt(1)) { throw new Error("TLS version rollback attack detected."); } } catch (ex) { sp.pre_master_secret = forge.random.getBytes(48); } - c2.expect = CCC; - if (c2.session.clientCertificate !== null) { - c2.expect = CCV; + c.expect = CCC; + if (c.session.clientCertificate !== null) { + c.expect = CCV; } - c2.process(); + c.process(); }; - tls.handleCertificateRequest = function(c2, record, length) { + tls.handleCertificateRequest = function(c, record, length) { if (length < 3) { - return c2.error(c2, { + return c.error(c, { message: "Invalid CertificateRequest. Message too short.", send: true, alert: { @@ -113334,13 +113334,13 @@ var require_tls = __commonJS({ certificate_types: readVector(b, 1), certificate_authorities: readVector(b, 2) }; - c2.session.certificateRequest = msg; - c2.expect = SHD; - c2.process(); + c.session.certificateRequest = msg; + c.expect = SHD; + c.process(); }; - tls.handleCertificateVerify = function(c2, record, length) { + tls.handleCertificateVerify = function(c, record, length) { if (length < 2) { - return c2.error(c2, { + return c.error(c, { message: "Invalid CertificateVerify. Message too short.", send: true, alert: { @@ -113357,18 +113357,18 @@ var require_tls = __commonJS({ signature: readVector(b, 2).getBytes() }; var verify = forge.util.createBuffer(); - verify.putBuffer(c2.session.md5.digest()); - verify.putBuffer(c2.session.sha1.digest()); + verify.putBuffer(c.session.md5.digest()); + verify.putBuffer(c.session.sha1.digest()); verify = verify.getBytes(); try { - var cert = c2.session.clientCertificate; + var cert = c.session.clientCertificate; if (!cert.publicKey.verify(verify, msg.signature, "NONE")) { throw new Error("CertificateVerify signature does not match."); } - c2.session.md5.update(msgBytes); - c2.session.sha1.update(msgBytes); + c.session.md5.update(msgBytes); + c.session.sha1.update(msgBytes); } catch (ex) { - return c2.error(c2, { + return c.error(c, { message: "Bad signature in CertificateVerify.", send: true, alert: { @@ -113377,12 +113377,12 @@ var require_tls = __commonJS({ } }); } - c2.expect = CCC; - c2.process(); + c.expect = CCC; + c.process(); }; - tls.handleServerHelloDone = function(c2, record, length) { + tls.handleServerHelloDone = function(c, record, length) { if (length > 0) { - return c2.error(c2, { + return c.error(c, { message: "Invalid ServerHelloDone message. Invalid length.", send: true, alert: { @@ -113391,7 +113391,7 @@ var require_tls = __commonJS({ } }); } - if (c2.serverCertificate === null) { + if (c.serverCertificate === null) { var error3 = { message: "No server certificate provided. Not enough security.", send: true, @@ -113401,7 +113401,7 @@ var require_tls = __commonJS({ } }; var depth = 0; - var ret = c2.verify(c2, error3.alert.description, depth, []); + var ret = c.verify(c, error3.alert.description, depth, []); if (ret !== true) { if (ret || ret === 0) { if (typeof ret === "object" && !forge.util.isArray(ret)) { @@ -113415,51 +113415,51 @@ var require_tls = __commonJS({ error3.alert.description = ret; } } - return c2.error(c2, error3); + return c.error(c, error3); } } - if (c2.session.certificateRequest !== null) { - record = tls.createRecord(c2, { + if (c.session.certificateRequest !== null) { + record = tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createCertificate(c2) + data: tls.createCertificate(c) }); - tls.queue(c2, record); + tls.queue(c, record); } - record = tls.createRecord(c2, { + record = tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createClientKeyExchange(c2) + data: tls.createClientKeyExchange(c) }); - tls.queue(c2, record); - c2.expect = SER; - var callback = function(c3, signature) { - if (c3.session.certificateRequest !== null && c3.session.clientCertificate !== null) { - tls.queue(c3, tls.createRecord(c3, { + tls.queue(c, record); + c.expect = SER; + var callback = function(c2, signature) { + if (c2.session.certificateRequest !== null && c2.session.clientCertificate !== null) { + tls.queue(c2, tls.createRecord(c2, { type: tls.ContentType.handshake, - data: tls.createCertificateVerify(c3, signature) + data: tls.createCertificateVerify(c2, signature) })); } - tls.queue(c3, tls.createRecord(c3, { + tls.queue(c2, tls.createRecord(c2, { type: tls.ContentType.change_cipher_spec, data: tls.createChangeCipherSpec() })); - c3.state.pending = tls.createConnectionState(c3); - c3.state.current.write = c3.state.pending.write; - tls.queue(c3, tls.createRecord(c3, { + c2.state.pending = tls.createConnectionState(c2); + c2.state.current.write = c2.state.pending.write; + tls.queue(c2, tls.createRecord(c2, { type: tls.ContentType.handshake, - data: tls.createFinished(c3) + data: tls.createFinished(c2) })); - c3.expect = SCC; - tls.flush(c3); - c3.process(); + c2.expect = SCC; + tls.flush(c2); + c2.process(); }; - if (c2.session.certificateRequest === null || c2.session.clientCertificate === null) { - return callback(c2, null); + if (c.session.certificateRequest === null || c.session.clientCertificate === null) { + return callback(c, null); } - tls.getClientSignature(c2, callback); + tls.getClientSignature(c, callback); }; - tls.handleChangeCipherSpec = function(c2, record) { + tls.handleChangeCipherSpec = function(c, record) { if (record.fragment.getByte() !== 1) { - return c2.error(c2, { + return c.error(c, { message: "Invalid ChangeCipherSpec message received.", send: true, alert: { @@ -113468,34 +113468,34 @@ var require_tls = __commonJS({ } }); } - var client = c2.entity === tls.ConnectionEnd.client; - if (c2.session.resuming && client || !c2.session.resuming && !client) { - c2.state.pending = tls.createConnectionState(c2); + var client = c.entity === tls.ConnectionEnd.client; + if (c.session.resuming && client || !c.session.resuming && !client) { + c.state.pending = tls.createConnectionState(c); } - c2.state.current.read = c2.state.pending.read; - if (!c2.session.resuming && client || c2.session.resuming && !client) { - c2.state.pending = null; + c.state.current.read = c.state.pending.read; + if (!c.session.resuming && client || c.session.resuming && !client) { + c.state.pending = null; } - c2.expect = client ? SFI : CFI; - c2.process(); + c.expect = client ? SFI : CFI; + c.process(); }; - tls.handleFinished = function(c2, record, length) { + tls.handleFinished = function(c, record, length) { var b = record.fragment; b.read -= 4; var msgBytes = b.bytes(); b.read += 4; var vd = record.fragment.getBytes(); b = forge.util.createBuffer(); - b.putBuffer(c2.session.md5.digest()); - b.putBuffer(c2.session.sha1.digest()); - var client = c2.entity === tls.ConnectionEnd.client; + b.putBuffer(c.session.md5.digest()); + b.putBuffer(c.session.sha1.digest()); + var client = c.entity === tls.ConnectionEnd.client; var label = client ? "server finished" : "client finished"; - var sp = c2.session.sp; + var sp = c.session.sp; var vdl = 12; var prf = prf_TLS1; b = prf(sp.master_secret, label, b.getBytes(), vdl); if (b.getBytes() !== vd) { - return c2.error(c2, { + return c.error(c, { message: "Invalid verify_data in Finished message.", send: true, alert: { @@ -113504,30 +113504,30 @@ var require_tls = __commonJS({ } }); } - c2.session.md5.update(msgBytes); - c2.session.sha1.update(msgBytes); - if (c2.session.resuming && client || !c2.session.resuming && !client) { - tls.queue(c2, tls.createRecord(c2, { + c.session.md5.update(msgBytes); + c.session.sha1.update(msgBytes); + if (c.session.resuming && client || !c.session.resuming && !client) { + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.change_cipher_spec, data: tls.createChangeCipherSpec() })); - c2.state.current.write = c2.state.pending.write; - c2.state.pending = null; - tls.queue(c2, tls.createRecord(c2, { + c.state.current.write = c.state.pending.write; + c.state.pending = null; + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createFinished(c2) + data: tls.createFinished(c) })); } - c2.expect = client ? SAD : CAD; - c2.handshaking = false; - ++c2.handshakes; - c2.peerCertificate = client ? c2.session.serverCertificate : c2.session.clientCertificate; - tls.flush(c2); - c2.isConnected = true; - c2.connected(c2); - c2.process(); + c.expect = client ? SAD : CAD; + c.handshaking = false; + ++c.handshakes; + c.peerCertificate = client ? c.session.serverCertificate : c.session.clientCertificate; + tls.flush(c); + c.isConnected = true; + c.connected(c); + c.process(); }; - tls.handleAlert = function(c2, record) { + tls.handleAlert = function(c, record) { var b = record.fragment; var alert = { level: b.getByte(), @@ -113609,35 +113609,35 @@ var require_tls = __commonJS({ break; } if (alert.description === tls.Alert.Description.close_notify) { - return c2.close(); + return c.close(); } - c2.error(c2, { + c.error(c, { message: msg, send: false, // origin is the opposite end - origin: c2.entity === tls.ConnectionEnd.client ? "server" : "client", + origin: c.entity === tls.ConnectionEnd.client ? "server" : "client", alert }); - c2.process(); + c.process(); }; - tls.handleHandshake = function(c2, record) { + tls.handleHandshake = function(c, record) { var b = record.fragment; var type2 = b.getByte(); var length = b.getInt24(); if (length > b.length()) { - c2.fragmented = record; + c.fragmented = record; record.fragment = forge.util.createBuffer(); b.read -= 4; - return c2.process(); + return c.process(); } - c2.fragmented = null; + c.fragmented = null; b.read -= 4; var bytes = b.bytes(length + 4); b.read += 4; - if (type2 in hsTable[c2.entity][c2.expect]) { - if (c2.entity === tls.ConnectionEnd.server && !c2.open && !c2.fail) { - c2.handshaking = true; - c2.session = { + if (type2 in hsTable[c.entity][c.expect]) { + if (c.entity === tls.ConnectionEnd.server && !c.open && !c.fail) { + c.handshaking = true; + c.session = { version: null, extensions: { server_name: { @@ -113653,45 +113653,45 @@ var require_tls = __commonJS({ }; } if (type2 !== tls.HandshakeType.hello_request && type2 !== tls.HandshakeType.certificate_verify && type2 !== tls.HandshakeType.finished) { - c2.session.md5.update(bytes); - c2.session.sha1.update(bytes); + c.session.md5.update(bytes); + c.session.sha1.update(bytes); } - hsTable[c2.entity][c2.expect][type2](c2, record, length); + hsTable[c.entity][c.expect][type2](c, record, length); } else { - tls.handleUnexpected(c2, record); + tls.handleUnexpected(c, record); } }; - tls.handleApplicationData = function(c2, record) { - c2.data.putBuffer(record.fragment); - c2.dataReady(c2); - c2.process(); + tls.handleApplicationData = function(c, record) { + c.data.putBuffer(record.fragment); + c.dataReady(c); + c.process(); }; - tls.handleHeartbeat = function(c2, record) { + tls.handleHeartbeat = function(c, record) { var b = record.fragment; var type2 = b.getByte(); var length = b.getInt16(); var payload = b.getBytes(length); if (type2 === tls.HeartbeatMessageType.heartbeat_request) { - if (c2.handshaking || length > payload.length) { - return c2.process(); + if (c.handshaking || length > payload.length) { + return c.process(); } - tls.queue(c2, tls.createRecord(c2, { + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.heartbeat, data: tls.createHeartbeat( tls.HeartbeatMessageType.heartbeat_response, payload ) })); - tls.flush(c2); + tls.flush(c); } else if (type2 === tls.HeartbeatMessageType.heartbeat_response) { - if (payload !== c2.expectedHeartbeatPayload) { - return c2.process(); + if (payload !== c.expectedHeartbeatPayload) { + return c.process(); } - if (c2.heartbeatReceived) { - c2.heartbeatReceived(c2, forge.util.createBuffer(payload)); + if (c.heartbeatReceived) { + c.heartbeatReceived(c, forge.util.createBuffer(payload)); } } - c2.process(); + c.process(); }; var SHE = 0; var SCE = 1; @@ -113807,10 +113807,10 @@ var require_tls = __commonJS({ /*CER*/ [__, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __] ]; - tls.generateKeys = function(c2, sp) { + tls.generateKeys = function(c, sp) { var prf = prf_TLS1; var random = sp.client_random + sp.server_random; - if (!c2.session.resuming) { + if (!c.session.resuming) { sp.master_secret = prf( sp.pre_master_secret, "master secret", @@ -113821,7 +113821,7 @@ var require_tls = __commonJS({ } random = sp.server_random + sp.client_random; var length = 2 * sp.mac_key_length + 2 * sp.enc_key_length; - var tls10 = c2.version.major === tls.Versions.TLS_1_0.major && c2.version.minor === tls.Versions.TLS_1_0.minor; + var tls10 = c.version.major === tls.Versions.TLS_1_0.major && c.version.minor === tls.Versions.TLS_1_0.minor; if (tls10) { length += 2 * sp.fixed_iv_length; } @@ -113838,8 +113838,8 @@ var require_tls = __commonJS({ } return rval; }; - tls.createConnectionState = function(c2) { - var client = c2.entity === tls.ConnectionEnd.client; + tls.createConnectionState = function(c) { + var client = c.entity === tls.ConnectionEnd.client; var createMode = function() { var mode = { // two 32-bit numbers, first is most significant @@ -113870,9 +113870,9 @@ var require_tls = __commonJS({ read: createMode(), write: createMode() }; - state.read.update = function(c3, record) { + state.read.update = function(c2, record) { if (!state.read.cipherFunction(record, state.read)) { - c3.error(c3, { + c2.error(c2, { message: "Could not decrypt record or bad MAC.", send: true, alert: { @@ -113883,8 +113883,8 @@ var require_tls = __commonJS({ description: tls.Alert.Description.bad_record_mac } }); - } else if (!state.read.compressFunction(c3, record, state.read)) { - c3.error(c3, { + } else if (!state.read.compressFunction(c2, record, state.read)) { + c2.error(c2, { message: "Could not decompress record.", send: true, alert: { @@ -113893,11 +113893,11 @@ var require_tls = __commonJS({ } }); } - return !c3.fail; + return !c2.fail; }; - state.write.update = function(c3, record) { - if (!state.write.compressFunction(c3, record, state.write)) { - c3.error(c3, { + state.write.update = function(c2, record) { + if (!state.write.compressFunction(c2, record, state.write)) { + c2.error(c2, { message: "Could not compress record.", send: false, alert: { @@ -113906,7 +113906,7 @@ var require_tls = __commonJS({ } }); } else if (!state.write.cipherFunction(record, state.write)) { - c3.error(c3, { + c2.error(c2, { message: "Could not encrypt record.", send: false, alert: { @@ -113915,15 +113915,15 @@ var require_tls = __commonJS({ } }); } - return !c3.fail; + return !c2.fail; }; - if (c2.session) { - var sp = c2.session.sp; - c2.session.cipherSuite.initSecurityParameters(sp); - sp.keys = tls.generateKeys(c2, sp); + if (c.session) { + var sp = c.session.sp; + c.session.cipherSuite.initSecurityParameters(sp); + sp.keys = tls.generateKeys(c, sp); state.read.macKey = client ? sp.keys.server_write_MAC_key : sp.keys.client_write_MAC_key; state.write.macKey = client ? sp.keys.client_write_MAC_key : sp.keys.server_write_MAC_key; - c2.session.cipherSuite.initConnectionState(state, c2, sp); + c.session.cipherSuite.initConnectionState(state, c, sp); switch (sp.compression_algorithm) { case tls.CompressionMethod.none: break; @@ -113945,38 +113945,38 @@ var require_tls = __commonJS({ rval.putBytes(forge.random.getBytes(28)); return rval; }; - tls.createRecord = function(c2, options) { + tls.createRecord = function(c, options) { if (!options.data) { return null; } var record = { type: options.type, version: { - major: c2.version.major, - minor: c2.version.minor + major: c.version.major, + minor: c.version.minor }, length: options.data.length(), fragment: options.data }; return record; }; - tls.createAlert = function(c2, alert) { + tls.createAlert = function(c, alert) { var b = forge.util.createBuffer(); b.putByte(alert.level); b.putByte(alert.description); - return tls.createRecord(c2, { + return tls.createRecord(c, { type: tls.ContentType.alert, data: b }); }; - tls.createClientHello = function(c2) { - c2.session.clientHelloVersion = { - major: c2.version.major, - minor: c2.version.minor + tls.createClientHello = function(c) { + c.session.clientHelloVersion = { + major: c.version.major, + minor: c.version.minor }; var cipherSuites = forge.util.createBuffer(); - for (var i = 0; i < c2.cipherSuites.length; ++i) { - var cs = c2.cipherSuites[i]; + for (var i = 0; i < c.cipherSuites.length; ++i) { + var cs = c.cipherSuites[i]; cipherSuites.putByte(cs.id[0]); cipherSuites.putByte(cs.id[1]); } @@ -113985,13 +113985,13 @@ var require_tls = __commonJS({ compressionMethods.putByte(tls.CompressionMethod.none); var cMethods = compressionMethods.length(); var extensions = forge.util.createBuffer(); - if (c2.virtualHost) { + if (c.virtualHost) { var ext = forge.util.createBuffer(); ext.putByte(0); ext.putByte(0); var serverName = forge.util.createBuffer(); serverName.putByte(0); - writeVector(serverName, 2, forge.util.createBuffer(c2.virtualHost)); + writeVector(serverName, 2, forge.util.createBuffer(c.virtualHost)); var snList = forge.util.createBuffer(); writeVector(snList, 2, serverName); writeVector(ext, 2, snList); @@ -114001,7 +114001,7 @@ var require_tls = __commonJS({ if (extLength > 0) { extLength += 2; } - var sessionId = c2.session.id; + var sessionId = c.session.id; var length = sessionId.length + 1 + // session ID vector 2 + // version (major + minor) 4 + 28 + // random time and random bytes @@ -114011,9 +114011,9 @@ var require_tls = __commonJS({ var rval = forge.util.createBuffer(); rval.putByte(tls.HandshakeType.client_hello); rval.putInt24(length); - rval.putByte(c2.version.major); - rval.putByte(c2.version.minor); - rval.putBytes(c2.session.sp.client_random); + rval.putByte(c.version.major); + rval.putByte(c.version.minor); + rval.putBytes(c.session.sp.client_random); writeVector(rval, 1, forge.util.createBuffer(sessionId)); writeVector(rval, 2, cipherSuites); writeVector(rval, 1, compressionMethods); @@ -114022,8 +114022,8 @@ var require_tls = __commonJS({ } return rval; }; - tls.createServerHello = function(c2) { - var sessionId = c2.session.id; + tls.createServerHello = function(c) { + var sessionId = c.session.id; var length = sessionId.length + 1 + // session ID vector 2 + // version (major + minor) 4 + 28 + // random time and random bytes @@ -114032,26 +114032,26 @@ var require_tls = __commonJS({ var rval = forge.util.createBuffer(); rval.putByte(tls.HandshakeType.server_hello); rval.putInt24(length); - rval.putByte(c2.version.major); - rval.putByte(c2.version.minor); - rval.putBytes(c2.session.sp.server_random); + rval.putByte(c.version.major); + rval.putByte(c.version.minor); + rval.putBytes(c.session.sp.server_random); writeVector(rval, 1, forge.util.createBuffer(sessionId)); - rval.putByte(c2.session.cipherSuite.id[0]); - rval.putByte(c2.session.cipherSuite.id[1]); - rval.putByte(c2.session.compressionMethod); + rval.putByte(c.session.cipherSuite.id[0]); + rval.putByte(c.session.cipherSuite.id[1]); + rval.putByte(c.session.compressionMethod); return rval; }; - tls.createCertificate = function(c2) { - var client = c2.entity === tls.ConnectionEnd.client; + tls.createCertificate = function(c) { + var client = c.entity === tls.ConnectionEnd.client; var cert = null; - if (c2.getCertificate) { + if (c.getCertificate) { var hint; if (client) { - hint = c2.session.certificateRequest; + hint = c.session.certificateRequest; } else { - hint = c2.session.extensions.server_name.serverNameList; + hint = c.session.extensions.server_name.serverNameList; } - cert = c2.getCertificate(c2, hint); + cert = c.getCertificate(c, hint); } var certList = forge.util.createBuffer(); if (cert !== null) { @@ -114080,12 +114080,12 @@ var require_tls = __commonJS({ } cert = forge.pki.certificateFromAsn1(asn1); if (client) { - c2.session.clientCertificate = cert; + c.session.clientCertificate = cert; } else { - c2.session.serverCertificate = cert; + c.session.serverCertificate = cert; } } catch (ex) { - return c2.error(c2, { + return c.error(c, { message: "Could not send certificate list.", cause: ex, send: true, @@ -114103,14 +114103,14 @@ var require_tls = __commonJS({ writeVector(rval, 3, certList); return rval; }; - tls.createClientKeyExchange = function(c2) { + tls.createClientKeyExchange = function(c) { var b = forge.util.createBuffer(); - b.putByte(c2.session.clientHelloVersion.major); - b.putByte(c2.session.clientHelloVersion.minor); + b.putByte(c.session.clientHelloVersion.major); + b.putByte(c.session.clientHelloVersion.minor); b.putBytes(forge.random.getBytes(46)); - var sp = c2.session.sp; + var sp = c.session.sp; sp.pre_master_secret = b.getBytes(); - var key2 = c2.session.serverCertificate.publicKey; + var key2 = c.session.serverCertificate.publicKey; b = key2.encrypt(sp.pre_master_secret); var length = b.length + 2; var rval = forge.util.createBuffer(); @@ -114120,7 +114120,7 @@ var require_tls = __commonJS({ rval.putBytes(b); return rval; }; - tls.createServerKeyExchange = function(c2) { + tls.createServerKeyExchange = function(c) { var length = 0; var rval = forge.util.createBuffer(); if (length > 0) { @@ -114129,19 +114129,19 @@ var require_tls = __commonJS({ } return rval; }; - tls.getClientSignature = function(c2, callback) { + tls.getClientSignature = function(c, callback) { var b = forge.util.createBuffer(); - b.putBuffer(c2.session.md5.digest()); - b.putBuffer(c2.session.sha1.digest()); + b.putBuffer(c.session.md5.digest()); + b.putBuffer(c.session.sha1.digest()); b = b.getBytes(); - c2.getSignature = c2.getSignature || function(c3, b2, callback2) { + c.getSignature = c.getSignature || function(c2, b2, callback2) { var privateKey = null; - if (c3.getPrivateKey) { + if (c2.getPrivateKey) { try { - privateKey = c3.getPrivateKey(c3, c3.session.clientCertificate); + privateKey = c2.getPrivateKey(c2, c2.session.clientCertificate); privateKey = forge.pki.privateKeyFromPem(privateKey); } catch (ex) { - c3.error(c3, { + c2.error(c2, { message: "Could not get private key.", cause: ex, send: true, @@ -114153,7 +114153,7 @@ var require_tls = __commonJS({ } } if (privateKey === null) { - c3.error(c3, { + c2.error(c2, { message: "No private key set.", send: true, alert: { @@ -114164,11 +114164,11 @@ var require_tls = __commonJS({ } else { b2 = privateKey.sign(b2, null); } - callback2(c3, b2); + callback2(c2, b2); }; - c2.getSignature(c2, b, callback); + c.getSignature(c, b, callback); }; - tls.createCertificateVerify = function(c2, signature) { + tls.createCertificateVerify = function(c, signature) { var length = signature.length + 2; var rval = forge.util.createBuffer(); rval.putByte(tls.HandshakeType.certificate_verify); @@ -114177,12 +114177,12 @@ var require_tls = __commonJS({ rval.putBytes(signature); return rval; }; - tls.createCertificateRequest = function(c2) { + tls.createCertificateRequest = function(c) { var certTypes = forge.util.createBuffer(); certTypes.putByte(1); var cAs = forge.util.createBuffer(); - for (var key2 in c2.caStore.certs) { - var cert = c2.caStore.certs[key2]; + for (var key2 in c.caStore.certs) { + var cert = c.caStore.certs[key2]; var dn = forge.pki.distinguishedNameToAsn1(cert.subject); var byteBuffer = forge.asn1.toDer(dn); cAs.putInt16(byteBuffer.length()); @@ -114196,7 +114196,7 @@ var require_tls = __commonJS({ writeVector(rval, 2, cAs); return rval; }; - tls.createServerHelloDone = function(c2) { + tls.createServerHelloDone = function(c) { var rval = forge.util.createBuffer(); rval.putByte(tls.HandshakeType.server_hello_done); rval.putInt24(0); @@ -114207,12 +114207,12 @@ var require_tls = __commonJS({ rval.putByte(1); return rval; }; - tls.createFinished = function(c2) { + tls.createFinished = function(c) { var b = forge.util.createBuffer(); - b.putBuffer(c2.session.md5.digest()); - b.putBuffer(c2.session.sha1.digest()); - var client = c2.entity === tls.ConnectionEnd.client; - var sp = c2.session.sp; + b.putBuffer(c.session.md5.digest()); + b.putBuffer(c.session.sha1.digest()); + var client = c.entity === tls.ConnectionEnd.client; + var sp = c.session.sp; var vdl = 12; var prf = prf_TLS1; var label = client ? "client finished" : "server finished"; @@ -114236,7 +114236,7 @@ var require_tls = __commonJS({ rval.putBytes(forge.random.getBytes(paddingLength)); return rval; }; - tls.queue = function(c2, record) { + tls.queue = function(c, record) { if (!record) { return; } @@ -114247,8 +114247,8 @@ var require_tls = __commonJS({ } if (record.type === tls.ContentType.handshake) { var bytes = record.fragment.bytes(); - c2.session.md5.update(bytes); - c2.session.sha1.update(bytes); + c.session.md5.update(bytes); + c.session.sha1.update(bytes); bytes = null; } var records; @@ -114258,38 +114258,38 @@ var require_tls = __commonJS({ records = []; var data = record.fragment.bytes(); while (data.length > tls.MaxFragment) { - records.push(tls.createRecord(c2, { + records.push(tls.createRecord(c, { type: record.type, data: forge.util.createBuffer(data.slice(0, tls.MaxFragment)) })); data = data.slice(tls.MaxFragment); } if (data.length > 0) { - records.push(tls.createRecord(c2, { + records.push(tls.createRecord(c, { type: record.type, data: forge.util.createBuffer(data) })); } } - for (var i = 0; i < records.length && !c2.fail; ++i) { + for (var i = 0; i < records.length && !c.fail; ++i) { var rec = records[i]; - var s = c2.state.current.write; - if (s.update(c2, rec)) { - c2.records.push(rec); + var s = c.state.current.write; + if (s.update(c, rec)) { + c.records.push(rec); } } }; - tls.flush = function(c2) { - for (var i = 0; i < c2.records.length; ++i) { - var record = c2.records[i]; - c2.tlsData.putByte(record.type); - c2.tlsData.putByte(record.version.major); - c2.tlsData.putByte(record.version.minor); - c2.tlsData.putInt16(record.fragment.length()); - c2.tlsData.putBuffer(c2.records[i].fragment); + tls.flush = function(c) { + for (var i = 0; i < c.records.length; ++i) { + var record = c.records[i]; + c.tlsData.putByte(record.type); + c.tlsData.putByte(record.version.major); + c.tlsData.putByte(record.version.minor); + c.tlsData.putInt16(record.fragment.length()); + c.tlsData.putBuffer(c.records[i].fragment); } - c2.records = []; - return c2.tlsDataReady(c2); + c.records = []; + return c.tlsDataReady(c); }; var _certErrorToAlertDesc = function(error3) { switch (error3) { @@ -114331,15 +114331,15 @@ var require_tls = __commonJS({ return forge.pki.certificateError.bad_certificate; } }; - tls.verifyCertificateChain = function(c2, chain) { + tls.verifyCertificateChain = function(c, chain) { try { var options = {}; - for (var key2 in c2.verifyOptions) { - options[key2] = c2.verifyOptions[key2]; + for (var key2 in c.verifyOptions) { + options[key2] = c.verifyOptions[key2]; } options.verify = function(vfd, depth, chain2) { var desc = _certErrorToAlertDesc(vfd); - var ret = c2.verify(c2, vfd, depth, chain2); + var ret = c.verify(c, vfd, depth, chain2); if (ret !== true) { if (typeof ret === "object" && !forge.util.isArray(ret)) { var error3 = new Error("The application rejected the certificate."); @@ -114362,7 +114362,7 @@ var require_tls = __commonJS({ } return ret; }; - forge.pki.verifyCertificateChain(c2.caStore, chain, options); + forge.pki.verifyCertificateChain(c.caStore, chain, options); } catch (ex) { var err = ex; if (typeof err !== "object" || forge.util.isArray(err)) { @@ -114383,9 +114383,9 @@ var require_tls = __commonJS({ description: _certErrorToAlertDesc(err.error) }; } - c2.error(c2, err); + c.error(c, err); } - return !c2.fail; + return !c.fail; }; tls.createSessionCache = function(cache, capacity) { var rval = null; @@ -114455,7 +114455,7 @@ var require_tls = __commonJS({ } var entity = options.server || false ? tls.ConnectionEnd.server : tls.ConnectionEnd.client; var sessionCache = options.sessionCache ? tls.createSessionCache(options.sessionCache) : null; - var c2 = { + var c = { version: { major: tls.Version.major, minor: tls.Version.minor }, entity, sessionId: options.sessionId, @@ -114479,64 +114479,64 @@ var require_tls = __commonJS({ dataReady: options.dataReady, heartbeatReceived: options.heartbeatReceived, closed: options.closed, - error: function(c3, ex) { - ex.origin = ex.origin || (c3.entity === tls.ConnectionEnd.client ? "client" : "server"); + error: function(c2, ex) { + ex.origin = ex.origin || (c2.entity === tls.ConnectionEnd.client ? "client" : "server"); if (ex.send) { - tls.queue(c3, tls.createAlert(c3, ex.alert)); - tls.flush(c3); + tls.queue(c2, tls.createAlert(c2, ex.alert)); + tls.flush(c2); } var fatal = ex.fatal !== false; if (fatal) { - c3.fail = true; + c2.fail = true; } - options.error(c3, ex); + options.error(c2, ex); if (fatal) { - c3.close(false); + c2.close(false); } }, deflate: options.deflate || null, inflate: options.inflate || null }; - c2.reset = function(clearFail) { - c2.version = { major: tls.Version.major, minor: tls.Version.minor }; - c2.record = null; - c2.session = null; - c2.peerCertificate = null; - c2.state = { + c.reset = function(clearFail) { + c.version = { major: tls.Version.major, minor: tls.Version.minor }; + c.record = null; + c.session = null; + c.peerCertificate = null; + c.state = { pending: null, current: null }; - c2.expect = c2.entity === tls.ConnectionEnd.client ? SHE : CHE; - c2.fragmented = null; - c2.records = []; - c2.open = false; - c2.handshakes = 0; - c2.handshaking = false; - c2.isConnected = false; - c2.fail = !(clearFail || typeof clearFail === "undefined"); - c2.input.clear(); - c2.tlsData.clear(); - c2.data.clear(); - c2.state.current = tls.createConnectionState(c2); + c.expect = c.entity === tls.ConnectionEnd.client ? SHE : CHE; + c.fragmented = null; + c.records = []; + c.open = false; + c.handshakes = 0; + c.handshaking = false; + c.isConnected = false; + c.fail = !(clearFail || typeof clearFail === "undefined"); + c.input.clear(); + c.tlsData.clear(); + c.data.clear(); + c.state.current = tls.createConnectionState(c); }; - c2.reset(); - var _update = function(c3, record) { + c.reset(); + var _update = function(c2, record) { var aligned = record.type - tls.ContentType.change_cipher_spec; - var handlers = ctTable[c3.entity][c3.expect]; + var handlers = ctTable[c2.entity][c2.expect]; if (aligned in handlers) { - handlers[aligned](c3, record); + handlers[aligned](c2, record); } else { - tls.handleUnexpected(c3, record); + tls.handleUnexpected(c2, record); } }; - var _readRecordHeader = function(c3) { + var _readRecordHeader = function(c2) { var rval = 0; - var b = c3.input; + var b = c2.input; var len = b.length(); if (len < 5) { rval = 5 - len; } else { - c3.record = { + c2.record = { type: b.getByte(), version: { major: b.getByte(), @@ -114546,12 +114546,12 @@ var require_tls = __commonJS({ fragment: forge.util.createBuffer(), ready: false }; - var compatibleVersion = c3.record.version.major === c3.version.major; - if (compatibleVersion && c3.session && c3.session.version) { - compatibleVersion = c3.record.version.minor === c3.version.minor; + var compatibleVersion = c2.record.version.major === c2.version.major; + if (compatibleVersion && c2.session && c2.session.version) { + compatibleVersion = c2.record.version.minor === c2.version.minor; } if (!compatibleVersion) { - c3.error(c3, { + c2.error(c2, { message: "Incompatible TLS version.", send: true, alert: { @@ -114563,23 +114563,23 @@ var require_tls = __commonJS({ } return rval; }; - var _readRecord = function(c3) { + var _readRecord = function(c2) { var rval = 0; - var b = c3.input; + var b = c2.input; var len = b.length(); - if (len < c3.record.length) { - rval = c3.record.length - len; + if (len < c2.record.length) { + rval = c2.record.length - len; } else { - c3.record.fragment.putBytes(b.getBytes(c3.record.length)); + c2.record.fragment.putBytes(b.getBytes(c2.record.length)); b.compact(); - var s = c3.state.current.read; - if (s.update(c3, c3.record)) { - if (c3.fragmented !== null) { - if (c3.fragmented.type === c3.record.type) { - c3.fragmented.fragment.putBuffer(c3.record.fragment); - c3.record = c3.fragmented; + var s = c2.state.current.read; + if (s.update(c2, c2.record)) { + if (c2.fragmented !== null) { + if (c2.fragmented.type === c2.record.type) { + c2.fragmented.fragment.putBuffer(c2.record.fragment); + c2.record = c2.fragmented; } else { - c3.error(c3, { + c2.error(c2, { message: "Invalid fragmented record.", send: true, alert: { @@ -114589,44 +114589,44 @@ var require_tls = __commonJS({ }); } } - c3.record.ready = true; + c2.record.ready = true; } } return rval; }; - c2.handshake = function(sessionId) { - if (c2.entity !== tls.ConnectionEnd.client) { - c2.error(c2, { + c.handshake = function(sessionId) { + if (c.entity !== tls.ConnectionEnd.client) { + c.error(c, { message: "Cannot initiate handshake as a server.", fatal: false }); - } else if (c2.handshaking) { - c2.error(c2, { + } else if (c.handshaking) { + c.error(c, { message: "Handshake already in progress.", fatal: false }); } else { - if (c2.fail && !c2.open && c2.handshakes === 0) { - c2.fail = false; + if (c.fail && !c.open && c.handshakes === 0) { + c.fail = false; } - c2.handshaking = true; + c.handshaking = true; sessionId = sessionId || ""; var session = null; if (sessionId.length > 0) { - if (c2.sessionCache) { - session = c2.sessionCache.getSession(sessionId); + if (c.sessionCache) { + session = c.sessionCache.getSession(sessionId); } if (session === null) { sessionId = ""; } } - if (sessionId.length === 0 && c2.sessionCache) { - session = c2.sessionCache.getSession(); + if (sessionId.length === 0 && c.sessionCache) { + session = c.sessionCache.getSession(); if (session !== null) { sessionId = session.id; } } - c2.session = { + c.session = { id: sessionId, version: null, cipherSuite: null, @@ -114639,55 +114639,55 @@ var require_tls = __commonJS({ sha1: forge.md.sha1.create() }; if (session) { - c2.version = session.version; - c2.session.sp = session.sp; + c.version = session.version; + c.session.sp = session.sp; } - c2.session.sp.client_random = tls.createRandom().getBytes(); - c2.open = true; - tls.queue(c2, tls.createRecord(c2, { + c.session.sp.client_random = tls.createRandom().getBytes(); + c.open = true; + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.handshake, - data: tls.createClientHello(c2) + data: tls.createClientHello(c) })); - tls.flush(c2); + tls.flush(c); } }; - c2.process = function(data) { + c.process = function(data) { var rval = 0; if (data) { - c2.input.putBytes(data); + c.input.putBytes(data); } - if (!c2.fail) { - if (c2.record !== null && c2.record.ready && c2.record.fragment.isEmpty()) { - c2.record = null; + if (!c.fail) { + if (c.record !== null && c.record.ready && c.record.fragment.isEmpty()) { + c.record = null; } - if (c2.record === null) { - rval = _readRecordHeader(c2); + if (c.record === null) { + rval = _readRecordHeader(c); } - if (!c2.fail && c2.record !== null && !c2.record.ready) { - rval = _readRecord(c2); + if (!c.fail && c.record !== null && !c.record.ready) { + rval = _readRecord(c); } - if (!c2.fail && c2.record !== null && c2.record.ready) { - _update(c2, c2.record); + if (!c.fail && c.record !== null && c.record.ready) { + _update(c, c.record); } } return rval; }; - c2.prepare = function(data) { - tls.queue(c2, tls.createRecord(c2, { + c.prepare = function(data) { + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.application_data, data: forge.util.createBuffer(data) })); - return tls.flush(c2); + return tls.flush(c); }; - c2.prepareHeartbeatRequest = function(payload, payloadLength) { + c.prepareHeartbeatRequest = function(payload, payloadLength) { if (payload instanceof forge.util.ByteBuffer) { payload = payload.bytes(); } if (typeof payloadLength === "undefined") { payloadLength = payload.length; } - c2.expectedHeartbeatPayload = payload; - tls.queue(c2, tls.createRecord(c2, { + c.expectedHeartbeatPayload = payload; + tls.queue(c, tls.createRecord(c, { type: tls.ContentType.heartbeat, data: tls.createHeartbeat( tls.HeartbeatMessageType.heartbeat_request, @@ -114695,34 +114695,34 @@ var require_tls = __commonJS({ payloadLength ) })); - return tls.flush(c2); + return tls.flush(c); }; - c2.close = function(clearFail) { - if (!c2.fail && c2.sessionCache && c2.session) { + c.close = function(clearFail) { + if (!c.fail && c.sessionCache && c.session) { var session = { - id: c2.session.id, - version: c2.session.version, - sp: c2.session.sp + id: c.session.id, + version: c.session.version, + sp: c.session.sp }; session.sp.keys = null; - c2.sessionCache.setSession(session.id, session); - } - if (c2.open) { - c2.open = false; - c2.input.clear(); - if (c2.isConnected || c2.handshaking) { - c2.isConnected = c2.handshaking = false; - tls.queue(c2, tls.createAlert(c2, { + c.sessionCache.setSession(session.id, session); + } + if (c.open) { + c.open = false; + c.input.clear(); + if (c.isConnected || c.handshaking) { + c.isConnected = c.handshaking = false; + tls.queue(c, tls.createAlert(c, { level: tls.Alert.Level.warning, description: tls.Alert.Description.close_notify })); - tls.flush(c2); + tls.flush(c); } - c2.closed(c2); + c.closed(c); } - c2.reset(clearFail); + c.reset(clearFail); }; - return c2; + return c; }; module2.exports = forge.tls = forge.tls || {}; for (key in tls) { @@ -114777,8 +114777,8 @@ var require_aesCipherSuites = __commonJS({ }, initConnectionState }; - function initConnectionState(state, c2, sp) { - var client = c2.entity === forge.tls.ConnectionEnd.client; + function initConnectionState(state, c, sp) { + var client = c.entity === forge.tls.ConnectionEnd.client; state.read.cipherState = { init: false, cipher: forge.cipher.createDecipher("AES-CBC", client ? sp.keys.server_write_key : sp.keys.client_write_key), @@ -115866,20 +115866,20 @@ var require_ed25519 = __commonJS({ modL(r, x); } function add(p, q) { - var a = gf(), b = gf(), c2 = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf(); + var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf(); Z(a, p[1], p[0]); Z(t, q[1], q[0]); M(a, a, t); A(b, p[0], p[1]); A(t, q[0], q[1]); M(b, b, t); - M(c2, p[3], q[3]); - M(c2, c2, D2); + M(c, p[3], q[3]); + M(c, c, D2); M(d, p[2], q[2]); A(d, d, d); Z(e, b, a); - Z(f, d, c2); - A(g, d, c2); + Z(f, d, c); + A(g, d, c); A(h, b, a); M(p[0], e, f); M(p[1], h, g); @@ -115966,27 +115966,27 @@ var require_ed25519 = __commonJS({ o[15] &= 32767; } function pow2523(o, i) { - var c2 = gf(); + var c = gf(); var a; for (a = 0; a < 16; ++a) { - c2[a] = i[a]; + c[a] = i[a]; } for (a = 250; a >= 0; --a) { - S(c2, c2); + S(c, c); if (a !== 1) { - M(c2, c2, i); + M(c, c, i); } } for (a = 0; a < 16; ++a) { - o[a] = c2[a]; + o[a] = c[a]; } } function neq25519(a, b) { - var c2 = new NativeBuffer(32); + var c = new NativeBuffer(32); var d = new NativeBuffer(32); - pack25519(c2, a); + pack25519(c, a); pack25519(d, b); - return crypto_verify_32(c2, 0, d, 0); + return crypto_verify_32(c, 0, d, 0); } function crypto_verify_32(x, xi, y, yi) { return vn(x, xi, y, yi, 32); @@ -116032,34 +116032,34 @@ var require_ed25519 = __commonJS({ } } function inv25519(o, i) { - var c2 = gf(); + var c = gf(); var a; for (a = 0; a < 16; ++a) { - c2[a] = i[a]; + c[a] = i[a]; } for (a = 253; a >= 0; --a) { - S(c2, c2); + S(c, c); if (a !== 2 && a !== 4) { - M(c2, c2, i); + M(c, c, i); } } for (a = 0; a < 16; ++a) { - o[a] = c2[a]; + o[a] = c[a]; } } function car25519(o) { - var i, v, c2 = 1; + var i, v, c = 1; for (i = 0; i < 16; ++i) { - v = o[i] + c2 + 65535; - c2 = Math.floor(v / 65536); - o[i] = v - c2 * 65536; + v = o[i] + c + 65535; + c = Math.floor(v / 65536); + o[i] = v - c * 65536; } - o[0] += c2 - 1 + 37 * (c2 - 1); + o[0] += c - 1 + 37 * (c - 1); } function sel25519(p, q, b) { - var t, c2 = ~(b - 1); + var t, c = ~(b - 1); for (var i = 0; i < 16; ++i) { - t = c2 & (p[i] ^ q[i]); + t = c & (p[i] ^ q[i]); p[i] ^= t; q[i] ^= t; } @@ -116087,7 +116087,7 @@ var require_ed25519 = __commonJS({ M(o, a, a); } function M(o, a, b) { - var v, c2, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15]; + var v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15]; v = a[0]; t0 += v * b0; t1 += v * b1; @@ -116375,106 +116375,106 @@ var require_ed25519 = __commonJS({ t12 += 38 * t28; t13 += 38 * t29; t14 += 38 * t30; - c2 = 1; - v = t0 + c2 + 65535; - c2 = Math.floor(v / 65536); - t0 = v - c2 * 65536; - v = t1 + c2 + 65535; - c2 = Math.floor(v / 65536); - t1 = v - c2 * 65536; - v = t2 + c2 + 65535; - c2 = Math.floor(v / 65536); - t2 = v - c2 * 65536; - v = t3 + c2 + 65535; - c2 = Math.floor(v / 65536); - t3 = v - c2 * 65536; - v = t4 + c2 + 65535; - c2 = Math.floor(v / 65536); - t4 = v - c2 * 65536; - v = t5 + c2 + 65535; - c2 = Math.floor(v / 65536); - t5 = v - c2 * 65536; - v = t6 + c2 + 65535; - c2 = Math.floor(v / 65536); - t6 = v - c2 * 65536; - v = t7 + c2 + 65535; - c2 = Math.floor(v / 65536); - t7 = v - c2 * 65536; - v = t8 + c2 + 65535; - c2 = Math.floor(v / 65536); - t8 = v - c2 * 65536; - v = t9 + c2 + 65535; - c2 = Math.floor(v / 65536); - t9 = v - c2 * 65536; - v = t10 + c2 + 65535; - c2 = Math.floor(v / 65536); - t10 = v - c2 * 65536; - v = t11 + c2 + 65535; - c2 = Math.floor(v / 65536); - t11 = v - c2 * 65536; - v = t12 + c2 + 65535; - c2 = Math.floor(v / 65536); - t12 = v - c2 * 65536; - v = t13 + c2 + 65535; - c2 = Math.floor(v / 65536); - t13 = v - c2 * 65536; - v = t14 + c2 + 65535; - c2 = Math.floor(v / 65536); - t14 = v - c2 * 65536; - v = t15 + c2 + 65535; - c2 = Math.floor(v / 65536); - t15 = v - c2 * 65536; - t0 += c2 - 1 + 37 * (c2 - 1); - c2 = 1; - v = t0 + c2 + 65535; - c2 = Math.floor(v / 65536); - t0 = v - c2 * 65536; - v = t1 + c2 + 65535; - c2 = Math.floor(v / 65536); - t1 = v - c2 * 65536; - v = t2 + c2 + 65535; - c2 = Math.floor(v / 65536); - t2 = v - c2 * 65536; - v = t3 + c2 + 65535; - c2 = Math.floor(v / 65536); - t3 = v - c2 * 65536; - v = t4 + c2 + 65535; - c2 = Math.floor(v / 65536); - t4 = v - c2 * 65536; - v = t5 + c2 + 65535; - c2 = Math.floor(v / 65536); - t5 = v - c2 * 65536; - v = t6 + c2 + 65535; - c2 = Math.floor(v / 65536); - t6 = v - c2 * 65536; - v = t7 + c2 + 65535; - c2 = Math.floor(v / 65536); - t7 = v - c2 * 65536; - v = t8 + c2 + 65535; - c2 = Math.floor(v / 65536); - t8 = v - c2 * 65536; - v = t9 + c2 + 65535; - c2 = Math.floor(v / 65536); - t9 = v - c2 * 65536; - v = t10 + c2 + 65535; - c2 = Math.floor(v / 65536); - t10 = v - c2 * 65536; - v = t11 + c2 + 65535; - c2 = Math.floor(v / 65536); - t11 = v - c2 * 65536; - v = t12 + c2 + 65535; - c2 = Math.floor(v / 65536); - t12 = v - c2 * 65536; - v = t13 + c2 + 65535; - c2 = Math.floor(v / 65536); - t13 = v - c2 * 65536; - v = t14 + c2 + 65535; - c2 = Math.floor(v / 65536); - t14 = v - c2 * 65536; - v = t15 + c2 + 65535; - c2 = Math.floor(v / 65536); - t15 = v - c2 * 65536; - t0 += c2 - 1 + 37 * (c2 - 1); + c = 1; + v = t0 + c + 65535; + c = Math.floor(v / 65536); + t0 = v - c * 65536; + v = t1 + c + 65535; + c = Math.floor(v / 65536); + t1 = v - c * 65536; + v = t2 + c + 65535; + c = Math.floor(v / 65536); + t2 = v - c * 65536; + v = t3 + c + 65535; + c = Math.floor(v / 65536); + t3 = v - c * 65536; + v = t4 + c + 65535; + c = Math.floor(v / 65536); + t4 = v - c * 65536; + v = t5 + c + 65535; + c = Math.floor(v / 65536); + t5 = v - c * 65536; + v = t6 + c + 65535; + c = Math.floor(v / 65536); + t6 = v - c * 65536; + v = t7 + c + 65535; + c = Math.floor(v / 65536); + t7 = v - c * 65536; + v = t8 + c + 65535; + c = Math.floor(v / 65536); + t8 = v - c * 65536; + v = t9 + c + 65535; + c = Math.floor(v / 65536); + t9 = v - c * 65536; + v = t10 + c + 65535; + c = Math.floor(v / 65536); + t10 = v - c * 65536; + v = t11 + c + 65535; + c = Math.floor(v / 65536); + t11 = v - c * 65536; + v = t12 + c + 65535; + c = Math.floor(v / 65536); + t12 = v - c * 65536; + v = t13 + c + 65535; + c = Math.floor(v / 65536); + t13 = v - c * 65536; + v = t14 + c + 65535; + c = Math.floor(v / 65536); + t14 = v - c * 65536; + v = t15 + c + 65535; + c = Math.floor(v / 65536); + t15 = v - c * 65536; + t0 += c - 1 + 37 * (c - 1); + c = 1; + v = t0 + c + 65535; + c = Math.floor(v / 65536); + t0 = v - c * 65536; + v = t1 + c + 65535; + c = Math.floor(v / 65536); + t1 = v - c * 65536; + v = t2 + c + 65535; + c = Math.floor(v / 65536); + t2 = v - c * 65536; + v = t3 + c + 65535; + c = Math.floor(v / 65536); + t3 = v - c * 65536; + v = t4 + c + 65535; + c = Math.floor(v / 65536); + t4 = v - c * 65536; + v = t5 + c + 65535; + c = Math.floor(v / 65536); + t5 = v - c * 65536; + v = t6 + c + 65535; + c = Math.floor(v / 65536); + t6 = v - c * 65536; + v = t7 + c + 65535; + c = Math.floor(v / 65536); + t7 = v - c * 65536; + v = t8 + c + 65535; + c = Math.floor(v / 65536); + t8 = v - c * 65536; + v = t9 + c + 65535; + c = Math.floor(v / 65536); + t9 = v - c * 65536; + v = t10 + c + 65535; + c = Math.floor(v / 65536); + t10 = v - c * 65536; + v = t11 + c + 65535; + c = Math.floor(v / 65536); + t11 = v - c * 65536; + v = t12 + c + 65535; + c = Math.floor(v / 65536); + t12 = v - c * 65536; + v = t13 + c + 65535; + c = Math.floor(v / 65536); + t13 = v - c * 65536; + v = t14 + c + 65535; + c = Math.floor(v / 65536); + t14 = v - c * 65536; + v = t15 + c + 65535; + c = Math.floor(v / 65536); + t15 = v - c * 65536; + t0 += c - 1 + 37 * (c - 1); o[0] = t0; o[1] = t1; o[2] = t2; @@ -116543,11 +116543,11 @@ var require_kem = __commonJS({ kdf.generate = function(x, length) { var key = new forge.util.ByteBuffer(); var k = Math.ceil(length / digestLength) + counterStart; - var c2 = new forge.util.ByteBuffer(); + var c = new forge.util.ByteBuffer(); for (var i = counterStart; i < k; ++i) { - c2.putInt32(i); + c.putInt32(i); md2.start(); - md2.update(x + c2.getBytes()); + md2.update(x + c.getBytes()); var hash = md2.digest(); key.putBytes(hash.getBytes(digestLength)); } @@ -118346,14 +118346,14 @@ var bool = new type("tag:yaml.org,2002:bool", { }, defaultStyle: "lowercase" }); -function isHexCode(c2) { - return 48 <= c2 && c2 <= 57 || 65 <= c2 && c2 <= 70 || 97 <= c2 && c2 <= 102; +function isHexCode(c) { + return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102; } -function isOctCode(c2) { - return 48 <= c2 && c2 <= 55; +function isOctCode(c) { + return 48 <= c && c <= 55; } -function isDecCode(c2) { - return 48 <= c2 && c2 <= 57; +function isDecCode(c) { + return 48 <= c && c <= 57; } function resolveYamlInteger(data) { if (data === null) return false; @@ -118783,57 +118783,57 @@ var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\ function _class(obj) { return Object.prototype.toString.call(obj); } -function is_EOL(c2) { - return c2 === 10 || c2 === 13; +function is_EOL(c) { + return c === 10 || c === 13; } -function is_WHITE_SPACE(c2) { - return c2 === 9 || c2 === 32; +function is_WHITE_SPACE(c) { + return c === 9 || c === 32; } -function is_WS_OR_EOL(c2) { - return c2 === 9 || c2 === 32 || c2 === 10 || c2 === 13; +function is_WS_OR_EOL(c) { + return c === 9 || c === 32 || c === 10 || c === 13; } -function is_FLOW_INDICATOR(c2) { - return c2 === 44 || c2 === 91 || c2 === 93 || c2 === 123 || c2 === 125; +function is_FLOW_INDICATOR(c) { + return c === 44 || c === 91 || c === 93 || c === 123 || c === 125; } -function fromHexCode(c2) { +function fromHexCode(c) { var lc; - if (48 <= c2 && c2 <= 57) { - return c2 - 48; + if (48 <= c && c <= 57) { + return c - 48; } - lc = c2 | 32; + lc = c | 32; if (97 <= lc && lc <= 102) { return lc - 97 + 10; } return -1; } -function escapedHexLen(c2) { - if (c2 === 120) { +function escapedHexLen(c) { + if (c === 120) { return 2; } - if (c2 === 117) { + if (c === 117) { return 4; } - if (c2 === 85) { + if (c === 85) { return 8; } return 0; } -function fromDecimalCode(c2) { - if (48 <= c2 && c2 <= 57) { - return c2 - 48; +function fromDecimalCode(c) { + if (48 <= c && c <= 57) { + return c - 48; } return -1; } -function simpleEscapeSequence(c2) { - return c2 === 48 ? "\0" : c2 === 97 ? "\x07" : c2 === 98 ? "\b" : c2 === 116 ? " " : c2 === 9 ? " " : c2 === 110 ? "\n" : c2 === 118 ? "\v" : c2 === 102 ? "\f" : c2 === 114 ? "\r" : c2 === 101 ? "\x1B" : c2 === 32 ? " " : c2 === 34 ? '"' : c2 === 47 ? "/" : c2 === 92 ? "\\" : c2 === 78 ? "\x85" : c2 === 95 ? "\xA0" : c2 === 76 ? "\u2028" : c2 === 80 ? "\u2029" : ""; +function simpleEscapeSequence(c) { + return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "\x85" : c === 95 ? "\xA0" : c === 76 ? "\u2028" : c === 80 ? "\u2029" : ""; } -function charFromCodepoint(c2) { - if (c2 <= 65535) { - return String.fromCharCode(c2); +function charFromCodepoint(c) { + if (c <= 65535) { + return String.fromCharCode(c); } return String.fromCharCode( - (c2 - 65536 >> 10) + 55296, - (c2 - 65536 & 1023) + 56320 + (c - 65536 >> 10) + 55296, + (c - 65536 & 1023) + 56320 ); } function setProperty(object, key, value) { @@ -120075,31 +120075,31 @@ function testImplicitResolving(state, str2) { } return false; } -function isWhitespace(c2) { - return c2 === CHAR_SPACE || c2 === CHAR_TAB; +function isWhitespace(c) { + return c === CHAR_SPACE || c === CHAR_TAB; } -function isPrintable(c2) { - return 32 <= c2 && c2 <= 126 || 161 <= c2 && c2 <= 55295 && c2 !== 8232 && c2 !== 8233 || 57344 <= c2 && c2 <= 65533 && c2 !== CHAR_BOM || 65536 <= c2 && c2 <= 1114111; +function isPrintable(c) { + return 32 <= c && c <= 126 || 161 <= c && c <= 55295 && c !== 8232 && c !== 8233 || 57344 <= c && c <= 65533 && c !== CHAR_BOM || 65536 <= c && c <= 1114111; } -function isNsCharOrWhitespace(c2) { - return isPrintable(c2) && c2 !== CHAR_BOM && c2 !== CHAR_CARRIAGE_RETURN && c2 !== CHAR_LINE_FEED; +function isNsCharOrWhitespace(c) { + return isPrintable(c) && c !== CHAR_BOM && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED; } -function isPlainSafe(c2, prev, inblock) { - var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c2); - var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c2); +function isPlainSafe(c, prev, inblock) { + var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); + var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); return ( // ns-plain-safe (inblock ? ( // c = flow-in cIsNsCharOrWhitespace - ) : cIsNsCharOrWhitespace && c2 !== CHAR_COMMA && c2 !== CHAR_LEFT_SQUARE_BRACKET && c2 !== CHAR_RIGHT_SQUARE_BRACKET && c2 !== CHAR_LEFT_CURLY_BRACKET && c2 !== CHAR_RIGHT_CURLY_BRACKET) && c2 !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c2 === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar + ) : cIsNsCharOrWhitespace && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET) && c !== CHAR_SHARP && !(prev === CHAR_COLON && !cIsNsChar) || isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP || prev === CHAR_COLON && cIsNsChar ); } -function isPlainSafeFirst(c2) { - return isPrintable(c2) && c2 !== CHAR_BOM && !isWhitespace(c2) && c2 !== CHAR_MINUS && c2 !== CHAR_QUESTION && c2 !== CHAR_COLON && c2 !== CHAR_COMMA && c2 !== CHAR_LEFT_SQUARE_BRACKET && c2 !== CHAR_RIGHT_SQUARE_BRACKET && c2 !== CHAR_LEFT_CURLY_BRACKET && c2 !== CHAR_RIGHT_CURLY_BRACKET && c2 !== CHAR_SHARP && c2 !== CHAR_AMPERSAND && c2 !== CHAR_ASTERISK && c2 !== CHAR_EXCLAMATION && c2 !== CHAR_VERTICAL_LINE && c2 !== CHAR_EQUALS && c2 !== CHAR_GREATER_THAN && c2 !== CHAR_SINGLE_QUOTE && c2 !== CHAR_DOUBLE_QUOTE && c2 !== CHAR_PERCENT && c2 !== CHAR_COMMERCIAL_AT && c2 !== CHAR_GRAVE_ACCENT; +function isPlainSafeFirst(c) { + return isPrintable(c) && c !== CHAR_BOM && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK && c !== CHAR_EXCLAMATION && c !== CHAR_VERTICAL_LINE && c !== CHAR_EQUALS && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT; } -function isPlainSafeLast(c2) { - return !isWhitespace(c2) && c2 !== CHAR_COLON; +function isPlainSafeLast(c) { + return !isWhitespace(c) && c !== CHAR_COLON; } function codePointAt(string, pos) { var first = string.charCodeAt(pos), second; @@ -121632,6 +121632,47 @@ function initFeatures(gitHubVersion, repositoryNwo, tempDir, logger) { } } +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); +function isKnownLanguage(language) { + return knownLanguageSet.has(language); +} +function parseBuiltInLanguage(language) { + language = language.trim().toLowerCase(); + language = builtin_default.aliases[language] ?? language; + if (isKnownLanguage(language)) { + return language; + } + return void 0; +} + // src/start-proxy.ts var path2 = __toESM(require("path")); var core11 = __toESM(require_core()); @@ -121680,56 +121721,6 @@ function isAuthToken(value, patterns = GITHUB_TOKEN_PATTERNS) { return void 0; } -// src/known-language-aliases.json -var known_language_aliases_exports = {}; -__export(known_language_aliases_exports, { - c: () => c, - "c#": () => c_, - "c++": () => c__, - "c-c++": () => c_c__, - "c-cpp": () => c_cpp, - default: () => known_language_aliases_default, - "java-kotlin": () => java_kotlin, - "javascript-typescript": () => javascript_typescript, - kotlin: () => kotlin, - typescript: () => typescript -}); -var c = "cpp"; -var c_c__ = "cpp"; -var c_cpp = "cpp"; -var c_ = "csharp"; -var c__ = "cpp"; -var java_kotlin = "java"; -var javascript_typescript = "javascript"; -var kotlin = "java"; -var typescript = "javascript"; -var known_language_aliases_default = { - c, - "c-c++": c_c__, - "c-cpp": c_cpp, - "c#": c_, - "c++": c__, - "java-kotlin": java_kotlin, - "javascript-typescript": javascript_typescript, - kotlin, - typescript -}; - -// src/languages.ts -var KnownLanguage = /* @__PURE__ */ ((KnownLanguage2) => { - KnownLanguage2["actions"] = "actions"; - KnownLanguage2["cpp"] = "cpp"; - KnownLanguage2["csharp"] = "csharp"; - KnownLanguage2["go"] = "go"; - KnownLanguage2["java"] = "java"; - KnownLanguage2["javascript"] = "javascript"; - KnownLanguage2["python"] = "python"; - KnownLanguage2["ruby"] = "ruby"; - KnownLanguage2["rust"] = "rust"; - KnownLanguage2["swift"] = "swift"; - return KnownLanguage2; -})(KnownLanguage || {}); - // src/start-proxy/types.ts function hasUsername(config) { return "username" in config; @@ -122147,7 +122138,7 @@ async function sendFailedStatusReport(logger, startedAt, language, unwrappedErro getActionsStatus(error3), startedAt, { - languages: language && [language] + languages: language === void 0 ? void 0 : [language] }, await checkDiskUsage(logger), logger, @@ -122160,19 +122151,6 @@ async function sendFailedStatusReport(logger, startedAt, language, unwrappedErro var UPDATEJOB_PROXY = "update-job-proxy"; var UPDATEJOB_PROXY_VERSION = "v2.0.20250624110901"; var UPDATEJOB_PROXY_URL_PREFIX = "https://github.com/github/codeql-action/releases/download/codeql-bundle-v2.22.0/"; -function parseLanguage(language) { - language = language.trim().toLowerCase(); - if (Object.hasOwn(KnownLanguage, language)) { - return language; - } - if (Object.hasOwn(known_language_aliases_exports, language)) { - language = known_language_aliases_exports[language]; - if (Object.hasOwn(KnownLanguage, language)) { - return language; - } - } - return void 0; -} function isPAT(value) { return isAuthToken(value, [ GITHUB_PAT_CLASSIC_PATTERN, @@ -122753,7 +122731,7 @@ async function run(startedAt) { logger ); const languageInput = getOptionalInput("language"); - language = languageInput ? parseLanguage(languageInput) : void 0; + language = languageInput ? parseBuiltInLanguage(languageInput) : void 0; const skipUnusedRegistries = await features.getValue( "start_proxy_remove_unused_registries" /* StartProxyRemoveUnusedRegistries */ ); @@ -122770,7 +122748,7 @@ async function run(startedAt) { } logger.info( `Credentials loaded for the following registries: - ${credentials.map((c2) => credentialToStr(c2)).join("\n")}` + ${credentials.map((c) => credentialToStr(c)).join("\n")}` ); if (core12.isDebug() || isInTestMode()) { try { @@ -122797,9 +122775,9 @@ async function run(startedAt) { await sendSuccessStatusReport( startedAt, { - languages: language && [language] + languages: language === void 0 ? void 0 : [language] }, - proxyConfig.all_credentials.map((c2) => c2.type), + proxyConfig.all_credentials.map((c) => c.type), logger ); } catch (unwrappedError) { diff --git a/lib/upload-lib.js b/lib/upload-lib.js index fc84b64a64..b89bf7dd75 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -107828,6 +107828,36 @@ ${jsonContents}` } } +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index d2c4866978..f439250c3f 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -162103,6 +162103,36 @@ var featureConfig = { } }; +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var actionsCache2 = __toESM(require_cache6()); diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index ac8ee8eac8..6d92c1fb91 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -108020,6 +108020,36 @@ ${jsonContents}` } } +// src/languages/builtin.json +var builtin_default = { + languages: [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + aliases: { + c: "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + kotlin: "java", + typescript: "javascript" + } +}; + +// src/languages/index.ts +var knownLanguageSet = new Set(builtin_default.languages); + // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/package.json b/package.json index 6b8e8553b8..0ed0d37d81 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "ava": "npm run transpile && ava --verbose", "test": "npm run ava -- src/", "test-debug": "npm run test -- --timeout=20m", - "transpile": "tsc --build --verbose" + "transpile": "tsc --build --verbose tsconfig.json .github/workflows/script/tsconfig.json" }, "license": "MIT", "workspaces": [ diff --git a/src/config-utils.test.ts b/src/config-utils.test.ts index 154963fa06..a698362937 100644 --- a/src/config-utils.test.ts +++ b/src/config-utils.test.ts @@ -1090,7 +1090,7 @@ const checkOverlayEnablementMacro = test.macro({ sinon .stub(codeql, "isTracedLanguage") .callsFake(async (lang: Language) => { - return [KnownLanguage.java].includes(lang as KnownLanguage); + return lang === KnownLanguage.java; }); // Mock git root detection diff --git a/src/known-language-aliases.json b/src/known-language-aliases.json deleted file mode 100644 index 50726256fe..0000000000 --- a/src/known-language-aliases.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "c": "cpp", - "c-c++": "cpp", - "c-cpp": "cpp", - "c#": "csharp", - "c++": "cpp", - "java-kotlin": "java", - "javascript-typescript": "javascript", - "kotlin": "java", - "typescript": "javascript" -} diff --git a/src/languages/builtin.json b/src/languages/builtin.json new file mode 100644 index 0000000000..2c3511816d --- /dev/null +++ b/src/languages/builtin.json @@ -0,0 +1,25 @@ +{ + "languages": [ + "actions", + "cpp", + "csharp", + "go", + "java", + "javascript", + "python", + "ruby", + "rust", + "swift" + ], + "aliases": { + "c": "cpp", + "c-c++": "cpp", + "c-cpp": "cpp", + "c#": "csharp", + "c++": "cpp", + "java-kotlin": "java", + "javascript-typescript": "javascript", + "kotlin": "java", + "typescript": "javascript" + } +} diff --git a/src/languages/index.test.ts b/src/languages/index.test.ts new file mode 100644 index 0000000000..048f6b7025 --- /dev/null +++ b/src/languages/index.test.ts @@ -0,0 +1,46 @@ +import test from "ava"; + +import { setupTests } from "../testing-utils"; + +import knownLanguagesData from "./builtin.json"; + +import { isKnownLanguage, KnownLanguage, parseBuiltInLanguage } from "."; + +setupTests(test); + +test("parseBuiltInLanguage", (t) => { + // Exact matches + t.is(parseBuiltInLanguage("csharp"), KnownLanguage.csharp); + t.is(parseBuiltInLanguage("cpp"), KnownLanguage.cpp); + t.is(parseBuiltInLanguage("go"), KnownLanguage.go); + t.is(parseBuiltInLanguage("java"), KnownLanguage.java); + t.is(parseBuiltInLanguage("javascript"), KnownLanguage.javascript); + t.is(parseBuiltInLanguage("python"), KnownLanguage.python); + t.is(parseBuiltInLanguage("rust"), KnownLanguage.rust); + + // Aliases + t.is(parseBuiltInLanguage(" \t\nCsHaRp\t\t"), KnownLanguage.csharp); + t.is(parseBuiltInLanguage("c"), KnownLanguage.cpp); + t.is(parseBuiltInLanguage("c++"), KnownLanguage.cpp); + t.is(parseBuiltInLanguage("kotlin"), KnownLanguage.java); + t.is(parseBuiltInLanguage("typescript"), KnownLanguage.javascript); + + // spaces and case-insensitivity + t.is(parseBuiltInLanguage(" \t\nkOtLin\t\t"), KnownLanguage.java); + + // Not matches + t.is(parseBuiltInLanguage(KnownLanguage.python), KnownLanguage.python); + t.is(parseBuiltInLanguage("foo"), undefined); + t.is(parseBuiltInLanguage(" "), undefined); + t.is(parseBuiltInLanguage(""), undefined); +}); + +test("isKnownLanguage matches the curated known-language set", (t) => { + t.true(isKnownLanguage(KnownLanguage.actions)); + t.true(isKnownLanguage(KnownLanguage.swift)); + t.false(isKnownLanguage("typescript")); +}); + +test("KnownLanguage enum matches builtin.json", (t) => { + t.deepEqual(Object.values(KnownLanguage), knownLanguagesData.languages); +}); diff --git a/src/languages.ts b/src/languages/index.ts similarity index 53% rename from src/languages.ts rename to src/languages/index.ts index 0723b89eb4..7187ccc8aa 100644 --- a/src/languages.ts +++ b/src/languages/index.ts @@ -1,3 +1,5 @@ +import knownLanguagesData from "./builtin.json"; + /** A language to analyze with CodeQL. */ export type Language = string; @@ -27,3 +29,26 @@ export enum JavaEnvVars { JDK_JAVA_OPTIONS = "JDK_JAVA_OPTIONS", _JAVA_OPTIONS = "_JAVA_OPTIONS", } + +const knownLanguageSet = new Set(knownLanguagesData.languages); + +export function isKnownLanguage(language: string): language is KnownLanguage { + return knownLanguageSet.has(language); +} + +/** + * Parses a built-in language name or alias. + */ +export function parseBuiltInLanguage( + language: string, +): KnownLanguage | undefined { + language = language.trim().toLowerCase(); + language = + knownLanguagesData.aliases[ + language as keyof typeof knownLanguagesData.aliases + ] ?? language; + if (isKnownLanguage(language)) { + return language; + } + return undefined; +} diff --git a/src/start-proxy-action.ts b/src/start-proxy-action.ts index 29c76643e3..235970b479 100644 --- a/src/start-proxy-action.ts +++ b/src/start-proxy-action.ts @@ -6,7 +6,7 @@ import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; import { getGitHubVersion } from "./api-client"; import { Feature, FeatureEnablement, initFeatures } from "./feature-flags"; -import { KnownLanguage } from "./languages"; +import { KnownLanguage, parseBuiltInLanguage } from "./languages"; import { getActionsLogger, Logger } from "./logging"; import { getRepositoryNwo } from "./repository"; import { @@ -14,7 +14,6 @@ import { getCredentials, getProxyBinaryPath, getSafeErrorMessage, - parseLanguage, ProxyInfo, sendFailedStatusReport, sendSuccessStatusReport, @@ -56,7 +55,7 @@ async function run(startedAt: Date) { // Get the language input. const languageInput = actionsUtil.getOptionalInput("language"); - language = languageInput ? parseLanguage(languageInput) : undefined; + language = languageInput ? parseBuiltInLanguage(languageInput) : undefined; // Query the FF for whether we should use the reduced registry mapping. const skipUnusedRegistries = await features.getValue( @@ -119,7 +118,7 @@ async function run(startedAt: Date) { await sendSuccessStatusReport( startedAt, { - languages: language && [language], + languages: language === undefined ? undefined : [language], }, proxyConfig.all_credentials.map((c) => c.type), logger, diff --git a/src/start-proxy.test.ts b/src/start-proxy.test.ts index e1d465abc9..c5d4526452 100644 --- a/src/start-proxy.test.ts +++ b/src/start-proxy.test.ts @@ -11,7 +11,6 @@ import { setUpFeatureFlagTests } from "./feature-flags/testing-util"; import { KnownLanguage } from "./languages"; import { getRunnerLogger, Logger } from "./logging"; import * as startProxyExports from "./start-proxy"; -import { parseLanguage } from "./start-proxy"; import * as statusReport from "./status-report"; import { assertNotLogged, @@ -666,33 +665,6 @@ test("getCredentials returns no credentials for Actions when using NEW_LANGUAGE_ t.deepEqual(credentials, []); }); -test("parseLanguage", async (t) => { - // Exact matches - t.deepEqual(parseLanguage("csharp"), KnownLanguage.csharp); - t.deepEqual(parseLanguage("cpp"), KnownLanguage.cpp); - t.deepEqual(parseLanguage("go"), KnownLanguage.go); - t.deepEqual(parseLanguage("java"), KnownLanguage.java); - t.deepEqual(parseLanguage("javascript"), KnownLanguage.javascript); - t.deepEqual(parseLanguage("python"), KnownLanguage.python); - t.deepEqual(parseLanguage("rust"), KnownLanguage.rust); - - // Aliases - t.deepEqual(parseLanguage("c"), KnownLanguage.cpp); - t.deepEqual(parseLanguage("c++"), KnownLanguage.cpp); - t.deepEqual(parseLanguage("c#"), KnownLanguage.csharp); - t.deepEqual(parseLanguage("kotlin"), KnownLanguage.java); - t.deepEqual(parseLanguage("typescript"), KnownLanguage.javascript); - - // spaces and case-insensitivity - t.deepEqual(parseLanguage(" \t\nCsHaRp\t\t"), KnownLanguage.csharp); - t.deepEqual(parseLanguage(" \t\nkOtLin\t\t"), KnownLanguage.java); - - // Not matches - t.deepEqual(parseLanguage("foo"), undefined); - t.deepEqual(parseLanguage(" "), undefined); - t.deepEqual(parseLanguage(""), undefined); -}); - function mockGetApiClient(endpoints: any) { return ( sinon diff --git a/src/start-proxy.ts b/src/start-proxy.ts index 270681240b..749a09a7c2 100644 --- a/src/start-proxy.ts +++ b/src/start-proxy.ts @@ -18,7 +18,6 @@ import { FeatureEnablement, } from "./feature-flags"; import * as json from "./json"; -import * as knownLanguageAliases from "./known-language-aliases.json"; import { KnownLanguage } from "./languages"; import { Logger } from "./logging"; import { @@ -173,7 +172,7 @@ export async function sendFailedStatusReport( getActionsStatus(error), startedAt, { - languages: language && [language], + languages: language === undefined ? undefined : [language], }, await util.checkDiskUsage(logger), logger, @@ -189,35 +188,6 @@ export const UPDATEJOB_PROXY_VERSION = "v2.0.20250624110901"; const UPDATEJOB_PROXY_URL_PREFIX = "https://github.com/github/codeql-action/releases/download/codeql-bundle-v2.22.0/"; -/** - * Parse the start-proxy language input into its canonical CodeQL language name. - * - * This uses the language aliases shipped with the Action and will not be able to resolve aliases - * added by versions of the CodeQL CLI newer than the one mentioned in `defaults.json`. However, - * this is sufficient for the start-proxy Action since we are already specifying proxy - * configurations on a per-language basis. - */ -export function parseLanguage(language: string): KnownLanguage | undefined { - // Normalize to lower case - language = language.trim().toLowerCase(); - - // See if it's an exact match - if (Object.hasOwn(KnownLanguage, language)) { - return language as KnownLanguage; - } - - // Check language aliases - if (Object.hasOwn(knownLanguageAliases, language)) { - language = - knownLanguageAliases[language as keyof typeof knownLanguageAliases]; - if (Object.hasOwn(KnownLanguage, language)) { - return language as KnownLanguage; - } - } - - return undefined; -} - function isPAT(value: string) { return artifactScanner.isAuthToken(value, [ artifactScanner.GITHUB_PAT_CLASSIC_PATTERN, From e6c21da23c8625a48b06c62591c18aca0a01291f Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Fri, 10 Apr 2026 17:42:39 +0100 Subject: [PATCH 2/2] Refactoring: Rename `KnownLanguage` to `BuiltInLanguage` --- lib/analyze-action-post.js | 2 +- lib/analyze-action.js | 8 +- lib/autobuild-action.js | 2 +- lib/init-action-post.js | 2 +- lib/init-action.js | 30 +++---- lib/resolve-environment-action.js | 2 +- lib/setup-codeql-action.js | 2 +- lib/start-proxy-action-post.js | 2 +- lib/start-proxy-action.js | 8 +- lib/upload-lib.js | 2 +- lib/upload-sarif-action-post.js | 2 +- lib/upload-sarif-action.js | 2 +- pr-checks/sync.ts | 10 +-- src/analyze-action.ts | 16 ++-- src/analyze.test.ts | 12 +-- src/analyze.ts | 18 ++--- src/autobuild.ts | 10 +-- src/codeql.test.ts | 12 +-- src/config-utils.test.ts | 116 ++++++++++++++-------------- src/config-utils.ts | 16 ++-- src/config/db-config.test.ts | 42 +++++----- src/database-upload.test.ts | 4 +- src/dependency-caching.test.ts | 72 +++++++++-------- src/dependency-caching.ts | 4 +- src/init-action.ts | 12 +-- src/init.test.ts | 68 ++++++++-------- src/init.ts | 4 +- src/languages/index.test.ts | 42 +++++----- src/languages/index.ts | 21 +++-- src/overlay/index.test.ts | 4 +- src/start-proxy-action.ts | 4 +- src/start-proxy.test.ts | 16 ++-- src/start-proxy.ts | 8 +- src/start-proxy/environment.test.ts | 8 +- src/start-proxy/environment.ts | 4 +- src/status-report.test.ts | 10 +-- src/tracer-config.test.ts | 8 +- src/trap-caching.test.ts | 18 ++--- 38 files changed, 319 insertions(+), 304 deletions(-) diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index d40047e2a2..d3c48ec15f 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -162634,7 +162634,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 6d6eae83a7..d971806723 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -108708,7 +108708,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); @@ -113381,7 +113381,11 @@ function doesGoExtractionOutputExist(config) { config, "go" /* go */ ); - const trapDirectory = import_path4.default.join(golangDbDirectory, "trap", "go" /* go */); + const trapDirectory = import_path4.default.join( + golangDbDirectory, + "trap", + "go" /* go */ + ); return fs18.existsSync(trapDirectory) && fs18.readdirSync(trapDirectory).some( (fileName) => [ ".trap", diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index 3c72ad257e..12ffc8698a 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -105009,7 +105009,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/init-action-post.js b/lib/init-action-post.js index 33eef97318..5f640a8894 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -166494,7 +166494,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var fs7 = __toESM(require("fs")); diff --git a/lib/init-action.js b/lib/init-action.js index 6f5a5ad32f..864d446378 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -106401,20 +106401,20 @@ var builtin_default = { }; // src/languages/index.ts -var KnownLanguage = /* @__PURE__ */ ((KnownLanguage2) => { - KnownLanguage2["actions"] = "actions"; - KnownLanguage2["cpp"] = "cpp"; - KnownLanguage2["csharp"] = "csharp"; - KnownLanguage2["go"] = "go"; - KnownLanguage2["java"] = "java"; - KnownLanguage2["javascript"] = "javascript"; - KnownLanguage2["python"] = "python"; - KnownLanguage2["ruby"] = "ruby"; - KnownLanguage2["rust"] = "rust"; - KnownLanguage2["swift"] = "swift"; - return KnownLanguage2; -})(KnownLanguage || {}); -var knownLanguageSet = new Set(builtin_default.languages); +var BuiltInLanguage = /* @__PURE__ */ ((BuiltInLanguage2) => { + BuiltInLanguage2["actions"] = "actions"; + BuiltInLanguage2["cpp"] = "cpp"; + BuiltInLanguage2["csharp"] = "csharp"; + BuiltInLanguage2["go"] = "go"; + BuiltInLanguage2["java"] = "java"; + BuiltInLanguage2["javascript"] = "javascript"; + BuiltInLanguage2["python"] = "python"; + BuiltInLanguage2["ruby"] = "ruby"; + BuiltInLanguage2["rust"] = "rust"; + BuiltInLanguage2["swift"] = "swift"; + return BuiltInLanguage2; +})(BuiltInLanguage || {}); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/diagnostics.ts async function addOverlayDisablementDiagnostics(config, codeql, overlayDisabledReason) { @@ -106677,7 +106677,7 @@ async function getSupportedLanguageMap(codeql, logger) { } const supportedLanguages = {}; for (const extractor of Object.keys(resolveResult.extractors)) { - if (resolveSupportedLanguagesUsingCli || KnownLanguage[extractor] !== void 0) { + if (resolveSupportedLanguagesUsingCli || BuiltInLanguage[extractor] !== void 0) { supportedLanguages[extractor] = extractor; } } diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index fd441b9d1c..bb743ecee3 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -104677,7 +104677,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index e6fe903831..427a5be328 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -105242,7 +105242,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/start-proxy-action-post.js b/lib/start-proxy-action-post.js index bbe938bed5..da5e1afcf5 100644 --- a/lib/start-proxy-action-post.js +++ b/lib/start-proxy-action-post.js @@ -161961,7 +161961,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 0662f93bfc..d2fb71a725 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -121660,14 +121660,14 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); -function isKnownLanguage(language) { - return knownLanguageSet.has(language); +var builtInLanguageSet = new Set(builtin_default.languages); +function isBuiltInLanguage(language) { + return builtInLanguageSet.has(language); } function parseBuiltInLanguage(language) { language = language.trim().toLowerCase(); language = builtin_default.aliases[language] ?? language; - if (isKnownLanguage(language)) { + if (isBuiltInLanguage(language)) { return language; } return void 0; diff --git a/lib/upload-lib.js b/lib/upload-lib.js index b89bf7dd75..94232f50d6 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -107856,7 +107856,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index f439250c3f..33e1d91fb0 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -162131,7 +162131,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache6()); diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index 6d92c1fb91..f754942eca 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -108048,7 +108048,7 @@ var builtin_default = { }; // src/languages/index.ts -var knownLanguageSet = new Set(builtin_default.languages); +var builtInLanguageSet = new Set(builtin_default.languages); // src/overlay/status.ts var actionsCache2 = __toESM(require_cache5()); diff --git a/pr-checks/sync.ts b/pr-checks/sync.ts index 8a1842323c..e46fca2483 100755 --- a/pr-checks/sync.ts +++ b/pr-checks/sync.ts @@ -5,7 +5,7 @@ import * as path from "path"; import * as yaml from "yaml"; -import { KnownLanguage } from "../src/languages"; +import { BuiltInLanguage } from "../src/languages"; /** Known workflow input names. */ enum KnownInputName { @@ -91,8 +91,8 @@ interface LanguageSetup { steps: Step[]; } -/** Describes partial mappings from known languages to their specific setup information. */ -type LanguageSetups = Partial>; +/** Describes partial mappings from built-in languages to their specific setup information. */ +type LanguageSetups = Partial>; // The default set of CodeQL Bundle versions to use for the PR checks. const defaultTestVersions = [ @@ -125,7 +125,7 @@ const defaultLanguageVersions = { java: "17", python: "3.13", csharp: "9.x", -} as const satisfies Partial>; +} as const satisfies Partial>; /** A mapping from known input names to their specifications. */ const inputSpecs: WorkflowInputs = { @@ -364,7 +364,7 @@ function getSetupSteps(checkSpecification: JobSpecification): { const inputs: Array> = []; const steps: Step[] = []; - for (const language of Object.values(KnownLanguage).sort()) { + for (const language of Object.values(BuiltInLanguage).sort()) { const setupSpec = languageSetups[language]; if ( diff --git a/src/analyze-action.ts b/src/analyze-action.ts index 24f8fe612b..f67fe699e1 100644 --- a/src/analyze-action.ts +++ b/src/analyze-action.ts @@ -30,7 +30,7 @@ import { } from "./dependency-caching"; import { EnvVar } from "./environment"; import { initFeatures } from "./feature-flags"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getActionsLogger, Logger } from "./logging"; import { cleanupAndUploadOverlayBaseDatabaseToCache } from "./overlay"; import { getRepositoryNwo } from "./repository"; @@ -135,9 +135,13 @@ function hasBadExpectErrorInput(): boolean { function doesGoExtractionOutputExist(config: Config): boolean { const golangDbDirectory = util.getCodeQLDatabasePath( config, - KnownLanguage.go, + BuiltInLanguage.go, + ); + const trapDirectory = path.join( + golangDbDirectory, + "trap", + BuiltInLanguage.go, ); - const trapDirectory = path.join(golangDbDirectory, "trap", KnownLanguage.go); return ( fs.existsSync(trapDirectory) && fs @@ -169,7 +173,7 @@ function doesGoExtractionOutputExist(config: Config): boolean { * whether any extraction output already exists for Go. */ async function runAutobuildIfLegacyGoWorkflow(config: Config, logger: Logger) { - if (!config.languages.includes(KnownLanguage.go)) { + if (!config.languages.includes(BuiltInLanguage.go)) { return; } if (config.buildMode) { @@ -182,7 +186,7 @@ async function runAutobuildIfLegacyGoWorkflow(config: Config, logger: Logger) { logger.debug("Won't run Go autobuild since it has already been run."); return; } - if (dbIsFinalized(config, KnownLanguage.go, logger)) { + if (dbIsFinalized(config, BuiltInLanguage.go, logger)) { logger.debug( "Won't run Go autobuild since there is already a finalized database for Go.", ); @@ -205,7 +209,7 @@ async function runAutobuildIfLegacyGoWorkflow(config: Config, logger: Logger) { logger.debug( "Running Go autobuild because extraction output (TRAP files) for Go code has not been found.", ); - await runAutobuild(config, KnownLanguage.go, logger); + await runAutobuild(config, BuiltInLanguage.go, logger); } async function run(startedAt: Date) { diff --git a/src/analyze.test.ts b/src/analyze.test.ts index 0749a0cc26..7523d239bf 100644 --- a/src/analyze.test.ts +++ b/src/analyze.test.ts @@ -14,7 +14,7 @@ import { } from "./analyze"; import { createStubCodeQL } from "./codeql"; import { Feature } from "./feature-flags"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger } from "./logging"; import { setupTests, @@ -41,7 +41,7 @@ test.serial("status report fields", async (t) => { const threadsFlag = ""; sinon.stub(uploadLib, "validateSarifFileSchema"); - for (const language of Object.values(KnownLanguage)) { + for (const language of Object.values(BuiltInLanguage)) { const codeql = createStubCodeQL({ databaseRunQueries: async () => {}, databaseInterpretResults: async ( @@ -130,13 +130,13 @@ test.serial("status report fields", async (t) => { test("resolveQuerySuiteAlias", (t) => { // default query suite names should resolve to something language-specific ending in `.qls`. for (const suite of defaultSuites) { - const resolved = resolveQuerySuiteAlias(KnownLanguage.go, suite); + const resolved = resolveQuerySuiteAlias(BuiltInLanguage.go, suite); t.assert( path.extname(resolved) === ".qls", "Resolved default suite doesn't end in .qls", ); t.assert( - resolved.indexOf(KnownLanguage.go) >= 0, + resolved.indexOf(BuiltInLanguage.go) >= 0, "Resolved default suite doesn't contain language name", ); } @@ -145,12 +145,12 @@ test("resolveQuerySuiteAlias", (t) => { const names = ["foo", "bar", "codeql/go-queries@1.0"]; for (const name of names) { - t.deepEqual(resolveQuerySuiteAlias(KnownLanguage.go, name), name); + t.deepEqual(resolveQuerySuiteAlias(BuiltInLanguage.go, name), name); } }); test("addSarifExtension", (t) => { - for (const language of Object.values(KnownLanguage)) { + for (const language of Object.values(BuiltInLanguage)) { t.deepEqual(addSarifExtension(CodeScanning, language), `${language}.sarif`); t.deepEqual( addSarifExtension(CodeQuality, language), diff --git a/src/analyze.ts b/src/analyze.ts index d2088c3a3a..884dccceae 100644 --- a/src/analyze.ts +++ b/src/analyze.ts @@ -21,7 +21,7 @@ import { } from "./diff-informed-analysis-utils"; import { EnvVar } from "./environment"; import { FeatureEnablement, Feature } from "./feature-flags"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger, withGroupAsync } from "./logging"; import { OverlayDatabaseMode } from "./overlay"; import type * as sarif from "./sarif"; @@ -41,7 +41,7 @@ export class CodeQLAnalysisError extends Error { } } -type KnownLanguageKey = keyof typeof KnownLanguage; +type BuiltInLanguageKey = keyof typeof BuiltInLanguage; type RunQueriesDurationStatusReport = { /** @@ -50,12 +50,12 @@ type RunQueriesDurationStatusReport = { * The "builtin" designation is now outdated with the move to CLI config parsing: this is the time * taken to run _all_ the queries. */ - [L in KnownLanguageKey as `analyze_builtin_queries_${L}_duration_ms`]?: number; + [L in BuiltInLanguageKey as `analyze_builtin_queries_${L}_duration_ms`]?: number; }; type InterpretResultsDurationStatusReport = { /** Time taken in ms to interpret results for the language (or undefined if this language was not analyzed). */ - [L in KnownLanguageKey as `interpret_results_${L}_duration_ms`]?: number; + [L in BuiltInLanguageKey as `interpret_results_${L}_duration_ms`]?: number; }; export interface QueriesStatusReport @@ -115,12 +115,12 @@ export async function runExtraction( if (await shouldExtractLanguage(codeql, config, language)) { logger.startGroup(`Extracting ${language}`); - if (language === KnownLanguage.python) { + if (language === BuiltInLanguage.python) { await setupPythonExtractor(logger); } if (config.buildMode) { if ( - language === KnownLanguage.cpp && + language === BuiltInLanguage.cpp && config.buildMode === BuildMode.Autobuild ) { await setupCppAutobuild(codeql, logger); @@ -131,14 +131,14 @@ export async function runExtraction( // a stable path that caches can be restored into and that we can cache at the // end of the workflow (i.e. that does not get removed when the scratch directory is). if ( - language === KnownLanguage.java && + language === BuiltInLanguage.java && config.buildMode === BuildMode.None ) { process.env["CODEQL_EXTRACTOR_JAVA_OPTION_BUILDLESS_DEPENDENCY_DIR"] = getJavaTempDependencyDir(); } if ( - language === KnownLanguage.csharp && + language === BuiltInLanguage.csharp && config.buildMode === BuildMode.None && (await features.getValue(Feature.CsharpCacheBuildModeNone)) ) { @@ -698,7 +698,7 @@ export async function warnIfGoInstalledAfterInit( addDiagnostic( config, - KnownLanguage.go, + BuiltInLanguage.go, makeDiagnostic( "go/workflow/go-installed-after-codeql-init", "Go was installed after the `codeql-action/init` Action was run", diff --git a/src/autobuild.ts b/src/autobuild.ts index 46935bba67..fc4983f4ef 100644 --- a/src/autobuild.ts +++ b/src/autobuild.ts @@ -7,7 +7,7 @@ import * as configUtils from "./config-utils"; import { DocUrl } from "./doc-url"; import { EnvVar } from "./environment"; import { Feature, featureConfig, initFeatures } from "./feature-flags"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger } from "./logging"; import { getRepositoryNwo } from "./repository"; import { asyncFilter, BuildMode } from "./util"; @@ -72,7 +72,7 @@ export async function determineAutobuildLanguages( * version of the CodeQL Action. */ const autobuildLanguagesWithoutGo = autobuildLanguages.filter( - (l) => l !== KnownLanguage.go, + (l) => l !== BuiltInLanguage.go, ); const languages: Language[] = []; @@ -84,7 +84,7 @@ export async function determineAutobuildLanguages( // If Go is requested, run the Go autobuilder last to ensure it doesn't // interfere with the other autobuilder. if (autobuildLanguages.length !== autobuildLanguagesWithoutGo.length) { - languages.push(KnownLanguage.go); + languages.push(BuiltInLanguage.go); } logger.debug(`Will autobuild ${languages.join(" and ")}.`); @@ -156,7 +156,7 @@ export async function runAutobuild( ) { logger.startGroup(`Attempting to automatically build ${language} code`); const codeQL = await getCodeQL(config.codeQLCmd); - if (language === KnownLanguage.cpp) { + if (language === BuiltInLanguage.cpp) { await setupCppAutobuild(codeQL, logger); } if (config.buildMode) { @@ -164,7 +164,7 @@ export async function runAutobuild( } else { await codeQL.runAutobuild(config, language); } - if (language === KnownLanguage.go) { + if (language === BuiltInLanguage.go) { core.exportVariable(EnvVar.DID_AUTOBUILD_GOLANG, "true"); } logger.endGroup(); diff --git a/src/codeql.test.ts b/src/codeql.test.ts index cfbddf4f78..eccad6895b 100644 --- a/src/codeql.test.ts +++ b/src/codeql.test.ts @@ -21,7 +21,7 @@ import { import type { Config } from "./config-utils"; import * as defaults from "./defaults.json"; import { DocUrl } from "./doc-url"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger } from "./logging"; import { ToolsSource } from "./setup-codeql"; import { @@ -46,7 +46,7 @@ test.beforeEach(() => { initializeEnvironment("1.2.3"); stubConfig = createTestConfig({ - languages: [KnownLanguage.cpp], + languages: [BuiltInLanguage.cpp], }); }); @@ -115,7 +115,7 @@ async function stubCodeql(): Promise { sinon.stub(codeqlObject, "getVersion").resolves(makeVersionInfo("2.17.6")); sinon .stub(codeqlObject, "isTracedLanguage") - .withArgs(KnownLanguage.cpp) + .withArgs(BuiltInLanguage.cpp) .resolves(true); return codeqlObject; } @@ -956,7 +956,8 @@ test.serial("runTool summarizes autobuilder errors", async (t) => { sinon.stub(io, "which").resolves(""); await t.throwsAsync( - async () => await codeqlObject.runAutobuild(stubConfig, KnownLanguage.java), + async () => + await codeqlObject.runAutobuild(stubConfig, BuiltInLanguage.java), { instanceOf: util.ConfigurationError, message: @@ -982,7 +983,8 @@ test.serial("runTool truncates long autobuilder errors", async (t) => { sinon.stub(io, "which").resolves(""); await t.throwsAsync( - async () => await codeqlObject.runAutobuild(stubConfig, KnownLanguage.java), + async () => + await codeqlObject.runAutobuild(stubConfig, BuiltInLanguage.java), { instanceOf: util.ConfigurationError, message: diff --git a/src/config-utils.test.ts b/src/config-utils.test.ts index a698362937..6b24bbe3a1 100644 --- a/src/config-utils.test.ts +++ b/src/config-utils.test.ts @@ -18,7 +18,7 @@ import { Feature } from "./feature-flags"; import { RepositoryProperties } from "./feature-flags/properties"; import * as gitUtils from "./git-utils"; import { GitVersionInfo } from "./git-utils"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { getRunnerLogger } from "./logging"; import { CODEQL_OVERLAY_MINIMUM_VERSION, OverlayDatabaseMode } from "./overlay"; import { OverlayDisabledReason } from "./overlay/diagnostics"; @@ -214,7 +214,7 @@ test.serial("load code quality config", async (t) => { // And the config we expect it to result in const expectedConfig = createTestConfig({ analysisKinds: [AnalysisKind.CodeQuality], - languages: [KnownLanguage.actions], + languages: [BuiltInLanguage.actions], // This gets set because we only have `AnalysisKind.CodeQuality` computedConfig: { "disable-default-queries": true, @@ -267,7 +267,7 @@ test.serial( const expectedConfig = createTestConfig({ analysisKinds: [AnalysisKind.CodeQuality], - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], codeQLCmd: codeql.getPath(), computedConfig, dbLocation: path.resolve(tempDir, "codeql_databases"), @@ -517,7 +517,7 @@ test.serial("load non-empty input", async (t) => { // And the config we expect it to parse to const expectedConfig = createTestConfig({ - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], buildMode: BuildMode.None, originalUserInput: userConfig, computedConfig: userConfig, @@ -891,10 +891,10 @@ const mockRepositoryNwo = parseRepositoryNwo("owner/repo"); betterResolveLanguages: (options) => Promise.resolve({ aliases: { - "c#": KnownLanguage.csharp, - c: KnownLanguage.cpp, - kotlin: KnownLanguage.java, - typescript: KnownLanguage.javascript, + "c#": BuiltInLanguage.csharp, + c: BuiltInLanguage.cpp, + kotlin: BuiltInLanguage.java, + typescript: BuiltInLanguage.javascript, }, extractors: { cpp: [stubExtractorEntry], @@ -943,12 +943,12 @@ const mockRepositoryNwo = parseRepositoryNwo("owner/repo"); for (const { displayName, language, feature } of [ { displayName: "Java", - language: KnownLanguage.java, + language: BuiltInLanguage.java, feature: Feature.DisableJavaBuildlessEnabled, }, { displayName: "C#", - language: KnownLanguage.csharp, + language: BuiltInLanguage.csharp, feature: Feature.DisableCsharpBuildless, }, ]) { @@ -968,7 +968,7 @@ for (const { displayName, language, feature } of [ const messages: LoggedMessage[] = []; const buildMode = await configUtils.parseBuildModeInput( "none", - [KnownLanguage.python], + [BuiltInLanguage.python], createFeatures([feature]), getRecordingLogger(messages), ); @@ -1018,7 +1018,7 @@ const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = { isPullRequest: false, isDefaultBranch: false, buildMode: BuildMode.None, - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], codeqlVersion: CODEQL_OVERLAY_MINIMUM_VERSION, gitRoot: "/some/git/root", gitVersion: new GitVersionInfo("2.39.0", "2.39.0"), @@ -1090,7 +1090,7 @@ const checkOverlayEnablementMacro = test.macro({ sinon .stub(codeql, "isTracedLanguage") .callsFake(async (lang: Language) => { - return lang === KnownLanguage.java; + return lang === BuiltInLanguage.java; }); // Mock git root detection @@ -1183,7 +1183,7 @@ test.serial( checkOverlayEnablementMacro, "Ignore feature flag when analyzing non-default branch", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], }, { @@ -1195,7 +1195,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch when feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isDefaultBranch: true, }, @@ -1209,7 +1209,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch when feature enabled with custom analysis", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], codeScanningConfig: { packs: ["some-custom-pack@1.0.0"], @@ -1226,7 +1226,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch when code-scanning feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1243,7 +1243,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if runner disk space is too low", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1263,7 +1263,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if we can't determine runner disk space", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1280,7 +1280,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch if runner disk space is too low and skip resource checks flag is enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1302,7 +1302,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if runner disk space is below v2 limit and v2 resource checks enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1323,7 +1323,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch if runner disk space is between v2 and v1 limits and v2 resource checks enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1345,7 +1345,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if runner disk space is between v2 and v1 limits and v2 resource checks not enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1365,7 +1365,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch if memory flag is too low", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1382,7 +1382,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch if memory flag is too low but CodeQL >= 2.24.3", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1401,7 +1401,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay-base database on default branch if memory flag is too low and skip resource checks flag is enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1420,7 +1420,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when cached status indicates previous failure", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript, @@ -1438,7 +1438,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when cached status indicates previous failure", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript, @@ -1456,7 +1456,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when code-scanning feature enabled with disable-default-queries", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1475,7 +1475,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when code-scanning feature enabled with packs", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1494,7 +1494,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when code-scanning feature enabled with queries", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1513,7 +1513,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when code-scanning feature enabled with query-filters", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1532,7 +1532,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when only language-specific feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysisJavascript], isDefaultBranch: true, }, @@ -1545,7 +1545,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when only code-scanning feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysisCodeScanningJavascript], isDefaultBranch: true, }, @@ -1558,7 +1558,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay-base database on default branch when language-specific feature disabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis], isDefaultBranch: true, }, @@ -1571,7 +1571,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR when feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isPullRequest: true, }, @@ -1585,7 +1585,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR when feature enabled with custom analysis", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], codeScanningConfig: { packs: ["some-custom-pack@1.0.0"], @@ -1602,7 +1602,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR when code-scanning feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1619,7 +1619,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR if runner disk space is too low", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1639,7 +1639,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR if runner disk space is too low and skip resource checks flag is enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1661,7 +1661,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR if we can't determine runner disk space", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1678,7 +1678,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR if memory flag is too low", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1695,7 +1695,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR if memory flag is too low but CodeQL >= 2.24.3", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1714,7 +1714,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay analysis on PR if memory flag is too low and skip resource checks flag is enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1733,7 +1733,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when code-scanning feature enabled with disable-default-queries", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1752,7 +1752,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when code-scanning feature enabled with packs", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1771,7 +1771,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when code-scanning feature enabled with queries", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1790,7 +1790,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when code-scanning feature enabled with query-filters", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [ Feature.OverlayAnalysis, Feature.OverlayAnalysisCodeScanningJavascript, @@ -1809,7 +1809,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when only language-specific feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysisJavascript], isPullRequest: true, }, @@ -1822,7 +1822,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when only code-scanning feature enabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysisCodeScanningJavascript], isPullRequest: true, }, @@ -1835,7 +1835,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis on PR when language-specific feature disabled", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis], isPullRequest: true, }, @@ -1873,7 +1873,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay PR analysis by feature flag", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isPullRequest: true, }, @@ -1889,7 +1889,7 @@ test.serial( { overlayDatabaseEnvVar: "overlay", buildMode: BuildMode.Autobuild, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], }, { disabledReason: OverlayDisabledReason.IncompatibleBuildMode, @@ -1902,7 +1902,7 @@ test.serial( { overlayDatabaseEnvVar: "overlay", buildMode: undefined, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], }, { disabledReason: OverlayDisabledReason.IncompatibleBuildMode, @@ -1977,7 +1977,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay when disabled via repository property", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isPullRequest: true, repositoryProperties: { @@ -1993,7 +1993,7 @@ test.serial( checkOverlayEnablementMacro, "Overlay not disabled when repository property is false", { - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], features: [Feature.OverlayAnalysis, Feature.OverlayAnalysisJavascript], isPullRequest: true, repositoryProperties: { @@ -2022,7 +2022,7 @@ test.serial( ); // Exercise language-specific overlay analysis features code paths -for (const language in KnownLanguage) { +for (const language in BuiltInLanguage) { test.serial( checkOverlayEnablementMacro, `Check default overlay analysis feature for ${language}`, @@ -2045,7 +2045,7 @@ test.serial( checkOverlayEnablementMacro, "No overlay analysis for language without per-language overlay feature flag", { - languages: [KnownLanguage.swift], + languages: [BuiltInLanguage.swift], features: [Feature.OverlayAnalysis], isPullRequest: true, }, diff --git a/src/config-utils.ts b/src/config-utils.ts index 55d5afa727..1147a1ecd1 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -48,7 +48,7 @@ import { hasSubmodules, isAnalyzingDefaultBranch, } from "./git-utils"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger } from "./logging"; import { CODEQL_OVERLAY_MINIMUM_VERSION, OverlayDatabaseMode } from "./overlay"; import { @@ -273,10 +273,10 @@ async function getSupportedLanguageMap( for (const extractor of Object.keys(resolveResult.extractors)) { // If the CLI supports resolving languages with default queries, use these // as the set of supported languages. Otherwise, require the language to be - // a known language. + // a built-in language. if ( resolveSupportedLanguagesUsingCli || - KnownLanguage[extractor] !== undefined + BuiltInLanguage[extractor] !== undefined ) { supportedLanguages[extractor] = extractor; } @@ -946,7 +946,7 @@ async function validateOverlayDatabaseMode( await Promise.all( languages.map( async (l) => - l !== KnownLanguage.go && // Workaround to allow overlay analysis for Go with any build + l !== BuiltInLanguage.go && // Workaround to allow overlay analysis for Go with any build // mode, since it does not yet support BMN. The Go autobuilder and/or extractor will // ensure that overlay-base databases are only created for supported Go build setups, // and that we'll fall back to full databases in other cases. @@ -1035,13 +1035,13 @@ async function setCppTrapCachingEnvironmentVariables( config: Config, logger: Logger, ): Promise { - if (config.languages.includes(KnownLanguage.cpp)) { + if (config.languages.includes(BuiltInLanguage.cpp)) { const envVar = "CODEQL_EXTRACTOR_CPP_TRAP_CACHING"; if (process.env[envVar]) { logger.info( `Environment variable ${envVar} already set, leaving it unchanged.`, ); - } else if (config.trapCaches[KnownLanguage.cpp]) { + } else if (config.trapCaches[BuiltInLanguage.cpp]) { logger.info("Enabling TRAP caching for C/C++."); core.exportVariable(envVar, "true"); } else { @@ -1538,7 +1538,7 @@ export async function parseBuildModeInput( } if ( - languages.includes(KnownLanguage.csharp) && + languages.includes(BuiltInLanguage.csharp) && (await features.getValue(Feature.DisableCsharpBuildless)) ) { logger.warning( @@ -1548,7 +1548,7 @@ export async function parseBuildModeInput( } if ( - languages.includes(KnownLanguage.java) && + languages.includes(BuiltInLanguage.java) && (await features.getValue(Feature.DisableJavaBuildlessEnabled)) ) { logger.warning( diff --git a/src/config/db-config.test.ts b/src/config/db-config.test.ts index d7ff48eed8..d0c11d268e 100644 --- a/src/config/db-config.test.ts +++ b/src/config/db-config.test.ts @@ -1,7 +1,7 @@ import test, { ExecutionContext } from "ava"; import { RepositoryProperties } from "../feature-flags/properties"; -import { KnownLanguage, Language } from "../languages"; +import { BuiltInLanguage, Language } from "../languages"; import { getRunnerLogger } from "../logging"; import { checkExpectedLogMessages, @@ -54,7 +54,7 @@ const invalidPackNameMacro = test.macro({ parsePacksErrorMacro.exec( t, name, - [KnownLanguage.cpp], + [BuiltInLanguage.cpp], new RegExp(`^"${name}" is not a valid pack$`), ), title: (_providedTitle: string | undefined, arg: string | undefined) => @@ -62,23 +62,23 @@ const invalidPackNameMacro = test.macro({ }); test("no packs", parsePacksMacro, "", [], undefined); -test("two packs", parsePacksMacro, "a/b,c/d@1.2.3", [KnownLanguage.cpp], { - [KnownLanguage.cpp]: ["a/b", "c/d@1.2.3"], +test("two packs", parsePacksMacro, "a/b,c/d@1.2.3", [BuiltInLanguage.cpp], { + [BuiltInLanguage.cpp]: ["a/b", "c/d@1.2.3"], }); test( "two packs with spaces", parsePacksMacro, " a/b , c/d@1.2.3 ", - [KnownLanguage.cpp], + [BuiltInLanguage.cpp], { - [KnownLanguage.cpp]: ["a/b", "c/d@1.2.3"], + [BuiltInLanguage.cpp]: ["a/b", "c/d@1.2.3"], }, ); test( "two packs with language", parsePacksErrorMacro, "a/b,c/d@1.2.3", - [KnownLanguage.cpp, KnownLanguage.java], + [BuiltInLanguage.cpp, BuiltInLanguage.java], new RegExp( "Cannot specify a 'packs' input in a multi-language analysis. " + "Use a codeql-config.yml file instead and specify packs by language.", @@ -106,9 +106,9 @@ test( // (globbing is not done) "c/d@1.2.3:+*)_(", ].join(","), - [KnownLanguage.cpp], + [BuiltInLanguage.cpp], { - [KnownLanguage.cpp]: [ + [BuiltInLanguage.cpp]: [ "c/d@1.0", "c/d@~1.0.0", "c/d@~1.0.0:a/b", @@ -215,7 +215,7 @@ test( "All empty", undefined, undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -227,7 +227,7 @@ test( "With queries", undefined, " a, b , c, d", - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -240,7 +240,7 @@ test( "With queries combining", undefined, " + a, b , c, d ", - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -254,7 +254,7 @@ test( "With packs", " codeql/a , codeql/b , codeql/c , codeql/d ", undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -267,7 +267,7 @@ test( "With packs combining", " + codeql/a, codeql/b, codeql/c, codeql/d", undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, { ...dbConfig.defaultAugmentationProperties, @@ -281,7 +281,7 @@ test( "With repo property queries", undefined, undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], { "github-codeql-extra-queries": "a, b, c, d", }, @@ -299,7 +299,7 @@ test( "With repo property queries combining", undefined, undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], { "github-codeql-extra-queries": "+ a, b, c, d", }, @@ -341,7 +341,7 @@ test( "Plus (+) with nothing else (queries)", undefined, " + ", - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, /The workflow property "queries" is invalid/, ); @@ -351,7 +351,7 @@ test( "Plus (+) with nothing else (packs)", " + ", undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, /The workflow property "packs" is invalid/, ); @@ -361,7 +361,7 @@ test( "Plus (+) with nothing else (repo property queries)", undefined, undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], { "github-codeql-extra-queries": " + ", }, @@ -373,7 +373,7 @@ test( "Packs input with multiple languages", " + a/b, c/d ", undefined, - [KnownLanguage.javascript, KnownLanguage.java], + [BuiltInLanguage.javascript, BuiltInLanguage.java], {}, /Cannot specify a 'packs' input in a multi-language analysis/, ); @@ -393,7 +393,7 @@ test( "Invalid packs", " a-pack-without-a-scope ", undefined, - [KnownLanguage.javascript], + [BuiltInLanguage.javascript], {}, /"a-pack-without-a-scope" is not a valid pack/, ); diff --git a/src/database-upload.test.ts b/src/database-upload.test.ts index c4ac59e76b..1cfbaecad6 100644 --- a/src/database-upload.test.ts +++ b/src/database-upload.test.ts @@ -12,7 +12,7 @@ import { createStubCodeQL } from "./codeql"; import { Config } from "./config-utils"; import { cleanupAndUploadDatabases } from "./database-upload"; import * as gitUtils from "./git-utils"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { RepositoryNwo } from "./repository"; import { checkExpectedLogMessages, @@ -45,7 +45,7 @@ const testApiDetails: GitHubApiDetails = { function getTestConfig(tmpDir: string): Config { return createTestConfig({ - languages: [KnownLanguage.javascript], + languages: [BuiltInLanguage.javascript], dbLocation: tmpDir, }); } diff --git a/src/dependency-caching.test.ts b/src/dependency-caching.test.ts index a2d75190d1..e611cd03eb 100644 --- a/src/dependency-caching.test.ts +++ b/src/dependency-caching.test.ts @@ -27,7 +27,7 @@ import { CacheStoreResult, } from "./dependency-caching"; import { Feature } from "./feature-flags"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { setupTests, createFeatures, @@ -179,7 +179,7 @@ test("checkHashPatterns - logs when no patterns match", async (t) => { const result = await checkHashPatterns( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, config, "download", getRecordingLogger(messages), @@ -208,7 +208,7 @@ test("checkHashPatterns - returns patterns when patterns match", async (t) => { const result = await checkHashPatterns( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, config, "upload", getRecordingLogger(messages), @@ -270,7 +270,7 @@ test.serial( const keyWithFeature = await cacheKey( codeql, createFeatures([Feature.CsharpNewCacheKey]), - KnownLanguage.csharp, + BuiltInLanguage.csharp, // Patterns don't matter here because we have stubbed `hashFiles` to always return a specific hash above. [], ); @@ -288,12 +288,12 @@ test.serial( const result = await downloadDependencyCaches( codeql, createFeatures([]), - [KnownLanguage.csharp], + [BuiltInLanguage.csharp], logger, ); const statusReport = result.statusReport; t.is(statusReport.length, 1); - t.is(statusReport[0].language, KnownLanguage.csharp); + t.is(statusReport[0].language, BuiltInLanguage.csharp); t.is(statusReport[0].hit_kind, CacheHitKind.Miss); t.deepEqual(result.restoredKeys, []); t.assert(restoreCacheStub.calledOnce); @@ -316,7 +316,7 @@ test.serial( const keyWithFeature = await cacheKey( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, // Patterns don't matter here because we have stubbed `hashFiles` to always return a specific hash above. [], ); @@ -334,14 +334,14 @@ test.serial( const result = await downloadDependencyCaches( codeql, features, - [KnownLanguage.csharp], + [BuiltInLanguage.csharp], logger, ); // Check that the status report for telemetry indicates that one cache was restored with an exact match. const statusReport = result.statusReport; t.is(statusReport.length, 1); - t.is(statusReport[0].language, KnownLanguage.csharp); + t.is(statusReport[0].language, BuiltInLanguage.csharp); t.is(statusReport[0].hit_kind, CacheHitKind.Exact); // Check that the restored key has been returned. @@ -380,7 +380,7 @@ test.serial( const keyWithFeature = await cacheKey( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, // Patterns don't matter here because we have stubbed `hashFiles` to always return a specific hash above. [], ); @@ -398,14 +398,14 @@ test.serial( const result = await downloadDependencyCaches( codeql, features, - [KnownLanguage.csharp], + [BuiltInLanguage.csharp], logger, ); // Check that the status report for telemetry indicates that one cache was restored with a partial match. const statusReport = result.statusReport; t.is(statusReport.length, 1); - t.is(statusReport[0].language, KnownLanguage.csharp); + t.is(statusReport[0].language, BuiltInLanguage.csharp); t.is(statusReport[0].hit_kind, CacheHitKind.Partial); // Check that the restored key has been returned. @@ -426,7 +426,7 @@ test("uploadDependencyCaches - skips upload for a language with no cache config" const logger = getRecordingLogger(messages); const features = createFeatures([]); const config = createTestConfig({ - languages: [KnownLanguage.actions], + languages: [BuiltInLanguage.actions], }); const result = await uploadDependencyCaches(codeql, features, config, logger); @@ -444,7 +444,7 @@ test.serial( const logger = getRecordingLogger(messages); const features = createFeatures([]); const config = createTestConfig({ - languages: [KnownLanguage.go], + languages: [BuiltInLanguage.go], }); const makePatternCheckStub = sinon.stub(internal, "makePatternCheck"); @@ -457,7 +457,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.go); + t.is(result[0].language, BuiltInLanguage.go); t.is(result[0].result, CacheStoreResult.NoHash); }, ); @@ -483,12 +483,12 @@ test.serial( const primaryCacheKey = await cacheKey( codeql, features, - KnownLanguage.csharp, + BuiltInLanguage.csharp, CSHARP_BASE_PATTERNS, ); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], dependencyCachingRestoredKeys: [primaryCacheKey], }); @@ -499,7 +499,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.csharp); + t.is(result[0].language, BuiltInLanguage.csharp); t.is(result[0].result, CacheStoreResult.Duplicate); }, ); @@ -525,7 +525,7 @@ test.serial( sinon.stub(cachingUtils, "getTotalCacheSize").resolves(0); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], }); const result = await uploadDependencyCaches( @@ -535,7 +535,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.csharp); + t.is(result[0].language, BuiltInLanguage.csharp); t.is(result[0].result, CacheStoreResult.Empty); checkExpectedLogMessages(t, messages, [ @@ -566,7 +566,7 @@ test.serial( sinon.stub(actionsCache, "saveCache").resolves(); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], }); const result = await uploadDependencyCaches( @@ -576,7 +576,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.csharp); + t.is(result[0].language, BuiltInLanguage.csharp); t.is(result[0].result, CacheStoreResult.Stored); t.is(result[0].upload_size_bytes, 1024); @@ -608,7 +608,7 @@ test.serial( .throws(new actionsCache.ReserveCacheError("Already in use")); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], }); await t.notThrowsAsync(async () => { @@ -619,7 +619,7 @@ test.serial( logger, ); t.is(result.length, 1); - t.is(result[0].language, KnownLanguage.csharp); + t.is(result[0].language, BuiltInLanguage.csharp); t.is(result[0].result, CacheStoreResult.Duplicate); checkExpectedLogMessages(t, messages, ["Not uploading cache for"]); @@ -647,7 +647,7 @@ test.serial("uploadDependencyCaches - throws other exceptions", async (t) => { sinon.stub(actionsCache, "saveCache").throws(); const config = createTestConfig({ - languages: [KnownLanguage.csharp], + languages: [BuiltInLanguage.csharp], }); await t.throwsAsync(async () => { @@ -659,7 +659,7 @@ test("getFeaturePrefix - returns empty string if no features are enabled", async const codeql = createStubCodeQL({}); const features = createFeatures([]); - for (const knownLanguage of Object.values(KnownLanguage)) { + for (const knownLanguage of Object.values(BuiltInLanguage)) { const result = await getFeaturePrefix(codeql, features, knownLanguage); t.deepEqual(result, "", `Expected no feature prefix for ${knownLanguage}`); } @@ -669,7 +669,11 @@ test("getFeaturePrefix - C# - returns prefix if CsharpNewCacheKey is enabled", a const codeql = createStubCodeQL({}); const features = createFeatures([Feature.CsharpNewCacheKey]); - const result = await getFeaturePrefix(codeql, features, KnownLanguage.csharp); + const result = await getFeaturePrefix( + codeql, + features, + BuiltInLanguage.csharp, + ); t.notDeepEqual(result, ""); t.assert(result.endsWith("-")); // Check the length of the prefix, which should correspond to `cacheKeyHashLength` + 1 for the trailing `-`. @@ -680,9 +684,9 @@ test("getFeaturePrefix - non-C# - returns '' if CsharpNewCacheKey is enabled", a const codeql = createStubCodeQL({}); const features = createFeatures([Feature.CsharpNewCacheKey]); - for (const knownLanguage of Object.values(KnownLanguage)) { + for (const knownLanguage of Object.values(BuiltInLanguage)) { // Skip C# since we expect a result for it, which is tested in the previous test. - if (knownLanguage === KnownLanguage.csharp) { + if (knownLanguage === BuiltInLanguage.csharp) { continue; } const result = await getFeaturePrefix(codeql, features, knownLanguage); @@ -694,7 +698,11 @@ test("getFeaturePrefix - C# - returns prefix if CsharpCacheBuildModeNone is enab const codeql = createStubCodeQL({}); const features = createFeatures([Feature.CsharpCacheBuildModeNone]); - const result = await getFeaturePrefix(codeql, features, KnownLanguage.csharp); + const result = await getFeaturePrefix( + codeql, + features, + BuiltInLanguage.csharp, + ); t.notDeepEqual(result, ""); t.assert(result.endsWith("-")); // Check the length of the prefix, which should correspond to `cacheKeyHashLength` + 1 for the trailing `-`. @@ -705,9 +713,9 @@ test("getFeaturePrefix - non-C# - returns '' if CsharpCacheBuildModeNone is enab const codeql = createStubCodeQL({}); const features = createFeatures([Feature.CsharpCacheBuildModeNone]); - for (const knownLanguage of Object.values(KnownLanguage)) { + for (const knownLanguage of Object.values(BuiltInLanguage)) { // Skip C# since we expect a result for it, which is tested in the previous test. - if (knownLanguage === KnownLanguage.csharp) { + if (knownLanguage === BuiltInLanguage.csharp) { continue; } const result = await getFeaturePrefix(codeql, features, knownLanguage); diff --git a/src/dependency-caching.ts b/src/dependency-caching.ts index dc9a140be4..f04d38f46c 100644 --- a/src/dependency-caching.ts +++ b/src/dependency-caching.ts @@ -11,7 +11,7 @@ import { CodeQL } from "./codeql"; import { Config } from "./config-utils"; import { EnvVar } from "./environment"; import { Feature, FeatureEnablement } from "./feature-flags"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger } from "./logging"; import { getErrorMessage, getRequiredEnvParam } from "./util"; @@ -541,7 +541,7 @@ export async function getFeaturePrefix( } }; - if (language === KnownLanguage.csharp) { + if (language === BuiltInLanguage.csharp) { await addFeatureIfEnabled(Feature.CsharpNewCacheKey); await addFeatureIfEnabled(Feature.CsharpCacheBuildModeNone); } diff --git a/src/init-action.ts b/src/init-action.ts index bc95304bfa..7953782359 100644 --- a/src/init-action.ts +++ b/src/init-action.ts @@ -58,7 +58,7 @@ import { initConfig, runDatabaseInitCluster, } from "./init"; -import { JavaEnvVars, KnownLanguage } from "./languages"; +import { JavaEnvVars, BuiltInLanguage } from "./languages"; import { getActionsLogger, Logger, withGroupAsync } from "./logging"; import { downloadOverlayBaseDatabaseFromCache, @@ -330,7 +330,7 @@ async function run(startedAt: Date) { // requested rust - don't enable it via language autodetection. configUtils .getRawLanguagesNoAutodetect(getOptionalInput("languages")) - .includes(KnownLanguage.rust) + .includes(BuiltInLanguage.rust) ) { const experimental = "2.19.3"; const publicPreview = "2.22.1"; @@ -390,7 +390,7 @@ async function run(startedAt: Date) { }); if ( - config.languages.includes(KnownLanguage.swift) && + config.languages.includes(BuiltInLanguage.swift) && process.platform !== "darwin" ) { throw new ConfigurationError( @@ -509,7 +509,7 @@ async function run(startedAt: Date) { } if ( - config.languages.includes(KnownLanguage.go) && + config.languages.includes(BuiltInLanguage.go) && process.platform === "linux" ) { try { @@ -567,7 +567,7 @@ async function run(startedAt: Date) { if (e instanceof FileCmdNotFoundError) { addDiagnostic( config, - KnownLanguage.go, + BuiltInLanguage.go, makeDiagnostic( "go/workflow/file-program-unavailable", "The `file` program is required on Linux, but does not appear to be installed", @@ -661,7 +661,7 @@ async function run(startedAt: Date) { (await codeQlVersionAtLeast(codeql, CODEQL_VERSION_JAR_MINIMIZATION)) && config.dependencyCachingEnabled && config.buildMode === BuildMode.None && - config.languages.includes(KnownLanguage.java) + config.languages.includes(BuiltInLanguage.java) ) { core.exportVariable( EnvVar.JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS, diff --git a/src/init.test.ts b/src/init.test.ts index 1f1f0de8dd..f7add6a9a5 100644 --- a/src/init.test.ts +++ b/src/init.test.ts @@ -15,7 +15,7 @@ import { getFileCoverageInformationEnabled, logFileCoverageOnPrsDeprecationWarning, } from "./init"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { createFeatures, LoggedMessage, @@ -152,7 +152,7 @@ test("cleanupDatabaseClusterDirectory can disable warning with options", async ( }); type PackInfo = { - language: KnownLanguage; + language: BuiltInLanguage; packinfoContents: string | undefined; sourceOnlyPack?: boolean; qlpackFileName?: string; @@ -169,13 +169,13 @@ const testCheckPacksForOverlayCompatibility = test.macro({ expectedResult, }: { cliOverlayVersion: number | undefined; - languages: KnownLanguage[]; + languages: BuiltInLanguage[]; packs: Record; expectedResult: boolean; }, ) => { await withTmpDir(async (tmpDir) => { - const packDirsByLanguage = new Map(); + const packDirsByLanguage = new Map(); for (const [packName, packInfo] of Object.entries(packs)) { const packPath = path.join(tmpDir, packName); @@ -242,10 +242,10 @@ test( "returns false when CLI does not support overlay", { cliOverlayVersion: undefined, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -258,7 +258,7 @@ test( "returns true when there are no query packs", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: {}, expectedResult: true, }, @@ -269,10 +269,10 @@ test( "returns true when query pack has not been compiled", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: undefined, sourceOnlyPack: true, }, @@ -286,10 +286,10 @@ test( "returns true when query pack has expected overlay version", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -302,14 +302,14 @@ test( "returns true when query packs for all languages to analyze are compatible", { cliOverlayVersion: 2, - languages: [KnownLanguage.cpp, KnownLanguage.java], + languages: [BuiltInLanguage.cpp, BuiltInLanguage.java], packs: { "codeql/cpp-queries": { - language: KnownLanguage.cpp, + language: BuiltInLanguage.cpp, packinfoContents: '{"overlayVersion":2}', }, "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -322,14 +322,14 @@ test( "returns true when query pack for a language not analyzed is incompatible", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/cpp-queries": { - language: KnownLanguage.cpp, + language: BuiltInLanguage.cpp, packinfoContents: undefined, }, "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -342,14 +342,14 @@ test( "returns false when query pack for a language to analyze is incompatible", { cliOverlayVersion: 2, - languages: [KnownLanguage.cpp, KnownLanguage.java], + languages: [BuiltInLanguage.cpp, BuiltInLanguage.java], packs: { "codeql/cpp-queries": { - language: KnownLanguage.cpp, + language: BuiltInLanguage.cpp, packinfoContents: '{"overlayVersion":1}', }, "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, }, @@ -362,14 +362,14 @@ test( "returns false when query pack is missing .packinfo", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, "custom/queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: undefined, }, }, @@ -382,14 +382,14 @@ test( "returns false when query pack has different overlay version", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, "custom/queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":1}', }, }, @@ -402,14 +402,14 @@ test( "returns false when query pack is missing overlayVersion in .packinfo", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, "custom/queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: "{}", }, }, @@ -422,14 +422,14 @@ test( "returns false when .packinfo is not valid JSON", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', }, "custom/queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: "this_is_not_valid_json", }, }, @@ -442,10 +442,10 @@ test( "returns true when query pack uses codeql-pack.yml filename", { cliOverlayVersion: 2, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], packs: { "codeql/java-queries": { - language: KnownLanguage.java, + language: BuiltInLanguage.java, packinfoContents: '{"overlayVersion":2}', qlpackFileName: "codeql-pack.yml", }, diff --git a/src/init.ts b/src/init.ts index 8e3fa21a4a..8ed6f64005 100644 --- a/src/init.ts +++ b/src/init.ts @@ -26,7 +26,7 @@ import { RepositoryProperties, RepositoryPropertyName, } from "./feature-flags/properties"; -import { KnownLanguage, Language } from "./languages"; +import { BuiltInLanguage, Language } from "./languages"; import { Logger, withGroupAsync } from "./logging"; import { ToolsSource } from "./setup-codeql"; import { ZstdAvailability } from "./tar"; @@ -235,7 +235,7 @@ export async function checkInstallPython311( codeql: CodeQL, ) { if ( - languages.includes(KnownLanguage.python) && + languages.includes(BuiltInLanguage.python) && process.platform === "win32" && !(await codeql.getVersion()).features?.supportsPython312 ) { diff --git a/src/languages/index.test.ts b/src/languages/index.test.ts index 048f6b7025..4fe1675af7 100644 --- a/src/languages/index.test.ts +++ b/src/languages/index.test.ts @@ -4,43 +4,43 @@ import { setupTests } from "../testing-utils"; import knownLanguagesData from "./builtin.json"; -import { isKnownLanguage, KnownLanguage, parseBuiltInLanguage } from "."; +import { isBuiltInLanguage, BuiltInLanguage, parseBuiltInLanguage } from "."; setupTests(test); test("parseBuiltInLanguage", (t) => { // Exact matches - t.is(parseBuiltInLanguage("csharp"), KnownLanguage.csharp); - t.is(parseBuiltInLanguage("cpp"), KnownLanguage.cpp); - t.is(parseBuiltInLanguage("go"), KnownLanguage.go); - t.is(parseBuiltInLanguage("java"), KnownLanguage.java); - t.is(parseBuiltInLanguage("javascript"), KnownLanguage.javascript); - t.is(parseBuiltInLanguage("python"), KnownLanguage.python); - t.is(parseBuiltInLanguage("rust"), KnownLanguage.rust); + t.is(parseBuiltInLanguage("csharp"), BuiltInLanguage.csharp); + t.is(parseBuiltInLanguage("cpp"), BuiltInLanguage.cpp); + t.is(parseBuiltInLanguage("go"), BuiltInLanguage.go); + t.is(parseBuiltInLanguage("java"), BuiltInLanguage.java); + t.is(parseBuiltInLanguage("javascript"), BuiltInLanguage.javascript); + t.is(parseBuiltInLanguage("python"), BuiltInLanguage.python); + t.is(parseBuiltInLanguage("rust"), BuiltInLanguage.rust); // Aliases - t.is(parseBuiltInLanguage(" \t\nCsHaRp\t\t"), KnownLanguage.csharp); - t.is(parseBuiltInLanguage("c"), KnownLanguage.cpp); - t.is(parseBuiltInLanguage("c++"), KnownLanguage.cpp); - t.is(parseBuiltInLanguage("kotlin"), KnownLanguage.java); - t.is(parseBuiltInLanguage("typescript"), KnownLanguage.javascript); + t.is(parseBuiltInLanguage(" \t\nCsHaRp\t\t"), BuiltInLanguage.csharp); + t.is(parseBuiltInLanguage("c"), BuiltInLanguage.cpp); + t.is(parseBuiltInLanguage("c++"), BuiltInLanguage.cpp); + t.is(parseBuiltInLanguage("kotlin"), BuiltInLanguage.java); + t.is(parseBuiltInLanguage("typescript"), BuiltInLanguage.javascript); // spaces and case-insensitivity - t.is(parseBuiltInLanguage(" \t\nkOtLin\t\t"), KnownLanguage.java); + t.is(parseBuiltInLanguage(" \t\nkOtLin\t\t"), BuiltInLanguage.java); // Not matches - t.is(parseBuiltInLanguage(KnownLanguage.python), KnownLanguage.python); + t.is(parseBuiltInLanguage(BuiltInLanguage.python), BuiltInLanguage.python); t.is(parseBuiltInLanguage("foo"), undefined); t.is(parseBuiltInLanguage(" "), undefined); t.is(parseBuiltInLanguage(""), undefined); }); -test("isKnownLanguage matches the curated known-language set", (t) => { - t.true(isKnownLanguage(KnownLanguage.actions)); - t.true(isKnownLanguage(KnownLanguage.swift)); - t.false(isKnownLanguage("typescript")); +test("isBuiltInLanguage matches the curated built-in language set", (t) => { + t.true(isBuiltInLanguage(BuiltInLanguage.actions)); + t.true(isBuiltInLanguage(BuiltInLanguage.swift)); + t.false(isBuiltInLanguage("typescript")); }); -test("KnownLanguage enum matches builtin.json", (t) => { - t.deepEqual(Object.values(KnownLanguage), knownLanguagesData.languages); +test("BuiltInLanguage enum matches builtin.json", (t) => { + t.deepEqual(Object.values(BuiltInLanguage), knownLanguagesData.languages); }); diff --git a/src/languages/index.ts b/src/languages/index.ts index 7187ccc8aa..2e91d8f41d 100644 --- a/src/languages/index.ts +++ b/src/languages/index.ts @@ -3,13 +3,8 @@ import knownLanguagesData from "./builtin.json"; /** A language to analyze with CodeQL. */ export type Language = string; -/** - * A language supported by CodeQL that is treated specially by the Action. - * - * This is not an exhaustive list of languages supported by CodeQL and new - * languages do not need to be added here. - */ -export enum KnownLanguage { +/** A language built into the `defaults.json` CodeQL distribution. */ +export enum BuiltInLanguage { actions = "actions", cpp = "cpp", csharp = "csharp", @@ -30,10 +25,12 @@ export enum JavaEnvVars { _JAVA_OPTIONS = "_JAVA_OPTIONS", } -const knownLanguageSet = new Set(knownLanguagesData.languages); +const builtInLanguageSet = new Set(knownLanguagesData.languages); -export function isKnownLanguage(language: string): language is KnownLanguage { - return knownLanguageSet.has(language); +export function isBuiltInLanguage( + language: string, +): language is BuiltInLanguage { + return builtInLanguageSet.has(language); } /** @@ -41,13 +38,13 @@ export function isKnownLanguage(language: string): language is KnownLanguage { */ export function parseBuiltInLanguage( language: string, -): KnownLanguage | undefined { +): BuiltInLanguage | undefined { language = language.trim().toLowerCase(); language = knownLanguagesData.aliases[ language as keyof typeof knownLanguagesData.aliases ] ?? language; - if (isKnownLanguage(language)) { + if (isBuiltInLanguage(language)) { return language; } return undefined; diff --git a/src/overlay/index.test.ts b/src/overlay/index.test.ts index 2d0b4d3fcb..0db12f6036 100644 --- a/src/overlay/index.test.ts +++ b/src/overlay/index.test.ts @@ -9,7 +9,7 @@ import * as actionsUtil from "../actions-util"; import * as apiClient from "../api-client"; import { ResolveDatabaseOutput } from "../codeql"; import * as gitUtils from "../git-utils"; -import { KnownLanguage } from "../languages"; +import { BuiltInLanguage } from "../languages"; import { getRunnerLogger } from "../logging"; import { createTestConfig, @@ -382,7 +382,7 @@ const testDownloadOverlayBaseDatabaseFromCache = test.macro({ const testCase = { ...defaultDownloadTestCase, ...partialTestCase }; const config = createTestConfig({ dbLocation, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], }); config.overlayDatabaseMode = testCase.overlayDatabaseMode; diff --git a/src/start-proxy-action.ts b/src/start-proxy-action.ts index 235970b479..a288acc5c0 100644 --- a/src/start-proxy-action.ts +++ b/src/start-proxy-action.ts @@ -6,7 +6,7 @@ import * as core from "@actions/core"; import * as actionsUtil from "./actions-util"; import { getGitHubVersion } from "./api-client"; import { Feature, FeatureEnablement, initFeatures } from "./feature-flags"; -import { KnownLanguage, parseBuiltInLanguage } from "./languages"; +import { BuiltInLanguage, parseBuiltInLanguage } from "./languages"; import { getActionsLogger, Logger } from "./logging"; import { getRepositoryNwo } from "./repository"; import { @@ -32,7 +32,7 @@ async function run(startedAt: Date) { const logger = getActionsLogger(); let features: FeatureEnablement | undefined; - let language: KnownLanguage | undefined; + let language: BuiltInLanguage | undefined; try { // Make inputs accessible in the `post` step. diff --git a/src/start-proxy.test.ts b/src/start-proxy.test.ts index c5d4526452..4d8f4afeec 100644 --- a/src/start-proxy.test.ts +++ b/src/start-proxy.test.ts @@ -8,7 +8,7 @@ import sinon from "sinon"; import * as apiClient from "./api-client"; import * as defaults from "./defaults.json"; import { setUpFeatureFlagTests } from "./feature-flags/testing-util"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger, Logger } from "./logging"; import * as startProxyExports from "./start-proxy"; import * as statusReport from "./status-report"; @@ -231,7 +231,7 @@ test("getCredentials filters by language when specified", async (t) => { getRunnerLogger(true), undefined, toEncodedJSON(mixedCredentials), - KnownLanguage.java, + BuiltInLanguage.java, ); t.is(credentials.length, 1); t.is(credentials[0].type, "maven_repository"); @@ -242,7 +242,7 @@ test("getCredentials returns all for a language when specified", async (t) => { getRunnerLogger(true), undefined, toEncodedJSON(mixedCredentials), - KnownLanguage.go, + BuiltInLanguage.go, ); t.is(credentials.length, 2); @@ -262,7 +262,7 @@ test("getCredentials returns all goproxy_servers for Go when specified", async ( getRunnerLogger(true), undefined, toEncodedJSON(multipleGoproxyServers), - KnownLanguage.go, + BuiltInLanguage.go, ); t.is(credentials.length, 3); @@ -291,7 +291,7 @@ test("getCredentials returns all maven_repositories for Java when specified", as getRunnerLogger(true), undefined, toEncodedJSON(multipleMavenRepositories), - KnownLanguage.java, + BuiltInLanguage.java, ); t.is(credentials.length, 2); @@ -479,7 +479,7 @@ test("getCredentials accepts OIDC configurations", (t) => { getRunnerLogger(true), undefined, toEncodedJSON(oidcConfigurations), - KnownLanguage.csharp, + BuiltInLanguage.csharp, ); t.is(credentials.length, 3); @@ -646,7 +646,7 @@ test("getCredentials returns all credentials for Actions when using LANGUAGE_TO_ getRunnerLogger(true), undefined, credentialsInput, - KnownLanguage.actions, + BuiltInLanguage.actions, false, ); t.is(credentials.length, mixedCredentials.length); @@ -659,7 +659,7 @@ test("getCredentials returns no credentials for Actions when using NEW_LANGUAGE_ getRunnerLogger(true), undefined, credentialsInput, - KnownLanguage.actions, + BuiltInLanguage.actions, true, ); t.deepEqual(credentials, []); diff --git a/src/start-proxy.ts b/src/start-proxy.ts index 749a09a7c2..8859eb16e2 100644 --- a/src/start-proxy.ts +++ b/src/start-proxy.ts @@ -18,7 +18,7 @@ import { FeatureEnablement, } from "./feature-flags"; import * as json from "./json"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { Logger } from "./logging"; import { Address, @@ -156,7 +156,7 @@ export function getSafeErrorMessage(error: Error): string { export async function sendFailedStatusReport( logger: Logger, startedAt: Date, - language: KnownLanguage | undefined, + language: BuiltInLanguage | undefined, unwrappedError: unknown, ) { const error = util.wrapError(unwrappedError); @@ -195,7 +195,7 @@ function isPAT(value: string) { ]); } -type RegistryMapping = Partial>; +type RegistryMapping = Partial>; const LANGUAGE_TO_REGISTRY_TYPE: RegistryMapping = { java: ["maven_repository"], @@ -327,7 +327,7 @@ export function getCredentials( logger: Logger, registrySecrets: string | undefined, registriesCredentials: string | undefined, - language: KnownLanguage | undefined, + language: BuiltInLanguage | undefined, skipUnusedRegistries: boolean = false, ): Credential[] { const registryMapping = skipUnusedRegistries diff --git a/src/start-proxy/environment.test.ts b/src/start-proxy/environment.test.ts index 6722c53ab2..decd2fa6b3 100644 --- a/src/start-proxy/environment.test.ts +++ b/src/start-proxy/environment.test.ts @@ -7,7 +7,7 @@ import * as io from "@actions/io"; import test, { ExecutionContext } from "ava"; import sinon from "sinon"; -import { JavaEnvVars, KnownLanguage } from "../languages"; +import { JavaEnvVars, BuiltInLanguage } from "../languages"; import { checkExpectedLogMessages, getRecordingLogger, @@ -182,11 +182,11 @@ test.serial("checkProxyEnvVars - credentials are removed from URLs", (t) => { }); test.serial( - "checkProxyEnvironment - includes base checks for all known languages", + "checkProxyEnvironment - includes base checks for all built-in languages", async (t) => { stubToolrunner(); - for (const language of Object.values(KnownLanguage)) { + for (const language of Object.values(BuiltInLanguage)) { const messages: LoggedMessage[] = []; const logger = getRecordingLogger(messages); @@ -204,7 +204,7 @@ test.serial( stubToolrunner(); - await checkProxyEnvironment(logger, KnownLanguage.java); + await checkProxyEnvironment(logger, BuiltInLanguage.java); assertEnvVarLogMessages(t, Object.keys(ProxyEnvVars), messages, false); assertEnvVarLogMessages(t, JAVA_PROXY_ENV_VARS, messages, false); }, diff --git a/src/start-proxy/environment.ts b/src/start-proxy/environment.ts index 13eb121901..0a683cc07e 100644 --- a/src/start-proxy/environment.ts +++ b/src/start-proxy/environment.ts @@ -4,7 +4,7 @@ import * as path from "path"; import * as toolrunner from "@actions/exec/lib/toolrunner"; import * as io from "@actions/io"; -import { JavaEnvVars, KnownLanguage, Language } from "../languages"; +import { JavaEnvVars, BuiltInLanguage, Language } from "../languages"; import { Logger } from "../logging"; import { getErrorMessage, isDefined } from "../util"; @@ -196,7 +196,7 @@ export async function checkProxyEnvironment( // Check language-specific configurations. If we don't know the language, // then we perform all checks. - if (language === undefined || language === KnownLanguage.java) { + if (language === undefined || language === BuiltInLanguage.java) { checkJavaEnvVars(logger); await showJavaSettings(logger); diff --git a/src/status-report.test.ts b/src/status-report.test.ts index 35d608b7d3..8302e411fa 100644 --- a/src/status-report.test.ts +++ b/src/status-report.test.ts @@ -4,7 +4,7 @@ import * as sinon from "sinon"; import * as actionsUtil from "./actions-util"; import { Config } from "./config-utils"; import { EnvVar } from "./environment"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger } from "./logging"; import { ToolsSource } from "./setup-codeql"; import { @@ -48,7 +48,7 @@ test.serial("createStatusReportBase", async (t) => { new Date("May 19, 2023 05:19:00"), createTestConfig({ buildMode: BuildMode.None, - languages: [KnownLanguage.java, KnownLanguage.swift], + languages: [BuiltInLanguage.java, BuiltInLanguage.swift], }), { numAvailableBytes: 100, numTotalBytes: 500 }, getRunnerLogger(false), @@ -345,7 +345,7 @@ test.serial( "returns a value", createTestConfig({ buildMode: BuildMode.None, - languages: [KnownLanguage.java, KnownLanguage.swift], + languages: [BuiltInLanguage.java, BuiltInLanguage.swift], }), { trap_cache_download_size_bytes: 1024, @@ -360,7 +360,7 @@ test.serial( "includes packs for a single language", createTestConfig({ buildMode: BuildMode.None, - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], computedConfig: { packs: ["foo", "bar"], }, @@ -377,7 +377,7 @@ test.serial( "includes packs for multiple languages", createTestConfig({ buildMode: BuildMode.None, - languages: [KnownLanguage.java, KnownLanguage.swift], + languages: [BuiltInLanguage.java, BuiltInLanguage.swift], computedConfig: { packs: { java: ["java-foo", "java-bar"], swift: ["swift-bar"] }, }, diff --git a/src/tracer-config.test.ts b/src/tracer-config.test.ts index cc49957086..58f844b8e7 100644 --- a/src/tracer-config.test.ts +++ b/src/tracer-config.test.ts @@ -6,7 +6,7 @@ import * as sinon from "sinon"; import { CodeQL, getCodeQLForTesting } from "./codeql"; import * as configUtils from "./config-utils"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { createTestConfig, makeVersionInfo, setupTests } from "./testing-utils"; import { ToolsFeature } from "./tools-features"; import { getCombinedTracerConfig } from "./tracer-config"; @@ -16,7 +16,7 @@ setupTests(test); function getTestConfig(tempDir: string): configUtils.Config { return createTestConfig({ - languages: [KnownLanguage.java], + languages: [BuiltInLanguage.java], tempDir, dbLocation: path.resolve(tempDir, "codeql_databases"), }); @@ -36,7 +36,7 @@ async function stubCodeql( ); sinon .stub(codeqlObject, "isTracedLanguage") - .withArgs(KnownLanguage.java) + .withArgs(BuiltInLanguage.java) .resolves(true); return codeqlObject; } @@ -45,7 +45,7 @@ test("getCombinedTracerConfig - return undefined when no languages are traced la await util.withTmpDir(async (tmpDir) => { const config = getTestConfig(tmpDir); // No traced languages - config.languages = [KnownLanguage.javascript, KnownLanguage.python]; + config.languages = [BuiltInLanguage.javascript, BuiltInLanguage.python]; t.deepEqual( await getCombinedTracerConfig(await stubCodeql(), config), undefined, diff --git a/src/trap-caching.test.ts b/src/trap-caching.test.ts index a6c7fc76cb..9805475796 100644 --- a/src/trap-caching.test.ts +++ b/src/trap-caching.test.ts @@ -15,7 +15,7 @@ import { import * as configUtils from "./config-utils"; import { Feature } from "./feature-flags"; import * as gitUtils from "./git-utils"; -import { KnownLanguage } from "./languages"; +import { BuiltInLanguage } from "./languages"; import { getRunnerLogger } from "./logging"; import { createFeatures, @@ -41,7 +41,7 @@ const stubCodeql = createStubCodeQL({ async betterResolveLanguages() { return { extractors: { - [KnownLanguage.javascript]: [ + [BuiltInLanguage.javascript]: [ { extractor_root: "some_root", extractor_options: { @@ -65,7 +65,7 @@ const stubCodeql = createStubCodeQL({ }, }, ], - [KnownLanguage.cpp]: [ + [BuiltInLanguage.cpp]: [ { extractor_root: "other_root", }, @@ -76,7 +76,7 @@ const stubCodeql = createStubCodeQL({ }); const testConfigWithoutTmpDir = createTestConfig({ - languages: [KnownLanguage.javascript, KnownLanguage.cpp], + languages: [BuiltInLanguage.javascript, BuiltInLanguage.cpp], trapCaches: { javascript: "/some/cache/dir", }, @@ -84,7 +84,7 @@ const testConfigWithoutTmpDir = createTestConfig({ function getTestConfigWithTempDir(tempDir: string): configUtils.Config { return createTestConfig({ - languages: [KnownLanguage.javascript, KnownLanguage.ruby], + languages: [BuiltInLanguage.javascript, BuiltInLanguage.ruby], tempDir, dbLocation: path.resolve(tempDir, "codeql_databases"), trapCaches: { @@ -100,7 +100,7 @@ test.serial("check flags for JS, analyzing default branch", async (t) => { sinon.stub(gitUtils, "isAnalyzingDefaultBranch").resolves(true); const result = await getTrapCachingExtractorConfigArgsForLang( config, - KnownLanguage.javascript, + BuiltInLanguage.javascript, ); t.deepEqual(result, [ `-O=javascript.trap.cache.dir=${path.resolve(tmpDir, "jsCache")}`, @@ -131,10 +131,10 @@ test("get languages that support TRAP caching", async (t) => { const logger = getRecordingLogger(loggedMessages); const languagesSupportingCaching = await getLanguagesSupportingCaching( stubCodeql, - [KnownLanguage.javascript, KnownLanguage.cpp], + [BuiltInLanguage.javascript, BuiltInLanguage.cpp], logger, ); - t.deepEqual(languagesSupportingCaching, [KnownLanguage.javascript]); + t.deepEqual(languagesSupportingCaching, [BuiltInLanguage.javascript]); }); test.serial("upload cache key contains right fields", async (t) => { @@ -180,7 +180,7 @@ test.serial( ); await downloadTrapCaches( stubCodeql, - [KnownLanguage.javascript, KnownLanguage.cpp], + [BuiltInLanguage.javascript, BuiltInLanguage.cpp], logger, ); t.assert(