Merge pull request #1972 from github/update-v2.22.5-2d5ffa777

Merge main into releases/v2
This commit is contained in:
Henry Mercer 2023-10-27 10:29:36 +01:00 committed by GitHub
commit 74483a38d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
438 changed files with 13425 additions and 3239 deletions

78
.github/workflows/__cpp-deptrace-disabled.yml generated vendored Normal file
View file

@ -0,0 +1,78 @@
# Warning: This file is generated automatically, and should not be modified.
# Instead, please modify the template in the pr-checks directory and run:
# (cd pr-checks; pip install ruamel.yaml@0.17.31 && python3 sync.py)
# to regenerate this file.
name: 'PR Check - C/C++: disabling autoinstalling dependencies (Linux)'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GO111MODULE: auto
CODEQL_EXTRACTOR_JAVA_AGENT_DISABLE_KOTLIN: 'true'
on:
push:
branches:
- main
- releases/v2
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
workflow_dispatch: {}
jobs:
cpp-deptrace-disabled:
strategy:
matrix:
include:
- os: ubuntu-latest
version: latest
- os: ubuntu-latest
version: default
- os: ubuntu-latest
version: nightly-latest
name: 'C/C++: disabling autoinstalling dependencies (Linux)'
permissions:
contents: read
security-events: write
timeout-minutes: 45
runs-on: ${{ matrix.os }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Prepare test
id: prepare-test
uses: ./.github/actions/prepare-test
with:
version: ${{ matrix.version }}
use-all-platform-bundle: 'false'
- name: Set environment variable for Swift enablement
if: >-
runner.os != 'Windows' && (
matrix.version == '20220908' ||
matrix.version == '20221211'
)
shell: bash
run: echo "CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT=true" >> $GITHUB_ENV
- name: Test setup
shell: bash
run: |
cp -a ../action/tests/cpp-autobuild autobuild-dir
- uses: ./../action/init
with:
languages: cpp
tools: ${{ steps.prepare-test.outputs.tools-url }}
- uses: ./../action/autobuild
with:
working-directory: autobuild-dir
env:
CODEQL_EXTRACTOR_CPP_AUTOINSTALL_DEPENDENCIES: false
- shell: bash
run: |
if ls /usr/bin/errno; then
echo "C/C++ autobuild installed errno, but it should not have since auto-install dependencies is disabled."
exit 1
fi
env:
DOTNET_GENERATE_ASPNET_CERTIFICATE: 'false'
CODEQL_ACTION_TEST_MODE: true

76
.github/workflows/__cpp-deptrace-enabled-on-macos.yml generated vendored Normal file
View file

@ -0,0 +1,76 @@
# Warning: This file is generated automatically, and should not be modified.
# Instead, please modify the template in the pr-checks directory and run:
# (cd pr-checks; pip install ruamel.yaml@0.17.31 && python3 sync.py)
# to regenerate this file.
name: 'PR Check - C/C++: autoinstalling dependencies is skipped (macOS)'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GO111MODULE: auto
CODEQL_EXTRACTOR_JAVA_AGENT_DISABLE_KOTLIN: 'true'
on:
push:
branches:
- main
- releases/v2
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
workflow_dispatch: {}
jobs:
cpp-deptrace-enabled-on-macos:
strategy:
matrix:
include:
- os: macos-latest
version: nightly-latest
name: 'C/C++: autoinstalling dependencies is skipped (macOS)'
permissions:
contents: read
security-events: write
timeout-minutes: 45
runs-on: ${{ matrix.os }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Prepare test
id: prepare-test
uses: ./.github/actions/prepare-test
with:
version: ${{ matrix.version }}
use-all-platform-bundle: 'false'
- name: Set environment variable for Swift enablement
if: >-
runner.os != 'Windows' && (
matrix.version == '20220908' ||
matrix.version == '20221211'
)
shell: bash
run: echo "CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT=true" >> $GITHUB_ENV
- name: Test setup
shell: bash
run: |
cp -a ../action/tests/cpp-autobuild autobuild-dir
- uses: ./../action/init
with:
languages: cpp
tools: ${{ steps.prepare-test.outputs.tools-url }}
- uses: ./../action/autobuild
with:
working-directory: autobuild-dir
env:
CODEQL_EXTRACTOR_CPP_AUTOINSTALL_DEPENDENCIES: true
- shell: bash
run: |
if ! ls /usr/bin/errno; then
echo "As expected, CODEQL_EXTRACTOR_CPP_AUTOINSTALL_DEPENDENCIES is a no-op on macOS"
else
echo "CODEQL_EXTRACTOR_CPP_AUTOINSTALL_DEPENDENCIES should not have had any effect on macOS"
exit 1
fi
env:
DOTNET_GENERATE_ASPNET_CERTIFICATE: 'false'
CODEQL_ACTION_TEST_MODE: true

78
.github/workflows/__cpp-deptrace-enabled.yml generated vendored Normal file
View file

@ -0,0 +1,78 @@
# Warning: This file is generated automatically, and should not be modified.
# Instead, please modify the template in the pr-checks directory and run:
# (cd pr-checks; pip install ruamel.yaml@0.17.31 && python3 sync.py)
# to regenerate this file.
name: 'PR Check - C/C++: autoinstalling dependencies (Linux)'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GO111MODULE: auto
CODEQL_EXTRACTOR_JAVA_AGENT_DISABLE_KOTLIN: 'true'
on:
push:
branches:
- main
- releases/v2
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
workflow_dispatch: {}
jobs:
cpp-deptrace-enabled:
strategy:
matrix:
include:
- os: ubuntu-latest
version: latest
- os: ubuntu-latest
version: default
- os: ubuntu-latest
version: nightly-latest
name: 'C/C++: autoinstalling dependencies (Linux)'
permissions:
contents: read
security-events: write
timeout-minutes: 45
runs-on: ${{ matrix.os }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Prepare test
id: prepare-test
uses: ./.github/actions/prepare-test
with:
version: ${{ matrix.version }}
use-all-platform-bundle: 'false'
- name: Set environment variable for Swift enablement
if: >-
runner.os != 'Windows' && (
matrix.version == '20220908' ||
matrix.version == '20221211'
)
shell: bash
run: echo "CODEQL_ENABLE_EXPERIMENTAL_FEATURES_SWIFT=true" >> $GITHUB_ENV
- name: Test setup
shell: bash
run: |
cp -a ../action/tests/cpp-autobuild autobuild-dir
- uses: ./../action/init
with:
languages: cpp
tools: ${{ steps.prepare-test.outputs.tools-url }}
- uses: ./../action/autobuild
with:
working-directory: autobuild-dir
env:
CODEQL_EXTRACTOR_CPP_AUTOINSTALL_DEPENDENCIES: true
- shell: bash
run: |
if ! ls /usr/bin/errno; then
echo "Did not autoinstall errno"
exit 1
fi
env:
DOTNET_GENERATE_ASPNET_CERTIFICATE: 'false'
CODEQL_ACTION_TEST_MODE: true

View file

@ -36,7 +36,7 @@ jobs:
run: echo "${GITHUB_CONTEXT}" run: echo "${GITHUB_CONTEXT}"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: actions/setup-node@v3 - uses: actions/setup-node@v4
- name: Update git config - name: Update git config
run: | run: |

60
.github/workflows/rebuild.yml vendored Normal file
View file

@ -0,0 +1,60 @@
name: Rebuild Action
on:
pull_request:
types: [labeled]
jobs:
rebuild:
name: Rebuild Action
runs-on: ubuntu-latest
if: github.event.label.name == 'Rebuild'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Remove label
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
gh pr edit --repo github/codeql-action "$PR_NUMBER" \
--remove-label "Rebuild"
- name: Compile TypeScript
run: |
npm install
npm run lint -- --fix
npm run build
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Generate workflows
run: |
cd pr-checks
python -m pip install --upgrade pip
pip install ruamel.yaml==0.17.31
python3 sync.py
- name: Check for changes and push
env:
BRANCH: ${{ github.event.pull_request.head.ref }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
if [ ! -z "$(git status --porcelain)" ]; then
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
git commit -am "Rebuild"
git push origin "HEAD:$BRANCH"
echo "Pushed a commit to rebuild the Action." \
"Please mark the PR as ready for review to trigger PR checks." |
gh pr comment --body-file - --repo github/codeql-action "$PR_NUMBER"
gh pr ready --undo --repo github/codeql-action "$PR_NUMBER"
fi

20
.pre-commit-config.yaml Normal file
View file

@ -0,0 +1,20 @@
repos:
- repo: local
hooks:
- id: compile-ts
name: Compile typescript
files: \.[tj]s$
language: system
entry: npm run build
pass_filenames: false
- id: lint-ts
name: Lint typescript code
files: \.ts$
language: system
entry: npm run lint -- --fix
- id: pr-checks-sync
name: Synchronize PR check workflows
files: ^.github/workflows/__.*\.yml$|^pr-checks
language: system
entry: python3 pr-checks/sync.py
pass_filenames: false

View file

@ -2,6 +2,10 @@
See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs. See the [releases page](https://github.com/github/codeql-action/releases) for the relevant changes to the CodeQL CLI and language packs.
## 2.22.5 - 27 Oct 2023
No user facing changes.
## 2.22.4 - 20 Oct 2023 ## 2.22.4 - 20 Oct 2023
- Update default CodeQL bundle version to 2.15.1. [#1953](https://github.com/github/codeql-action/pull/1953) - Update default CodeQL bundle version to 2.15.1. [#1953](https://github.com/github/codeql-action/pull/1953)

2
lib/analyze.js generated
View file

@ -232,7 +232,7 @@ async function runQueries(sarifFolder, memoryFlag, addSnippetsFlag, threadsFlag,
} }
statusReport["event_reports"].push(perQueryAlertCountEventReport); statusReport["event_reports"].push(perQueryAlertCountEventReport);
} }
if (!(await features.getValue(feature_flags_1.Feature.AnalysisSummaryV2Enabled, codeql))) { if (!(await util.codeQlVersionAbove(codeql, codeql_1.CODEQL_VERSION_ANALYSIS_SUMMARY_V2))) {
await runPrintLinesOfCode(language); await runPrintLinesOfCode(language);
} }
} }

File diff suppressed because one or more lines are too long

44
lib/codeql.js generated
View file

@ -23,12 +23,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result; return result;
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.getGeneratedCodeScanningConfigPath = exports.getTrapCachingExtractorConfigArgsForLang = exports.getTrapCachingExtractorConfigArgs = exports.getExtraOptions = exports.getCodeQLForCmd = exports.getCodeQLForTesting = exports.getCachedCodeQL = exports.setCodeQL = exports.getCodeQL = exports.setupCodeQL = exports.CODEQL_VERSION_LANGUAGE_ALIASING = exports.CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG = exports.CODEQL_VERSION_RESOLVE_ENVIRONMENT = exports.CODEQL_VERSION_DIAGNOSTICS_EXPORT_FIXED = exports.CODEQL_VERSION_BETTER_NO_CODE_ERROR_MESSAGE = exports.CODEQL_VERSION_INIT_WITH_QLCONFIG = exports.CODEQL_VERSION_EXPORT_CODE_SCANNING_CONFIG = exports.CODEQL_VERSION_SECURITY_EXPERIMENTAL_SUITE = exports.CommandInvocationError = void 0; exports.getGeneratedCodeScanningConfigPath = exports.getTrapCachingExtractorConfigArgsForLang = exports.getTrapCachingExtractorConfigArgs = exports.getExtraOptions = exports.getCodeQLForCmd = exports.getCodeQLForTesting = exports.getCachedCodeQL = exports.setCodeQL = exports.getCodeQL = exports.setupCodeQL = exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE = exports.CODEQL_VERSION_ANALYSIS_SUMMARY_V2 = exports.CODEQL_VERSION_LANGUAGE_ALIASING = exports.CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG = exports.CODEQL_VERSION_RESOLVE_ENVIRONMENT = exports.CODEQL_VERSION_DIAGNOSTICS_EXPORT_FIXED = exports.CODEQL_VERSION_BETTER_NO_CODE_ERROR_MESSAGE = exports.CODEQL_VERSION_INIT_WITH_QLCONFIG = exports.CODEQL_VERSION_EXPORT_CODE_SCANNING_CONFIG = exports.CODEQL_VERSION_SECURITY_EXPERIMENTAL_SUITE = exports.CODEQL_VERSION_EXPORT_FAILED_SARIF = exports.CommandInvocationError = void 0;
const fs = __importStar(require("fs")); const fs = __importStar(require("fs"));
const path = __importStar(require("path")); const path = __importStar(require("path"));
const core = __importStar(require("@actions/core")); const core = __importStar(require("@actions/core"));
const toolrunner = __importStar(require("@actions/exec/lib/toolrunner")); const toolrunner = __importStar(require("@actions/exec/lib/toolrunner"));
const yaml = __importStar(require("js-yaml")); const yaml = __importStar(require("js-yaml"));
const semver = __importStar(require("semver"));
const actions_util_1 = require("./actions-util"); const actions_util_1 = require("./actions-util");
const environment_1 = require("./environment"); const environment_1 = require("./environment");
const feature_flags_1 = require("./feature-flags"); const feature_flags_1 = require("./feature-flags");
@ -90,6 +91,11 @@ const GHES_MOST_RECENT_DEPRECATION_DATE = "2023-09-12";
* For convenience, please keep these in descending order. Once a version * For convenience, please keep these in descending order. Once a version
* flag is older than the oldest supported version above, it may be removed. * flag is older than the oldest supported version above, it may be removed.
*/ */
/**
* Versions 2.11.3+ of the CodeQL CLI support exporting a failed SARIF file via
* `codeql database export-diagnostics` or `codeql diagnostics export`.
*/
exports.CODEQL_VERSION_EXPORT_FAILED_SARIF = "2.11.3";
const CODEQL_VERSION_FILE_BASELINE_INFORMATION = "2.11.3"; const CODEQL_VERSION_FILE_BASELINE_INFORMATION = "2.11.3";
/** /**
* Versions 2.11.1+ of the CodeQL Bundle include a `security-experimental` built-in query suite for * Versions 2.11.1+ of the CodeQL Bundle include a `security-experimental` built-in query suite for
@ -126,6 +132,14 @@ exports.CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG = "2.14.2";
* Versions 2.14.4+ of the CodeQL CLI support language aliasing. * Versions 2.14.4+ of the CodeQL CLI support language aliasing.
*/ */
exports.CODEQL_VERSION_LANGUAGE_ALIASING = "2.14.4"; exports.CODEQL_VERSION_LANGUAGE_ALIASING = "2.14.4";
/**
* Versions 2.15.0+ of the CodeQL CLI support new analysis summaries.
*/
exports.CODEQL_VERSION_ANALYSIS_SUMMARY_V2 = "2.15.0";
/**
* Versions 2.15.0+ of the CodeQL CLI support sub-language file coverage information.
*/
exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE = "2.15.0";
/** /**
* Set up CodeQL CLI access. * Set up CodeQL CLI access.
* *
@ -296,10 +310,10 @@ async function getCodeQLForCmd(cmd, checkVersion) {
if (await util.codeQlVersionAbove(this, exports.CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG)) { if (await util.codeQlVersionAbove(this, exports.CODEQL_VERSION_LANGUAGE_BASELINE_CONFIG)) {
extraArgs.push("--calculate-language-specific-baseline"); extraArgs.push("--calculate-language-specific-baseline");
} }
if (await features.getValue(feature_flags_1.Feature.SublanguageFileCoverageEnabled, this)) { if (await isSublanguageFileCoverageEnabled(config, this)) {
extraArgs.push("--sublanguage-file-coverage"); extraArgs.push("--sublanguage-file-coverage");
} }
else if (await util.codeQlVersionAbove(this, feature_flags_1.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE)) { else if (await util.codeQlVersionAbove(this, exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE)) {
extraArgs.push("--no-sublanguage-file-coverage"); extraArgs.push("--no-sublanguage-file-coverage");
} }
await runTool(cmd, [ await runTool(cmd, [
@ -470,10 +484,10 @@ async function getCodeQLForCmd(cmd, checkVersion) {
if (querySuitePath) { if (querySuitePath) {
codeqlArgs.push(querySuitePath); codeqlArgs.push(querySuitePath);
} }
if (await features.getValue(feature_flags_1.Feature.EvaluatorIntraLayerParallelismEnabled, this)) { if (await features.getValue(feature_flags_1.Feature.EvaluatorFineGrainedParallelismEnabled, this)) {
codeqlArgs.push("--intra-layer-parallelism"); codeqlArgs.push("--intra-layer-parallelism");
} }
else if (await util.codeQlVersionAbove(this, feature_flags_1.CODEQL_VERSION_INTRA_LAYER_PARALLELISM)) { else if (await util.codeQlVersionAbove(this, feature_flags_1.CODEQL_VERSION_FINE_GRAINED_PARALLELISM)) {
codeqlArgs.push("--no-intra-layer-parallelism"); codeqlArgs.push("--no-intra-layer-parallelism");
} }
await runTool(cmd, codeqlArgs); await runTool(cmd, codeqlArgs);
@ -506,10 +520,10 @@ async function getCodeQLForCmd(cmd, checkVersion) {
if (await util.codeQlVersionAbove(this, CODEQL_VERSION_FILE_BASELINE_INFORMATION)) { if (await util.codeQlVersionAbove(this, CODEQL_VERSION_FILE_BASELINE_INFORMATION)) {
codeqlArgs.push("--sarif-add-baseline-file-info"); codeqlArgs.push("--sarif-add-baseline-file-info");
} }
if (await features.getValue(feature_flags_1.Feature.SublanguageFileCoverageEnabled, this)) { if (await isSublanguageFileCoverageEnabled(config, this)) {
codeqlArgs.push("--sublanguage-file-coverage"); codeqlArgs.push("--sublanguage-file-coverage");
} }
else if (await util.codeQlVersionAbove(this, feature_flags_1.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE)) { else if (await util.codeQlVersionAbove(this, exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE)) {
codeqlArgs.push("--no-sublanguage-file-coverage"); codeqlArgs.push("--no-sublanguage-file-coverage");
} }
if (shouldExportDiagnostics) { if (shouldExportDiagnostics) {
@ -518,10 +532,15 @@ async function getCodeQLForCmd(cmd, checkVersion) {
else if (await util.codeQlVersionAbove(this, "2.12.4")) { else if (await util.codeQlVersionAbove(this, "2.12.4")) {
codeqlArgs.push("--no-sarif-include-diagnostics"); codeqlArgs.push("--no-sarif-include-diagnostics");
} }
if (await features.getValue(feature_flags_1.Feature.AnalysisSummaryV2Enabled, this)) { if (
// Analysis summary v2 links to the status page, so check the GHES version we're running on
// supports the status page.
(config.gitHubVersion.type !== util.GitHubVariant.GHES ||
semver.gte(config.gitHubVersion.version, "3.9.0")) &&
(await util.codeQlVersionAbove(this, exports.CODEQL_VERSION_ANALYSIS_SUMMARY_V2))) {
codeqlArgs.push("--new-analysis-summary"); codeqlArgs.push("--new-analysis-summary");
} }
else if (await util.codeQlVersionAbove(this, feature_flags_1.CODEQL_VERSION_ANALYSIS_SUMMARY_V2)) { else if (await util.codeQlVersionAbove(this, exports.CODEQL_VERSION_ANALYSIS_SUMMARY_V2)) {
codeqlArgs.push("--no-new-analysis-summary"); codeqlArgs.push("--no-new-analysis-summary");
} }
codeqlArgs.push(databasePath); codeqlArgs.push(databasePath);
@ -982,4 +1001,11 @@ async function getLanguageAliasingArguments(codeql) {
} }
return []; return [];
} }
async function isSublanguageFileCoverageEnabled(config, codeql) {
return (
// Sub-language file coverage is first supported in GHES 3.12.
(config.gitHubVersion.type !== util.GitHubVariant.GHES ||
semver.gte(config.gitHubVersion.version, "3.12.0")) &&
(await util.codeQlVersionAbove(codeql, exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE)));
}
//# sourceMappingURL=codeql.js.map //# sourceMappingURL=codeql.js.map

File diff suppressed because one or more lines are too long

28
lib/codeql.test.js generated
View file

@ -624,30 +624,46 @@ const injectedConfigMacro = ava_1.default.macro({
}); });
const NEW_ANALYSIS_SUMMARY_TEST_CASES = [ const NEW_ANALYSIS_SUMMARY_TEST_CASES = [
{ {
featureEnabled: true,
codeqlVersion: "2.15.0", codeqlVersion: "2.15.0",
githubVersion: {
type: util.GitHubVariant.DOTCOM,
},
flagPassed: true, flagPassed: true,
negativeFlagPassed: false, negativeFlagPassed: false,
}, },
{ {
featureEnabled: false,
codeqlVersion: "2.15.0", codeqlVersion: "2.15.0",
githubVersion: {
type: util.GitHubVariant.GHES,
version: "3.9.0",
},
flagPassed: true,
negativeFlagPassed: false,
},
{
codeqlVersion: "2.15.0",
githubVersion: {
type: util.GitHubVariant.GHES,
version: "3.8.6",
},
flagPassed: false, flagPassed: false,
negativeFlagPassed: true, negativeFlagPassed: true,
}, },
{ {
featureEnabled: false,
codeqlVersion: "2.14.6", codeqlVersion: "2.14.6",
githubVersion: {
type: util.GitHubVariant.DOTCOM,
},
flagPassed: false, flagPassed: false,
negativeFlagPassed: false, negativeFlagPassed: false,
}, },
]; ];
for (const { featureEnabled, codeqlVersion, flagPassed, negativeFlagPassed, } of NEW_ANALYSIS_SUMMARY_TEST_CASES) { for (const { codeqlVersion, flagPassed, githubVersion, negativeFlagPassed, } of NEW_ANALYSIS_SUMMARY_TEST_CASES) {
(0, ava_1.default)(`database interpret-results passes ${flagPassed (0, ava_1.default)(`database interpret-results passes ${flagPassed
? "--new-analysis-summary" ? "--new-analysis-summary"
: negativeFlagPassed : negativeFlagPassed
? "--no-new-analysis-summary" ? "--no-new-analysis-summary"
: "nothing"} for CodeQL CLI v${codeqlVersion} when the new analysis summary feature is ${featureEnabled ? "enabled" : "disabled"}`, async (t) => { : "nothing"} for CodeQL CLI v${codeqlVersion} and ${util.GitHubVariant[githubVersion.type]} ${githubVersion.version ? ` ${githubVersion.version}` : ""}`, async (t) => {
const runnerConstructorStub = stubToolRunnerConstructor(); const runnerConstructorStub = stubToolRunnerConstructor();
const codeqlObject = await codeql.getCodeQLForTesting(); const codeqlObject = await codeql.getCodeQLForTesting();
sinon sinon
@ -655,7 +671,7 @@ for (const { featureEnabled, codeqlVersion, flagPassed, negativeFlagPassed, } of
.resolves((0, testing_utils_1.makeVersionInfo)(codeqlVersion)); .resolves((0, testing_utils_1.makeVersionInfo)(codeqlVersion));
// safeWhich throws because of the test CodeQL object. // safeWhich throws because of the test CodeQL object.
sinon.stub(safeWhich, "safeWhich").resolves(""); sinon.stub(safeWhich, "safeWhich").resolves("");
await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", "", stubConfig, (0, testing_utils_1.createFeatures)(featureEnabled ? [feature_flags_1.Feature.AnalysisSummaryV2Enabled] : []), (0, logging_1.getRunnerLogger)(true)); await codeqlObject.databaseInterpretResults("", [], "", "", "", "-v", "", Object.assign({}, stubConfig, { gitHubVersion: githubVersion }), (0, testing_utils_1.createFeatures)([]), (0, logging_1.getRunnerLogger)(true));
t.is(runnerConstructorStub.firstCall.args[1].includes("--new-analysis-summary"), flagPassed, `--new-analysis-summary should${flagPassed ? "" : "n't"} be passed`); t.is(runnerConstructorStub.firstCall.args[1].includes("--new-analysis-summary"), flagPassed, `--new-analysis-summary should${flagPassed ? "" : "n't"} be passed`);
t.is(runnerConstructorStub.firstCall.args[1].includes("--no-new-analysis-summary"), negativeFlagPassed, `--no-new-analysis-summary should${negativeFlagPassed ? "" : "n't"} be passed`); t.is(runnerConstructorStub.firstCall.args[1].includes("--no-new-analysis-summary"), negativeFlagPassed, `--no-new-analysis-summary should${negativeFlagPassed ? "" : "n't"} be passed`);
}); });

File diff suppressed because one or more lines are too long

42
lib/feature-flags.js generated
View file

@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result; return result;
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.logCodeScanningConfigInCli = exports.useCodeScanningConfigInCli = exports.Features = exports.FEATURE_FLAGS_FILE_NAME = exports.featureConfig = exports.Feature = exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE = exports.CODEQL_VERSION_ANALYSIS_SUMMARY_V2 = exports.CODEQL_VERSION_INTRA_LAYER_PARALLELISM = exports.CODEQL_VERSION_BUNDLE_SEMANTICALLY_VERSIONED = void 0; exports.logCodeScanningConfigInCli = exports.useCodeScanningConfigInCli = exports.Features = exports.FEATURE_FLAGS_FILE_NAME = exports.featureConfig = exports.Feature = exports.CODEQL_VERSION_FINE_GRAINED_PARALLELISM = exports.CODEQL_VERSION_BUNDLE_SEMANTICALLY_VERSIONED = void 0;
const fs = __importStar(require("fs")); const fs = __importStar(require("fs"));
const path = __importStar(require("path")); const path = __importStar(require("path"));
const semver = __importStar(require("semver")); const semver = __importStar(require("semver"));
@ -37,18 +37,10 @@ const DEFAULT_VERSION_FEATURE_FLAG_SUFFIX = "_enabled";
*/ */
exports.CODEQL_VERSION_BUNDLE_SEMANTICALLY_VERSIONED = "2.13.4"; exports.CODEQL_VERSION_BUNDLE_SEMANTICALLY_VERSIONED = "2.13.4";
/** /**
* Versions 2.14.0+ of the CodeQL CLI support intra-layer parallelism (aka fine-grained parallelism) options, but we * Evaluator fine-grained parallelism (aka intra-layer parallelism) is only safe to enable in 2.15.1 onwards.
* limit to 2.14.6 onwards, since that's the version that has mitigations against OOM failures. * (Some earlier versions recognize the command-line flag, but they contain a bug which makes it unsafe to use).
*/ */
exports.CODEQL_VERSION_INTRA_LAYER_PARALLELISM = "2.14.6"; exports.CODEQL_VERSION_FINE_GRAINED_PARALLELISM = "2.15.1";
/**
* Versions 2.15.0+ of the CodeQL CLI support new analysis summaries.
*/
exports.CODEQL_VERSION_ANALYSIS_SUMMARY_V2 = "2.15.0";
/**
* Versions 2.15.0+ of the CodeQL CLI support sub-language file coverage information.
*/
exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE = "2.15.0";
/** /**
* Feature enablement as returned by the GitHub API endpoint. * Feature enablement as returned by the GitHub API endpoint.
* *
@ -56,24 +48,16 @@ exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE = "2.15.0";
*/ */
var Feature; var Feature;
(function (Feature) { (function (Feature) {
Feature["AnalysisSummaryV2Enabled"] = "analysis_summary_v2_enabled";
Feature["CliConfigFileEnabled"] = "cli_config_file_enabled"; Feature["CliConfigFileEnabled"] = "cli_config_file_enabled";
Feature["CodeqlJavaLombokEnabled"] = "codeql_java_lombok_enabled"; Feature["CodeqlJavaLombokEnabled"] = "codeql_java_lombok_enabled";
Feature["CppDependencyInstallation"] = "cpp_dependency_installation_enabled"; Feature["CppDependencyInstallation"] = "cpp_dependency_installation_enabled";
Feature["DisableKotlinAnalysisEnabled"] = "disable_kotlin_analysis_enabled"; Feature["DisableKotlinAnalysisEnabled"] = "disable_kotlin_analysis_enabled";
Feature["DisablePythonDependencyInstallationEnabled"] = "disable_python_dependency_installation_enabled"; Feature["DisablePythonDependencyInstallationEnabled"] = "disable_python_dependency_installation_enabled";
Feature["EvaluatorIntraLayerParallelismEnabled"] = "evaluator_intra_layer_parallelism_enabled"; Feature["EvaluatorFineGrainedParallelismEnabled"] = "evaluator_fine_grained_parallelism_enabled";
Feature["ExportDiagnosticsEnabled"] = "export_diagnostics_enabled"; Feature["ExportDiagnosticsEnabled"] = "export_diagnostics_enabled";
Feature["QaTelemetryEnabled"] = "qa_telemetry_enabled"; Feature["QaTelemetryEnabled"] = "qa_telemetry_enabled";
Feature["SublanguageFileCoverageEnabled"] = "sublanguage_file_coverage_enabled";
Feature["UploadFailedSarifEnabled"] = "upload_failed_sarif_enabled";
})(Feature || (exports.Feature = Feature = {})); })(Feature || (exports.Feature = Feature = {}));
exports.featureConfig = { exports.featureConfig = {
[Feature.AnalysisSummaryV2Enabled]: {
envVar: "CODEQL_ACTION_ANALYSIS_SUMMARY_V2",
minimumVersion: exports.CODEQL_VERSION_ANALYSIS_SUMMARY_V2,
defaultValue: false,
},
[Feature.CodeqlJavaLombokEnabled]: { [Feature.CodeqlJavaLombokEnabled]: {
envVar: "CODEQL_JAVA_LOMBOK", envVar: "CODEQL_JAVA_LOMBOK",
minimumVersion: "2.14.0", minimumVersion: "2.14.0",
@ -94,9 +78,9 @@ exports.featureConfig = {
minimumVersion: "2.11.6", minimumVersion: "2.11.6",
defaultValue: true, defaultValue: true,
}, },
[Feature.EvaluatorIntraLayerParallelismEnabled]: { [Feature.EvaluatorFineGrainedParallelismEnabled]: {
envVar: "CODEQL_EVALUATOR_INTRA_LAYER_PARALLELISM", envVar: "CODEQL_EVALUATOR_FINE_GRAINED_PARALLELISM",
minimumVersion: exports.CODEQL_VERSION_INTRA_LAYER_PARALLELISM, minimumVersion: exports.CODEQL_VERSION_FINE_GRAINED_PARALLELISM,
defaultValue: false, defaultValue: false,
}, },
[Feature.ExportDiagnosticsEnabled]: { [Feature.ExportDiagnosticsEnabled]: {
@ -109,16 +93,6 @@ exports.featureConfig = {
minimumVersion: undefined, minimumVersion: undefined,
defaultValue: false, defaultValue: false,
}, },
[Feature.SublanguageFileCoverageEnabled]: {
envVar: "CODEQL_ACTION_SUBLANGUAGE_FILE_COVERAGE",
minimumVersion: exports.CODEQL_VERSION_SUBLANGUAGE_FILE_COVERAGE,
defaultValue: false,
},
[Feature.UploadFailedSarifEnabled]: {
envVar: "CODEQL_ACTION_UPLOAD_FAILED_SARIF",
minimumVersion: "2.11.3",
defaultValue: true,
},
[Feature.DisablePythonDependencyInstallationEnabled]: { [Feature.DisablePythonDependencyInstallationEnabled]: {
envVar: "CODEQL_ACTION_DISABLE_PYTHON_DEPENDENCY_INSTALLATION", envVar: "CODEQL_ACTION_DISABLE_PYTHON_DEPENDENCY_INSTALLATION",
// Although the python extractor only started supporting not extracting installed // Although the python extractor only started supporting not extracting installed

File diff suppressed because one or more lines are too long

View file

@ -49,8 +49,8 @@ async function maybeUploadFailedSarif(config, repositoryNwo, features, logger) {
return { upload_failed_run_skipped_because: "CodeQL command not found" }; return { upload_failed_run_skipped_because: "CodeQL command not found" };
} }
const codeql = await (0, codeql_1.getCodeQL)(config.codeQLCmd); const codeql = await (0, codeql_1.getCodeQL)(config.codeQLCmd);
if (!(await features.getValue(feature_flags_1.Feature.UploadFailedSarifEnabled, codeql))) { if (!(await (0, util_1.codeQlVersionAbove)(codeql, codeql_1.CODEQL_VERSION_EXPORT_FAILED_SARIF))) {
return { upload_failed_run_skipped_because: "Feature disabled" }; return { upload_failed_run_skipped_because: "Unsupported by CodeQL CLI" };
} }
const workflow = await (0, workflow_1.getWorkflow)(logger); const workflow = await (0, workflow_1.getWorkflow)(logger);
const jobName = (0, util_1.getRequiredEnvParam)("GITHUB_JOB"); const jobName = (0, util_1.getRequiredEnvParam)("GITHUB_JOB");

View file

@ -1 +1 @@
{"version":3,"file":"init-action-post-helper.js","sourceRoot":"","sources":["../src/init-action-post-helper.ts"],"names":[],"mappings":"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"} {"version":3,"file":"init-action-post-helper.js","sourceRoot":"","sources":["../src/init-action-post-helper.ts"],"names":[],"mappings":"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"}

View file

@ -324,6 +324,7 @@ async function testFailedSarifUpload(t, actionsWorkflow, { category, databaseExi
.returns(JSON.stringify(matrix)); .returns(JSON.stringify(matrix));
const codeqlObject = await codeql.getCodeQLForTesting(); const codeqlObject = await codeql.getCodeQLForTesting();
sinon.stub(codeql, "getCodeQL").resolves(codeqlObject); sinon.stub(codeql, "getCodeQL").resolves(codeqlObject);
sinon.stub(codeqlObject, "getVersion").resolves((0, testing_utils_1.makeVersionInfo)("2.12.0"));
const databaseExportDiagnosticsStub = sinon.stub(codeqlObject, "databaseExportDiagnostics"); const databaseExportDiagnosticsStub = sinon.stub(codeqlObject, "databaseExportDiagnostics");
const diagnosticsExportStub = sinon.stub(codeqlObject, "diagnosticsExport"); const diagnosticsExportStub = sinon.stub(codeqlObject, "diagnosticsExport");
sinon.stub(workflow, "getWorkflow").resolves(actionsWorkflow); sinon.stub(workflow, "getWorkflow").resolves(actionsWorkflow);
@ -333,7 +334,7 @@ async function testFailedSarifUpload(t, actionsWorkflow, { category, databaseExi
statusReport: { raw_upload_size_bytes: 20, zipped_upload_size_bytes: 10 }, statusReport: { raw_upload_size_bytes: 20, zipped_upload_size_bytes: 10 },
}); });
const waitForProcessing = sinon.stub(uploadLib, "waitForProcessing"); const waitForProcessing = sinon.stub(uploadLib, "waitForProcessing");
const features = [feature_flags_1.Feature.UploadFailedSarifEnabled]; const features = [];
if (exportDiagnosticsEnabled) { if (exportDiagnosticsEnabled) {
features.push(feature_flags_1.Feature.ExportDiagnosticsEnabled); features.push(feature_flags_1.Feature.ExportDiagnosticsEnabled);
} }

File diff suppressed because one or more lines are too long

6
lib/init-action.js generated
View file

@ -132,7 +132,11 @@ async function run() {
toolsDownloadDurationMs = initCodeQLResult.toolsDownloadDurationMs; toolsDownloadDurationMs = initCodeQLResult.toolsDownloadDurationMs;
toolsVersion = initCodeQLResult.toolsVersion; toolsVersion = initCodeQLResult.toolsVersion;
toolsSource = initCodeQLResult.toolsSource; toolsSource = initCodeQLResult.toolsSource;
await (0, workflow_1.validateWorkflow)(codeql, logger); core.startGroup("Validating workflow");
if ((await (0, workflow_1.validateWorkflow)(codeql, logger)) === undefined) {
logger.info("Detected no issues with the code scanning workflow.");
}
core.endGroup();
config = await (0, init_1.initConfig)((0, actions_util_1.getOptionalInput)("languages"), (0, actions_util_1.getOptionalInput)("queries"), (0, actions_util_1.getOptionalInput)("packs"), registriesInput, (0, actions_util_1.getOptionalInput)("config-file"), (0, actions_util_1.getOptionalInput)("db-location"), (0, actions_util_1.getOptionalInput)("config"), getTrapCachingEnabled(), config = await (0, init_1.initConfig)((0, actions_util_1.getOptionalInput)("languages"), (0, actions_util_1.getOptionalInput)("queries"), (0, actions_util_1.getOptionalInput)("packs"), registriesInput, (0, actions_util_1.getOptionalInput)("config-file"), (0, actions_util_1.getOptionalInput)("db-location"), (0, actions_util_1.getOptionalInput)("config"), getTrapCachingEnabled(),
// Debug mode is enabled if: // Debug mode is enabled if:
// - The `init` Action is passed `debug: true`. // - The `init` Action is passed `debug: true`.

File diff suppressed because one or more lines are too long

376
node_modules/.package-lock.json generated vendored
View file

@ -1,6 +1,6 @@
{ {
"name": "codeql", "name": "codeql",
"version": "2.22.4", "version": "2.22.5",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
@ -448,9 +448,9 @@
} }
}, },
"node_modules/@eslint/js": { "node_modules/@eslint/js": {
"version": "8.51.0", "version": "8.52.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz",
"integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0" "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@ -463,12 +463,12 @@
"dev": true "dev": true
}, },
"node_modules/@humanwhocodes/config-array": { "node_modules/@humanwhocodes/config-array": {
"version": "0.11.11", "version": "0.11.13",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
"integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@humanwhocodes/object-schema": "^1.2.1", "@humanwhocodes/object-schema": "^2.0.1",
"debug": "^4.1.1", "debug": "^4.1.1",
"minimatch": "^3.0.5" "minimatch": "^3.0.5"
}, },
@ -490,9 +490,9 @@
} }
}, },
"node_modules/@humanwhocodes/object-schema": { "node_modules/@humanwhocodes/object-schema": {
"version": "1.2.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
"dev": true "dev": true
}, },
"node_modules/@nodelib/fs.scandir": { "node_modules/@nodelib/fs.scandir": {
@ -813,6 +813,24 @@
"resolved": "https://registry.npmjs.org/@schemastore/package/-/package-0.0.10.tgz", "resolved": "https://registry.npmjs.org/@schemastore/package/-/package-0.0.10.tgz",
"integrity": "sha512-D3LxMCnkgsb4LO5sDKf6E+yahM2SqpEHmkqMPDSJis5Cy/j2MgWo/g/iq0lECK0mrPWfx3hqKm2ZJlqxwbRJQA==" "integrity": "sha512-D3LxMCnkgsb4LO5sDKf6E+yahM2SqpEHmkqMPDSJis5Cy/j2MgWo/g/iq0lECK0mrPWfx3hqKm2ZJlqxwbRJQA=="
}, },
"node_modules/@sinonjs/commons": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
"integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
"dev": true,
"dependencies": {
"type-detect": "4.0.8"
}
},
"node_modules/@sinonjs/fake-timers": {
"version": "11.2.2",
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
"integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
"dev": true,
"dependencies": {
"@sinonjs/commons": "^3.0.0"
}
},
"node_modules/@sinonjs/samsam": { "node_modules/@sinonjs/samsam": {
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz",
@ -840,9 +858,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/adm-zip": { "node_modules/@types/adm-zip": {
"version": "0.5.2", "version": "0.5.3",
"resolved": "https://registry.npmjs.org/@types/adm-zip/-/adm-zip-0.5.2.tgz", "resolved": "https://registry.npmjs.org/@types/adm-zip/-/adm-zip-0.5.3.tgz",
"integrity": "sha512-33OTTnnW3onOE6HJuoqsi7T7Ojupz7zO/Vs5ddRNVCYQnu4lg05RqH/pr9eidHGvGyYfdO4uPO9cvegAMixBCQ==", "integrity": "sha512-LfeDIiFdvphelYY2aMWTyQBr5cTb1EL9Qcu19jFizdt2sL/jL+fy1fE8IgAKBFI5XfbGukaRDDM5PiJTrovAhA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
@ -860,15 +878,15 @@
"dev": true "dev": true
}, },
"node_modules/@types/js-yaml": { "node_modules/@types/js-yaml": {
"version": "4.0.7", "version": "4.0.8",
"resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.7.tgz", "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.8.tgz",
"integrity": "sha512-RJZP9WAMMr1514KbdSXkLRrKvYQacjr1+HWnY8pui/uBTBoSgD9ZGR17u/d4nb9NpERp0FkdLBe7hq8NIPBgkg==", "integrity": "sha512-m6jnPk1VhlYRiLFm3f8X9Uep761f+CK8mHyS65LutH2OhmBF0BeMEjHgg05usH8PLZMWWc/BUR9RPmkvpWnyRA==",
"dev": true "dev": true
}, },
"node_modules/@types/json-schema": { "node_modules/@types/json-schema": {
"version": "7.0.13", "version": "7.0.14",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz",
"integrity": "sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ==", "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==",
"dev": true "dev": true
}, },
"node_modules/@types/json5": { "node_modules/@types/json5": {
@ -905,9 +923,9 @@
} }
}, },
"node_modules/@types/semver": { "node_modules/@types/semver": {
"version": "7.5.3", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.3.tgz", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==", "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==",
"dev": true "dev": true
}, },
"node_modules/@types/sinon": { "node_modules/@types/sinon": {
@ -934,21 +952,21 @@
} }
}, },
"node_modules/@types/uuid": { "node_modules/@types/uuid": {
"version": "9.0.5", "version": "9.0.6",
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.5.tgz", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.6.tgz",
"integrity": "sha512-xfHdwa1FMJ082prjSJpoEI57GZITiQz10r3vEJCHa2khEFQjKy91aWKz6+zybzssCvXUwE1LQWgWVwZ4nYUvHQ==" "integrity": "sha512-BT2Krtx4xaO6iwzwMFUYvWBWkV2pr37zD68Vmp1CDV196MzczBRxuEpD6Pr395HAgebC/co7hOphs53r8V7jew=="
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "6.8.0", "version": "6.9.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.0.tgz",
"integrity": "sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==", "integrity": "sha512-lgX7F0azQwRPB7t7WAyeHWVfW1YJ9NIgd9mvGhfQpRY56X6AVf8mwM8Wol+0z4liE7XX3QOt8MN1rUKCfSjRIA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.5.1", "@eslint-community/regexpp": "^4.5.1",
"@typescript-eslint/scope-manager": "6.8.0", "@typescript-eslint/scope-manager": "6.9.0",
"@typescript-eslint/type-utils": "6.8.0", "@typescript-eslint/type-utils": "6.9.0",
"@typescript-eslint/utils": "6.8.0", "@typescript-eslint/utils": "6.9.0",
"@typescript-eslint/visitor-keys": "6.8.0", "@typescript-eslint/visitor-keys": "6.9.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.2.4", "ignore": "^5.2.4",
@ -974,15 +992,15 @@
} }
}, },
"node_modules/@typescript-eslint/parser": { "node_modules/@typescript-eslint/parser": {
"version": "6.8.0", "version": "6.9.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.8.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.0.tgz",
"integrity": "sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==", "integrity": "sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "6.8.0", "@typescript-eslint/scope-manager": "6.9.0",
"@typescript-eslint/types": "6.8.0", "@typescript-eslint/types": "6.9.0",
"@typescript-eslint/typescript-estree": "6.8.0", "@typescript-eslint/typescript-estree": "6.9.0",
"@typescript-eslint/visitor-keys": "6.8.0", "@typescript-eslint/visitor-keys": "6.9.0",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"engines": { "engines": {
@ -1002,13 +1020,13 @@
} }
}, },
"node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/scope-manager": {
"version": "6.8.0", "version": "6.9.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.0.tgz",
"integrity": "sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==", "integrity": "sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.8.0", "@typescript-eslint/types": "6.9.0",
"@typescript-eslint/visitor-keys": "6.8.0" "@typescript-eslint/visitor-keys": "6.9.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
@ -1019,13 +1037,13 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "6.8.0", "version": "6.9.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.9.0.tgz",
"integrity": "sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==", "integrity": "sha512-XXeahmfbpuhVbhSOROIzJ+b13krFmgtc4GlEuu1WBT+RpyGPIA4Y/eGnXzjbDj5gZLzpAXO/sj+IF/x2GtTMjQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "6.8.0", "@typescript-eslint/typescript-estree": "6.9.0",
"@typescript-eslint/utils": "6.8.0", "@typescript-eslint/utils": "6.9.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.0.1"
}, },
@ -1046,9 +1064,9 @@
} }
}, },
"node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/types": {
"version": "6.8.0", "version": "6.9.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.8.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.0.tgz",
"integrity": "sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==", "integrity": "sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
@ -1059,13 +1077,13 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/typescript-estree": {
"version": "6.8.0", "version": "6.9.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.0.tgz",
"integrity": "sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==", "integrity": "sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.8.0", "@typescript-eslint/types": "6.9.0",
"@typescript-eslint/visitor-keys": "6.8.0", "@typescript-eslint/visitor-keys": "6.9.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@ -1086,17 +1104,17 @@
} }
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "6.8.0", "version": "6.9.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.8.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.9.0.tgz",
"integrity": "sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==", "integrity": "sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12", "@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0", "@types/semver": "^7.5.0",
"@typescript-eslint/scope-manager": "6.8.0", "@typescript-eslint/scope-manager": "6.9.0",
"@typescript-eslint/types": "6.8.0", "@typescript-eslint/types": "6.9.0",
"@typescript-eslint/typescript-estree": "6.8.0", "@typescript-eslint/typescript-estree": "6.9.0",
"semver": "^7.5.4" "semver": "^7.5.4"
}, },
"engines": { "engines": {
@ -1111,12 +1129,12 @@
} }
}, },
"node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/visitor-keys": {
"version": "6.8.0", "version": "6.9.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.0.tgz",
"integrity": "sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==", "integrity": "sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.8.0", "@typescript-eslint/types": "6.9.0",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.1"
}, },
"engines": { "engines": {
@ -1127,6 +1145,12 @@
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
} }
}, },
"node_modules/@ungap/structured-clone": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
"integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true
},
"node_modules/abort-controller": { "node_modules/abort-controller": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
@ -1278,15 +1302,15 @@
} }
}, },
"node_modules/array-includes": { "node_modules/array-includes": {
"version": "3.1.6", "version": "3.1.7",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz",
"integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.4", "define-properties": "^1.2.0",
"es-abstract": "^1.20.4", "es-abstract": "^1.22.1",
"get-intrinsic": "^1.1.3", "get-intrinsic": "^1.2.1",
"is-string": "^1.0.7" "is-string": "^1.0.7"
}, },
"engines": { "engines": {
@ -1304,16 +1328,16 @@
} }
}, },
"node_modules/array.prototype.findlastindex": { "node_modules/array.prototype.findlastindex": {
"version": "1.2.2", "version": "1.2.3",
"resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz",
"integrity": "sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==", "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.4", "define-properties": "^1.2.0",
"es-abstract": "^1.20.4", "es-abstract": "^1.22.1",
"es-shim-unscopables": "^1.0.0", "es-shim-unscopables": "^1.0.0",
"get-intrinsic": "^1.1.3" "get-intrinsic": "^1.2.1"
}, },
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
@ -1323,14 +1347,14 @@
} }
}, },
"node_modules/array.prototype.flat": { "node_modules/array.prototype.flat": {
"version": "1.3.1", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
"integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.4", "define-properties": "^1.2.0",
"es-abstract": "^1.20.4", "es-abstract": "^1.22.1",
"es-shim-unscopables": "^1.0.0" "es-shim-unscopables": "^1.0.0"
}, },
"engines": { "engines": {
@ -1341,14 +1365,14 @@
} }
}, },
"node_modules/array.prototype.flatmap": { "node_modules/array.prototype.flatmap": {
"version": "1.3.1", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
"integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.4", "define-properties": "^1.2.0",
"es-abstract": "^1.20.4", "es-abstract": "^1.22.1",
"es-shim-unscopables": "^1.0.0" "es-shim-unscopables": "^1.0.0"
}, },
"engines": { "engines": {
@ -2470,18 +2494,19 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "8.51.0", "version": "8.52.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz",
"integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1", "@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.2", "@eslint/eslintrc": "^2.1.2",
"@eslint/js": "8.51.0", "@eslint/js": "8.52.0",
"@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/config-array": "^0.11.13",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8", "@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0",
"ajv": "^6.12.4", "ajv": "^6.12.4",
"chalk": "^4.0.0", "chalk": "^4.0.0",
"cross-spawn": "^7.0.2", "cross-spawn": "^7.0.2",
@ -2536,14 +2561,14 @@
} }
}, },
"node_modules/eslint-import-resolver-node": { "node_modules/eslint-import-resolver-node": {
"version": "0.3.7", "version": "0.3.9",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
"integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"debug": "^3.2.7", "debug": "^3.2.7",
"is-core-module": "^2.11.0", "is-core-module": "^2.13.0",
"resolve": "^1.22.1" "resolve": "^1.22.4"
} }
}, },
"node_modules/eslint-import-resolver-node/node_modules/debug": { "node_modules/eslint-import-resolver-node/node_modules/debug": {
@ -2691,26 +2716,26 @@
} }
}, },
"node_modules/eslint-plugin-import": { "node_modules/eslint-plugin-import": {
"version": "2.28.1", "version": "2.29.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz",
"integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"array-includes": "^3.1.6", "array-includes": "^3.1.7",
"array.prototype.findlastindex": "^1.2.2", "array.prototype.findlastindex": "^1.2.3",
"array.prototype.flat": "^1.3.1", "array.prototype.flat": "^1.3.2",
"array.prototype.flatmap": "^1.3.1", "array.prototype.flatmap": "^1.3.2",
"debug": "^3.2.7", "debug": "^3.2.7",
"doctrine": "^2.1.0", "doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.7", "eslint-import-resolver-node": "^0.3.9",
"eslint-module-utils": "^2.8.0", "eslint-module-utils": "^2.8.0",
"has": "^1.0.3", "hasown": "^2.0.0",
"is-core-module": "^2.13.0", "is-core-module": "^2.13.1",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
"minimatch": "^3.1.2", "minimatch": "^3.1.2",
"object.fromentries": "^2.0.6", "object.fromentries": "^2.0.7",
"object.groupby": "^1.0.0", "object.groupby": "^1.0.1",
"object.values": "^1.1.6", "object.values": "^1.1.7",
"semver": "^6.3.1", "semver": "^6.3.1",
"tsconfig-paths": "^3.14.2" "tsconfig-paths": "^3.14.2"
}, },
@ -3316,10 +3341,13 @@
} }
}, },
"node_modules/function-bind": { "node_modules/function-bind": {
"version": "1.1.1", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true "dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
}, },
"node_modules/function.prototype.name": { "node_modules/function.prototype.name": {
"version": "1.1.5", "version": "1.1.5",
@ -3584,6 +3612,18 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/hasown": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
"integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/human-signals": { "node_modules/human-signals": {
"version": "4.3.1", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
@ -3773,12 +3813,12 @@
} }
}, },
"node_modules/is-core-module": { "node_modules/is-core-module": {
"version": "2.13.0", "version": "2.13.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
"integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"has": "^1.0.3" "hasown": "^2.0.0"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
@ -4456,9 +4496,9 @@
"dev": true "dev": true
}, },
"node_modules/nise": { "node_modules/nise": {
"version": "5.1.4", "version": "5.1.5",
"resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz",
"integrity": "sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==", "integrity": "sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@sinonjs/commons": "^2.0.0", "@sinonjs/commons": "^2.0.0",
@ -4478,23 +4518,31 @@
} }
}, },
"node_modules/nise/node_modules/@sinonjs/fake-timers": { "node_modules/nise/node_modules/@sinonjs/fake-timers": {
"version": "10.0.2", "version": "10.3.0",
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
"integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@sinonjs/commons": "^2.0.0" "@sinonjs/commons": "^3.0.0"
}
},
"node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
"integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
"dev": true,
"dependencies": {
"type-detect": "4.0.8"
} }
}, },
"node_modules/nock": { "node_modules/nock": {
"version": "13.3.4", "version": "13.3.6",
"resolved": "https://registry.npmjs.org/nock/-/nock-13.3.4.tgz", "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.6.tgz",
"integrity": "sha512-DDpmn5oLEdCTclEqweOT4U7bEpuoifBMFUXem9sA4turDAZ5tlbrEoWqCorwXey8CaAw44mst5JOQeVNiwtkhw==", "integrity": "sha512-lT6YuktKroUFM+27mubf2uqQZVy2Jf+pfGzuh9N6VwdHlFoZqvi4zyxFTVR1w/ChPqGY6yxGehHp6C3wqCASCw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"debug": "^4.1.0", "debug": "^4.1.0",
"json-stringify-safe": "^5.0.1", "json-stringify-safe": "^5.0.1",
"lodash": "^4.17.21",
"propagate": "^2.0.0" "propagate": "^2.0.0"
}, },
"engines": { "engines": {
@ -4638,14 +4686,14 @@
} }
}, },
"node_modules/object.fromentries": { "node_modules/object.fromentries": {
"version": "2.0.6", "version": "2.0.7",
"resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz",
"integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.4", "define-properties": "^1.2.0",
"es-abstract": "^1.20.4" "es-abstract": "^1.22.1"
}, },
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
@ -4655,26 +4703,26 @@
} }
}, },
"node_modules/object.groupby": { "node_modules/object.groupby": {
"version": "1.0.0", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.0.tgz", "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz",
"integrity": "sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==", "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.2.0", "define-properties": "^1.2.0",
"es-abstract": "^1.21.2", "es-abstract": "^1.22.1",
"get-intrinsic": "^1.2.1" "get-intrinsic": "^1.2.1"
} }
}, },
"node_modules/object.values": { "node_modules/object.values": {
"version": "1.1.6", "version": "1.1.7",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz",
"integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"define-properties": "^1.1.4", "define-properties": "^1.2.0",
"es-abstract": "^1.20.4" "es-abstract": "^1.22.1"
}, },
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
@ -5107,12 +5155,12 @@
} }
}, },
"node_modules/resolve": { "node_modules/resolve": {
"version": "1.22.3", "version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.3.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
"integrity": "sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"is-core-module": "^2.12.0", "is-core-module": "^2.13.0",
"path-parse": "^1.0.7", "path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0" "supports-preserve-symlinks-flag": "^1.0.0"
}, },
@ -5445,16 +5493,16 @@
"dev": true "dev": true
}, },
"node_modules/sinon": { "node_modules/sinon": {
"version": "16.1.0", "version": "17.0.0",
"resolved": "https://registry.npmjs.org/sinon/-/sinon-16.1.0.tgz", "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.0.tgz",
"integrity": "sha512-ZSgzF0vwmoa8pq0GEynqfdnpEDyP1PkYmEChnkjW0Vyh8IDlyFEJ+fkMhCP0il6d5cJjPl2PUsnUSAuP5sttOQ==", "integrity": "sha512-p4lJiYKBoOEVUxxVIC9H1MM2znG1/c8gud++I2BauJA5hsz7hHsst35eurNWXTusBsIq66FzOQbZ/uMdpvbPIQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@sinonjs/commons": "^3.0.0", "@sinonjs/commons": "^3.0.0",
"@sinonjs/fake-timers": "^10.3.0", "@sinonjs/fake-timers": "^11.2.2",
"@sinonjs/samsam": "^8.0.0", "@sinonjs/samsam": "^8.0.0",
"diff": "^5.1.0", "diff": "^5.1.0",
"nise": "^5.1.4", "nise": "^5.1.5",
"supports-color": "^7.2.0" "supports-color": "^7.2.0"
}, },
"funding": { "funding": {
@ -5462,24 +5510,6 @@
"url": "https://opencollective.com/sinon" "url": "https://opencollective.com/sinon"
} }
}, },
"node_modules/sinon/node_modules/@sinonjs/commons": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz",
"integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==",
"dev": true,
"dependencies": {
"type-detect": "4.0.8"
}
},
"node_modules/sinon/node_modules/@sinonjs/fake-timers": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
"integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
"dev": true,
"dependencies": {
"@sinonjs/commons": "^3.0.0"
}
},
"node_modules/sinon/node_modules/has-flag": { "node_modules/sinon/node_modules/has-flag": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",

View file

@ -1,6 +1,6 @@
{ {
"name": "@eslint/js", "name": "@eslint/js",
"version": "8.51.0", "version": "8.52.0",
"description": "ESLint JavaScript language implementation", "description": "ESLint JavaScript language implementation",
"main": "./src/index.js", "main": "./src/index.js",
"scripts": {}, "scripts": {},

View file

@ -825,12 +825,12 @@ class ConfigArray extends Array {
const cache = this[ConfigArraySymbol.configCache]; const cache = this[ConfigArraySymbol.configCache];
// first check the cache for a filename match to avoid duplicate work // first check the cache for a filename match to avoid duplicate work
let finalConfig = cache.get(filePath); if (cache.has(filePath)) {
return cache.get(filePath);
if (finalConfig) {
return finalConfig;
} }
let finalConfig;
// next check to see if the file should be ignored // next check to see if the file should be ignored
// check if this should be ignored due to its directory // check if this should be ignored due to its directory

View file

@ -1,6 +1,6 @@
{ {
"name": "@humanwhocodes/config-array", "name": "@humanwhocodes/config-array",
"version": "0.11.11", "version": "0.11.13",
"description": "Glob-based configuration matching.", "description": "Glob-based configuration matching.",
"author": "Nicholas C. Zakas", "author": "Nicholas C. Zakas",
"main": "api.js", "main": "api.js",
@ -42,19 +42,19 @@
"node": ">=10.10.0" "node": ">=10.10.0"
}, },
"dependencies": { "dependencies": {
"@humanwhocodes/object-schema": "^1.2.1", "@humanwhocodes/object-schema": "^2.0.1",
"debug": "^4.1.1", "debug": "^4.1.1",
"minimatch": "^3.0.5" "minimatch": "^3.0.5"
}, },
"devDependencies": { "devDependencies": {
"@nitpik/javascript": "0.4.0", "@nitpik/javascript": "0.4.0",
"@nitpik/node": "0.0.5", "@nitpik/node": "0.0.5",
"chai": "4.3.8", "chai": "4.3.10",
"eslint": "8.41.0", "eslint": "8.51.0",
"esm": "3.2.25", "esm": "3.2.25",
"lint-staged": "14.0.1", "lint-staged": "15.0.2",
"mocha": "6.2.3", "mocha": "6.2.3",
"nyc": "14.1.1", "nyc": "15.1.0",
"rollup": "3.28.1", "rollup": "3.28.1",
"yorkie": "2.0.0" "yorkie": "2.0.0"
} }

View file

@ -10,12 +10,12 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [windows-latest, macOS-latest, ubuntu-latest] os: [windows-latest, macOS-latest, ubuntu-latest]
node: [8.x, 10.x, 12.x, 14.x] node: [18.x, 19.x, 20.x]
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1 uses: actions/setup-node@v3
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
- name: npm install, build, and test - name: npm install, build, and test

View file

@ -7,17 +7,17 @@ jobs:
release-please: release-please:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: GoogleCloudPlatform/release-please-action@v2 - uses: GoogleCloudPlatform/release-please-action@v3
id: release id: release
with: with:
release-type: node release-type: node
package-name: test-release-please package-name: object-schema
# The logic below handles the npm publication: # The logic below handles the npm publication:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
# these if statements ensure that a publication only occurs when # these if statements ensure that a publication only occurs when
# a new release is created: # a new release is created:
if: ${{ steps.release.outputs.release_created }} if: ${{ steps.release.outputs.release_created }}
- uses: actions/setup-node@v1 - uses: actions/setup-node@v3
with: with:
node-version: 12 node-version: 12
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'

View file

@ -1,5 +1,23 @@
# Changelog # Changelog
## [2.0.1](https://github.com/humanwhocodes/object-schema/compare/v2.0.0...v2.0.1) (2023-10-20)
### Bug Fixes
* Custom properties should be available on thrown errors ([6ca80b0](https://github.com/humanwhocodes/object-schema/commit/6ca80b001a4ffb678b9b5544fc53322117374376))
## [2.0.0](https://github.com/humanwhocodes/object-schema/compare/v1.2.1...v2.0.0) (2023-10-18)
### ⚠ BREAKING CHANGES
* Throw custom errors instead of generics.
### Features
* Throw custom errors instead of generics. ([c6c01d7](https://github.com/humanwhocodes/object-schema/commit/c6c01d71eb354bf7b1fb3e883c40f7bd9b61647c))
### [1.2.1](https://www.github.com/humanwhocodes/object-schema/compare/v1.2.0...v1.2.1) (2021-11-02) ### [1.2.1](https://www.github.com/humanwhocodes/object-schema/compare/v1.2.0...v1.2.1) (2021-11-02)

View file

@ -1,6 +1,6 @@
{ {
"name": "@humanwhocodes/object-schema", "name": "@humanwhocodes/object-schema",
"version": "1.2.1", "version": "2.0.1",
"description": "An object schema merger/validator", "description": "An object schema merger/validator",
"main": "src/index.js", "main": "src/index.js",
"directories": { "directories": {

View file

@ -62,9 +62,77 @@ function validateDefinition(name, strategy) {
} }
} }
//-----------------------------------------------------------------------------
// Errors
//-----------------------------------------------------------------------------
/**
* Error when an unexpected key is found.
*/
class UnexpectedKeyError extends Error {
/**
* Creates a new instance.
* @param {string} key The key that was unexpected.
*/
constructor(key) {
super(`Unexpected key "${key}" found.`);
}
}
/**
* Error when a required key is missing.
*/
class MissingKeyError extends Error {
/**
* Creates a new instance.
* @param {string} key The key that was missing.
*/
constructor(key) {
super(`Missing required key "${key}".`);
}
}
/**
* Error when a key requires other keys that are missing.
*/
class MissingDependentKeysError extends Error {
/**
* Creates a new instance.
* @param {string} key The key that was unexpected.
* @param {Array<string>} requiredKeys The keys that are required.
*/
constructor(key, requiredKeys) {
super(`Key "${key}" requires keys "${requiredKeys.join("\", \"")}".`);
}
}
/**
* Wrapper error for errors occuring during a merge or validate operation.
*/
class WrapperError {
/**
* Creates a new instance.
* @param {string} key The object key causing the error.
* @param {Error} source The source error.
*/
constructor(key, source) {
return Object.create(source, {
message: {
value: `Key "${key}": ` + source.message,
configurable: true,
writable: true,
enumerable: true
}
});
}
}
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Class // Main
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
/** /**
@ -159,11 +227,11 @@ class ObjectSchema {
// double check arguments // double check arguments
if (objects.length < 2) { if (objects.length < 2) {
throw new Error("merge() requires at least two arguments."); throw new TypeError("merge() requires at least two arguments.");
} }
if (objects.some(object => (object == null || typeof object !== "object"))) { if (objects.some(object => (object == null || typeof object !== "object"))) {
throw new Error("All arguments must be objects."); throw new TypeError("All arguments must be objects.");
} }
return objects.reduce((result, object) => { return objects.reduce((result, object) => {
@ -179,8 +247,7 @@ class ObjectSchema {
} }
} }
} catch (ex) { } catch (ex) {
ex.message = `Key "${key}": ` + ex.message; throw new WrapperError(key, ex);
throw ex;
} }
} }
return result; return result;
@ -200,7 +267,7 @@ class ObjectSchema {
// check to see if the key is defined // check to see if the key is defined
if (!this.hasKey(key)) { if (!this.hasKey(key)) {
throw new Error(`Unexpected key "${key}" found.`); throw new UnexpectedKeyError(key);
} }
// validate existing keys // validate existing keys
@ -209,7 +276,7 @@ class ObjectSchema {
// first check to see if any other keys are required // first check to see if any other keys are required
if (Array.isArray(strategy.requires)) { if (Array.isArray(strategy.requires)) {
if (!strategy.requires.every(otherKey => otherKey in object)) { if (!strategy.requires.every(otherKey => otherKey in object)) {
throw new Error(`Key "${key}" requires keys "${strategy.requires.join("\", \"")}".`); throw new MissingDependentKeysError(key, strategy.requires);
} }
} }
@ -217,15 +284,14 @@ class ObjectSchema {
try { try {
strategy.validate.call(strategy, object[key]); strategy.validate.call(strategy, object[key]);
} catch (ex) { } catch (ex) {
ex.message = `Key "${key}": ` + ex.message; throw new WrapperError(key, ex);
throw ex;
} }
} }
// ensure required keys aren't missing // ensure required keys aren't missing
for (const [key] of this[requiredKeys]) { for (const [key] of this[requiredKeys]) {
if (!(key in object)) { if (!(key in object)) {
throw new Error(`Missing required key "${key}".`); throw new MissingKeyError(key);
} }
} }

View file

@ -110,6 +110,54 @@ describe("ObjectSchema", () => {
}); });
it("should throw an error when merge() throws an error with a readonly message", () => {
let schema = new ObjectSchema({
foo: {
merge() {
throw {
get message() {
return "Boom!";
}
};
},
validate() {}
}
});
assert.throws(() => {
schema.merge({ foo: true }, { foo: true });
}, /Key "foo": Boom!/);
});
it("should throw an error with custom properties when merge() throws an error with custom properties", () => {
let schema = new ObjectSchema({
foo: {
merge() {
throw {
get message() {
return "Boom!";
},
booya: true
};
},
validate() {}
}
});
let errorThrown = false;
try {
schema.merge({ foo: true }, { foo: true });
} catch (ex) {
errorThrown = true;
assert.isTrue(ex.booya);
}
assert.isTrue(errorThrown);
});
it("should call the merge() strategy for one key when called", () => { it("should call the merge() strategy for one key when called", () => {
schema = new ObjectSchema({ schema = new ObjectSchema({

View file

@ -43,7 +43,7 @@ var clock = FakeTimers.createClock();
clock.setTimeout(function () { clock.setTimeout(function () {
console.log( console.log(
"The poblano is a mild chili pepper originating in the state of Puebla, Mexico." "The poblano is a mild chili pepper originating in the state of Puebla, Mexico.",
); );
}, 15); }, 15);
@ -67,6 +67,7 @@ clock instance, not the browser's internals.
Calling `install` with no arguments achieves this. You can call `uninstall` Calling `install` with no arguments achieves this. You can call `uninstall`
later to restore things as they were again. later to restore things as they were again.
Note that in NodeJS also the [timers](https://nodejs.org/api/timers.html) module will receive fake timers when using global scope.
```js ```js
// In the browser distribution, a global `FakeTimers` is already available // In the browser distribution, a global `FakeTimers` is already available
@ -146,7 +147,9 @@ The `loopLimit` argument sets the maximum number of timers that will be run when
### `var clock = FakeTimers.install([config])` ### `var clock = FakeTimers.install([config])`
Installs FakeTimers using the specified config (otherwise with epoch `0` on the global scope). The following configuration options are available Installs FakeTimers using the specified config (otherwise with epoch `0` on the global scope).
Note that in NodeJS also the [timers](https://nodejs.org/api/timers.html) module will receive fake timers when using global scope.
The following configuration options are available
| Parameter | Type | Default | Description | | Parameter | Type | Default | Description |
| -------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

View file

@ -1,7 +1,7 @@
{ {
"name": "@sinonjs/fake-timers", "name": "@sinonjs/fake-timers",
"description": "Fake JavaScript timers", "description": "Fake JavaScript timers",
"version": "10.3.0", "version": "11.2.2",
"homepage": "https://github.com/sinonjs/fake-timers", "homepage": "https://github.com/sinonjs/fake-timers",
"author": "Christian Johansen", "author": "Christian Johansen",
"repository": { "repository": {
@ -39,12 +39,12 @@
"@sinonjs/eslint-config": "^4.1.0", "@sinonjs/eslint-config": "^4.1.0",
"@sinonjs/referee-sinon": "11.0.0", "@sinonjs/referee-sinon": "11.0.0",
"husky": "^8.0.3", "husky": "^8.0.3",
"jsdom": "22.0.0", "jsdom": "22.1.0",
"lint-staged": "13.2.2", "lint-staged": "15.0.1",
"mocha": "10.2.0", "mocha": "10.2.0",
"mochify": "9.2.0", "mochify": "9.2.0",
"nyc": "15.1.0", "nyc": "15.1.0",
"prettier": "2.8.8" "prettier": "3.0.3"
}, },
"main": "./src/fake-timers-src.js", "main": "./src/fake-timers-src.js",
"dependencies": { "dependencies": {

View file

@ -1,6 +1,14 @@
"use strict"; "use strict";
const globalObject = require("@sinonjs/commons").global; const globalObject = require("@sinonjs/commons").global;
let timersModule;
if (typeof require === "function" && typeof module === "object") {
try {
timersModule = require("timers");
} catch (e) {
// ignored
}
}
/** /**
* @typedef {object} IdleDeadline * @typedef {object} IdleDeadline
@ -20,14 +28,14 @@ const globalObject = require("@sinonjs/commons").global;
/** /**
* @callback NextTick * @callback NextTick
* @param {VoidVarArgsFunc} callback - the callback to run * @param {VoidVarArgsFunc} callback - the callback to run
* @param {...*} arguments - optional arguments to call the callback with * @param {...*} args - optional arguments to call the callback with
* @returns {void} * @returns {void}
*/ */
/** /**
* @callback SetImmediate * @callback SetImmediate
* @param {VoidVarArgsFunc} callback - the callback to run * @param {VoidVarArgsFunc} callback - the callback to run
* @param {...*} arguments - optional arguments to call the callback with * @param {...*} args - optional arguments to call the callback with
* @returns {NodeImmediate} * @returns {NodeImmediate}
*/ */
@ -85,6 +93,7 @@ const globalObject = require("@sinonjs/commons").global;
* @property {function(): void} uninstall Uninstall the clock. * @property {function(): void} uninstall Uninstall the clock.
* @property {Function[]} methods - the methods that are faked * @property {Function[]} methods - the methods that are faked
* @property {boolean} [shouldClearNativeTimers] inherited from config * @property {boolean} [shouldClearNativeTimers] inherited from config
* @property {{methodName:string, original:any}[] | undefined} timersModuleMethods
*/ */
/* eslint-enable jsdoc/require-property-description */ /* eslint-enable jsdoc/require-property-description */
@ -134,8 +143,6 @@ const globalObject = require("@sinonjs/commons").global;
* @returns {FakeTimers} * @returns {FakeTimers}
*/ */
function withGlobal(_global) { function withGlobal(_global) {
const userAgent = _global.navigator && _global.navigator.userAgent;
const isRunningInIE = userAgent && userAgent.indexOf("MSIE ") > -1;
const maxTimeout = Math.pow(2, 31) - 1; //see https://heycam.github.io/webidl/#abstract-opdef-converttoint const maxTimeout = Math.pow(2, 31) - 1; //see https://heycam.github.io/webidl/#abstract-opdef-converttoint
const idCounterStart = 1e12; // arbitrarily large number to avoid collisions with native timer IDs const idCounterStart = 1e12; // arbitrarily large number to avoid collisions with native timer IDs
const NOOP = function () { const NOOP = function () {
@ -177,29 +184,12 @@ function withGlobal(_global) {
typeof _global.cancelIdleCallback === "function"; typeof _global.cancelIdleCallback === "function";
const setImmediatePresent = const setImmediatePresent =
_global.setImmediate && typeof _global.setImmediate === "function"; _global.setImmediate && typeof _global.setImmediate === "function";
const intlPresent = _global.Intl && typeof _global.Intl === "object";
// Make properties writable in IE, as per
// https://www.adequatelygood.com/Replacing-setTimeout-Globally.html
/* eslint-disable no-self-assign */
if (isRunningInIE) {
_global.setTimeout = _global.setTimeout;
_global.clearTimeout = _global.clearTimeout;
_global.setInterval = _global.setInterval;
_global.clearInterval = _global.clearInterval;
_global.Date = _global.Date;
}
// setImmediate is not a standard function
// avoid adding the prop to the window object if not present
if (setImmediatePresent) {
_global.setImmediate = _global.setImmediate;
_global.clearImmediate = _global.clearImmediate;
}
/* eslint-enable no-self-assign */
_global.clearTimeout(timeoutResult); _global.clearTimeout(timeoutResult);
const NativeDate = _global.Date; const NativeDate = _global.Date;
const NativeIntl = _global.Intl;
let uniqueTimerId = idCounterStart; let uniqueTimerId = idCounterStart;
/** /**
@ -254,7 +244,7 @@ function withGlobal(_global) {
if (l > 3 || !/^(\d\d:){0,2}\d\d?$/.test(str)) { if (l > 3 || !/^(\d\d:){0,2}\d\d?$/.test(str)) {
throw new Error( throw new Error(
"tick only understands numbers, 'm:s' and 'h:m:s'. Each part must be two digits" "tick only understands numbers, 'm:s' and 'h:m:s'. Each part must be two digits",
); );
} }
@ -323,7 +313,7 @@ function withGlobal(_global) {
*/ */
function getInfiniteLoopError(clock, job) { function getInfiniteLoopError(clock, job) {
const infiniteLoopError = new Error( const infiniteLoopError = new Error(
`Aborting after running ${clock.loopLimit} timers, assuming an infinite loop!` `Aborting after running ${clock.loopLimit} timers, assuming an infinite loop!`,
); );
if (!job.error) { if (!job.error) {
@ -333,13 +323,13 @@ function withGlobal(_global) {
// pattern never matched in Node // pattern never matched in Node
const computedTargetPattern = /target\.*[<|(|[].*?[>|\]|)]\s*/; const computedTargetPattern = /target\.*[<|(|[].*?[>|\]|)]\s*/;
let clockMethodPattern = new RegExp( let clockMethodPattern = new RegExp(
String(Object.keys(clock).join("|")) String(Object.keys(clock).join("|")),
); );
if (addTimerReturnsObject) { if (addTimerReturnsObject) {
// node.js environment // node.js environment
clockMethodPattern = new RegExp( clockMethodPattern = new RegExp(
`\\s+at (Object\\.)?(?:${Object.keys(clock).join("|")})\\s+` `\\s+at (Object\\.)?(?:${Object.keys(clock).join("|")})\\s+`,
); );
} }
@ -473,7 +463,7 @@ function withGlobal(_global) {
date, date,
hour, hour,
minute, minute,
second second,
); );
default: default:
return new NativeDate( return new NativeDate(
@ -483,7 +473,7 @@ function withGlobal(_global) {
hour, hour,
minute, minute,
second, second,
ms ms,
); );
} }
} }
@ -491,6 +481,55 @@ function withGlobal(_global) {
return mirrorDateProperties(ClockDate, NativeDate); return mirrorDateProperties(ClockDate, NativeDate);
} }
/**
* Mirror Intl by default on our fake implementation
*
* Most of the properties are the original native ones,
* but we need to take control of those that have a
* dependency on the current clock.
*
* @returns {object} the partly fake Intl implementation
*/
function createIntl() {
const ClockIntl = {};
/*
* All properties of Intl are non-enumerable, so we need
* to do a bit of work to get them out.
*/
Object.getOwnPropertyNames(NativeIntl).forEach(
(property) => (ClockIntl[property] = NativeIntl[property]),
);
ClockIntl.DateTimeFormat = function (...args) {
const realFormatter = new NativeIntl.DateTimeFormat(...args);
const formatter = {};
["formatRange", "formatRangeToParts", "resolvedOptions"].forEach(
(method) => {
formatter[method] =
realFormatter[method].bind(realFormatter);
},
);
["format", "formatToParts"].forEach((method) => {
formatter[method] = function (date) {
return realFormatter[method](date || ClockIntl.clock.now);
};
});
return formatter;
};
ClockIntl.DateTimeFormat.prototype = Object.create(
NativeIntl.DateTimeFormat.prototype,
);
ClockIntl.DateTimeFormat.supportedLocalesOf =
NativeIntl.DateTimeFormat.supportedLocalesOf;
return ClockIntl;
}
//eslint-disable-next-line jsdoc/require-jsdoc //eslint-disable-next-line jsdoc/require-jsdoc
function enqueueJob(clock, job) { function enqueueJob(clock, job) {
// enqueues a microtick-deferred task - ecma262/#sec-enqueuejob // enqueues a microtick-deferred task - ecma262/#sec-enqueuejob
@ -535,7 +574,7 @@ function withGlobal(_global) {
throw new TypeError( throw new TypeError(
`[ERR_INVALID_CALLBACK]: Callback must be a function. Received ${ `[ERR_INVALID_CALLBACK]: Callback must be a function. Received ${
timer.func timer.func
} of type ${typeof timer.func}` } of type ${typeof timer.func}`,
); );
} }
} }
@ -818,7 +857,7 @@ function withGlobal(_global) {
} }
warnOnce( warnOnce(
`FakeTimers: ${handlerName} was invoked to clear a native timer instead of one created by this library.` + `FakeTimers: ${handlerName} was invoked to clear a native timer instead of one created by this library.` +
"\nTo automatically clean-up native timers, use `shouldClearNativeTimers`." "\nTo automatically clean-up native timers, use `shouldClearNativeTimers`.",
); );
} }
@ -835,7 +874,7 @@ function withGlobal(_global) {
const clear = getClearHandler(ttype); const clear = getClearHandler(ttype);
const schedule = getScheduleHandler(timer.type); const schedule = getScheduleHandler(timer.type);
throw new Error( throw new Error(
`Cannot clear timer: timer created with ${schedule}() but cleared with ${clear}()` `Cannot clear timer: timer created with ${schedule}() but cleared with ${clear}()`,
); );
} }
} }
@ -860,7 +899,7 @@ function withGlobal(_global) {
} else if (method === "performance") { } else if (method === "performance") {
const originalPerfDescriptor = Object.getOwnPropertyDescriptor( const originalPerfDescriptor = Object.getOwnPropertyDescriptor(
clock, clock,
`_${method}` `_${method}`,
); );
if ( if (
originalPerfDescriptor && originalPerfDescriptor &&
@ -870,7 +909,7 @@ function withGlobal(_global) {
Object.defineProperty( Object.defineProperty(
_global, _global,
method, method,
originalPerfDescriptor originalPerfDescriptor,
); );
} else if (originalPerfDescriptor.configurable) { } else if (originalPerfDescriptor.configurable) {
_global[method] = clock[`_${method}`]; _global[method] = clock[`_${method}`];
@ -886,6 +925,12 @@ function withGlobal(_global) {
} }
} }
} }
if (clock.timersModuleMethods !== undefined) {
for (let j = 0; j < clock.timersModuleMethods.length; j++) {
const entry = clock.timersModuleMethods[j];
timersModule[entry.methodName] = entry.original;
}
}
} }
if (config.shouldAdvanceTime === true) { if (config.shouldAdvanceTime === true) {
@ -912,17 +957,19 @@ function withGlobal(_global) {
function hijackMethod(target, method, clock) { function hijackMethod(target, method, clock) {
clock[method].hadOwnProperty = Object.prototype.hasOwnProperty.call( clock[method].hadOwnProperty = Object.prototype.hasOwnProperty.call(
target, target,
method method,
); );
clock[`_${method}`] = target[method]; clock[`_${method}`] = target[method];
if (method === "Date") { if (method === "Date") {
const date = mirrorDateProperties(clock[method], target[method]); const date = mirrorDateProperties(clock[method], target[method]);
target[method] = date; target[method] = date;
} else if (method === "Intl") {
target[method] = clock[method];
} else if (method === "performance") { } else if (method === "performance") {
const originalPerfDescriptor = Object.getOwnPropertyDescriptor( const originalPerfDescriptor = Object.getOwnPropertyDescriptor(
target, target,
method method,
); );
// JSDOM has a read only performance field so we have to save/copy it differently // JSDOM has a read only performance field so we have to save/copy it differently
if ( if (
@ -933,12 +980,12 @@ function withGlobal(_global) {
Object.defineProperty( Object.defineProperty(
clock, clock,
`_${method}`, `_${method}`,
originalPerfDescriptor originalPerfDescriptor,
); );
const perfDescriptor = Object.getOwnPropertyDescriptor( const perfDescriptor = Object.getOwnPropertyDescriptor(
clock, clock,
method method,
); );
Object.defineProperty(target, method, perfDescriptor); Object.defineProperty(target, method, perfDescriptor);
} else { } else {
@ -951,7 +998,7 @@ function withGlobal(_global) {
Object.defineProperties( Object.defineProperties(
target[method], target[method],
Object.getOwnPropertyDescriptors(clock[method]) Object.getOwnPropertyDescriptors(clock[method]),
); );
} }
@ -973,6 +1020,7 @@ function withGlobal(_global) {
* @property {setInterval} setInterval * @property {setInterval} setInterval
* @property {clearInterval} clearInterval * @property {clearInterval} clearInterval
* @property {Date} Date * @property {Date} Date
* @property {Intl} Intl
* @property {SetImmediate=} setImmediate * @property {SetImmediate=} setImmediate
* @property {function(NodeImmediate): void=} clearImmediate * @property {function(NodeImmediate): void=} clearImmediate
* @property {function(number[]):number[]=} hrtime * @property {function(number[]):number[]=} hrtime
@ -1031,6 +1079,10 @@ function withGlobal(_global) {
timers.cancelIdleCallback = _global.cancelIdleCallback; timers.cancelIdleCallback = _global.cancelIdleCallback;
} }
if (intlPresent) {
timers.Intl = _global.Intl;
}
const originalSetTimeout = _global.setImmediate || _global.setTimeout; const originalSetTimeout = _global.setImmediate || _global.setTimeout;
/** /**
@ -1049,7 +1101,7 @@ function withGlobal(_global) {
if (NativeDate === undefined) { if (NativeDate === undefined) {
throw new Error( throw new Error(
"The global scope doesn't have a `Date` object" + "The global scope doesn't have a `Date` object" +
" (see https://github.com/sinonjs/sinon/issues/1852#issuecomment-419622780)" " (see https://github.com/sinonjs/sinon/issues/1852#issuecomment-419622780)",
); );
} }
@ -1078,7 +1130,7 @@ function withGlobal(_global) {
if (Array.isArray(prev)) { if (Array.isArray(prev)) {
if (prev[1] > 1e9) { if (prev[1] > 1e9) {
throw new TypeError( throw new TypeError(
"Number of nanoseconds can't exceed a billion" "Number of nanoseconds can't exceed a billion",
); );
} }
@ -1096,6 +1148,17 @@ function withGlobal(_global) {
return [secsSinceStart, remainderInNanos]; return [secsSinceStart, remainderInNanos];
} }
/**
* A high resolution timestamp in milliseconds.
*
* @typedef {number} DOMHighResTimeStamp
*/
/**
* performance.now()
*
* @returns {DOMHighResTimeStamp}
*/
function fakePerformanceNow() { function fakePerformanceNow() {
const hrt = hrtime(); const hrt = hrtime();
const millis = hrt[0] * 1000 + hrt[1] / 1e6; const millis = hrt[0] * 1000 + hrt[1] / 1e6;
@ -1109,9 +1172,14 @@ function withGlobal(_global) {
}; };
} }
if (intlPresent) {
clock.Intl = createIntl();
clock.Intl.clock = clock;
}
clock.requestIdleCallback = function requestIdleCallback( clock.requestIdleCallback = function requestIdleCallback(
func, func,
timeout timeout,
) { ) {
let timeToNextIdlePeriod = 0; let timeToNextIdlePeriod = 0;
@ -1147,7 +1215,7 @@ function withGlobal(_global) {
clock.setTimeout[utilPromisify.custom] = clock.setTimeout[utilPromisify.custom] =
function promisifiedSetTimeout(timeout, arg) { function promisifiedSetTimeout(timeout, arg) {
return new _global.Promise(function setTimeoutExecutor( return new _global.Promise(function setTimeoutExecutor(
resolve resolve,
) { ) {
addTimer(clock, { addTimer(clock, {
func: resolve, func: resolve,
@ -1208,7 +1276,7 @@ function withGlobal(_global) {
args: [arg], args: [arg],
immediate: true, immediate: true,
}); });
} },
); );
}; };
} }
@ -1510,6 +1578,8 @@ function withGlobal(_global) {
function doRun() { function doRun() {
originalSetTimeout(function () { originalSetTimeout(function () {
try { try {
runJobs(clock);
let numTimers; let numTimers;
if (i < clock.loopLimit) { if (i < clock.loopLimit) {
if (!clock.timers) { if (!clock.timers) {
@ -1519,7 +1589,7 @@ function withGlobal(_global) {
} }
numTimers = Object.keys( numTimers = Object.keys(
clock.timers clock.timers,
).length; ).length;
if (numTimers === 0) { if (numTimers === 0) {
resetIsNearInfiniteLimit(); resetIsNearInfiniteLimit();
@ -1565,6 +1635,7 @@ function withGlobal(_global) {
try { try {
const timer = lastTimer(clock); const timer = lastTimer(clock);
if (!timer) { if (!timer) {
runJobs(clock);
resolve(clock.now); resolve(clock.now);
} }
@ -1652,8 +1723,8 @@ function withGlobal(_global) {
) { ) {
throw new TypeError( throw new TypeError(
`FakeTimers.install called with ${String( `FakeTimers.install called with ${String(
config config,
)} install requires an object parameter` )} install requires an object parameter`,
); );
} }
@ -1661,7 +1732,7 @@ function withGlobal(_global) {
// Timers are already faked; this is a problem. // Timers are already faked; this is a problem.
// Make the user reset timers before continuing. // Make the user reset timers before continuing.
throw new TypeError( throw new TypeError(
"Can't install fake timers twice on the same global object." "Can't install fake timers twice on the same global object.",
); );
} }
@ -1674,7 +1745,7 @@ function withGlobal(_global) {
if (config.target) { if (config.target) {
throw new TypeError( throw new TypeError(
"config.target is no longer supported. Use `withGlobal(target)` instead." "config.target is no longer supported. Use `withGlobal(target)` instead.",
); );
} }
@ -1699,23 +1770,23 @@ function withGlobal(_global) {
const intervalTick = doIntervalTick.bind( const intervalTick = doIntervalTick.bind(
null, null,
clock, clock,
config.advanceTimeDelta config.advanceTimeDelta,
); );
const intervalId = _global.setInterval( const intervalId = _global.setInterval(
intervalTick, intervalTick,
config.advanceTimeDelta config.advanceTimeDelta,
); );
clock.attachedInterval = intervalId; clock.attachedInterval = intervalId;
} }
if (clock.methods.includes("performance")) { if (clock.methods.includes("performance")) {
const proto = (() => { const proto = (() => {
if (hasPerformancePrototype) {
return _global.Performance.prototype;
}
if (hasPerformanceConstructorPrototype) { if (hasPerformanceConstructorPrototype) {
return _global.performance.constructor.prototype; return _global.performance.constructor.prototype;
} }
if (hasPerformancePrototype) {
return _global.Performance.prototype;
}
})(); })();
if (proto) { if (proto) {
Object.getOwnPropertyNames(proto).forEach(function (name) { Object.getOwnPropertyNames(proto).forEach(function (name) {
@ -1729,11 +1800,13 @@ function withGlobal(_global) {
} else if ((config.toFake || []).includes("performance")) { } else if ((config.toFake || []).includes("performance")) {
// user explicitly tried to fake performance when not present // user explicitly tried to fake performance when not present
throw new ReferenceError( throw new ReferenceError(
"non-existent performance object cannot be faked" "non-existent performance object cannot be faked",
); );
} }
} }
if (_global === globalObject && timersModule) {
clock.timersModuleMethods = [];
}
for (i = 0, l = clock.methods.length; i < l; i++) { for (i = 0, l = clock.methods.length; i < l; i++) {
const nameOfMethodToReplace = clock.methods[i]; const nameOfMethodToReplace = clock.methods[i];
if (nameOfMethodToReplace === "hrtime") { if (nameOfMethodToReplace === "hrtime") {
@ -1753,6 +1826,18 @@ function withGlobal(_global) {
} else { } else {
hijackMethod(_global, nameOfMethodToReplace, clock); hijackMethod(_global, nameOfMethodToReplace, clock);
} }
if (
clock.timersModuleMethods !== undefined &&
timersModule[nameOfMethodToReplace]
) {
const original = timersModule[nameOfMethodToReplace];
clock.timersModuleMethods.push({
methodName: nameOfMethodToReplace,
original: original,
});
timersModule[nameOfMethodToReplace] =
_global[nameOfMethodToReplace];
}
} }
return clock; return clock;

View file

@ -8,9 +8,8 @@ This package contains type definitions for adm-zip (https://github.com/cthackers
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/adm-zip. Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/adm-zip.
### Additional Details ### Additional Details
* Last updated: Fri, 22 Sep 2023 18:11:03 GMT * Last updated: Tue, 17 Oct 2023 21:12:30 GMT
* Dependencies: [@types/node](https://npmjs.com/package/@types/node) * Dependencies: [@types/node](https://npmjs.com/package/@types/node)
* Global values: none
# Credits # Credits
These definitions were written by [John Vilk](https://github.com/jvilk), [Abner Oliveira](https://github.com/abner), [BendingBender](https://github.com/BendingBender), [Matthew Sainsbury](https://github.com/mattsains), and [Lei Nelissen](https://github.com/LeiNelissen). These definitions were written by [John Vilk](https://github.com/jvilk), [Abner Oliveira](https://github.com/abner), [BendingBender](https://github.com/BendingBender), [Matthew Sainsbury](https://github.com/mattsains), and [Lei Nelissen](https://github.com/LeiNelissen).

View file

@ -1,12 +1,3 @@
// Type definitions for adm-zip 0.5
// Project: https://github.com/cthackers/adm-zip
// Definitions by: John Vilk <https://github.com/jvilk>
// Abner Oliveira <https://github.com/abner>
// BendingBender <https://github.com/BendingBender>
// Matthew Sainsbury <https://github.com/mattsains>
// Lei Nelissen <https://github.com/LeiNelissen>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="node" /> /// <reference types="node" />
import * as FS from "fs"; import * as FS from "fs";

View file

@ -1,33 +1,28 @@
{ {
"name": "@types/adm-zip", "name": "@types/adm-zip",
"version": "0.5.2", "version": "0.5.3",
"description": "TypeScript definitions for adm-zip", "description": "TypeScript definitions for adm-zip",
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/adm-zip", "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/adm-zip",
"license": "MIT", "license": "MIT",
"contributors": [ "contributors": [
{ {
"name": "John Vilk", "name": "John Vilk",
"url": "https://github.com/jvilk",
"githubUsername": "jvilk" "githubUsername": "jvilk"
}, },
{ {
"name": "Abner Oliveira", "name": "Abner Oliveira",
"url": "https://github.com/abner",
"githubUsername": "abner" "githubUsername": "abner"
}, },
{ {
"name": "BendingBender", "name": "BendingBender",
"url": "https://github.com/BendingBender",
"githubUsername": "BendingBender" "githubUsername": "BendingBender"
}, },
{ {
"name": "Matthew Sainsbury", "name": "Matthew Sainsbury",
"url": "https://github.com/mattsains",
"githubUsername": "mattsains" "githubUsername": "mattsains"
}, },
{ {
"name": "Lei Nelissen", "name": "Lei Nelissen",
"url": "https://github.com/LeiNelissen",
"githubUsername": "LeiNelissen" "githubUsername": "LeiNelissen"
} }
], ],
@ -42,6 +37,6 @@
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
}, },
"typesPublisherContentHash": "760a250ea3b5679cae48f06c02648470299cac3e2afe9f0ab03cffc9d703048d", "typesPublisherContentHash": "a62098b301c7636e1b88662b5727a662ba3b1a8328d8b6937b42fc3480aa7321",
"typeScriptVersion": "4.5" "typeScriptVersion": "4.5"
} }

View file

@ -8,9 +8,8 @@ This package contains type definitions for js-yaml (https://github.com/nodeca/js
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/js-yaml. Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/js-yaml.
### Additional Details ### Additional Details
* Last updated: Tue, 10 Oct 2023 18:07:32 GMT * Last updated: Wed, 18 Oct 2023 05:47:07 GMT
* Dependencies: none * Dependencies: none
* Global values: `jsyaml`
# Credits # Credits
These definitions were written by [Bart van der Schoor](https://github.com/Bartvds), [Sebastian Clausen](https://github.com/sclausen), [ExE Boss](https://github.com/ExE-Boss), [Armaan Tobaccowalla](https://github.com/ArmaanT), and [Linus Unnebäck](https://github.com/LinusU). These definitions were written by [Bart van der Schoor](https://github.com/Bartvds), [Sebastian Clausen](https://github.com/sclausen), [ExE Boss](https://github.com/ExE-Boss), [Armaan Tobaccowalla](https://github.com/ArmaanT), and [Linus Unnebäck](https://github.com/LinusU).

View file

@ -1,13 +1,3 @@
// Type definitions for js-yaml 4.0
// Project: https://github.com/nodeca/js-yaml
// Definitions by: Bart van der Schoor <https://github.com/Bartvds>
// Sebastian Clausen <https://github.com/sclausen>
// ExE Boss <https://github.com/ExE-Boss>
// Armaan Tobaccowalla <https://github.com/ArmaanT>
// Linus Unnebäck <https://github.com/LinusU>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2
export as namespace jsyaml; export as namespace jsyaml;
export function load(str: string, opts?: LoadOptions): unknown; export function load(str: string, opts?: LoadOptions): unknown;

View file

@ -1,47 +1,38 @@
{ {
"name": "@types/js-yaml", "name": "@types/js-yaml",
"version": "4.0.7", "version": "4.0.8",
"description": "TypeScript definitions for js-yaml", "description": "TypeScript definitions for js-yaml",
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/js-yaml", "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/js-yaml",
"license": "MIT", "license": "MIT",
"contributors": [ "contributors": [
{ {
"name": "Bart van der Schoor", "name": "Bart van der Schoor",
"url": "https://github.com/Bartvds", "githubUsername": "Bartvds",
"githubUsername": "Bartvds" "url": "https://github.com/Bartvds"
}, },
{ {
"name": "Sebastian Clausen", "name": "Sebastian Clausen",
"url": "https://github.com/sclausen", "githubUsername": "sclausen",
"githubUsername": "sclausen" "url": "https://github.com/sclausen"
}, },
{ {
"name": "ExE Boss", "name": "ExE Boss",
"url": "https://github.com/ExE-Boss", "githubUsername": "ExE-Boss",
"githubUsername": "ExE-Boss" "url": "https://github.com/ExE-Boss"
}, },
{ {
"name": "Armaan Tobaccowalla", "name": "Armaan Tobaccowalla",
"url": "https://github.com/ArmaanT", "githubUsername": "ArmaanT",
"githubUsername": "ArmaanT" "url": "https://github.com/ArmaanT"
}, },
{ {
"name": "Linus Unnebäck", "name": "Linus Unnebäck",
"url": "https://github.com/LinusU", "githubUsername": "LinusU",
"githubUsername": "LinusU" "url": "https://github.com/LinusU"
} }
], ],
"main": "", "main": "",
"types": "index.d.ts", "types": "index.d.ts",
"repository": {
"type": "git",
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
"directory": "types/js-yaml"
},
"scripts": {},
"dependencies": {},
"typesPublisherContentHash": "d32382825bc8eccf65f2f4e57df065ac5911c4bafa65509d4544ac80675dec09",
"typeScriptVersion": "4.5",
"exports": { "exports": {
".": { ".": {
"types": { "types": {
@ -50,5 +41,14 @@
} }
}, },
"./package.json": "./package.json" "./package.json": "./package.json"
} },
"repository": {
"type": "git",
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
"directory": "types/js-yaml"
},
"scripts": {},
"dependencies": {},
"typesPublisherContentHash": "0d7002a2871fe96fb1b1696644afe3b7d694fa011ffe3c1829524d3e74162c23",
"typeScriptVersion": "4.5"
} }

View file

@ -2,15 +2,14 @@
> `npm install --save @types/json-schema` > `npm install --save @types/json-schema`
# Summary # Summary
This package contains type definitions for json-schema 4.0, 6.0 and (https://github.com/kriszyp/json-schema). This package contains type definitions for json-schema (https://github.com/kriszyp/json-schema).
# Details # Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema. Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema.
### Additional Details ### Additional Details
* Last updated: Fri, 15 Sep 2023 20:36:37 GMT * Last updated: Wed, 18 Oct 2023 05:47:07 GMT
* Dependencies: none * Dependencies: none
* Global values: none
# Credits # Credits
These definitions were written by [Boris Cherny](https://github.com/bcherny), [Lucian Buzzo](https://github.com/lucianbuzzo), [Roland Groza](https://github.com/rolandjitsu), and [Jason Kwok](https://github.com/JasonHK). These definitions were written by [Boris Cherny](https://github.com/bcherny), [Lucian Buzzo](https://github.com/lucianbuzzo), [Roland Groza](https://github.com/rolandjitsu), and [Jason Kwok](https://github.com/JasonHK).

View file

@ -1,12 +1,3 @@
// Type definitions for json-schema 4.0, 6.0 and 7.0
// Project: https://github.com/kriszyp/json-schema
// Definitions by: Boris Cherny <https://github.com/bcherny>
// Lucian Buzzo <https://github.com/lucianbuzzo>
// Roland Groza <https://github.com/rolandjitsu>
// Jason Kwok <https://github.com/JasonHK>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.2
// ================================================================================================== // ==================================================================================================
// JSON Schema Draft 04 // JSON Schema Draft 04
// ================================================================================================== // ==================================================================================================

View file

@ -1,29 +1,29 @@
{ {
"name": "@types/json-schema", "name": "@types/json-schema",
"version": "7.0.13", "version": "7.0.14",
"description": "TypeScript definitions for json-schema 4.0, 6.0 and", "description": "TypeScript definitions for json-schema",
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema", "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/json-schema",
"license": "MIT", "license": "MIT",
"contributors": [ "contributors": [
{ {
"name": "Boris Cherny", "name": "Boris Cherny",
"url": "https://github.com/bcherny", "githubUsername": "bcherny",
"githubUsername": "bcherny" "url": "https://github.com/bcherny"
}, },
{ {
"name": "Lucian Buzzo", "name": "Lucian Buzzo",
"url": "https://github.com/lucianbuzzo", "githubUsername": "lucianbuzzo",
"githubUsername": "lucianbuzzo" "url": "https://github.com/lucianbuzzo"
}, },
{ {
"name": "Roland Groza", "name": "Roland Groza",
"url": "https://github.com/rolandjitsu", "githubUsername": "rolandjitsu",
"githubUsername": "rolandjitsu" "url": "https://github.com/rolandjitsu"
}, },
{ {
"name": "Jason Kwok", "name": "Jason Kwok",
"url": "https://github.com/JasonHK", "githubUsername": "JasonHK",
"githubUsername": "JasonHK" "url": "https://github.com/JasonHK"
} }
], ],
"main": "", "main": "",
@ -35,6 +35,6 @@
}, },
"scripts": {}, "scripts": {},
"dependencies": {}, "dependencies": {},
"typesPublisherContentHash": "85f3277dfcda7a00b7ff8c2ad838d5d9dc8ecaccbaee5f6d53252195d6818981", "typesPublisherContentHash": "f22aa697b973e32e7a40f9183ff9e791868dd90a0354e0de39a247900e6fee2a",
"typeScriptVersion": "4.5" "typeScriptVersion": "4.5"
} }

View file

@ -8,9 +8,8 @@ This package contains type definitions for semver (https://github.com/npm/node-s
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/semver. Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/semver.
### Additional Details ### Additional Details
* Last updated: Mon, 25 Sep 2023 13:39:06 GMT * Last updated: Wed, 18 Oct 2023 18:04:04 GMT
* Dependencies: none * Dependencies: none
* Global values: none
# Credits # Credits
These definitions were written by [Bart van der Schoor](https://github.com/Bartvds), [BendingBender](https://github.com/BendingBender), [Lucian Buzzo](https://github.com/LucianBuzzo), [Klaus Meinhardt](https://github.com/ajafff), [ExE Boss](https://github.com/ExE-Boss), and [Piotr Błażejewicz](https://github.com/peterblazejewicz). These definitions were written by [Bart van der Schoor](https://github.com/Bartvds), [BendingBender](https://github.com/BendingBender), [Lucian Buzzo](https://github.com/LucianBuzzo), [Klaus Meinhardt](https://github.com/ajafff), [ExE Boss](https://github.com/ExE-Boss), and [Piotr Błażejewicz](https://github.com/peterblazejewicz).

View file

@ -1,13 +1,3 @@
// Type definitions for semver 7.5
// Project: https://github.com/npm/node-semver
// Definitions by: Bart van der Schoor <https://github.com/Bartvds>
// BendingBender <https://github.com/BendingBender>
// Lucian Buzzo <https://github.com/LucianBuzzo>
// Klaus Meinhardt <https://github.com/ajafff>
// ExE Boss <https://github.com/ExE-Boss>
// Piotr Błażejewicz <https://github.com/peterblazejewicz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// re-exports for index file // re-exports for index file
// functions for working with versions // functions for working with versions

Some files were not shown because too many files have changed in this diff Show more