step-node-agent 3.28.4 → 3.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AgentConf.yaml +3 -1
- package/api/filemanager/filemanager.js +24 -1
- package/middleware/jwtAuth.js +37 -0
- package/node_modules/body-parser/HISTORY.md +8 -0
- package/node_modules/body-parser/lib/types/urlencoded.js +2 -9
- package/node_modules/body-parser/package.json +9 -10
- package/node_modules/cookie/index.js +2 -1
- package/node_modules/cookie/package.json +1 -1
- package/node_modules/cookie-signature/History.md +5 -1
- package/node_modules/cookie-signature/index.js +6 -6
- package/node_modules/cookie-signature/package.json +2 -2
- package/node_modules/express/History.md +11 -0
- package/node_modules/express/package.json +17 -17
- package/node_modules/finalhandler/HISTORY.md +6 -0
- package/node_modules/finalhandler/package.json +3 -3
- package/node_modules/http-errors/HISTORY.md +6 -0
- package/node_modules/http-errors/index.js +4 -3
- package/node_modules/http-errors/package.json +12 -8
- package/node_modules/qs/.eslintrc +1 -0
- package/node_modules/qs/CHANGELOG.md +22 -0
- package/node_modules/qs/README.md +25 -1
- package/node_modules/qs/dist/qs.js +95 -44
- package/node_modules/qs/lib/parse.js +44 -12
- package/node_modules/qs/lib/stringify.js +11 -6
- package/node_modules/qs/lib/utils.js +7 -4
- package/node_modules/qs/package.json +9 -7
- package/node_modules/qs/test/parse.js +133 -27
- package/node_modules/qs/test/stringify.js +19 -11
- package/node_modules/qs/test/utils.js +126 -0
- package/node_modules/raw-body/package.json +5 -7
- package/node_modules/resolve/.eslintrc +1 -1
- package/node_modules/resolve/.github/INCIDENT_RESPONSE_PROCESS.md +119 -0
- package/node_modules/resolve/.github/THREAT_MODEL.md +74 -0
- package/node_modules/resolve/SECURITY.md +9 -1
- package/node_modules/resolve/lib/async.js +8 -4
- package/node_modules/resolve/lib/core.json +1 -1
- package/node_modules/resolve/lib/node-modules-paths.js +5 -2
- package/node_modules/resolve/lib/sync.js +7 -3
- package/node_modules/resolve/package.json +5 -5
- package/node_modules/send/HISTORY.md +12 -7
- package/node_modules/send/node_modules/http-errors/HISTORY.md +180 -0
- package/node_modules/send/node_modules/http-errors/LICENSE +23 -0
- package/node_modules/send/node_modules/http-errors/README.md +169 -0
- package/node_modules/send/node_modules/http-errors/index.js +289 -0
- package/node_modules/send/node_modules/http-errors/package.json +50 -0
- package/node_modules/send/node_modules/statuses/HISTORY.md +82 -0
- package/node_modules/send/node_modules/statuses/LICENSE +23 -0
- package/node_modules/send/node_modules/statuses/README.md +136 -0
- package/node_modules/send/node_modules/statuses/codes.json +65 -0
- package/node_modules/send/node_modules/statuses/index.js +146 -0
- package/node_modules/send/node_modules/statuses/package.json +49 -0
- package/node_modules/send/package.json +2 -2
- package/node_modules/serve-static/node_modules/http-errors/HISTORY.md +180 -0
- package/node_modules/serve-static/node_modules/http-errors/LICENSE +23 -0
- package/node_modules/serve-static/node_modules/http-errors/README.md +169 -0
- package/node_modules/serve-static/node_modules/http-errors/index.js +289 -0
- package/node_modules/serve-static/node_modules/http-errors/package.json +50 -0
- package/node_modules/serve-static/node_modules/ms/index.js +162 -0
- package/node_modules/serve-static/node_modules/ms/license.md +21 -0
- package/node_modules/serve-static/node_modules/ms/package.json +38 -0
- package/node_modules/serve-static/node_modules/ms/readme.md +59 -0
- package/node_modules/serve-static/node_modules/send/HISTORY.md +526 -0
- package/node_modules/serve-static/node_modules/send/LICENSE +23 -0
- package/node_modules/serve-static/node_modules/send/README.md +327 -0
- package/node_modules/{raw-body → serve-static/node_modules/send}/SECURITY.md +4 -4
- package/node_modules/serve-static/node_modules/send/index.js +1142 -0
- package/node_modules/serve-static/node_modules/send/package.json +62 -0
- package/node_modules/serve-static/node_modules/statuses/HISTORY.md +82 -0
- package/node_modules/serve-static/node_modules/statuses/LICENSE +23 -0
- package/node_modules/serve-static/node_modules/statuses/README.md +136 -0
- package/node_modules/serve-static/node_modules/statuses/codes.json +65 -0
- package/node_modules/serve-static/node_modules/statuses/index.js +146 -0
- package/node_modules/serve-static/node_modules/statuses/package.json +49 -0
- package/node_modules/statuses/HISTORY.md +5 -0
- package/node_modules/statuses/README.md +3 -0
- package/node_modules/statuses/package.json +7 -7
- package/node_modules/yaml/browser/dist/compose/compose-collection.js +1 -1
- package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +1 -1
- package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +2 -2
- package/node_modules/yaml/browser/dist/errors.js +1 -1
- package/node_modules/yaml/browser/dist/nodes/Alias.js +1 -1
- package/node_modules/yaml/browser/dist/parse/parser.js +2 -2
- package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +1 -1
- package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +1 -1
- package/node_modules/yaml/dist/compose/compose-collection.js +1 -1
- package/node_modules/yaml/dist/compose/resolve-block-seq.js +1 -1
- package/node_modules/yaml/dist/compose/resolve-flow-collection.js +2 -2
- package/node_modules/yaml/dist/errors.js +1 -1
- package/node_modules/yaml/dist/nodes/Alias.js +1 -1
- package/node_modules/yaml/dist/parse/parser.js +2 -2
- package/node_modules/yaml/dist/stringify/stringifyNumber.js +1 -1
- package/node_modules/yaml/dist/stringify/stringifyPair.js +1 -1
- package/node_modules/yaml/package.json +4 -4
- package/package.json +2 -1
- package/server.js +27 -8
- package/utils/jwtUtils.js +21 -0
- package/node_modules/body-parser/SECURITY.md +0 -25
- package/node_modules/cookie-signature/.npmignore +0 -4
- package/node_modules/raw-body/HISTORY.md +0 -308
- /package/node_modules/{send → serve-static/node_modules/send}/node_modules/encodeurl/HISTORY.md +0 -0
- /package/node_modules/{send → serve-static/node_modules/send}/node_modules/encodeurl/LICENSE +0 -0
- /package/node_modules/{send → serve-static/node_modules/send}/node_modules/encodeurl/README.md +0 -0
- /package/node_modules/{send → serve-static/node_modules/send}/node_modules/encodeurl/index.js +0 -0
- /package/node_modules/{send → serve-static/node_modules/send}/node_modules/encodeurl/package.json +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "raw-body",
|
|
3
3
|
"description": "Get and validate the raw body of a readable stream.",
|
|
4
|
-
"version": "2.5.
|
|
4
|
+
"version": "2.5.3",
|
|
5
5
|
"author": "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)",
|
|
6
6
|
"contributors": [
|
|
7
7
|
"Douglas Christopher Wilson <doug@somethingdoug.com>",
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"repository": "stream-utils/raw-body",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"bytes": "3.1.2",
|
|
14
|
-
"http-errors": "2.0.
|
|
15
|
-
"iconv-lite": "0.4.24",
|
|
16
|
-
"unpipe": "1.0.0"
|
|
13
|
+
"bytes": "~3.1.2",
|
|
14
|
+
"http-errors": "~2.0.1",
|
|
15
|
+
"iconv-lite": "~0.4.24",
|
|
16
|
+
"unpipe": "~1.0.0"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"bluebird": "3.7.2",
|
|
@@ -33,10 +33,8 @@
|
|
|
33
33
|
"node": ">= 0.8"
|
|
34
34
|
},
|
|
35
35
|
"files": [
|
|
36
|
-
"HISTORY.md",
|
|
37
36
|
"LICENSE",
|
|
38
37
|
"README.md",
|
|
39
|
-
"SECURITY.md",
|
|
40
38
|
"index.d.ts",
|
|
41
39
|
"index.js"
|
|
42
40
|
],
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Incident Response Process for **resolve**
|
|
2
|
+
|
|
3
|
+
## Reporting a Vulnerability
|
|
4
|
+
|
|
5
|
+
We take the security of **resolve** very seriously. If you believe you’ve found a security vulnerability, please inform us responsibly through coordinated disclosure.
|
|
6
|
+
|
|
7
|
+
### How to Report
|
|
8
|
+
|
|
9
|
+
> **Do not** report security vulnerabilities through public GitHub issues, discussions, or social media.
|
|
10
|
+
|
|
11
|
+
Instead, please use one of these secure channels:
|
|
12
|
+
|
|
13
|
+
1. **GitHub Security Advisories**
|
|
14
|
+
Use the **Report a vulnerability** button in the Security tab of the [browserify/resolve repository](https://github.com/browserify/resolve).
|
|
15
|
+
|
|
16
|
+
2. **Email**
|
|
17
|
+
Follow the posted [Security Policy](https://github.com/browserify/resolve/security/policy).
|
|
18
|
+
|
|
19
|
+
### What to Include
|
|
20
|
+
|
|
21
|
+
**Required Information:**
|
|
22
|
+
- Brief description of the vulnerability type
|
|
23
|
+
- Affected version(s) and components
|
|
24
|
+
- Steps to reproduce the issue
|
|
25
|
+
- Impact assessment (what an attacker could achieve)
|
|
26
|
+
- Confirm the issue is not present in test files (in other words, only via the official entry points in `exports`)
|
|
27
|
+
|
|
28
|
+
**Helpful Additional Details:**
|
|
29
|
+
- Full paths of affected source files
|
|
30
|
+
- Specific commit or branch where the issue exists
|
|
31
|
+
- Required configuration to reproduce
|
|
32
|
+
- Proof-of-concept code (if available)
|
|
33
|
+
- Suggested mitigation or fix
|
|
34
|
+
|
|
35
|
+
## Our Response Process
|
|
36
|
+
|
|
37
|
+
**Timeline Commitments:**
|
|
38
|
+
- **Initial acknowledgment**: Within 24 hours
|
|
39
|
+
- **Detailed response**: Within 3 business days
|
|
40
|
+
- **Status updates**: Every 7 days until resolved
|
|
41
|
+
- **Resolution target**: 90 days for most issues
|
|
42
|
+
|
|
43
|
+
**What We’ll Do:**
|
|
44
|
+
1. Acknowledge your report and assign a tracking ID
|
|
45
|
+
2. Assess the vulnerability and determine severity
|
|
46
|
+
3. Develop and test a fix
|
|
47
|
+
4. Coordinate disclosure timeline with you
|
|
48
|
+
5. Release a security update and publish an advisory and CVE
|
|
49
|
+
6. Credit you in our security advisory (if desired)
|
|
50
|
+
|
|
51
|
+
## Disclosure Policy
|
|
52
|
+
|
|
53
|
+
- **Coordinated disclosure**: We’ll work with you on timing
|
|
54
|
+
- **Typical timeline**: 90 days from report to public disclosure
|
|
55
|
+
- **Early disclosure**: If actively exploited
|
|
56
|
+
- **Delayed disclosure**: For complex issues
|
|
57
|
+
|
|
58
|
+
## Scope
|
|
59
|
+
|
|
60
|
+
**In Scope:**
|
|
61
|
+
- **resolve** package (all supported versions)
|
|
62
|
+
- Official examples and documentation
|
|
63
|
+
- Core resolution APIs
|
|
64
|
+
- Dependencies with direct security implications
|
|
65
|
+
|
|
66
|
+
**Out of Scope:**
|
|
67
|
+
- Third-party wrappers or extensions
|
|
68
|
+
- Bundler-specific integrations
|
|
69
|
+
- Social engineering or physical attacks
|
|
70
|
+
- Theoretical vulnerabilities without practical exploitation
|
|
71
|
+
- Issues in non-production files
|
|
72
|
+
|
|
73
|
+
## Security Measures
|
|
74
|
+
|
|
75
|
+
**Our Commitments:**
|
|
76
|
+
- Regular vulnerability scanning via `npm audit`
|
|
77
|
+
- Automated security checks in CI/CD (GitHub Actions)
|
|
78
|
+
- Secure coding practices and mandatory code review
|
|
79
|
+
- Prompt patch releases for critical issues
|
|
80
|
+
|
|
81
|
+
**User Responsibilities:**
|
|
82
|
+
- Keep **resolve** updated
|
|
83
|
+
- Monitor dependency vulnerabilities
|
|
84
|
+
- Follow secure configuration guidelines for module resolution
|
|
85
|
+
|
|
86
|
+
## Legal Safe Harbor
|
|
87
|
+
|
|
88
|
+
**We will NOT:**
|
|
89
|
+
- Initiate legal action
|
|
90
|
+
- Contact law enforcement
|
|
91
|
+
- Suspend or terminate your access
|
|
92
|
+
|
|
93
|
+
**You must:**
|
|
94
|
+
- Only test against your own installations
|
|
95
|
+
- Not access, modify, or delete user data
|
|
96
|
+
- Not degrade service availability
|
|
97
|
+
- Not publicly disclose before coordinated disclosure
|
|
98
|
+
- Act in good faith
|
|
99
|
+
|
|
100
|
+
## Recognition
|
|
101
|
+
|
|
102
|
+
- **Advisory Credits**: Credit in GitHub Security Advisories (unless anonymous)
|
|
103
|
+
|
|
104
|
+
## Security Updates
|
|
105
|
+
|
|
106
|
+
**Stay Informed:**
|
|
107
|
+
- Subscribe to npm updates for **resolve**
|
|
108
|
+
- Enable GitHub Security Advisory notifications
|
|
109
|
+
|
|
110
|
+
**Update Process:**
|
|
111
|
+
- Patch releases (e.g., 1.22.10 → 1.22.11)
|
|
112
|
+
- Out-of-band releases for critical issues
|
|
113
|
+
- Advisories via GitHub Security Advisories
|
|
114
|
+
|
|
115
|
+
## Contact Information
|
|
116
|
+
|
|
117
|
+
- **Security reports**: Security tab of [browserify/resolve](https://github.com/browserify/resolve/security)
|
|
118
|
+
- **General inquiries**: GitHub Discussions or Issues
|
|
119
|
+
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
## Threat Model for resolve (module path resolution library)
|
|
2
|
+
|
|
3
|
+
### 1. Library Overview
|
|
4
|
+
|
|
5
|
+
- **Library Name:** resolve
|
|
6
|
+
- **Brief Description:** Implements Node.js `require.resolve()` algorithm for synchronous and asynchronous file path resolution. Used to locate modules and files in Node.js projects.
|
|
7
|
+
- **Key Public APIs/Functions:** `resolve.sync()` / `resolve/sync`, `resolve()` / `resolve/async`
|
|
8
|
+
|
|
9
|
+
### 2. Define Scope
|
|
10
|
+
|
|
11
|
+
This threat model focuses on the core path resolution algorithm, including filesystem interaction, option handling, and cache management.
|
|
12
|
+
|
|
13
|
+
### 3. Conceptual System Diagram
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Caller Application → resolve(id, options) → Resolution Algorithm → File System
|
|
17
|
+
│
|
|
18
|
+
└→ Options Handling
|
|
19
|
+
└→ Cache System
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Trust Boundaries:**
|
|
23
|
+
- **Input module IDs:** May come from untrusted sources (user input, configuration)
|
|
24
|
+
- **Filesystem access:** The library interacts with the filesystem to resolve paths
|
|
25
|
+
- **Options:** Provided by the caller
|
|
26
|
+
- **Cache:** Used to improve performance, but could be a vector for tampering or information disclosure if not handled securely
|
|
27
|
+
|
|
28
|
+
### 4. Identify Assets
|
|
29
|
+
|
|
30
|
+
- **Integrity of resolution output:** Ensure correct and safe file path matching.
|
|
31
|
+
- **Confidentiality of configuration:** Prevent sensitive path information from being leaked.
|
|
32
|
+
- **Availability/performance for host application:** Prevent crashes or resource exhaustion.
|
|
33
|
+
- **Security of host application:** Prevent path traversal or unintended filesystem access.
|
|
34
|
+
- **Reputation of library:** Maintain trust by avoiding supply chain attacks and vulnerabilities[1][3][4].
|
|
35
|
+
|
|
36
|
+
### 5. Identify Threats
|
|
37
|
+
|
|
38
|
+
| Component / API / Interaction | S | T | R | I | D | E |
|
|
39
|
+
|-----------------------------------------------------|----|----|----|----|----|----|
|
|
40
|
+
| Public API Call (`resolve/async`, `resolve/sync`) | ✓ | ✓ | – | ✓ | – | – |
|
|
41
|
+
| Filesystem Access | – | ✓ | – | ✓ | ✓ | – |
|
|
42
|
+
| Options Handling | ✓ | ✓ | – | ✓ | – | – |
|
|
43
|
+
| Cache System | – | ✓ | – | ✓ | – | – |
|
|
44
|
+
|
|
45
|
+
**Key Threats:**
|
|
46
|
+
- **Spoofing:** Malicious module IDs mimicking legitimate packages, or spoofing configuration options[1].
|
|
47
|
+
- **Tampering:** Caller-provided paths altering resolution order, or cache tampering leading to incorrect results[1][4].
|
|
48
|
+
- **Information Disclosure:** Error messages revealing filesystem structure or sensitive paths[1].
|
|
49
|
+
- **Denial of Service:** Recursive or excessive resolution exhausting filesystem handles or causing application crashes[1].
|
|
50
|
+
- **Path Traversal:** Malicious input allowing access to files outside the intended directory[4].
|
|
51
|
+
|
|
52
|
+
### 6. Mitigation/Countermeasures
|
|
53
|
+
|
|
54
|
+
| Threat Identified | Proposed Mitigation |
|
|
55
|
+
|--------------------------------------------|---------------------|
|
|
56
|
+
| Spoofing (malicious module IDs/config) | Sanitize input IDs; validate against known patterns; restrict `basedir` to app-controlled paths[1][4]. |
|
|
57
|
+
| Tampering (path traversal, cache) | Validate input IDs for directory escapes; secure cache reads/writes; restrict cache to trusted sources[1][4]. |
|
|
58
|
+
| Information Disclosure (error messages) | Generic "not found" errors without internal paths; avoid exposing sensitive configuration in errors[1]. |
|
|
59
|
+
| Denial of Service (resource exhaustion) | Limit recursive resolution depth; implement timeout; monitor for excessive filesystem operations[1]. |
|
|
60
|
+
|
|
61
|
+
### 7. Risk Ranking
|
|
62
|
+
|
|
63
|
+
- **High:** Path traversal via malicious IDs (if not properly mitigated)
|
|
64
|
+
- **Medium:** Cache tampering or spoofing (if cache is not secured)
|
|
65
|
+
- **Low:** Information disclosure in errors (if error handling is generic)
|
|
66
|
+
|
|
67
|
+
### 8. Next Steps & Review
|
|
68
|
+
|
|
69
|
+
1. **Implement input sanitization for module IDs and configuration.**
|
|
70
|
+
2. **Add resolution depth limiting and timeout.**
|
|
71
|
+
3. **Audit cache handling for race conditions and tampering.**
|
|
72
|
+
4. **Regularly review dependencies for vulnerabilities.**
|
|
73
|
+
5. **Keep documentation and threat model up to date.**
|
|
74
|
+
6. **Monitor for new threats as the ecosystem and library evolve[1][3].**
|
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
# Security
|
|
2
2
|
|
|
3
|
-
Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report.
|
|
3
|
+
Please file a private vulnerability via GitHub, email [@ljharb](https://github.com/ljharb), or see https://tidelift.com/security if you have a potential security vulnerability to report.
|
|
4
|
+
|
|
5
|
+
## Incident Response
|
|
6
|
+
|
|
7
|
+
See our [Incident Response Process](.github/INCIDENT_RESPONSE_PROCESS.md).
|
|
8
|
+
|
|
9
|
+
## Threat Model
|
|
10
|
+
|
|
11
|
+
See [THREAT_MODEL.md](./THREAT_MODEL.md).
|
|
@@ -8,6 +8,10 @@ var isCore = require('is-core-module');
|
|
|
8
8
|
|
|
9
9
|
var realpathFS = process.platform !== 'win32' && fs.realpath && typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath;
|
|
10
10
|
|
|
11
|
+
var relativePathRegex = /^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/;
|
|
12
|
+
var windowsDriveRegex = /^\w:[/\\]*$/;
|
|
13
|
+
var nodeModulesRegex = /[/\\]node_modules[/\\]*$/;
|
|
14
|
+
|
|
11
15
|
var homedir = getHomedir();
|
|
12
16
|
var defaultPaths = function () {
|
|
13
17
|
return [
|
|
@@ -124,10 +128,10 @@ module.exports = function resolve(x, options, callback) {
|
|
|
124
128
|
|
|
125
129
|
var res;
|
|
126
130
|
function init(basedir) {
|
|
127
|
-
if (
|
|
131
|
+
if (relativePathRegex.test(x)) {
|
|
128
132
|
res = path.resolve(basedir, x);
|
|
129
133
|
if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/';
|
|
130
|
-
if (
|
|
134
|
+
if (x.slice(-1) === '/' && res === basedir) {
|
|
131
135
|
loadAsDirectory(res, opts.package, onfile);
|
|
132
136
|
} else loadAsFile(res, opts.package, onfile);
|
|
133
137
|
} else if (includeCoreModules && isCore(x)) {
|
|
@@ -215,10 +219,10 @@ module.exports = function resolve(x, options, callback) {
|
|
|
215
219
|
|
|
216
220
|
function loadpkg(dir, cb) {
|
|
217
221
|
if (dir === '' || dir === '/') return cb(null);
|
|
218
|
-
if (process.platform === 'win32' &&
|
|
222
|
+
if (process.platform === 'win32' && windowsDriveRegex.test(dir)) {
|
|
219
223
|
return cb(null);
|
|
220
224
|
}
|
|
221
|
-
if (
|
|
225
|
+
if (nodeModulesRegex.test(dir)) return cb(null);
|
|
222
226
|
|
|
223
227
|
maybeRealpath(realpath, dir, opts, function (unwrapErr, pkgdir) {
|
|
224
228
|
if (unwrapErr) return loadpkg(path.dirname(dir), cb);
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"node:repl": [">= 14.18 && < 15", ">= 16"],
|
|
92
92
|
"node:sea": [">= 20.12 && < 21", ">= 21.7"],
|
|
93
93
|
"smalloc": ">= 0.11.5 && < 3",
|
|
94
|
-
"node:sqlite": ">= 23.4",
|
|
94
|
+
"node:sqlite": [">= 22.13 && < 23", ">= 23.4"],
|
|
95
95
|
"_stream_duplex": ">= 0.9.4",
|
|
96
96
|
"node:_stream_duplex": [">= 14.18 && < 15", ">= 16"],
|
|
97
97
|
"_stream_transform": ">= 0.9.4",
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
var path = require('path');
|
|
2
2
|
var parse = path.parse || require('path-parse'); // eslint-disable-line global-require
|
|
3
3
|
|
|
4
|
+
var driveLetterRegex = /^([A-Za-z]:)/;
|
|
5
|
+
var uncPathRegex = /^\\\\/;
|
|
6
|
+
|
|
4
7
|
var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) {
|
|
5
8
|
var prefix = '/';
|
|
6
|
-
if (
|
|
9
|
+
if (driveLetterRegex.test(absoluteStart)) {
|
|
7
10
|
prefix = '';
|
|
8
|
-
} else if (
|
|
11
|
+
} else if (uncPathRegex.test(absoluteStart)) {
|
|
9
12
|
prefix = '\\\\';
|
|
10
13
|
}
|
|
11
14
|
|
|
@@ -8,6 +8,10 @@ var normalizeOptions = require('./normalize-options');
|
|
|
8
8
|
|
|
9
9
|
var realpathFS = process.platform !== 'win32' && fs.realpathSync && typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync;
|
|
10
10
|
|
|
11
|
+
var relativePathRegex = /^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/;
|
|
12
|
+
var windowsDriveRegex = /^\w:[/\\]*$/;
|
|
13
|
+
var nodeModulesRegex = /[/\\]node_modules[/\\]*$/;
|
|
14
|
+
|
|
11
15
|
var homedir = getHomedir();
|
|
12
16
|
var defaultPaths = function () {
|
|
13
17
|
return [
|
|
@@ -96,7 +100,7 @@ module.exports = function resolveSync(x, options) {
|
|
|
96
100
|
// ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory
|
|
97
101
|
var absoluteStart = maybeRealpathSync(realpathSync, path.resolve(basedir), opts);
|
|
98
102
|
|
|
99
|
-
if (
|
|
103
|
+
if (relativePathRegex.test(x)) {
|
|
100
104
|
var res = path.resolve(absoluteStart, x);
|
|
101
105
|
if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/';
|
|
102
106
|
var m = loadAsFileSync(res) || loadAsDirectorySync(res);
|
|
@@ -137,10 +141,10 @@ module.exports = function resolveSync(x, options) {
|
|
|
137
141
|
|
|
138
142
|
function loadpkg(dir) {
|
|
139
143
|
if (dir === '' || dir === '/') return;
|
|
140
|
-
if (process.platform === 'win32' &&
|
|
144
|
+
if (process.platform === 'win32' && windowsDriveRegex.test(dir)) {
|
|
141
145
|
return;
|
|
142
146
|
}
|
|
143
|
-
if (
|
|
147
|
+
if (nodeModulesRegex.test(dir)) return;
|
|
144
148
|
|
|
145
149
|
var pkgfile = path.join(maybeRealpathSync(realpathSync, dir, opts), 'package.json');
|
|
146
150
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "resolve",
|
|
3
3
|
"description": "resolve like require.resolve() on behalf of files asynchronously and synchronously",
|
|
4
|
-
"version": "1.22.
|
|
4
|
+
"version": "1.22.11",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
|
-
"url": "
|
|
7
|
+
"url": "ssh://github.com/browserify/resolve.git"
|
|
8
8
|
},
|
|
9
9
|
"bin": {
|
|
10
10
|
"resolve": "./bin/resolve"
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"test:multirepo": "cd ./test/resolver/multirepo && npm install && npm test"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@ljharb/eslint-config": "^21.
|
|
34
|
-
"array.prototype.map": "^1.0.
|
|
33
|
+
"@ljharb/eslint-config": "^21.2.0",
|
|
34
|
+
"array.prototype.map": "^1.0.8",
|
|
35
35
|
"copy-dir": "^1.3.0",
|
|
36
36
|
"eclint": "^2.8.1",
|
|
37
37
|
"eslint": "=8.8.0",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"url": "https://github.com/sponsors/ljharb"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"is-core-module": "^2.16.
|
|
60
|
+
"is-core-module": "^2.16.1",
|
|
61
61
|
"path-parse": "^1.0.7",
|
|
62
62
|
"supports-preserve-symlinks-flag": "^1.0.0"
|
|
63
63
|
},
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
0.19.1 / 2024-10-09
|
|
2
|
+
===================
|
|
3
|
+
|
|
4
|
+
* deps: encodeurl@~2.0.0
|
|
5
|
+
|
|
1
6
|
0.19.0 / 2024-09-10
|
|
2
7
|
===================
|
|
3
8
|
|
|
@@ -485,37 +490,37 @@
|
|
|
485
490
|
|
|
486
491
|
* update range-parser and fresh
|
|
487
492
|
|
|
488
|
-
0.1.4 / 2013-08-11
|
|
493
|
+
0.1.4 / 2013-08-11
|
|
489
494
|
==================
|
|
490
495
|
|
|
491
496
|
* update fresh
|
|
492
497
|
|
|
493
|
-
0.1.3 / 2013-07-08
|
|
498
|
+
0.1.3 / 2013-07-08
|
|
494
499
|
==================
|
|
495
500
|
|
|
496
501
|
* Revert "Fix fd leak"
|
|
497
502
|
|
|
498
|
-
0.1.2 / 2013-07-03
|
|
503
|
+
0.1.2 / 2013-07-03
|
|
499
504
|
==================
|
|
500
505
|
|
|
501
506
|
* Fix fd leak
|
|
502
507
|
|
|
503
|
-
0.1.0 / 2012-08-25
|
|
508
|
+
0.1.0 / 2012-08-25
|
|
504
509
|
==================
|
|
505
510
|
|
|
506
511
|
* add options parameter to send() that is passed to fs.createReadStream() [kanongil]
|
|
507
512
|
|
|
508
|
-
0.0.4 / 2012-08-16
|
|
513
|
+
0.0.4 / 2012-08-16
|
|
509
514
|
==================
|
|
510
515
|
|
|
511
516
|
* allow custom "Accept-Ranges" definition
|
|
512
517
|
|
|
513
|
-
0.0.3 / 2012-07-16
|
|
518
|
+
0.0.3 / 2012-07-16
|
|
514
519
|
==================
|
|
515
520
|
|
|
516
521
|
* fix normalization of the root directory. Closes #3
|
|
517
522
|
|
|
518
|
-
0.0.2 / 2012-07-09
|
|
523
|
+
0.0.2 / 2012-07-09
|
|
519
524
|
==================
|
|
520
525
|
|
|
521
526
|
* add passing of req explicitly for now (YUCK)
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
2.0.0 / 2021-12-17
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
* Drop support for Node.js 0.6
|
|
5
|
+
* Remove `I'mateapot` export; use `ImATeapot` instead
|
|
6
|
+
* Remove support for status being non-first argument
|
|
7
|
+
* Rename `UnorderedCollection` constructor to `TooEarly`
|
|
8
|
+
* deps: depd@2.0.0
|
|
9
|
+
- Replace internal `eval` usage with `Function` constructor
|
|
10
|
+
- Use instance methods on `process` to check for listeners
|
|
11
|
+
* deps: statuses@2.0.1
|
|
12
|
+
- Fix messaging casing of `418 I'm a Teapot`
|
|
13
|
+
- Remove code 306
|
|
14
|
+
- Rename `425 Unordered Collection` to standard `425 Too Early`
|
|
15
|
+
|
|
16
|
+
2021-11-14 / 1.8.1
|
|
17
|
+
==================
|
|
18
|
+
|
|
19
|
+
* deps: toidentifier@1.0.1
|
|
20
|
+
|
|
21
|
+
2020-06-29 / 1.8.0
|
|
22
|
+
==================
|
|
23
|
+
|
|
24
|
+
* Add `isHttpError` export to determine if value is an HTTP error
|
|
25
|
+
* deps: setprototypeof@1.2.0
|
|
26
|
+
|
|
27
|
+
2019-06-24 / 1.7.3
|
|
28
|
+
==================
|
|
29
|
+
|
|
30
|
+
* deps: inherits@2.0.4
|
|
31
|
+
|
|
32
|
+
2019-02-18 / 1.7.2
|
|
33
|
+
==================
|
|
34
|
+
|
|
35
|
+
* deps: setprototypeof@1.1.1
|
|
36
|
+
|
|
37
|
+
2018-09-08 / 1.7.1
|
|
38
|
+
==================
|
|
39
|
+
|
|
40
|
+
* Fix error creating objects in some environments
|
|
41
|
+
|
|
42
|
+
2018-07-30 / 1.7.0
|
|
43
|
+
==================
|
|
44
|
+
|
|
45
|
+
* Set constructor name when possible
|
|
46
|
+
* Use `toidentifier` module to make class names
|
|
47
|
+
* deps: statuses@'>= 1.5.0 < 2'
|
|
48
|
+
|
|
49
|
+
2018-03-29 / 1.6.3
|
|
50
|
+
==================
|
|
51
|
+
|
|
52
|
+
* deps: depd@~1.1.2
|
|
53
|
+
- perf: remove argument reassignment
|
|
54
|
+
* deps: setprototypeof@1.1.0
|
|
55
|
+
* deps: statuses@'>= 1.4.0 < 2'
|
|
56
|
+
|
|
57
|
+
2017-08-04 / 1.6.2
|
|
58
|
+
==================
|
|
59
|
+
|
|
60
|
+
* deps: depd@1.1.1
|
|
61
|
+
- Remove unnecessary `Buffer` loading
|
|
62
|
+
|
|
63
|
+
2017-02-20 / 1.6.1
|
|
64
|
+
==================
|
|
65
|
+
|
|
66
|
+
* deps: setprototypeof@1.0.3
|
|
67
|
+
- Fix shim for old browsers
|
|
68
|
+
|
|
69
|
+
2017-02-14 / 1.6.0
|
|
70
|
+
==================
|
|
71
|
+
|
|
72
|
+
* Accept custom 4xx and 5xx status codes in factory
|
|
73
|
+
* Add deprecation message to `"I'mateapot"` export
|
|
74
|
+
* Deprecate passing status code as anything except first argument in factory
|
|
75
|
+
* Deprecate using non-error status codes
|
|
76
|
+
* Make `message` property enumerable for `HttpError`s
|
|
77
|
+
|
|
78
|
+
2016-11-16 / 1.5.1
|
|
79
|
+
==================
|
|
80
|
+
|
|
81
|
+
* deps: inherits@2.0.3
|
|
82
|
+
- Fix issue loading in browser
|
|
83
|
+
* deps: setprototypeof@1.0.2
|
|
84
|
+
* deps: statuses@'>= 1.3.1 < 2'
|
|
85
|
+
|
|
86
|
+
2016-05-18 / 1.5.0
|
|
87
|
+
==================
|
|
88
|
+
|
|
89
|
+
* Support new code `421 Misdirected Request`
|
|
90
|
+
* Use `setprototypeof` module to replace `__proto__` setting
|
|
91
|
+
* deps: statuses@'>= 1.3.0 < 2'
|
|
92
|
+
- Add `421 Misdirected Request`
|
|
93
|
+
- perf: enable strict mode
|
|
94
|
+
* perf: enable strict mode
|
|
95
|
+
|
|
96
|
+
2016-01-28 / 1.4.0
|
|
97
|
+
==================
|
|
98
|
+
|
|
99
|
+
* Add `HttpError` export, for `err instanceof createError.HttpError`
|
|
100
|
+
* deps: inherits@2.0.1
|
|
101
|
+
* deps: statuses@'>= 1.2.1 < 2'
|
|
102
|
+
- Fix message for status 451
|
|
103
|
+
- Remove incorrect nginx status code
|
|
104
|
+
|
|
105
|
+
2015-02-02 / 1.3.1
|
|
106
|
+
==================
|
|
107
|
+
|
|
108
|
+
* Fix regression where status can be overwritten in `createError` `props`
|
|
109
|
+
|
|
110
|
+
2015-02-01 / 1.3.0
|
|
111
|
+
==================
|
|
112
|
+
|
|
113
|
+
* Construct errors using defined constructors from `createError`
|
|
114
|
+
* Fix error names that are not identifiers
|
|
115
|
+
- `createError["I'mateapot"]` is now `createError.ImATeapot`
|
|
116
|
+
* Set a meaningful `name` property on constructed errors
|
|
117
|
+
|
|
118
|
+
2014-12-09 / 1.2.8
|
|
119
|
+
==================
|
|
120
|
+
|
|
121
|
+
* Fix stack trace from exported function
|
|
122
|
+
* Remove `arguments.callee` usage
|
|
123
|
+
|
|
124
|
+
2014-10-14 / 1.2.7
|
|
125
|
+
==================
|
|
126
|
+
|
|
127
|
+
* Remove duplicate line
|
|
128
|
+
|
|
129
|
+
2014-10-02 / 1.2.6
|
|
130
|
+
==================
|
|
131
|
+
|
|
132
|
+
* Fix `expose` to be `true` for `ClientError` constructor
|
|
133
|
+
|
|
134
|
+
2014-09-28 / 1.2.5
|
|
135
|
+
==================
|
|
136
|
+
|
|
137
|
+
* deps: statuses@1
|
|
138
|
+
|
|
139
|
+
2014-09-21 / 1.2.4
|
|
140
|
+
==================
|
|
141
|
+
|
|
142
|
+
* Fix dependency version to work with old `npm`s
|
|
143
|
+
|
|
144
|
+
2014-09-21 / 1.2.3
|
|
145
|
+
==================
|
|
146
|
+
|
|
147
|
+
* deps: statuses@~1.1.0
|
|
148
|
+
|
|
149
|
+
2014-09-21 / 1.2.2
|
|
150
|
+
==================
|
|
151
|
+
|
|
152
|
+
* Fix publish error
|
|
153
|
+
|
|
154
|
+
2014-09-21 / 1.2.1
|
|
155
|
+
==================
|
|
156
|
+
|
|
157
|
+
* Support Node.js 0.6
|
|
158
|
+
* Use `inherits` instead of `util`
|
|
159
|
+
|
|
160
|
+
2014-09-09 / 1.2.0
|
|
161
|
+
==================
|
|
162
|
+
|
|
163
|
+
* Fix the way inheriting functions
|
|
164
|
+
* Support `expose` being provided in properties argument
|
|
165
|
+
|
|
166
|
+
2014-09-08 / 1.1.0
|
|
167
|
+
==================
|
|
168
|
+
|
|
169
|
+
* Default status to 500
|
|
170
|
+
* Support provided `error` to extend
|
|
171
|
+
|
|
172
|
+
2014-09-08 / 1.0.1
|
|
173
|
+
==================
|
|
174
|
+
|
|
175
|
+
* Fix accepting string message
|
|
176
|
+
|
|
177
|
+
2014-09-08 / 1.0.0
|
|
178
|
+
==================
|
|
179
|
+
|
|
180
|
+
* Initial release
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
The MIT License (MIT)
|
|
3
|
+
|
|
4
|
+
Copyright (c) 2014 Jonathan Ong me@jongleberry.com
|
|
5
|
+
Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.com
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in
|
|
15
|
+
all copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
+
THE SOFTWARE.
|