From 43d600ea3e7861edb8e09ac2806c96c92f877036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Fra=C3=9F?= Date: Sun, 23 Jul 2023 09:31:44 +0200 Subject: [PATCH] [upd] node --- lib/node/node_modules/.package-lock.json | 44 +- .../node-pre-gyp/.github/workflows/codeql.yml | 74 ++ .../@mapbox/node-pre-gyp/CHANGELOG.md | 3 + .../@mapbox/node-pre-gyp/package.json | 2 +- lib/node/node_modules/detect-libc/README.md | 5 +- lib/node/node_modules/detect-libc/index.d.ts | 3 + .../detect-libc/lib/detect-libc.js | 109 ++- .../detect-libc/lib/filesystem.js | 41 + .../node_modules/detect-libc/lib/process.js | 3 + .../node_modules/detect-libc/package.json | 10 +- .../make-dir/node_modules/semver/CHANGELOG.md | 70 -- .../make-dir/node_modules/semver/package.json | 28 +- .../make-dir/node_modules/semver/semver.js | 95 +- .../node_modules/node-fetch/lib/index.es.js | 5 +- lib/node/node_modules/node-fetch/lib/index.js | 5 +- .../node_modules/node-fetch/lib/index.mjs | 5 +- lib/node/node_modules/node-fetch/package.json | 2 +- lib/node/node_modules/semver/README.md | 4 +- lib/node/node_modules/semver/classes/range.js | 5 +- .../node_modules/semver/internal/constants.js | 5 + lib/node/node_modules/semver/internal/re.js | 45 +- lib/node/node_modules/semver/package.json | 6 +- lib/node/node_modules/sqlite/CHANGELOG.md | 435 --------- lib/node/node_modules/sqlite/README.md | 532 ---------- lib/node/node_modules/sqlite/package.json | 135 --- .../{sqlite => ssl-checker}/LICENSE | 2 +- lib/node/node_modules/ssl-checker/README.md | 60 ++ .../node_modules/ssl-checker/lib/cjs/index.js | 112 +++ .../node_modules/ssl-checker/lib/es/index.js | 91 ++ .../node_modules/ssl-checker/lib/index.d.ts | 10 + .../node_modules/ssl-checker/package.json | 48 + lib/node/package-lock.json | 908 +++++++++++++++++- lib/node/package.json | 4 +- 33 files changed, 1621 insertions(+), 1285 deletions(-) create mode 100644 lib/node/node_modules/@mapbox/node-pre-gyp/.github/workflows/codeql.yml create mode 100644 lib/node/node_modules/detect-libc/lib/filesystem.js delete mode 100644 lib/node/node_modules/make-dir/node_modules/semver/CHANGELOG.md delete mode 100755 lib/node/node_modules/sqlite/CHANGELOG.md delete mode 100755 lib/node/node_modules/sqlite/README.md delete mode 100755 lib/node/node_modules/sqlite/package.json rename lib/node/node_modules/{sqlite => ssl-checker}/LICENSE (95%) mode change 100755 => 100644 create mode 100644 lib/node/node_modules/ssl-checker/README.md create mode 100644 lib/node/node_modules/ssl-checker/lib/cjs/index.js create mode 100644 lib/node/node_modules/ssl-checker/lib/es/index.js create mode 100644 lib/node/node_modules/ssl-checker/lib/index.d.ts create mode 100644 lib/node/node_modules/ssl-checker/package.json diff --git a/lib/node/node_modules/.package-lock.json b/lib/node/node_modules/.package-lock.json index 28f0da0..c850990 100644 --- a/lib/node/node_modules/.package-lock.json +++ b/lib/node/node_modules/.package-lock.json @@ -1,6 +1,6 @@ { - "name": "lib", - "lockfileVersion": 3, + "name": "node", + "lockfileVersion": 2, "requires": true, "packages": { "node_modules/@gar/promisify": { @@ -10,9 +10,9 @@ "optional": true }, "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -238,9 +238,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "engines": { "node": ">=8" } @@ -482,9 +482,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -646,9 +646,9 @@ "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" }, "node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -880,9 +880,9 @@ "optional": true }, "node_modules/semver": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -941,11 +941,6 @@ "node": ">= 10" } }, - "node_modules/sqlite": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/sqlite/-/sqlite-4.2.1.tgz", - "integrity": "sha512-Tll0Ndvnwkuv5Hn6WIbh26rZiYQORuH1t5m/or9LUpSmDmmyFG89G9fKrSeugMPxwmEIXoVxqTun4LbizTs4uw==" - }, "node_modules/sqlite3": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.6.tgz", @@ -968,6 +963,11 @@ } } }, + "node_modules/ssl-checker": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/ssl-checker/-/ssl-checker-2.0.8.tgz", + "integrity": "sha512-pIDGxablZowKR/elbm72Wk7T3lEdrcAKT4ltPsdQrpm7N6EIIvuFQpIcMNG+A/wmiymcRwFDzTd83bW6Yy5LKQ==" + }, "node_modules/ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", diff --git a/lib/node/node_modules/@mapbox/node-pre-gyp/.github/workflows/codeql.yml b/lib/node/node_modules/@mapbox/node-pre-gyp/.github/workflows/codeql.yml new file mode 100644 index 0000000..70eaa56 --- /dev/null +++ b/lib/node/node_modules/@mapbox/node-pre-gyp/.github/workflows/codeql.yml @@ -0,0 +1,74 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ "master" ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ "master" ] + schedule: + - cron: '24 5 * * 4' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'javascript' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" diff --git a/lib/node/node_modules/@mapbox/node-pre-gyp/CHANGELOG.md b/lib/node/node_modules/@mapbox/node-pre-gyp/CHANGELOG.md index b07e75c..990e929 100644 --- a/lib/node/node_modules/@mapbox/node-pre-gyp/CHANGELOG.md +++ b/lib/node/node_modules/@mapbox/node-pre-gyp/CHANGELOG.md @@ -1,5 +1,8 @@ # node-pre-gyp changelog +## 1.0.11 +- Fixes dependabot alert [CVE-2021-44906](https://nvd.nist.gov/vuln/detail/CVE-2021-44906) + ## 1.0.10 - Upgraded minimist to 1.2.6 to address dependabot alert [CVE-2021-44906](https://nvd.nist.gov/vuln/detail/CVE-2021-44906) diff --git a/lib/node/node_modules/@mapbox/node-pre-gyp/package.json b/lib/node/node_modules/@mapbox/node-pre-gyp/package.json index 34b0d3c..5e1d6fd 100644 --- a/lib/node/node_modules/@mapbox/node-pre-gyp/package.json +++ b/lib/node/node_modules/@mapbox/node-pre-gyp/package.json @@ -1,7 +1,7 @@ { "name": "@mapbox/node-pre-gyp", "description": "Node.js native addon binary install tool", - "version": "1.0.10", + "version": "1.0.11", "keywords": [ "native", "addon", diff --git a/lib/node/node_modules/detect-libc/README.md b/lib/node/node_modules/detect-libc/README.md index cd5972f..23212fd 100644 --- a/lib/node/node_modules/detect-libc/README.md +++ b/lib/node/node_modules/detect-libc/README.md @@ -8,6 +8,9 @@ Currently supports detection of GNU glibc and MUSL libc. Provides asychronous and synchronous functions for the family (e.g. `glibc`, `musl`) and version (e.g. `1.23`, `1.2.3`). +The version numbers of libc implementations +are not guaranteed to be semver-compliant. + For previous v1.x releases, please see the [v1](https://github.com/lovell/detect-libc/tree/v1) branch. @@ -147,7 +150,7 @@ if (isNonGlibcLinuxSync()) { ... } ## Licensing -Copyright 2017, 2022 Lovell Fuller +Copyright 2017 Lovell Fuller and others. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/lib/node/node_modules/detect-libc/index.d.ts b/lib/node/node_modules/detect-libc/index.d.ts index aabe808..4c0fb2b 100644 --- a/lib/node/node_modules/detect-libc/index.d.ts +++ b/lib/node/node_modules/detect-libc/index.d.ts @@ -1,3 +1,6 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + export const GLIBC: 'glibc'; export const MUSL: 'musl'; diff --git a/lib/node/node_modules/detect-libc/lib/detect-libc.js b/lib/node/node_modules/detect-libc/lib/detect-libc.js index 5b66e61..d4ea6f0 100644 --- a/lib/node/node_modules/detect-libc/lib/detect-libc.js +++ b/lib/node/node_modules/detect-libc/lib/detect-libc.js @@ -1,7 +1,14 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + 'use strict'; const childProcess = require('child_process'); const { isLinux, getReport } = require('./process'); +const { LDD_PATH, readFile, readFileSync } = require('./filesystem'); + +let cachedFamilyFilesystem; +let cachedVersionFilesystem; const command = 'getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true'; let commandOut = ''; @@ -36,6 +43,12 @@ const safeCommandSync = () => { */ const GLIBC = 'glibc'; +/** + * A Regexp constant to get the GLIBC Version. + * @type {string} + */ +const RE_GLIBC_VERSION = /GLIBC\s(\d+\.\d+)/; + /** * A String constant containing the value `musl`. * @type {string} @@ -43,6 +56,18 @@ const GLIBC = 'glibc'; */ const MUSL = 'musl'; +/** + * This string is used to find if the {@link LDD_PATH} is GLIBC + * @type {string} + */ +const GLIBC_ON_LDD = GLIBC.toUpperCase(); + +/** + * This string is used to find if the {@link LDD_PATH} is musl + * @type {string} + */ +const MUSL_ON_LDD = MUSL.toLowerCase(); + const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-'); const familyFromReport = () => { @@ -69,6 +94,40 @@ const familyFromCommand = (out) => { return null; }; +const getFamilyFromLddContent = (content) => { + if (content.includes(MUSL_ON_LDD)) { + return MUSL; + } + if (content.includes(GLIBC_ON_LDD)) { + return GLIBC; + } + return null; +}; + +const familyFromFilesystem = async () => { + if (cachedFamilyFilesystem !== undefined) { + return cachedFamilyFilesystem; + } + cachedFamilyFilesystem = null; + try { + const lddContent = await readFile(LDD_PATH); + cachedFamilyFilesystem = getFamilyFromLddContent(lddContent); + } catch (e) {} + return cachedFamilyFilesystem; +}; + +const familyFromFilesystemSync = () => { + if (cachedFamilyFilesystem !== undefined) { + return cachedFamilyFilesystem; + } + cachedFamilyFilesystem = null; + try { + const lddContent = readFileSync(LDD_PATH); + cachedFamilyFilesystem = getFamilyFromLddContent(lddContent); + } catch (e) {} + return cachedFamilyFilesystem; +}; + /** * Resolves with the libc family when it can be determined, `null` otherwise. * @returns {Promise} @@ -76,7 +135,10 @@ const familyFromCommand = (out) => { const family = async () => { let family = null; if (isLinux()) { - family = familyFromReport(); + family = await familyFromFilesystem(); + if (!family) { + family = familyFromReport(); + } if (!family) { const out = await safeCommand(); family = familyFromCommand(out); @@ -92,7 +154,10 @@ const family = async () => { const familySync = () => { let family = null; if (isLinux()) { - family = familyFromReport(); + family = familyFromFilesystemSync(); + if (!family) { + family = familyFromReport(); + } if (!family) { const out = safeCommandSync(); family = familyFromCommand(out); @@ -113,6 +178,36 @@ const isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC; */ const isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC; +const versionFromFilesystem = async () => { + if (cachedVersionFilesystem !== undefined) { + return cachedVersionFilesystem; + } + cachedVersionFilesystem = null; + try { + const lddContent = await readFile(LDD_PATH); + const versionMatch = lddContent.match(RE_GLIBC_VERSION); + if (versionMatch) { + cachedVersionFilesystem = versionMatch[1]; + } + } catch (e) {} + return cachedVersionFilesystem; +}; + +const versionFromFilesystemSync = () => { + if (cachedVersionFilesystem !== undefined) { + return cachedVersionFilesystem; + } + cachedVersionFilesystem = null; + try { + const lddContent = readFileSync(LDD_PATH); + const versionMatch = lddContent.match(RE_GLIBC_VERSION); + if (versionMatch) { + cachedVersionFilesystem = versionMatch[1]; + } + } catch (e) {} + return cachedVersionFilesystem; +}; + const versionFromReport = () => { const report = getReport(); if (report.header && report.header.glibcVersionRuntime) { @@ -141,7 +236,10 @@ const versionFromCommand = (out) => { const version = async () => { let version = null; if (isLinux()) { - version = versionFromReport(); + version = await versionFromFilesystem(); + if (!version) { + version = versionFromReport(); + } if (!version) { const out = await safeCommand(); version = versionFromCommand(out); @@ -157,7 +255,10 @@ const version = async () => { const versionSync = () => { let version = null; if (isLinux()) { - version = versionFromReport(); + version = versionFromFilesystemSync(); + if (!version) { + version = versionFromReport(); + } if (!version) { const out = safeCommandSync(); version = versionFromCommand(out); diff --git a/lib/node/node_modules/detect-libc/lib/filesystem.js b/lib/node/node_modules/detect-libc/lib/filesystem.js new file mode 100644 index 0000000..de7e007 --- /dev/null +++ b/lib/node/node_modules/detect-libc/lib/filesystem.js @@ -0,0 +1,41 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + +'use strict'; + +const fs = require('fs'); + +/** + * The path where we can find the ldd + */ +const LDD_PATH = '/usr/bin/ldd'; + +/** + * Read the content of a file synchronous + * + * @param {string} path + * @returns {string} + */ +const readFileSync = (path) => fs.readFileSync(path, 'utf-8'); + +/** + * Read the content of a file + * + * @param {string} path + * @returns {Promise} + */ +const readFile = (path) => new Promise((resolve, reject) => { + fs.readFile(path, 'utf-8', (err, data) => { + if (err) { + reject(err); + } else { + resolve(data); + } + }); +}); + +module.exports = { + LDD_PATH, + readFileSync, + readFile +}; diff --git a/lib/node/node_modules/detect-libc/lib/process.js b/lib/node/node_modules/detect-libc/lib/process.js index 8d5840f..d27fcb7 100644 --- a/lib/node/node_modules/detect-libc/lib/process.js +++ b/lib/node/node_modules/detect-libc/lib/process.js @@ -1,3 +1,6 @@ +// Copyright 2017 Lovell Fuller and others. +// SPDX-License-Identifier: Apache-2.0 + 'use strict'; const isLinux = () => process.platform === 'linux'; diff --git a/lib/node/node_modules/detect-libc/package.json b/lib/node/node_modules/detect-libc/package.json index aeb7cc1..dd8e42c 100644 --- a/lib/node/node_modules/detect-libc/package.json +++ b/lib/node/node_modules/detect-libc/package.json @@ -1,6 +1,6 @@ { "name": "detect-libc", - "version": "2.0.1", + "version": "2.0.2", "description": "Node.js module to detect the C standard library (libc) implementation family and version", "main": "lib/detect-libc.js", "files": [ @@ -8,7 +8,9 @@ "index.d.ts" ], "scripts": { - "test": "semistandard && nyc --reporter=lcov --check-coverage --branches=100 ava test/unit.js" + "test": "semistandard && nyc --reporter=lcov --check-coverage --branches=100 ava test/unit.js", + "bench": "node benchmark/detect-libc", + "bench:calls": "node benchmark/call-familySync.js && sleep 1 && node benchmark/call-isNonGlibcLinuxSync.js && sleep 1 && node benchmark/call-versionSync.js" }, "repository": { "type": "git", @@ -21,11 +23,13 @@ ], "author": "Lovell Fuller ", "contributors": [ - "Niklas Salmoukas " + "Niklas Salmoukas ", + "Vinícius Lourenço " ], "license": "Apache-2.0", "devDependencies": { "ava": "^2.4.0", + "benchmark": "^2.1.4", "nyc": "^15.1.0", "proxyquire": "^2.1.3", "semistandard": "^14.2.3" diff --git a/lib/node/node_modules/make-dir/node_modules/semver/CHANGELOG.md b/lib/node/node_modules/make-dir/node_modules/semver/CHANGELOG.md deleted file mode 100644 index f567dd3..0000000 --- a/lib/node/node_modules/make-dir/node_modules/semver/CHANGELOG.md +++ /dev/null @@ -1,70 +0,0 @@ -# changes log - -## 6.2.0 - -* Coerce numbers to strings when passed to semver.coerce() -* Add `rtl` option to coerce from right to left - -## 6.1.3 - -* Handle X-ranges properly in includePrerelease mode - -## 6.1.2 - -* Do not throw when testing invalid version strings - -## 6.1.1 - -* Add options support for semver.coerce() -* Handle undefined version passed to Range.test - -## 6.1.0 - -* Add semver.compareBuild function -* Support `*` in semver.intersects - -## 6.0 - -* Fix `intersects` logic. - - This is technically a bug fix, but since it is also a change to behavior - that may require users updating their code, it is marked as a major - version increment. - -## 5.7 - -* Add `minVersion` method - -## 5.6 - -* Move boolean `loose` param to an options object, with - backwards-compatibility protection. -* Add ability to opt out of special prerelease version handling with - the `includePrerelease` option flag. - -## 5.5 - -* Add version coercion capabilities - -## 5.4 - -* Add intersection checking - -## 5.3 - -* Add `minSatisfying` method - -## 5.2 - -* Add `prerelease(v)` that returns prerelease components - -## 5.1 - -* Add Backus-Naur for ranges -* Remove excessively cute inspection methods - -## 5.0 - -* Remove AMD/Browserified build artifacts -* Fix ltr and gtr when using the `*` range -* Fix for range `*` with a prerelease identifier diff --git a/lib/node/node_modules/make-dir/node_modules/semver/package.json b/lib/node/node_modules/make-dir/node_modules/semver/package.json index bdd442f..6b970a6 100644 --- a/lib/node/node_modules/make-dir/node_modules/semver/package.json +++ b/lib/node/node_modules/make-dir/node_modules/semver/package.json @@ -1,19 +1,26 @@ { "name": "semver", - "version": "6.3.0", + "version": "6.3.1", "description": "The semantic version parser used by npm.", "main": "semver.js", "scripts": { - "test": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags" + "test": "tap test/ --100 --timeout=30", + "lint": "echo linting disabled", + "postlint": "template-oss-check", + "template-oss-apply": "template-oss-apply --force", + "lintfix": "npm run lint -- --fix", + "snap": "tap test/ --100 --timeout=30", + "posttest": "npm run lint" }, "devDependencies": { - "tap": "^14.3.1" + "@npmcli/template-oss": "4.17.0", + "tap": "^12.7.0" }, "license": "ISC", - "repository": "https://github.com/npm/node-semver", + "repository": { + "type": "git", + "url": "https://github.com/npm/node-semver.git" + }, "bin": { "semver": "./bin/semver.js" }, @@ -22,7 +29,10 @@ "range.bnf", "semver.js" ], - "tap": { - "check-coverage": true + "author": "GitHub Inc.", + "templateOSS": { + "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", + "content": "./scripts/template-oss", + "version": "4.17.0" } } diff --git a/lib/node/node_modules/make-dir/node_modules/semver/semver.js b/lib/node/node_modules/make-dir/node_modules/semver/semver.js index 636fa43..39319c1 100644 --- a/lib/node/node_modules/make-dir/node_modules/semver/semver.js +++ b/lib/node/node_modules/make-dir/node_modules/semver/semver.js @@ -26,8 +26,11 @@ var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || // Max safe segment length for coercion. var MAX_SAFE_COMPONENT_LENGTH = 16 +var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 + // The actual regexps go on exports.re var re = exports.re = [] +var safeRe = exports.safeRe = [] var src = exports.src = [] var t = exports.tokens = {} var R = 0 @@ -36,6 +39,31 @@ function tok (n) { t[n] = R++ } +var LETTERDASHNUMBER = '[a-zA-Z0-9-]' + +// Replace some greedy regex tokens to prevent regex dos issues. These regex are +// used internally via the safeRe object since all inputs in this library get +// normalized first to trim and collapse all extra whitespace. The original +// regexes are exported for userland consumption and lower level usage. A +// future breaking change could export the safer regex only with a note that +// all input should have extra whitespace removed. +var safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], +] + +function makeSafeRe (value) { + for (var i = 0; i < safeRegexReplacements.length; i++) { + var token = safeRegexReplacements[i][0] + var max = safeRegexReplacements[i][1] + value = value + .split(token + '*').join(token + '{0,' + max + '}') + .split(token + '+').join(token + '{1,' + max + '}') + } + return value +} + // The following Regular Expressions can be used for tokenizing, // validating, and parsing SemVer version strings. @@ -45,14 +73,14 @@ function tok (n) { tok('NUMERICIDENTIFIER') src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*' tok('NUMERICIDENTIFIERLOOSE') -src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+' +src[t.NUMERICIDENTIFIERLOOSE] = '\\d+' // ## Non-numeric Identifier // Zero or more digits, followed by a letter or hyphen, and then zero or // more letters, digits, or hyphens. tok('NONNUMERICIDENTIFIER') -src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*' +src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*' // ## Main Version // Three dot-separated numeric identifiers. @@ -94,7 +122,7 @@ src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] + // Any combination of digits, letters, or hyphens. tok('BUILDIDENTIFIER') -src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+' +src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+' // ## Build Metadata // Plus sign, followed by one or more period-separated build metadata @@ -174,6 +202,7 @@ src[t.COERCE] = '(^|[^\\d])' + '(?:$|[^\\d])' tok('COERCERTL') re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g') +safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g') // Tilde ranges. // Meaning is "reasonably at or greater than" @@ -183,6 +212,7 @@ src[t.LONETILDE] = '(?:~>?)' tok('TILDETRIM') src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+' re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g') +safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g') var tildeTrimReplace = '$1~' tok('TILDE') @@ -198,6 +228,7 @@ src[t.LONECARET] = '(?:\\^)' tok('CARETTRIM') src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+' re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g') +safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g') var caretTrimReplace = '$1^' tok('CARET') @@ -219,6 +250,7 @@ src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] + // this one has to use the /g flag re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g') +safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g') var comparatorTrimReplace = '$1$2$3' // Something like `1.2.3 - 1.2.4` @@ -247,6 +279,14 @@ for (var i = 0; i < R; i++) { debug(i, src[i]) if (!re[i]) { re[i] = new RegExp(src[i]) + + // Replace all greedy whitespace to prevent regex dos issues. These regex are + // used internally via the safeRe object since all inputs in this library get + // normalized first to trim and collapse all extra whitespace. The original + // regexes are exported for userland consumption and lower level usage. A + // future breaking change could export the safer regex only with a note that + // all input should have extra whitespace removed. + safeRe[i] = new RegExp(makeSafeRe(src[i])) } } @@ -271,7 +311,7 @@ function parse (version, options) { return null } - var r = options.loose ? re[t.LOOSE] : re[t.FULL] + var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL] if (!r.test(version)) { return null } @@ -326,7 +366,7 @@ function SemVer (version, options) { this.options = options this.loose = !!options.loose - var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) + var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]) if (!m) { throw new TypeError('Invalid Version: ' + version) @@ -771,6 +811,7 @@ function Comparator (comp, options) { return new Comparator(comp, options) } + comp = comp.trim().split(/\s+/).join(' ') debug('comparator', comp, options) this.options = options this.loose = !!options.loose @@ -787,7 +828,7 @@ function Comparator (comp, options) { var ANY = {} Comparator.prototype.parse = function (comp) { - var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR] var m = comp.match(r) if (!m) { @@ -911,9 +952,16 @@ function Range (range, options) { this.loose = !!options.loose this.includePrerelease = !!options.includePrerelease - // First, split based on boolean or || + // First reduce all whitespace as much as possible so we do not have to rely + // on potentially slow regexes like \s*. This is then stored and used for + // future error messages as well. this.raw = range - this.set = range.split(/\s*\|\|\s*/).map(function (range) { + .trim() + .split(/\s+/) + .join(' ') + + // First, split based on boolean or || + this.set = this.raw.split('||').map(function (range) { return this.parseRange(range.trim()) }, this).filter(function (c) { // throw out any that are not relevant for whatever reason @@ -921,7 +969,7 @@ function Range (range, options) { }) if (!this.set.length) { - throw new TypeError('Invalid SemVer Range: ' + range) + throw new TypeError('Invalid SemVer Range: ' + this.raw) } this.format() @@ -940,20 +988,19 @@ Range.prototype.toString = function () { Range.prototype.parseRange = function (range) { var loose = this.options.loose - range = range.trim() // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] + var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE] range = range.replace(hr, hyphenReplace) debug('hyphen replace', range) // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) - debug('comparator trim', range, re[t.COMPARATORTRIM]) + range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range, safeRe[t.COMPARATORTRIM]) // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[t.TILDETRIM], tildeTrimReplace) + range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace) // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[t.CARETTRIM], caretTrimReplace) + range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace) // normalize spaces range = range.split(/\s+/).join(' ') @@ -961,7 +1008,7 @@ Range.prototype.parseRange = function (range) { // At this point, the range is completely trimmed and // ready to be split into comparators. - var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR] var set = range.split(' ').map(function (comp) { return parseComparator(comp, this.options) }, this).join(' ').split(/\s+/) @@ -1061,7 +1108,7 @@ function replaceTildes (comp, options) { } function replaceTilde (comp, options) { - var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE] return comp.replace(r, function (_, M, m, p, pr) { debug('tilde', comp, _, M, m, p, pr) var ret @@ -1102,7 +1149,7 @@ function replaceCarets (comp, options) { function replaceCaret (comp, options) { debug('caret', comp, options) - var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET] return comp.replace(r, function (_, M, m, p, pr) { debug('caret', comp, _, M, m, p, pr) var ret @@ -1161,7 +1208,7 @@ function replaceXRanges (comp, options) { function replaceXRange (comp, options) { comp = comp.trim() - var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE] return comp.replace(r, function (ret, gtlt, M, m, p, pr) { debug('xRange', comp, ret, gtlt, M, m, p, pr) var xM = isX(M) @@ -1236,7 +1283,7 @@ function replaceXRange (comp, options) { function replaceStars (comp, options) { debug('replaceStars', comp, options) // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[t.STAR], '') + return comp.trim().replace(safeRe[t.STAR], '') } // This function is passed to string.replace(re[t.HYPHENRANGE]) @@ -1562,7 +1609,7 @@ function coerce (version, options) { var match = null if (!options.rtl) { - match = version.match(re[t.COERCE]) + match = version.match(safeRe[t.COERCE]) } else { // Find the right-most coercible string that does not share // a terminus with a more left-ward coercible string. @@ -1573,17 +1620,17 @@ function coerce (version, options) { // Stop when we get a match that ends at the string end, since no // coercible string can be more right-ward without the same terminus. var next - while ((next = re[t.COERCERTL].exec(version)) && + while ((next = safeRe[t.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length) ) { if (!match || next.index + next[0].length !== match.index + match[0].length) { match = next } - re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length + safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length } // leave it in a clean state - re[t.COERCERTL].lastIndex = -1 + safeRe[t.COERCERTL].lastIndex = -1 } if (match === null) { diff --git a/lib/node/node_modules/node-fetch/lib/index.es.js b/lib/node/node_modules/node-fetch/lib/index.es.js index 79d717b..ed27a46 100644 --- a/lib/node/node_modules/node-fetch/lib/index.es.js +++ b/lib/node/node_modules/node-fetch/lib/index.es.js @@ -1738,8 +1738,11 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) { if (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) { response.once('close', function (hadError) { + // tests for socket presence, as in some situations the + // the 'socket' event is not triggered for the request + // (happens in deno), avoids `TypeError` // if a data listener is still present we didn't end cleanly - const hasDataListener = socket.listenerCount('data') > 0; + const hasDataListener = socket && socket.listenerCount('data') > 0; if (hasDataListener && !hadError) { const err = new Error('Premature close'); diff --git a/lib/node/node_modules/node-fetch/lib/index.js b/lib/node/node_modules/node-fetch/lib/index.js index 337d6e5..087f2a0 100644 --- a/lib/node/node_modules/node-fetch/lib/index.js +++ b/lib/node/node_modules/node-fetch/lib/index.js @@ -1742,8 +1742,11 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) { if (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) { response.once('close', function (hadError) { + // tests for socket presence, as in some situations the + // the 'socket' event is not triggered for the request + // (happens in deno), avoids `TypeError` // if a data listener is still present we didn't end cleanly - const hasDataListener = socket.listenerCount('data') > 0; + const hasDataListener = socket && socket.listenerCount('data') > 0; if (hasDataListener && !hadError) { const err = new Error('Premature close'); diff --git a/lib/node/node_modules/node-fetch/lib/index.mjs b/lib/node/node_modules/node-fetch/lib/index.mjs index ace669f..4ed7fa5 100644 --- a/lib/node/node_modules/node-fetch/lib/index.mjs +++ b/lib/node/node_modules/node-fetch/lib/index.mjs @@ -1736,8 +1736,11 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) { if (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) { response.once('close', function (hadError) { + // tests for socket presence, as in some situations the + // the 'socket' event is not triggered for the request + // (happens in deno), avoids `TypeError` // if a data listener is still present we didn't end cleanly - const hasDataListener = socket.listenerCount('data') > 0; + const hasDataListener = socket && socket.listenerCount('data') > 0; if (hasDataListener && !hadError) { const err = new Error('Premature close'); diff --git a/lib/node/node_modules/node-fetch/package.json b/lib/node/node_modules/node-fetch/package.json index fd4f67c..0ba36fd 100644 --- a/lib/node/node_modules/node-fetch/package.json +++ b/lib/node/node_modules/node-fetch/package.json @@ -1,6 +1,6 @@ { "name": "node-fetch", - "version": "2.6.11", + "version": "2.6.12", "description": "A light-weight module that brings window.fetch to node.js", "main": "lib/index.js", "browser": "./browser.js", diff --git a/lib/node/node_modules/semver/README.md b/lib/node/node_modules/semver/README.md index b52a5eb..53ea9b5 100644 --- a/lib/node/node_modules/semver/README.md +++ b/lib/node/node_modules/semver/README.md @@ -159,7 +159,9 @@ of primitive `operators` is: For example, the comparator `>=1.2.7` would match the versions `1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` -or `1.1.0`. +or `1.1.0`. The comparator `>1` is equivalent to `>=2.0.0` and +would match the versions `2.0.0` and `3.1.0`, but not the versions +`1.0.1` or `1.1.0`. Comparators can be joined by whitespace to form a `comparator set`, which is satisfied by the **intersection** of all of the comparators diff --git a/lib/node/node_modules/semver/classes/range.js b/lib/node/node_modules/semver/classes/range.js index 53c2540..7e7c414 100644 --- a/lib/node/node_modules/semver/classes/range.js +++ b/lib/node/node_modules/semver/classes/range.js @@ -38,7 +38,7 @@ class Range { this.set = this.raw .split('||') // map the range to a 2d array of comparators - .map(r => this.parseRange(r)) + .map(r => this.parseRange(r.trim())) // throw out any comparator lists that are empty // this generally means that it was not a valid range, which is allowed // in loose mode, but will still throw if the WHOLE range is invalid. @@ -98,15 +98,18 @@ class Range { const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] range = range.replace(hr, hyphenReplace(this.options.includePrerelease)) debug('hyphen replace', range) + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) debug('comparator trim', range) // `~ 1.2.3` => `~1.2.3` range = range.replace(re[t.TILDETRIM], tildeTrimReplace) + debug('tilde trim', range) // `^ 1.2.3` => `^1.2.3` range = range.replace(re[t.CARETTRIM], caretTrimReplace) + debug('caret trim', range) // At this point, the range is completely trimmed and // ready to be split into comparators. diff --git a/lib/node/node_modules/semver/internal/constants.js b/lib/node/node_modules/semver/internal/constants.js index 25fab1e..94be1c5 100644 --- a/lib/node/node_modules/semver/internal/constants.js +++ b/lib/node/node_modules/semver/internal/constants.js @@ -9,6 +9,10 @@ const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || // Max safe segment length for coercion. const MAX_SAFE_COMPONENT_LENGTH = 16 +// Max safe length for a build identifier. The max length minus 6 characters for +// the shortest version with a build 0.0.0+BUILD. +const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 + const RELEASE_TYPES = [ 'major', 'premajor', @@ -22,6 +26,7 @@ const RELEASE_TYPES = [ module.exports = { MAX_LENGTH, MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, MAX_SAFE_INTEGER, RELEASE_TYPES, SEMVER_SPEC_VERSION, diff --git a/lib/node/node_modules/semver/internal/re.js b/lib/node/node_modules/semver/internal/re.js index f73ef1a..21150b3 100644 --- a/lib/node/node_modules/semver/internal/re.js +++ b/lib/node/node_modules/semver/internal/re.js @@ -1,4 +1,8 @@ -const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants') +const { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH, +} = require('./constants') const debug = require('./debug') exports = module.exports = {} @@ -9,16 +13,31 @@ const src = exports.src = [] const t = exports.t = {} let R = 0 +const LETTERDASHNUMBER = '[a-zA-Z0-9-]' + +// Replace some greedy regex tokens to prevent regex dos issues. These regex are +// used internally via the safeRe object since all inputs in this library get +// normalized first to trim and collapse all extra whitespace. The original +// regexes are exported for userland consumption and lower level usage. A +// future breaking change could export the safer regex only with a note that +// all input should have extra whitespace removed. +const safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], +] + +const makeSafeRegex = (value) => { + for (const [token, max] of safeRegexReplacements) { + value = value + .split(`${token}*`).join(`${token}{0,${max}}`) + .split(`${token}+`).join(`${token}{1,${max}}`) + } + return value +} + const createToken = (name, value, isGlobal) => { - // Replace all greedy whitespace to prevent regex dos issues. These regex are - // used internally via the safeRe object since all inputs in this library get - // normalized first to trim and collapse all extra whitespace. The original - // regexes are exported for userland consumption and lower level usage. A - // future breaking change could export the safer regex only with a note that - // all input should have extra whitespace removed. - const safe = value - .split('\\s*').join('\\s{0,1}') - .split('\\s+').join('\\s') + const safe = makeSafeRegex(value) const index = R++ debug(name, index, value) t[name] = index @@ -34,13 +53,13 @@ const createToken = (name, value, isGlobal) => { // A single `0`, or a non-zero digit followed by zero or more digits. createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*') -createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+') +createToken('NUMERICIDENTIFIERLOOSE', '\\d+') // ## Non-numeric Identifier // Zero or more digits, followed by a letter or hyphen, and then zero or // more letters, digits, or hyphens. -createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*') +createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`) // ## Main Version // Three dot-separated numeric identifiers. @@ -75,7 +94,7 @@ createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] // ## Build Metadata Identifier // Any combination of digits, letters, or hyphens. -createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+') +createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`) // ## Build Metadata // Plus sign, followed by one or more period-separated build metadata diff --git a/lib/node/node_modules/semver/package.json b/lib/node/node_modules/semver/package.json index 7d0aff3..c145eca 100644 --- a/lib/node/node_modules/semver/package.json +++ b/lib/node/node_modules/semver/package.json @@ -1,6 +1,6 @@ { "name": "semver", - "version": "7.5.2", + "version": "7.5.4", "description": "The semantic version parser used by npm.", "main": "index.js", "scripts": { @@ -14,7 +14,7 @@ }, "devDependencies": { "@npmcli/eslint-config": "^4.0.0", - "@npmcli/template-oss": "4.15.1", + "@npmcli/template-oss": "4.17.0", "tap": "^16.0.0" }, "license": "ISC", @@ -53,7 +53,7 @@ "author": "GitHub Inc.", "templateOSS": { "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "4.15.1", + "version": "4.17.0", "engines": ">=10", "ciVersions": [ "10.0.0", diff --git a/lib/node/node_modules/sqlite/CHANGELOG.md b/lib/node/node_modules/sqlite/CHANGELOG.md deleted file mode 100755 index 48e7b58..0000000 --- a/lib/node/node_modules/sqlite/CHANGELOG.md +++ /dev/null @@ -1,435 +0,0 @@ -## 4.2.1 - Tue May 23 2023 00:58:29 - -**Contributor:** Blake Embrey - -- Support all SQL template libraries (#172) - -* Support all SQL template libraries - -* Remove sql-template-strings from lib - ---------- - -Co-authored-by: Theo Gravity - -## 4.2.0 (4.1.3) - Mon May 01 2023 10:52:06 - -**Contributor:** Andarist - -- move types condition to the front (#171) - -Package should have published under `4.2.0` but was also published as `4.1.3`. - -Downgrade to `4.1.2` if you are having issues and raise an issue. - -## 4.1.2 - Tue Jul 19 2022 16:51:14 - -**Contributor:** rinsuki - -- Support TS 4.7+ node16/next module mode (#164) - -## 4.1.1 - Sun Apr 24 2022 00:00:52 - -**Contributor:** Theo Gravity - -- Have native sqlite errors contain stack traces (#162) - -This ensures that errors thrown from the sqlite driver now -have stack traces and are of an `Error` type. - -Thanks to @fresheneesz for initial troubleshooting and initial -code to help fix the issue. - -This is a minor level version update as to not break implementations -that may handle errors in their own way prior to this fix. - -## 4.0.25 - Mon Mar 07 2022 08:50:06 - -**Contributor:** Theo Gravity - -- Update packages, fix tests for latest jest (#159) - -* Update packages, fix tests for latest jest - -* Update node version on ci - -## 4.0.24 - Sun Mar 06 2022 20:12:24 - -**Contributor:** fresheneesz - -- Updating exec to support passed in parameters like the other functions do. (#155) - -## 4.0.23 - Mon May 24 2021 21:17:44 - -**Contributor:** dependabot[bot] - -- Bump browserslist from 4.16.3 to 4.16.6 (#145) - -Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.16.3 to 4.16.6. -- [Release notes](https://github.com/browserslist/browserslist/releases) -- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) -- [Commits](https://github.com/browserslist/browserslist/compare/4.16.3...4.16.6) - -Signed-off-by: dependabot[bot] - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - -## 4.0.22 - Sun May 09 2021 19:59:28 - -**Contributor:** dependabot[bot] - -- Bump handlebars from 4.7.6 to 4.7.7 (#141) - -Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.7.6 to 4.7.7. -- [Release notes](https://github.com/wycats/handlebars.js/releases) -- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/master/release-notes.md) -- [Commits](https://github.com/wycats/handlebars.js/compare/v4.7.6...v4.7.7) - -Signed-off-by: dependabot[bot] - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - -## 4.0.21 - Wed Mar 31 2021 21:22:42 - -**Contributor:** Theo Gravity - -- Update packages to latest - -## 4.0.20 - Wed Mar 31 2021 20:54:37 - -**Contributor:** dependabot[bot] - -- Bump y18n from 4.0.0 to 4.0.1 (#139) - -Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. -- [Release notes](https://github.com/yargs/y18n/releases) -- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) -- [Commits](https://github.com/yargs/y18n/commits) - -Signed-off-by: dependabot[bot] - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - -## 4.0.19 - Wed Dec 30 2020 02:11:07 - -**Contributor:** dependabot[bot] - -- Bump ini from 1.3.5 to 1.3.8 (#135) - -Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.8. -- [Release notes](https://github.com/isaacs/ini/releases) -- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.8) - -Signed-off-by: dependabot[bot] - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - -## 4.0.18 - Fri Dec 04 2020 21:20:15 - -**Contributor:** dependabot[bot] - -- Bump highlight.js from 10.1.2 to 10.4.1 (#133) - -Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 10.1.2 to 10.4.1. -- [Release notes](https://github.com/highlightjs/highlight.js/releases) -- [Changelog](https://github.com/highlightjs/highlight.js/blob/master/CHANGES.md) -- [Commits](https://github.com/highlightjs/highlight.js/compare/10.1.2...10.4.1) - -Signed-off-by: dependabot[bot] - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - -## 4.0.17 - Fri Nov 13 2020 19:18:04 - -**Contributor:** Tiger Oakes - -- Add strict types for each() (#131) - -## 4.0.16 - Fri Nov 13 2020 19:15:24 - -**Contributor:** Tiger Oakes - -- Let migrations be read manually (#132) - -## 4.0.15 - Wed Sep 30 2020 16:06:20 - -**Contributor:** Paul Kiddle - -- Make down migrations optional (#129) - -## 4.0.14 - Mon Aug 10 2020 01:08:29 - -**Contributor:** Theo Gravity - -- Revert filename optional; update filename checks instead (#125) - -The `filename` property is back to being required, but empty strings are valid values for the purpose of using an anonymous disk-based database. - -Values of `undefined` or `null` for `filename` will throw. - -## 4.0.13 - Mon Aug 10 2020 00:57:58 - -**Contributor:** Theo Gravity - -- Make filename optional (#124) - -This allows for the specification of an anonymous database. - -## 4.0.12 - Mon Jul 20 2020 04:19:01 - -**Contributor:** dependabot[bot] - -- Bump lodash from 4.17.15 to 4.17.19 (#122) - -Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. -- [Release notes](https://github.com/lodash/lodash/releases) -- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) - -Signed-off-by: dependabot[bot] - -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - -## 4.0.11 - Fri Jun 12 2020 09:43:39 - -**Contributor:** Theo Gravity - -- Update readme for inserting rows (#120) - -@akc42 pointed out that the docs for `db.run` says it returns `lastId` when it should be `lastID`. - -## 4.0.10 - Wed Jun 03 2020 00:51:41 - -**Contributor:** Gustavo Rodrigues - -- Use HTTPS in README badges (#118) - -Shields.io badges were being loaded using HTTP causing mixed-content errors in the NPM page. - -## 4.0.9 - Mon May 25 2020 22:50:02 - -**Contributor:** Markus Felten - -- feat: provide native esm exports (#117) - -## 4.0.8 - Thu May 21 2020 22:59:57 - -**Contributor:** George Corney - -- Move triple-slash reference so it is recognized (#115) - -## 4.0.7 - Sun Apr 12 2020 19:43:31 - -**Contributor:** Yamavol - -- Fix typescript defs for sqlite3 loadExtension() (#112) - -## 4.0.6 - Sat Apr 11 2020 04:16:08 - -**Contributor:** Theo Gravity - -- Throw an error if two callbacks are defined for #each() - -This addresses an issue where the `sqlite3` API for `each()` uses -two callbacks, while this library only uses one for `each()`. - -An error is now thrown if two callbacks are defined when using the -`sqlite` `each()` method. - -(In `sqlite`, the second callback of `sqlite3` is used to resolve the -promise.) - -## 4.0.5 - Sun Apr 05 2020 20:13:43 - -**Contributor:** [jameswilddev](https://github.com/jameswilddev) - -- Use non-default imports rather than synthetic default imports. (#110) - -## 4.0.4 - Sun Apr 05 2020 07:44:39 - -- Fix Typescript reference issues for sqlite3 if it is not installed (#109) - -This allows the usage of the `sqlite3-offline`; library in Typescript. - -## 4.0.3 - Sun Apr 05 2020 00:01:31 - -- Fix Typescript issue where `sql-template-strings` is a forced requirement (#108) - -It should be an optional dependency and is not required for installation. - -## 4.0.2 - Sat Apr 04 2020 22:19:38 - -- Add management tools section to readme - -## 4.0.1 - Sat Apr 04 2020 21:46:39 - -New major version 4! - -This version has been written in Typescript with a target of node.js v10 or greater. - -If you are using an older version of node < 10, use the 3.x version of the library instead. - -What's new: - -- ZERO dependencies! - * This should make troubleshooting the library vs the `sqlite3` driver easier. Most issues relate - to the `sqlite3` driver vs the library. - * Allows support for alternative drivers such as `sqlite3-offline` as long as they match the `node-sqlite3` - API. -- Re-written in Typescript. -- All existing features maintained. -- Existing unit tests were cleaned up and pass, new tests added. -- Better documentation. See `README.md`. -- New CI process - pull requests merged into master will run tests, build, and auto-publish to NPM. -- Parity with the `node-sqlite3` API. - * Exceptions are `serialize` and `parallelize` (PRs are welcomed!) - -Breaking Changes: - -- `sqlite3` is no longer a dependency of this project. You must install it first -before using this wrapper library. - * This allows for usage of alternative libraries. - * This means `verbose` and `cache` modes must be enabled before using the library. - * The `README.md` file explains how to do this. -- Opening a new database has changed. See `README.md` for example. -- migrations API: `force` is now a `boolean`. -- Can no longer specify a custom `Promise` library. Uses native `Promise` instead. - - -###### [v3.0.3] -> 2019-03-22 - -- Export class types for flow [##88](https://github.com/kriasoft/node-sqlite/pull/88) - -###### [v3.0.2] -> 2019-02-14 - -- Flow: Add Flow typings [##86](https://github.com/kriasoft/node-sqlite/pull/86) - -###### [v3.0.1] -> 2019-01-28 - -- Typescript: Add cached option to open function [##81](https://github.com/kriasoft/node-sqlite/pull/81) -- Typescript: Merged declarations for methods that accepts both string and SQLStatements in Database [##80](https://github.com/kriasoft/node-sqlite/pull/80) -- Misc: Fix small typo [##84](https://github.com/kriasoft/node-sqlite/pull/84) -- Apply `npm audit` fixes (`mocha` updated to latest) - -###### [v3.0.0] -> 2018-08-22 - -- Add support for ES6 tagged template strings ([##66](https://github.com/kriasoft/node-sqlite/pull/66)) - -###### [v2.9.3] -> 2018-08-22 - -- Change baseline `sqlite3` version from `4.0.0` -> `^4.0.0` ([##71](https://github.com/kriasoft/node-sqlite/pull/71)) - -###### [v2.9.2] -> 2018-04-20 - -- Bump up baseline `sqlite3` version from `3.1.13` -> `4.0.0` ([##56](https://github.com/kriasoft/node-sqlite/pull/56)) - -###### [v2.9.1] -> 2018-01-13 - -- Expose the `sqlite3##configure` method ([##53](https://github.com/kriasoft/node-sqlite/pull/53)) -- Example fixes ([##52](https://github.com/kriasoft/node-sqlite/pull/52)) -- Example fixes ([##49](https://github.com/kriasoft/node-sqlite/pull/49)) -- Expose `sqlite3` debugging hooksk ([##48](https://github.com/kriasoft/node-sqlite/pull/48)) -- Typescript updates ([##47](https://github.com/kriasoft/node-sqlite/pull/47)) - -###### [v2.9.0] -> 2017-11-27 - -- Move away from global db object in readme ([##45](https://github.com/kriasoft/node-sqlite/pull/45)) -- Fix typescript 2.6.1 issue where *.d.ts contains executable code when it is no longer allowed ([##47](https://github.com/kriasoft/node-sqlite/pull/47)) -- Fix readme typo ([##46](https://github.com/kriasoft/node-sqlite/pull/49)) -- Bump up baseline `sqlite3` version from `3.1.8` -> `3.1.13` - -###### [v2.8.0] -> 2017-05-21 - -- Match only “down” as separator in migration files ([##32](https://github.com/kriasoft/node-sqlite/pull/32)) - -###### [v2.7.0] -> 2017-05-01 - -- Added support to use the [database object cache](https://github.com/mapbox/node-sqlite3/wiki/Caching) as an option (see readme) - -###### [v2.6.0] -> 2017-04-30 - -- Migration bug fixed where valid multiple dashes (eg a PEM string) was being removed ([##28](https://github.com/kriasoft/node-sqlite/pull/28)) - -###### [v2.5.0] -> 2017-03-23 - -- npm publish'd from the wrong area. 2.4.0 is unpublished, 2.5.0 is the latest. - -###### [v2.4.0] -> 2017-03-23 - -- Typescript updates - Make ambient declarations more useful for type inference ([##26](https://github.com/kriasoft/node-sqlite/pull/26)) - -###### [v2.3.0] -> 2017-01-31 - -- Fix a bug sorting of schemas during migrations ([##25](https://github.com/kriasoft/node-sqlite/pull/17)) - -###### [v2.2.4] -> 2016-12-10 - -- Add TypeScript definition ([##21](https://github.com/kriasoft/node-sqlite/pull/21)) - -###### [v2.2.3] -> 2016-11-10 - -- Update `sqlite3` package to 3.1.8 -- Use `external-helpers` plugin in Babel config (ref [##12](https://github.com/kriasoft/node-sqlite/issues/12)) - -###### [v2.2.2] -> 2016-11-02 - -- Fix duplicate migration application when db.migrate() is run multiple times ([##19](https://github.com/kriasoft/node-sqlite/pull/9)) - -###### [v2.2.1] -> 2016-10-26 - -- Update `sqlite3` package to 3.1.7 ([##17](https://github.com/kriasoft/node-sqlite/pull/17), [changelog](https://github.com/mapbox/node-sqlite3/blob/master/CHANGELOG.md)) - -###### [v2.2.0] -> 2016-07-22 - -- Add named parameters support (https://github.com/kriasoft/node-sqlite/pull/10) -- `Statement` now has `sql()`, `lastId()`, `changes()` - -###### [v2.0.2] -> 2016-05-21 - -- Add SQL-based migrations API: `db.migrate({ force: 'last' })` -- Add migration files examples. See `/migrations` folder. -- Add support for multiple databases: `const db = sqlite.open('db.sqlite')` -- Add async wrapper for `sqlite3` Statement object - -###### [v1.0.0] -> 2016-05-19 - -- The initial release after a couple of preview versions earlier this year -- Built the project with Babel and Rollup for Node.js v3-5, Node.js v6, Node.js vNext - (Harmony Modules) - -[unreleased]: https://github.com/kriasoft/node-sqlite/compare/v3.0.0...HEAD -[v3.0.0]: https://github.com/kriasoft/node-sqlite/compare/v2.9.3...v3.0.0 -[v2.9.3]: https://github.com/kriasoft/node-sqlite/compare/v2.9.2...v2.9.3 -[v2.9.2]: https://github.com/kriasoft/node-sqlite/compare/v2.9.1...v2.9.2 -[v2.7.0]: https://github.com/kriasoft/node-sqlite/compare/v2.6.0...v2.7.0 -[v2.6.0]: https://github.com/kriasoft/node-sqlite/compare/v2.5.0...v2.6.0 -[v2.5.0]: https://github.com/kriasoft/node-sqlite/compare/v2.4.0...v2.5.0 -[v2.4.0]: https://github.com/kriasoft/node-sqlite/compare/v2.3.0...v2.4.0 -[v2.3.0]: https://github.com/kriasoft/node-sqlite/compare/v2.2.4...v2.3.0 -[v2.2.4]: https://github.com/kriasoft/node-sqlite/compare/v2.2.3...v2.2.4 -[v2.2.3]: https://github.com/kriasoft/node-sqlite/compare/v2.2.2...v2.2.3 -[v2.2.2]: https://github.com/kriasoft/node-sqlite/compare/v2.2.1...v2.2.2 -[v2.2.1]: https://github.com/kriasoft/node-sqlite/compare/v2.2.0...v2.2.1 -[v2.2.0]: https://github.com/kriasoft/node-sqlite/compare/v2.0.2...v2.2.0 -[v2.0.2]: https://github.com/kriasoft/node-sqlite/compare/v1.0.0...v2.0.2 -[v1.0.0]: https://github.com/kriasoft/node-sqlite/compare/45c1f7904abca55510b45415fe75dccbfc3109a1...v1.0.0 diff --git a/lib/node/node_modules/sqlite/README.md b/lib/node/node_modules/sqlite/README.md deleted file mode 100755 index 9bb6f10..0000000 --- a/lib/node/node_modules/sqlite/README.md +++ /dev/null @@ -1,532 +0,0 @@ -# SQLite Client for Node.js Apps - -[![NPM version](https://img.shields.io/npm/v/sqlite.svg?style=flat-square)](https://www.npmjs.com/package/sqlite) -[![CircleCI](https://circleci.com/gh/kriasoft/node-sqlite.svg?style=svg)](https://circleci.com/gh/kriasoft/node-sqlite) -![built with typescript](https://camo.githubusercontent.com/92e9f7b1209bab9e3e9cd8cdf62f072a624da461/68747470733a2f2f666c61742e62616467656e2e6e65742f62616467652f4275696c74253230576974682f547970655363726970742f626c7565) -[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) - -> A wrapper library written in Typescript with **ZERO** dependencies that adds ES6 promises -> and SQL-based migrations API to [sqlite3](https://github.com/mapbox/node-sqlite3/) ([docs](https://github.com/mapbox/node-sqlite3/wiki)). - -**note** v4 of `sqlite` has breaking changes compared to v3! Please see `CHANGELOG.md` for more details. - - - -- [Installation](#installation) - - [Install `sqlite3`](#install-sqlite3) - - [Install `sqlite`](#install-sqlite) -- [Usage](#usage) - - [Opening the database](#opening-the-database) - - [Without caching](#without-caching) - - [With caching](#with-caching) - - [Enable verbose / debug mode](#enable-verbose--debug-mode) - - [Tracing SQL errors](#tracing-sql-errors) - - [With a custom driver](#with-a-custom-driver) - - [Opening multiple databases](#opening-multiple-databases) - - [`open` config params](#open-config-params) - - [Examples](#examples) - - [Creating a table and inserting data](#creating-a-table-and-inserting-data) - - [Getting a single row](#getting-a-single-row) - - [Getting many rows](#getting-many-rows) - - [Inserting rows](#inserting-rows) - - [Updating rows](#updating-rows) - - [Prepared statement](#prepared-statement) - - [`each()`](#each) - - [Get the driver instance](#get-the-driver-instance) - - [Closing the database](#closing-the-database) - - [ES6 tagged template strings](#es6-tagged-template-strings) - - [Migrations](#migrations) -- [Typescript tricks](#typescript-tricks) - - [Import interfaces from sqlite](#import-interfaces-from-sqlite) - - [Specify typings for a specific database driver](#specify-typings-for-a-specific-database-driver) - - [Use generics to get better typings on your rows](#use-generics-to-get-better-typings-on-your-rows) - - [Get example](#get-example) - - [All example](#all-example) -- [API Documentation](#api-documentation) -- [Management Tools](#management-tools) -- [Alternative SQLite libraries](#alternative-sqlite-libraries) -- [References](#references) -- [License](#license) - - - -## Installation - -### Install `sqlite3` - -Most people who use this library will use [sqlite3](https://github.com/mapbox/node-sqlite3/) -as the database driver. - -Any library that conforms to the `sqlite3` ([API](https://github.com/mapbox/node-sqlite3/wiki/API)) -should also work. - -`$ npm install sqlite3 --save` - -### Install `sqlite` - -```sh -# v4 of sqlite is targeted for nodejs 10 and on. -$ npm install sqlite --save - -# If you need a legacy version for an older version of nodejs -# install v3 instead, and look at the v3 branch readme for usage details -$ npm install sqlite@3 --save -``` - -## Usage - -This module has the same API as the original `sqlite3` library ([docs](https://github.com/mapbox/node-sqlite3/wiki/API)), -except that all its API methods return ES6 Promises and do not accept callback arguments (with the exception of `each()`). - -### Opening the database - -#### Without caching - -```typescript -import sqlite3 from 'sqlite3' -import { open } from 'sqlite' - -// this is a top-level await -(async () => { - // open the database - const db = await open({ - filename: '/tmp/database.db', - driver: sqlite3.Database - }) -})() -``` -or - -```typescript -import sqlite3 from 'sqlite3' -import { open } from 'sqlite' - -open({ - filename: '/tmp/database.db', - driver: sqlite3.Database -}).then((db) => { - // do your thing -}) -``` - -or - -```typescript -import sqlite3 from 'sqlite3' -import { open } from 'sqlite' - -// you would have to import / invoke this in another file -export async function openDb () { - return open({ - filename: '/tmp/database.db', - driver: sqlite3.Database - }) -} -``` - -#### With caching - -If you want to enable the [database object cache](https://github.com/mapbox/node-sqlite3/wiki/Caching) - -```typescript -import sqlite3 from 'sqlite3' -import { open } from 'sqlite' - -(async () => { - const db = await open({ - filename: '/tmp/database.db', - driver: sqlite3.cached.Database - }) -})() -``` - -#### Enable verbose / debug mode - -```typescript -import sqlite3 from 'sqlite3' - -sqlite3.verbose() -``` - -#### Tracing SQL errors - -For more info, see this [doc](https://github.com/mapbox/node-sqlite3/wiki/Debugging#databaseontrace-callback). - -```typescript -db.on('trace', (data) => { - -}) -``` - -#### With a custom driver - -You can use an alternative library to `sqlite3` as long as it conforms to the `sqlite3` [API](https://github.com/mapbox/node-sqlite3/wiki/API). - -For example, using `sqlite3-offline-next`: - -```typescript -import sqlite3Offline from 'sqlite3-offline-next' -import { open } from 'sqlite' - -(async () => { - const db = await open({ - filename: '/tmp/database.db', - driver: sqlite3Offline.Database - }) -})() -``` - -#### Opening multiple databases - -```typescript -import sqlite3 from 'sqlite3' -import { open } from 'sqlite' - -(async () => { - const [db1, db2] = await Promise.all([ - open({ - filename: '/tmp/database.db', - driver: sqlite3.Database - }), - open({ - filename: '/tmp/database2.db', - driver: sqlite3.Database - }), - ]) - - await db1.migrate({ - migrationsPath: '...' - }) - - await db2.migrate({ - migrationsPath: '...' - }) -})() -``` - -#### `open` config params - -```typescript - -// db is an instance of `sqlite#Database` -// which is a wrapper around `sqlite3#Database` -const db = await open({ - /** - * Valid values are filenames, ":memory:" for an anonymous in-memory - * database and an empty string for an anonymous disk-based database. - * Anonymous databases are not persisted and when closing the database - * handle, their contents are lost. - */ - filename: string - - /** - * One or more of sqlite3.OPEN_READONLY, sqlite3.OPEN_READWRITE and - * sqlite3.OPEN_CREATE. The default value is OPEN_READWRITE | OPEN_CREATE. - */ - mode?: number - - /** - * The database driver. Most will install `sqlite3` and use the `Database` class from it. - * As long as the library you are using conforms to the `sqlite3` API, you can use it as - * the driver. - * - * @example - * - * ``` - * import sqlite from 'sqlite3' - * - * const driver = sqlite.Database - * ``` - */ - driver: any -}) -``` - -### Examples - -- See the `src/**/__tests__` directory for more example usages -- See the `docs/` directory for full documentation. -- Also visit the `sqlite3` library [API docs](https://github.com/mapbox/node-sqlite3/wiki/API) - -#### Creating a table and inserting data - -```typescript -await db.exec('CREATE TABLE tbl (col TEXT)') -await db.exec('INSERT INTO tbl VALUES ("test")') -``` - -#### Getting a single row - -```typescript -const result = await db.get('SELECT col FROM tbl WHERE col = ?', 'test') - -// { col: 'test' } -``` - -```typescript -const result = await db.get('SELECT col FROM tbl WHERE col = ?', ['test']) - -// { col: 'test' } -``` - -```typescript -const result = await db.get('SELECT col FROM tbl WHERE col = :test', { - ':test': 'test' -}) - -// { col: 'test' } -``` - -#### Getting many rows - -```typescript -const result = await db.all('SELECT col FROM tbl') - -// [{ col: 'test' }] -``` - -#### Inserting rows - -```typescript -const result = await db.run( - 'INSERT INTO tbl (col) VALUES (?)', - 'foo' -) - -/* -{ - // row ID of the inserted row - lastID: 1, - // instance of `sqlite#Statement` - // which is a wrapper around `sqlite3#Statement` - stmt: -} -*/ -``` - -```typescript -const result = await db.run('INSERT INTO tbl(col) VALUES (:col)', { - ':col': 'something' -}) -``` - -#### Updating rows - -```typescript -const result = await db.run( - 'UPDATE tbl SET col = ? WHERE col = ?', - 'foo', - 'test' -) - -/* -{ - // number of rows changed - changes: 1, - // instance of `sqlite#Statement` - // which is a wrapper around `sqlite3#Statement` - stmt: -} -*/ -``` - -#### Prepared statement - -```typescript -// stmt is an instance of `sqlite#Statement` -// which is a wrapper around `sqlite3#Statement` -const stmt = await db.prepare('SELECT col FROM tbl WHERE 1 = ? AND 5 = ?5') -await stmt.bind({ 1: 1, 5: 5 }) -let result = await stmt.get() -// { col: 'some text' } -``` - -```typescript -const stmt = await db.prepare( - 'SELECT col FROM tbl WHERE 13 = @thirteen ORDER BY col DESC' -) - -const result = await stmt.all({ '@thirteen': 13 }) -``` - -#### `each()` - -`each()` is a bit different compared to the other operations due to its underlying [implementation](https://github.com/TryGhost/node-sqlite3/wiki/API#databaseeachsql-param--callback-complete). - -The function signature looks like this: - -`async each (sql, [...params], callback)` - -- `callback(err, row)` is triggered when the database has a row to return -- The promise resolves when all rows have returned with the number of rows returned. - -```typescript -try { - // You need to wrap this in a try / catch for SQL parse / connection errors - const rowsCount = await db.each( - 'SELECT col FROM tbl WHERE ROWID = ?', - [2], - (err, row) => { - if (err) { - // This would be if there is an error specific to the row result - throw err - } - - // row = { col: 'other thing' } - } - ) -} catch (e) { - throw e -} - -// rowsCount = 1 -``` - -#### Get the driver instance - -Useful if you need to call methods that are not supported yet. - -```typescript -const rawDb = db.getDatabaseInstance() -const rawStatement = stmt.getStatementInstance() -``` - -#### Closing the database - -```typescript -await db.close() -``` - -### ES6 tagged template strings - -This module is compatible with [sql-template-strings](https://www.npmjs.com/package/sql-template-strings). - -```js -import SQL from 'sql-template-strings' - -const book = 'harry potter'; -const author = 'J. K. Rowling'; - -const data = await db.all(SQL`SELECT author FROM books WHERE name = ${book} AND author = ${author}`); -``` - -### Migrations - -This module comes with a lightweight migrations API that works with [SQL-based migration files](https://github.com/kriasoft/node-sqlite/tree/master/migrations) - -With default configuration, you can create a `migrations/` directory in your project with SQL files, -and call the `migrate()` method to run the SQL in the directory against the database. - -See this project's `migrations/` folder for examples. - -```typescript -await db.migrate({ - /** - * If true, will force the migration API to rollback and re-apply the latest migration over - * again each time when Node.js app launches. - */ - force?: boolean - /** - * Migrations table name. Default is 'migrations' - */ - table?: string - /** - * Path to the migrations folder. Default is `path.join(process.cwd(), 'migrations')` - */ - migrationsPath?: string -}) -``` - -## Typescript tricks - -### Import interfaces from sqlite - -`import { ISqlite, IMigrate } from 'sqlite'` - -See the definitions for more details. - -### Specify typings for a specific database driver - -```typescript -// Assuming you have @types/sqlite3 installed -import sqlite3 from 'sqlite3' - -// sqlite3.Database, sqlite3.Statement is the default if no explicit generic is specified -await open({ - filename: ':memory' -}) -``` - -### Use generics to get better typings on your rows - -Most methods allow for the use of [generics](https://www.typescriptlang.org/docs/handbook/generics.html) -to specify the data type of your returned data. This allows your IDE to perform better autocomplete -and the typescript compiler to perform better static type analysis. - -#### Get example - -```typescript - -interface Row { - col: string -} - -// result will be of type Row, allowing Typescript supported IDEs to autocomplete on the properties! -const result = await db.get('SELECT col FROM tbl WHERE col = ?', 'test') -``` - -#### All example - -```typescript -interface Row { - col: string -} - -// Result is an array of rows, you can now have array-autocompletion data -const result = await db.all('SELECT col FROM tbl') - -result.each((row) => { - // row should have type information now! -}) -``` - -## API Documentation - -See the [`docs`](docs/globals.md) directory for full documentation. - -## Management Tools - -- [Beekeeper Studio](https://www.beekeeperstudio.io/): Open Source SQL Editor and Database Manager -- [DB Browser for SQLite](https://github.com/sqlitebrowser/sqlitebrowser): Desktop-based browser. -- [datasette](https://github.com/simonw/datasette): Datasette is a tool for exploring and publishing -data. Starts up a server that provides a web interface to your SQLite data. -- [SQLite Studio](https://github.com/pawelsalawa/sqlitestudio): A free, open source, multi-platform SQLite database manager written in C++, with use of Qt framework. -- [HeidiSQL](https://www.heidisql.com/): Full-featured database editor. -- [DBeaver](https://dbeaver.io/): Full-featured multi-platform database tool and designer. - -## Alternative SQLite libraries - -This library and the library it primarily supports, `sqlite3`, may not be the best library that -fits your use-case. You might want to try these other SQLite libraries: - -- [better-sqlite3](https://github.com/JoshuaWise/better-sqlite3): Totes itself as the fastest and -simplest library for SQLite3 in Node.js. -- [Bun sqlite3](https://github.com/Jarred-Sumner/bun#bunsqlite-sqlite3-module): `bun:sqlite` is a high-performance builtin SQLite3 module for `bun.js`. -- [sql.js](https://github.com/sql-js/sql.js): SQLite compiled to Webassembly. -- [sqlite3-offline-next](https://github.com/nicolaiort/sqlite3-offline-next): Offers pre-compiled `sqlite3` -binaries if your machine cannot compile it. Should be mostly compatible with this library. - -If you know of any others, feel free to open a PR to add them to the list. - -## References - -* [Using SQLite with Node.js for Rapid Prototyping](https://medium.com/@tarkus/node-js-and-sqlite-for-rapid-prototyping-bc9cf1f26f10) on Medium.com -* [SQLite Documentation](https://www.sqlite.org/docs.html), e.g. [SQL Syntax](https://www.sqlite.org/lang.html), [Data Types](https://www.sqlite.org/datatype3.html) etc. on SQLite.org -* ES6 tagged [sql-template-strings](https://www.npmjs.com/package/sql-template-strings). - -## License - -The MIT License © 2020-present Kriasoft / Theo Gravity. All rights reserved. - ---- -Made with ♥ by [Konstantin Tarkus](https://github.com/koistya) ([@koistya](https://twitter.com/koistya)), [Theo Gravity](https://github.com/theogravity) and [contributors](https://github.com/kriasoft/node-sqlite/graphs/contributors) diff --git a/lib/node/node_modules/sqlite/package.json b/lib/node/node_modules/sqlite/package.json deleted file mode 100755 index 976464f..0000000 --- a/lib/node/node_modules/sqlite/package.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "name": "sqlite", - "version": "4.2.1", - "description": "SQLite client for Node.js applications with SQL-based migrations API written in Typescript", - "main": "build/index.js", - "types": "build/index.d.ts", - "type": "commonjs", - "exports": { - "types": "./build/index.d.ts", - "require": "./build/index.js", - "import": "./build/index.mjs" - }, - "scripts": { - "build": "npm run build:clean && npm run compile && cp -R src/index.mjs src/vendor-typings build", - "build:docs": "typedoc --options typedoc.js --plugin typedoc-plugin-markdown src/ --out docs", - "build:clean": "rm -rf build/*", - "compile": "tsc", - "debug": "ts-node-dev --inspect -- src/index.ts", - "debug:break": "ts-node-dev --inspect-brk -- src/index.ts", - "test": "jest", - "test:ci": "jest --ci --coverage", - "test:debug": "node --inspect-brk node_modules/.bin/jest", - "test:watch": "jest --watch", - "test:coverage:watch": "jest --coverage --watch", - "toc": "toc-md README.md README.md", - "lint-staged": "lint-staged", - "prepare-publish": "npm run changelog:prepare && version-bump && npm run changelog:release && npm run changelog:stamp", - "add-readme": "git add README.md", - "version-bump": "version-bump", - "changelog:help": "changelog-version", - "changelog:verify": "changelog-version verify", - "changelog:prepare": "changelog-version prepare", - "changelog:stamp": "git-commit-stamper parse CHANGELOG.md", - "changelog:release": "changelog-version release", - "lint": "standard --fix", - "ts-node-dev": "ts-node-dev" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/kriasoft/node-sqlite.git" - }, - "author": "Kriasoft (https://www.kriasoft.com)", - "contributors": [ - "Konstantin Tarkus (https://twitter.com/koistya)", - "Theo Gravity (https://theogravity.com)" - ], - "keywords": [ - "sqlite", - "db", - "database", - "sql", - "migrate", - "migration", - "migrations", - "migrator", - "seed", - "seeds", - "seeder", - "node", - "node5", - "babel", - "es6", - "async", - "promise", - "promises", - "api" - ], - "license": "MIT", - "bugs": { - "url": "https://github.com/kriasoft/node-sqlite/issues" - }, - "homepage": "https://github.com/kriasoft/node-sqlite#readme", - "devDependencies": { - "@theo.gravity/changelog-version": "2.1.11", - "@theo.gravity/version-bump": "2.0.14", - "@types/jest": "27.4.1", - "@types/node": "^17.0.25", - "@types/sqlite3": "^3.1.8", - "@typescript-eslint/eslint-plugin": "^5.20.0", - "@typescript-eslint/parser": "^5.20.0", - "eslint": "8.14.0", - "git-commit-stamper": "^1.0.10", - "jest": "27.5.1", - "jest-cli": "27.5.1", - "jest-junit-reporter": "1.1.0", - "lint-staged": "12.4.0", - "pre-commit": "1.2.2", - "prettier-standard": "^15.0.1", - "sql-template-strings": "^2.2.2", - "sqlite3": "^5.0.5", - "sqlite3-offline-next": "^5.0.3", - "standardx": "^7.0.0", - "toc-md-alt": "^0.4.6", - "ts-jest": "27.1.4", - "ts-node": "10.7.0", - "ts-node-dev": "1.1.8", - "typedoc": "^0.22.15", - "typedoc-plugin-markdown": "^3.12.1", - "typescript": "4.6.3", - "version-bump-plugin-git": "^2.0.1" - }, - "eslintConfig": { - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module", - "ecmaFeatures": { - "modules": true - } - }, - "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint/eslint-plugin" - ], - "rules": { - "@typescript-eslint/no-unused-vars": [ - 2, - { - "args": "none" - } - ] - } - }, - "lint-staged": { - "src/**/*.ts": [ - "prettier-standard", - "git add" - ] - }, - "pre-commit": [ - "toc", - "lint-staged", - "test:ci", - "build" - ] -} diff --git a/lib/node/node_modules/sqlite/LICENSE b/lib/node/node_modules/ssl-checker/LICENSE old mode 100755 new mode 100644 similarity index 95% rename from lib/node/node_modules/sqlite/LICENSE rename to lib/node/node_modules/ssl-checker/LICENSE index e8fb4ee..b3e7974 --- a/lib/node/node_modules/sqlite/LICENSE +++ b/lib/node/node_modules/ssl-checker/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020-present Kriasoft, Theo Gravity +Copyright (c) 8008 :trollface: Dyaa Eldin Moustafa Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/node/node_modules/ssl-checker/README.md b/lib/node/node_modules/ssl-checker/README.md new file mode 100644 index 0000000..2545804 --- /dev/null +++ b/lib/node/node_modules/ssl-checker/README.md @@ -0,0 +1,60 @@ +# Node SSL Checker + +[![Build Status](https://github.com/dyaa/ssl-checker/workflows/test-sslChecker/badge.svg)](https://github.com/dyaa/ssl-checker/actions) +[![npm version](https://badge.fury.io/js/ssl-checker.svg)](https://badge.fury.io/js/ssl-checker) [![npm](https://img.shields.io/npm/dt/ssl-checker.svg)](https://github.com/dyaa/node-ssl-checker) +[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/48857294fa4a42b79710ffc87b58a72b)](https://www.codacy.com/gh/dyaa/ssl-checker/dashboard?utm_source=github.com&utm_medium=referral&utm_content=dyaa/ssl-checker&utm_campaign=Badge_Coverage) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/48857294fa4a42b79710ffc87b58a72b)](https://www.codacy.com/gh/dyaa/ssl-checker/dashboard?utm_source=github.com&utm_medium=referral&utm_content=dyaa/ssl-checker&utm_campaign=Badge_Grade) + +## Installation + +Simply add `ssl-checker` as a dependency: + +```bash +$ npm install ssl-checker --save # npm i -s ssl-checker + +# Or if you prefer using yarn (https://yarnpkg.com/lang/en/) +$ yarn add ssl-checker +``` + +## Usage + +```ts +import sslChecker from "ssl-checker"; + +const getSslDetails = async (hostname: string) => + await sslChecker(hostname`ex. badssl.com`); +``` + +## Options + +All valid `https.RequestOptions` values. + +| Option | Default | Description | +| ------------------ | ------- | ------------------------------------------------- | +| method | HEAD | Can be GET too | +| port | 443 | Your SSL/TLS entry point | +| agent | default | Default HTTPS agent with { maxCachedSessions: 0 } | +| rejectUnauthorized | false | Skips authorization by default | + +```ts +sslChecker("dyaa.me", { method: "GET", port: 443 }).then(console.info); +``` + +## Response Example + +```json +{ + "daysRemaining": 90, + "valid": true, + "validFrom": "issue date", + "validTo": "expiry date", + "validFor": ["www.example.com", "example.com"] +} +``` + +#### License + +Copylefted (c) 8008 :trollface: [Dyaa Eldin Moustafa][1] Licensed under the [MIT license][2]. + +[1]: https://dyaa.me/ +[2]: https://github.com/dyaa/node-ssl-checker/blob/master/LICENSE diff --git a/lib/node/node_modules/ssl-checker/lib/cjs/index.js b/lib/node/node_modules/ssl-checker/lib/cjs/index.js new file mode 100644 index 0000000..a069b5e --- /dev/null +++ b/lib/node/node_modules/ssl-checker/lib/cjs/index.js @@ -0,0 +1,112 @@ +'use strict'; + +var https = require('https'); + +function _interopNamespaceDefault(e) { + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n.default = e; + return Object.freeze(n); +} + +var https__namespace = /*#__PURE__*/_interopNamespaceDefault(https); + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +var checkPort = function (port) { + return !isNaN(parseFloat(port)) && Math.sign(port) === 1; +}; +var getDaysBetween = function (validFrom, validTo) { + return Math.round(Math.abs(+validFrom - +validTo) / 8.64e7); +}; +var getDaysRemaining = function (validFrom, validTo) { + var daysRemaining = getDaysBetween(validFrom, validTo); + if (new Date(validTo).getTime() < new Date().getTime()) { + return -daysRemaining; + } + return daysRemaining; +}; +var DEFAULT_OPTIONS = { + agent: new https__namespace.Agent({ + maxCachedSessions: 0 + }), + method: "HEAD", + port: 443, + rejectUnauthorized: false +}; +var sslChecker = function (host, options) { + if (options === void 0) { options = {}; } + return new Promise(function (resolve, reject) { + options = Object.assign({}, DEFAULT_OPTIONS, options); + if (!checkPort(options.port)) { + reject(Error("Invalid port")); + return; + } + try { + var req_1 = https__namespace.request(__assign({ host: host }, options), function (res) { + var _a = res.socket.getPeerCertificate(), valid_from = _a.valid_from, valid_to = _a.valid_to, subjectaltname = _a.subjectaltname; + if (!valid_from || !valid_to || !subjectaltname) { + reject(new Error("No certificate")); + return; + } + var validTo = new Date(valid_to); + var validFor = subjectaltname + .replace(/DNS:|IP Address:/g, "") + .split(", "); + resolve({ + daysRemaining: getDaysRemaining(new Date(), validTo), + valid: res.socket + .authorized || false, + validFrom: new Date(valid_from).toISOString(), + validTo: validTo.toISOString(), + validFor: validFor + }); + }); + req_1.on("error", reject); + req_1.on("timeout", function () { + req_1.destroy(); + reject(new Error("Timed Out")); + }); + req_1.end(); + } + catch (e) { + reject(e); + } + }); +}; + +module.exports = sslChecker; diff --git a/lib/node/node_modules/ssl-checker/lib/es/index.js b/lib/node/node_modules/ssl-checker/lib/es/index.js new file mode 100644 index 0000000..025349b --- /dev/null +++ b/lib/node/node_modules/ssl-checker/lib/es/index.js @@ -0,0 +1,91 @@ +import * as https from 'https'; + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +var __assign = function() { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; + +var checkPort = function (port) { + return !isNaN(parseFloat(port)) && Math.sign(port) === 1; +}; +var getDaysBetween = function (validFrom, validTo) { + return Math.round(Math.abs(+validFrom - +validTo) / 8.64e7); +}; +var getDaysRemaining = function (validFrom, validTo) { + var daysRemaining = getDaysBetween(validFrom, validTo); + if (new Date(validTo).getTime() < new Date().getTime()) { + return -daysRemaining; + } + return daysRemaining; +}; +var DEFAULT_OPTIONS = { + agent: new https.Agent({ + maxCachedSessions: 0 + }), + method: "HEAD", + port: 443, + rejectUnauthorized: false +}; +var sslChecker = function (host, options) { + if (options === void 0) { options = {}; } + return new Promise(function (resolve, reject) { + options = Object.assign({}, DEFAULT_OPTIONS, options); + if (!checkPort(options.port)) { + reject(Error("Invalid port")); + return; + } + try { + var req_1 = https.request(__assign({ host: host }, options), function (res) { + var _a = res.socket.getPeerCertificate(), valid_from = _a.valid_from, valid_to = _a.valid_to, subjectaltname = _a.subjectaltname; + if (!valid_from || !valid_to || !subjectaltname) { + reject(new Error("No certificate")); + return; + } + var validTo = new Date(valid_to); + var validFor = subjectaltname + .replace(/DNS:|IP Address:/g, "") + .split(", "); + resolve({ + daysRemaining: getDaysRemaining(new Date(), validTo), + valid: res.socket + .authorized || false, + validFrom: new Date(valid_from).toISOString(), + validTo: validTo.toISOString(), + validFor: validFor + }); + }); + req_1.on("error", reject); + req_1.on("timeout", function () { + req_1.destroy(); + reject(new Error("Timed Out")); + }); + req_1.end(); + } + catch (e) { + reject(e); + } + }); +}; + +export { sslChecker as default }; diff --git a/lib/node/node_modules/ssl-checker/lib/index.d.ts b/lib/node/node_modules/ssl-checker/lib/index.d.ts new file mode 100644 index 0000000..4e05e30 --- /dev/null +++ b/lib/node/node_modules/ssl-checker/lib/index.d.ts @@ -0,0 +1,10 @@ +import * as https from "https"; +interface IResolvedValues { + valid: boolean; + validFrom: string; + validTo: string; + daysRemaining: number; + validFor: string[]; +} +declare const sslChecker: (host: string, options?: Partial) => Promise; +export default sslChecker; diff --git a/lib/node/node_modules/ssl-checker/package.json b/lib/node/node_modules/ssl-checker/package.json new file mode 100644 index 0000000..965661f --- /dev/null +++ b/lib/node/node_modules/ssl-checker/package.json @@ -0,0 +1,48 @@ +{ + "name": "ssl-checker", + "version": "2.0.8", + "description": "ssl-checker", + "main": "./lib/cjs/index.js", + "module": "./lib/es/index.js", + "types": "./lib/index.d.ts", + "scripts": { + "test": "vitest", + "test:coverage": "vitest run --coverage && cat ./coverage/lcov.info | codacy-coverage -v", + "build": "tsc --project tsconfig.types.json && rollup -c --configPlugin typescript --perf", + "format": "prettier --write '**/*.{ts,md}'", + "precommit": "pretty-quick --staged", + "prepare": "npm run build", + "prepublishOnly": "npm test && npm run precommit", + "preversion": "npm run precommit", + "version": "npm run format && git add -A src", + "postversion": "git push && git push --tags" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/dyaa/ssl-checker.git" + }, + "keywords": [ + "ssl", + "checker" + ], + "author": "Dyaa Eldin (https://dyaa.me)", + "license": "MIT", + "bugs": { + "url": "https://github.com/dyaa/ssl-checker/issues" + }, + "homepage": "https://github.com/dyaa/ssl-checker#readme", + "devDependencies": { + "@rollup/plugin-typescript": "^11.0.0", + "@types/node": "^18.13.0", + "@vitest/coverage-istanbul": "^0.28.4", + "codacy-coverage": "^3.2.0", + "prettier": "^2.0.4", + "pretty-quick": "^3.0.2", + "rollup": "^3.14.0", + "typescript": "^4.9.5", + "vitest": "^0.28.4" + }, + "files": [ + "lib/**/*" + ] +} diff --git a/lib/node/package-lock.json b/lib/node/package-lock.json index 72d3bae..e00ecf9 100644 --- a/lib/node/package-lock.json +++ b/lib/node/package-lock.json @@ -1,12 +1,12 @@ { - "name": "lib", - "lockfileVersion": 3, + "name": "node", + "lockfileVersion": 2, "requires": true, "packages": { "": { "dependencies": { - "sqlite": "^4.2.1", - "sqlite3": "^5.1.6" + "sqlite3": "^5.1.6", + "ssl-checker": "^2.0.8" } }, "node_modules/@gar/promisify": { @@ -16,9 +16,9 @@ "optional": true }, "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -244,9 +244,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "engines": { "node": ">=8" } @@ -488,9 +488,9 @@ } }, "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -652,9 +652,9 @@ "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" }, "node_modules/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -886,9 +886,9 @@ "optional": true }, "node_modules/semver": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -947,11 +947,6 @@ "node": ">= 10" } }, - "node_modules/sqlite": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/sqlite/-/sqlite-4.2.1.tgz", - "integrity": "sha512-Tll0Ndvnwkuv5Hn6WIbh26rZiYQORuH1t5m/or9LUpSmDmmyFG89G9fKrSeugMPxwmEIXoVxqTun4LbizTs4uw==" - }, "node_modules/sqlite3": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.6.tgz", @@ -974,6 +969,11 @@ } } }, + "node_modules/ssl-checker": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/ssl-checker/-/ssl-checker-2.0.8.tgz", + "integrity": "sha512-pIDGxablZowKR/elbm72Wk7T3lEdrcAKT4ltPsdQrpm7N6EIIvuFQpIcMNG+A/wmiymcRwFDzTd83bW6Yy5LKQ==" + }, "node_modules/ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", @@ -1117,5 +1117,865 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } + }, + "dependencies": { + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "optional": true + }, + "@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "requires": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + } + }, + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "optional": true, + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "optional": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "optional": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "optional": true, + "requires": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "optional": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "optional": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "optional": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "optional": true + }, + "detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "optional": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "optional": true + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "optional": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "optional": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "optional": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "optional": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "optional": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "optional": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "optional": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "optional": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "optional": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "optional": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + } + } + }, + "make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "optional": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "optional": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "optional": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "optional": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "optional": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "optional": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "optional": true + }, + "node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + }, + "node-fetch": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "optional": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "dependencies": { + "are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "optional": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + } + }, + "npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "optional": true, + "requires": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + } + } + } + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "requires": { + "abbrev": "1" + } + }, + "npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "optional": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "optional": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "optional": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "optional": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "optional": true + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "optional": true + }, + "socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "optional": true, + "requires": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "optional": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + } + }, + "sqlite3": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.6.tgz", + "integrity": "sha512-olYkWoKFVNSSSQNvxVUfjiVbz3YtBwTJj+mfV5zpHmqW3sELx2Cf4QCdirMelhM5Zh+KDVaKgQHqCxrqiWHybw==", + "requires": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^4.2.0", + "node-gyp": "8.x", + "tar": "^6.1.11" + } + }, + "ssl-checker": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/ssl-checker/-/ssl-checker-2.0.8.tgz", + "integrity": "sha512-pIDGxablZowKR/elbm72Wk7T3lEdrcAKT4ltPsdQrpm7N6EIIvuFQpIcMNG+A/wmiymcRwFDzTd83bW6Yy5LKQ==" + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "optional": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" + } + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "optional": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "optional": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } } diff --git a/lib/node/package.json b/lib/node/package.json index 2e42119..4cf5c63 100644 --- a/lib/node/package.json +++ b/lib/node/package.json @@ -1,6 +1,6 @@ { "dependencies": { - "sqlite": "^4.2.1", - "sqlite3": "^5.1.6" + "sqlite3": "^5.1.6", + "ssl-checker": "^2.0.8" } }