detect-node-support
Advanced tools
Comparing version 1.4.0-alpha.1 to 1.4.0
'use strict'; | ||
const GitUrlParse = require('git-url-parse'); | ||
const Wreck = require('@hapi/wreck'); | ||
const Logger = require('../logger'); | ||
const OctokitWrapper = require('./octokit-wrapper'); | ||
const Utils = require('../utils'); | ||
@@ -33,3 +33,3 @@ | ||
}, | ||
loadFile: async (filename, options = {}) => { | ||
loadFile: async (filename, options) => { | ||
@@ -40,39 +40,24 @@ if (parsedRepository.source !== 'github.com') { | ||
const resource = `${parsedRepository.full_name}:${filename}@HEAD`; | ||
Logger.log(['loader'], 'Loading: %s', resource); | ||
const url = `https://raw.githubusercontent.com/${parsedRepository.full_name}/HEAD/${filename}`; | ||
Logger.log(['loader'], 'Loading: %s', url); | ||
const octokit = OctokitWrapper.create(); | ||
if (options === undefined && internals.cache.has(url)) { | ||
Logger.log(['loader'], 'From cache: %s', url); | ||
return internals.cache.get(url); | ||
} | ||
try { | ||
const { payload } = await Wreck.get(url, options); | ||
let result; | ||
if (internals.cache.has(resource)) { | ||
Logger.log(['loader'], 'From cache: %s', resource); | ||
result = internals.cache.get(resource); | ||
if (options === undefined) { | ||
internals.cache.set(url, payload); | ||
} | ||
else { | ||
result = await octokit.repos.getContent({ | ||
owner: parsedRepository.owner, | ||
repo: parsedRepository.name, | ||
path: filename | ||
}); | ||
} | ||
internals.cache.set(resource, result); | ||
Logger.log(['loader'], 'Loaded: %s', resource); | ||
const content = Buffer.from(result.data.content, 'base64'); | ||
if (options.json) { | ||
// @todo: cache parsed JSON, parse YAML | ||
return JSON.parse(content.toString()); | ||
} | ||
return content; | ||
Logger.log(['loader'], 'Loaded: %s', url); | ||
return payload; | ||
} | ||
catch (err) { | ||
if (err.status === 404) { | ||
Logger.log(['loader'], 'Not found: %s', resource); | ||
if (err.data && err.data.res.statusCode === 404) { | ||
Logger.log(['loader'], 'Not found: %s', url); | ||
const error = new Error(`${repository} does not contain a ${filename}`); | ||
@@ -83,3 +68,3 @@ error.code = 'ENOENT'; | ||
Logger.error(['loader'], 'Failed to load: %s', resource); | ||
Logger.error(['loader'], 'Failed to load: %s', url); | ||
throw err; | ||
@@ -86,0 +71,0 @@ } |
@@ -48,3 +48,3 @@ 'use strict'; | ||
const packageJson = await loadFile('package.json', { json: true }); | ||
const packageJson = await loadFile('package.json', { json: 'force' }); | ||
@@ -51,0 +51,0 @@ const meta = { |
{ | ||
"name": "detect-node-support", | ||
"version": "1.4.0-alpha.1", | ||
"version": "1.4.0", | ||
"description": "List the Node.js versions supported by the package/repository", | ||
@@ -38,5 +38,4 @@ "bin": { | ||
"dependencies": { | ||
"@hapi/wreck": "^17.0.0", | ||
"@npmcli/arborist": "0.0.0-pre.21", | ||
"@octokit/plugin-throttling": "^3.2.2", | ||
"@octokit/rest": "^18.0.0", | ||
"@pkgjs/nv": "0.0.3", | ||
@@ -43,0 +42,0 @@ "debug": "^4.1.1", |
@@ -5,6 +5,2 @@ # detect-node-support | ||
## Setup | ||
No setup is required, however if you do not have a `GH_TOKEN` environment limit, you will likely hit a request rate limit on Github API, which may result in very long wait times for retries. | ||
## Usage (command line) | ||
@@ -11,0 +7,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
10
0
3
0
26794
18
507
145
+ Added@hapi/wreck@^17.0.0
- Removed@octokit/plugin-throttling@^3.2.2
- Removed@octokit/rest@^18.0.0
- Removed@octokit/auth-token@2.5.0(transitive)
- Removed@octokit/core@3.6.0(transitive)
- Removed@octokit/endpoint@6.0.12(transitive)
- Removed@octokit/graphql@4.8.0(transitive)
- Removed@octokit/openapi-types@12.11.0(transitive)
- Removed@octokit/plugin-paginate-rest@2.21.3(transitive)
- Removed@octokit/plugin-request-log@1.0.4(transitive)
- Removed@octokit/plugin-rest-endpoint-methods@5.16.2(transitive)
- Removed@octokit/plugin-throttling@3.7.0(transitive)
- Removed@octokit/request@5.6.3(transitive)
- Removed@octokit/request-error@2.1.0(transitive)
- Removed@octokit/rest@18.12.0(transitive)
- Removed@octokit/types@6.41.0(transitive)
- Removedbefore-after-hook@2.2.3(transitive)
- Removedbottleneck@2.19.5(transitive)
- Removeddeprecation@2.3.1(transitive)
- Removedis-plain-object@5.0.0(transitive)
- Removednode-fetch@2.7.0(transitive)
- Removedtr46@0.0.3(transitive)
- Removeduniversal-user-agent@6.0.1(transitive)
- Removedwebidl-conversions@3.0.1(transitive)
- Removedwhatwg-url@5.0.0(transitive)