mirror of
				https://github.com/actions/setup-java.git
				synced 2025-10-31 06:20:53 +00:00 
			
		
		
		
	Fix.
This commit is contained in:
		
					parent
					
						
							
								596a6da241
							
						
					
				
			
			
				commit
				
					
						c1a589c5b6
					
				
			
		
					 7078 changed files with 1882834 additions and 319 deletions
				
			
		
							
								
								
									
										246
									
								
								node_modules/resolve/lib/async.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										246
									
								
								node_modules/resolve/lib/async.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,246 @@ | |||
| var core = require('./core'); | ||||
| var fs = require('fs'); | ||||
| var path = require('path'); | ||||
| var caller = require('./caller.js'); | ||||
| var nodeModulesPaths = require('./node-modules-paths.js'); | ||||
| var normalizeOptions = require('./normalize-options.js'); | ||||
| 
 | ||||
| var defaultIsFile = function isFile(file, cb) { | ||||
|     fs.stat(file, function (err, stat) { | ||||
|         if (!err) { | ||||
|             return cb(null, stat.isFile() || stat.isFIFO()); | ||||
|         } | ||||
|         if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); | ||||
|         return cb(err); | ||||
|     }); | ||||
| }; | ||||
| 
 | ||||
| var defaultIsDir = function isDirectory(dir, cb) { | ||||
|     fs.stat(dir, function (err, stat) { | ||||
|         if (!err) { | ||||
|             return cb(null, stat.isDirectory()); | ||||
|         } | ||||
|         if (err.code === 'ENOENT' || err.code === 'ENOTDIR') return cb(null, false); | ||||
|         return cb(err); | ||||
|     }); | ||||
| }; | ||||
| 
 | ||||
| module.exports = function resolve(x, options, callback) { | ||||
|     var cb = callback; | ||||
|     var opts = options; | ||||
|     if (typeof options === 'function') { | ||||
|         cb = opts; | ||||
|         opts = {}; | ||||
|     } | ||||
|     if (typeof x !== 'string') { | ||||
|         var err = new TypeError('Path must be a string.'); | ||||
|         return process.nextTick(function () { | ||||
|             cb(err); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     opts = normalizeOptions(x, opts); | ||||
| 
 | ||||
|     var isFile = opts.isFile || defaultIsFile; | ||||
|     var isDirectory = opts.isDirectory || defaultIsDir; | ||||
|     var readFile = opts.readFile || fs.readFile; | ||||
| 
 | ||||
|     var extensions = opts.extensions || ['.js']; | ||||
|     var basedir = opts.basedir || path.dirname(caller()); | ||||
|     var parent = opts.filename || basedir; | ||||
| 
 | ||||
|     opts.paths = opts.paths || []; | ||||
| 
 | ||||
|     // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory
 | ||||
|     var absoluteStart = path.resolve(basedir); | ||||
| 
 | ||||
|     if (opts.preserveSymlinks === false) { | ||||
|         fs.realpath(absoluteStart, function (realPathErr, realStart) { | ||||
|             if (realPathErr && realPathErr.code !== 'ENOENT') cb(err); | ||||
|             else init(realPathErr ? absoluteStart : realStart); | ||||
|         }); | ||||
|     } else { | ||||
|         init(absoluteStart); | ||||
|     } | ||||
| 
 | ||||
|     var res; | ||||
|     function init(basedir) { | ||||
|         if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) { | ||||
|             res = path.resolve(basedir, x); | ||||
|             if (x === '..' || x.slice(-1) === '/') res += '/'; | ||||
|             if ((/\/$/).test(x) && res === basedir) { | ||||
|                 loadAsDirectory(res, opts.package, onfile); | ||||
|             } else loadAsFile(res, opts.package, onfile); | ||||
|         } else loadNodeModules(x, basedir, function (err, n, pkg) { | ||||
|             if (err) cb(err); | ||||
|             else if (core[x]) return cb(null, x); | ||||
|             else if (n) cb(null, n, pkg); | ||||
|             else { | ||||
|                 var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); | ||||
|                 moduleError.code = 'MODULE_NOT_FOUND'; | ||||
|                 cb(moduleError); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     function onfile(err, m, pkg) { | ||||
|         if (err) cb(err); | ||||
|         else if (m) cb(null, m, pkg); | ||||
|         else loadAsDirectory(res, function (err, d, pkg) { | ||||
|             if (err) cb(err); | ||||
|             else if (d) cb(null, d, pkg); | ||||
|             else { | ||||
|                 var moduleError = new Error("Cannot find module '" + x + "' from '" + parent + "'"); | ||||
|                 moduleError.code = 'MODULE_NOT_FOUND'; | ||||
|                 cb(moduleError); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     function loadAsFile(x, thePackage, callback) { | ||||
|         var loadAsFilePackage = thePackage; | ||||
|         var cb = callback; | ||||
|         if (typeof loadAsFilePackage === 'function') { | ||||
|             cb = loadAsFilePackage; | ||||
|             loadAsFilePackage = undefined; | ||||
|         } | ||||
| 
 | ||||
|         var exts = [''].concat(extensions); | ||||
|         load(exts, x, loadAsFilePackage); | ||||
| 
 | ||||
|         function load(exts, x, loadPackage) { | ||||
|             if (exts.length === 0) return cb(null, undefined, loadPackage); | ||||
|             var file = x + exts[0]; | ||||
| 
 | ||||
|             var pkg = loadPackage; | ||||
|             if (pkg) onpkg(null, pkg); | ||||
|             else loadpkg(path.dirname(file), onpkg); | ||||
| 
 | ||||
|             function onpkg(err, pkg_, dir) { | ||||
|                 pkg = pkg_; | ||||
|                 if (err) return cb(err); | ||||
|                 if (dir && pkg && opts.pathFilter) { | ||||
|                     var rfile = path.relative(dir, file); | ||||
|                     var rel = rfile.slice(0, rfile.length - exts[0].length); | ||||
|                     var r = opts.pathFilter(pkg, x, rel); | ||||
|                     if (r) return load( | ||||
|                         [''].concat(extensions.slice()), | ||||
|                         path.resolve(dir, r), | ||||
|                         pkg | ||||
|                     ); | ||||
|                 } | ||||
|                 isFile(file, onex); | ||||
|             } | ||||
|             function onex(err, ex) { | ||||
|                 if (err) return cb(err); | ||||
|                 if (ex) return cb(null, file, pkg); | ||||
|                 load(exts.slice(1), x, pkg); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     function loadpkg(dir, cb) { | ||||
|         if (dir === '' || dir === '/') return cb(null); | ||||
|         if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) { | ||||
|             return cb(null); | ||||
|         } | ||||
|         if ((/[/\\]node_modules[/\\]*$/).test(dir)) return cb(null); | ||||
| 
 | ||||
|         var pkgfile = path.join(dir, 'package.json'); | ||||
|         isFile(pkgfile, function (err, ex) { | ||||
|             // on err, ex is false
 | ||||
|             if (!ex) return loadpkg(path.dirname(dir), cb); | ||||
| 
 | ||||
|             readFile(pkgfile, function (err, body) { | ||||
|                 if (err) cb(err); | ||||
|                 try { var pkg = JSON.parse(body); } catch (jsonErr) {} | ||||
| 
 | ||||
|                 if (pkg && opts.packageFilter) { | ||||
|                     pkg = opts.packageFilter(pkg, pkgfile); | ||||
|                 } | ||||
|                 cb(null, pkg, dir); | ||||
|             }); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     function loadAsDirectory(x, loadAsDirectoryPackage, callback) { | ||||
|         var cb = callback; | ||||
|         var fpkg = loadAsDirectoryPackage; | ||||
|         if (typeof fpkg === 'function') { | ||||
|             cb = fpkg; | ||||
|             fpkg = opts.package; | ||||
|         } | ||||
| 
 | ||||
|         var pkgfile = path.join(x, 'package.json'); | ||||
|         isFile(pkgfile, function (err, ex) { | ||||
|             if (err) return cb(err); | ||||
|             if (!ex) return loadAsFile(path.join(x, 'index'), fpkg, cb); | ||||
| 
 | ||||
|             readFile(pkgfile, function (err, body) { | ||||
|                 if (err) return cb(err); | ||||
|                 try { | ||||
|                     var pkg = JSON.parse(body); | ||||
|                 } catch (jsonErr) {} | ||||
| 
 | ||||
|                 if (opts.packageFilter) { | ||||
|                     pkg = opts.packageFilter(pkg, pkgfile); | ||||
|                 } | ||||
| 
 | ||||
|                 if (pkg.main) { | ||||
|                     if (typeof pkg.main !== 'string') { | ||||
|                         var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); | ||||
|                         mainError.code = 'INVALID_PACKAGE_MAIN'; | ||||
|                         return cb(mainError); | ||||
|                     } | ||||
|                     if (pkg.main === '.' || pkg.main === './') { | ||||
|                         pkg.main = 'index'; | ||||
|                     } | ||||
|                     loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) { | ||||
|                         if (err) return cb(err); | ||||
|                         if (m) return cb(null, m, pkg); | ||||
|                         if (!pkg) return loadAsFile(path.join(x, 'index'), pkg, cb); | ||||
| 
 | ||||
|                         var dir = path.resolve(x, pkg.main); | ||||
|                         loadAsDirectory(dir, pkg, function (err, n, pkg) { | ||||
|                             if (err) return cb(err); | ||||
|                             if (n) return cb(null, n, pkg); | ||||
|                             loadAsFile(path.join(x, 'index'), pkg, cb); | ||||
|                         }); | ||||
|                     }); | ||||
|                     return; | ||||
|                 } | ||||
| 
 | ||||
|                 loadAsFile(path.join(x, '/index'), pkg, cb); | ||||
|             }); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     function processDirs(cb, dirs) { | ||||
|         if (dirs.length === 0) return cb(null, undefined); | ||||
|         var dir = dirs[0]; | ||||
| 
 | ||||
|         isDirectory(dir, isdir); | ||||
| 
 | ||||
|         function isdir(err, isdir) { | ||||
|             if (err) return cb(err); | ||||
|             if (!isdir) return processDirs(cb, dirs.slice(1)); | ||||
|             var file = path.join(dir, x); | ||||
|             loadAsFile(file, opts.package, onfile); | ||||
|         } | ||||
| 
 | ||||
|         function onfile(err, m, pkg) { | ||||
|             if (err) return cb(err); | ||||
|             if (m) return cb(null, m, pkg); | ||||
|             loadAsDirectory(path.join(dir, x), opts.package, ondir); | ||||
|         } | ||||
| 
 | ||||
|         function ondir(err, n, pkg) { | ||||
|             if (err) return cb(err); | ||||
|             if (n) return cb(null, n, pkg); | ||||
|             processDirs(cb, dirs.slice(1)); | ||||
|         } | ||||
|     } | ||||
|     function loadNodeModules(x, start, cb) { | ||||
|         processDirs(cb, nodeModulesPaths(start, opts, x)); | ||||
|     } | ||||
| }; | ||||
							
								
								
									
										8
									
								
								node_modules/resolve/lib/caller.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								node_modules/resolve/lib/caller.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| module.exports = function () { | ||||
|     // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
 | ||||
|     var origPrepareStackTrace = Error.prepareStackTrace; | ||||
|     Error.prepareStackTrace = function (_, stack) { return stack; }; | ||||
|     var stack = (new Error()).stack; | ||||
|     Error.prepareStackTrace = origPrepareStackTrace; | ||||
|     return stack[2].getFileName(); | ||||
| }; | ||||
							
								
								
									
										53
									
								
								node_modules/resolve/lib/core.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								node_modules/resolve/lib/core.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,53 @@ | |||
| var current = (process.versions && process.versions.node && process.versions.node.split('.')) || []; | ||||
| 
 | ||||
| function specifierIncluded(specifier) { | ||||
|     var parts = specifier.split(' '); | ||||
|     var op = parts.length > 1 ? parts[0] : '='; | ||||
|     var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); | ||||
| 
 | ||||
|     for (var i = 0; i < 3; ++i) { | ||||
|         var cur = Number(current[i] || 0); | ||||
|         var ver = Number(versionParts[i] || 0); | ||||
|         if (cur === ver) { | ||||
|             continue; // eslint-disable-line no-restricted-syntax, no-continue
 | ||||
|         } | ||||
|         if (op === '<') { | ||||
|             return cur < ver; | ||||
|         } else if (op === '>=') { | ||||
|             return cur >= ver; | ||||
|         } else { | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|     return op === '>='; | ||||
| } | ||||
| 
 | ||||
| function matchesRange(range) { | ||||
|     var specifiers = range.split(/ ?&& ?/); | ||||
|     if (specifiers.length === 0) { return false; } | ||||
|     for (var i = 0; i < specifiers.length; ++i) { | ||||
|         if (!specifierIncluded(specifiers[i])) { return false; } | ||||
|     } | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| function versionIncluded(specifierValue) { | ||||
|     if (typeof specifierValue === 'boolean') { return specifierValue; } | ||||
|     if (specifierValue && typeof specifierValue === 'object') { | ||||
|         for (var i = 0; i < specifierValue.length; ++i) { | ||||
|             if (matchesRange(specifierValue[i])) { return true; } | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|     return matchesRange(specifierValue); | ||||
| } | ||||
| 
 | ||||
| var data = require('./core.json'); | ||||
| 
 | ||||
| var core = {}; | ||||
| for (var mod in data) { // eslint-disable-line no-restricted-syntax
 | ||||
|     if (Object.prototype.hasOwnProperty.call(data, mod)) { | ||||
|         core[mod] = versionIncluded(data[mod]); | ||||
|     } | ||||
| } | ||||
| module.exports = core; | ||||
							
								
								
									
										73
									
								
								node_modules/resolve/lib/core.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								node_modules/resolve/lib/core.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,73 @@ | |||
| { | ||||
|     "assert": true, | ||||
|     "async_hooks": ">= 8", | ||||
|     "buffer_ieee754": "< 0.9.7", | ||||
|     "buffer": true, | ||||
|     "child_process": true, | ||||
|     "cluster": true, | ||||
|     "console": true, | ||||
|     "constants": true, | ||||
|     "crypto": true, | ||||
|     "_debugger": "< 8", | ||||
|     "dgram": true, | ||||
|     "dns": true, | ||||
|     "domain": true, | ||||
|     "events": true, | ||||
|     "freelist": "< 6", | ||||
|     "fs": true, | ||||
|     "fs/promises": ">= 10 && < 10.1", | ||||
|     "_http_agent": ">= 0.11.1", | ||||
|     "_http_client": ">= 0.11.1", | ||||
|     "_http_common": ">= 0.11.1", | ||||
|     "_http_incoming": ">= 0.11.1", | ||||
|     "_http_outgoing": ">= 0.11.1", | ||||
|     "_http_server": ">= 0.11.1", | ||||
|     "http": true, | ||||
|     "http2": ">= 8.8", | ||||
|     "https": true, | ||||
|     "inspector": ">= 8.0.0", | ||||
|     "_linklist": "< 8", | ||||
|     "module": true, | ||||
|     "net": true, | ||||
|     "node-inspect/lib/_inspect": ">= 7.6.0 && < 12", | ||||
|     "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12", | ||||
|     "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12", | ||||
|     "os": true, | ||||
|     "path": true, | ||||
|     "perf_hooks": ">= 8.5", | ||||
|     "process": ">= 1", | ||||
|     "punycode": true, | ||||
|     "querystring": true, | ||||
|     "readline": true, | ||||
|     "repl": true, | ||||
|     "smalloc": ">= 0.11.5 && < 3", | ||||
|     "_stream_duplex": ">= 0.9.4", | ||||
|     "_stream_transform": ">= 0.9.4", | ||||
|     "_stream_wrap": ">= 1.4.1", | ||||
|     "_stream_passthrough": ">= 0.9.4", | ||||
|     "_stream_readable": ">= 0.9.4", | ||||
|     "_stream_writable": ">= 0.9.4", | ||||
|     "stream": true, | ||||
|     "string_decoder": true, | ||||
|     "sys": true, | ||||
|     "timers": true, | ||||
|     "_tls_common": ">= 0.11.13", | ||||
|     "_tls_legacy": ">= 0.11.3 && < 10", | ||||
|     "_tls_wrap": ">= 0.11.3", | ||||
|     "tls": true, | ||||
|     "trace_events": ">= 10", | ||||
|     "tty": true, | ||||
|     "url": true, | ||||
|     "util": true, | ||||
|     "v8/tools/arguments": ">= 10 && < 12", | ||||
|     "v8/tools/codemap": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], | ||||
|     "v8/tools/consarray": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], | ||||
|     "v8/tools/csvparser": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], | ||||
|     "v8/tools/logreader": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], | ||||
|     "v8/tools/profile_view": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], | ||||
|     "v8/tools/splaytree": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], | ||||
|     "v8": ">= 1", | ||||
|     "vm": true, | ||||
|     "worker_threads": ">= 11.7", | ||||
|     "zlib": true | ||||
| } | ||||
							
								
								
									
										42
									
								
								node_modules/resolve/lib/node-modules-paths.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								node_modules/resolve/lib/node-modules-paths.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,42 @@ | |||
| var path = require('path'); | ||||
| var parse = path.parse || require('path-parse'); | ||||
| 
 | ||||
| var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) { | ||||
|     var prefix = '/'; | ||||
|     if ((/^([A-Za-z]:)/).test(absoluteStart)) { | ||||
|         prefix = ''; | ||||
|     } else if ((/^\\\\/).test(absoluteStart)) { | ||||
|         prefix = '\\\\'; | ||||
|     } | ||||
| 
 | ||||
|     var paths = [absoluteStart]; | ||||
|     var parsed = parse(absoluteStart); | ||||
|     while (parsed.dir !== paths[paths.length - 1]) { | ||||
|         paths.push(parsed.dir); | ||||
|         parsed = parse(parsed.dir); | ||||
|     } | ||||
| 
 | ||||
|     return paths.reduce(function (dirs, aPath) { | ||||
|         return dirs.concat(modules.map(function (moduleDir) { | ||||
|             return path.resolve(prefix, aPath, moduleDir); | ||||
|         })); | ||||
|     }, []); | ||||
| }; | ||||
| 
 | ||||
| module.exports = function nodeModulesPaths(start, opts, request) { | ||||
|     var modules = opts && opts.moduleDirectory | ||||
|         ? [].concat(opts.moduleDirectory) | ||||
|         : ['node_modules']; | ||||
| 
 | ||||
|     if (opts && typeof opts.paths === 'function') { | ||||
|         return opts.paths( | ||||
|             request, | ||||
|             start, | ||||
|             function () { return getNodeModulesDirs(start, modules); }, | ||||
|             opts | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|     var dirs = getNodeModulesDirs(start, modules); | ||||
|     return opts && opts.paths ? dirs.concat(opts.paths) : dirs; | ||||
| }; | ||||
							
								
								
									
										10
									
								
								node_modules/resolve/lib/normalize-options.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								node_modules/resolve/lib/normalize-options.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| module.exports = function (x, opts) { | ||||
|     /** | ||||
|      * This file is purposefully a passthrough. It's expected that third-party | ||||
|      * environments will override it at runtime in order to inject special logic | ||||
|      * into `resolve` (by manipulating the options). One such example is the PnP | ||||
|      * code path in Yarn. | ||||
|      */ | ||||
| 
 | ||||
|     return opts || {}; | ||||
| }; | ||||
							
								
								
									
										169
									
								
								node_modules/resolve/lib/sync.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								node_modules/resolve/lib/sync.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,169 @@ | |||
| var core = require('./core'); | ||||
| var fs = require('fs'); | ||||
| var path = require('path'); | ||||
| var caller = require('./caller.js'); | ||||
| var nodeModulesPaths = require('./node-modules-paths.js'); | ||||
| var normalizeOptions = require('./normalize-options.js'); | ||||
| 
 | ||||
| var defaultIsFile = function isFile(file) { | ||||
|     try { | ||||
|         var stat = fs.statSync(file); | ||||
|     } catch (e) { | ||||
|         if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; | ||||
|         throw e; | ||||
|     } | ||||
|     return stat.isFile() || stat.isFIFO(); | ||||
| }; | ||||
| 
 | ||||
| var defaultIsDir = function isDirectory(dir) { | ||||
|     try { | ||||
|         var stat = fs.statSync(dir); | ||||
|     } catch (e) { | ||||
|         if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; | ||||
|         throw e; | ||||
|     } | ||||
|     return stat.isDirectory(); | ||||
| }; | ||||
| 
 | ||||
| module.exports = function (x, options) { | ||||
|     if (typeof x !== 'string') { | ||||
|         throw new TypeError('Path must be a string.'); | ||||
|     } | ||||
|     var opts = normalizeOptions(x, options); | ||||
| 
 | ||||
|     var isFile = opts.isFile || defaultIsFile; | ||||
|     var readFileSync = opts.readFileSync || fs.readFileSync; | ||||
|     var isDirectory = opts.isDirectory || defaultIsDir; | ||||
| 
 | ||||
|     var extensions = opts.extensions || ['.js']; | ||||
|     var basedir = opts.basedir || path.dirname(caller()); | ||||
|     var parent = opts.filename || basedir; | ||||
| 
 | ||||
|     opts.paths = opts.paths || []; | ||||
| 
 | ||||
|     // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory
 | ||||
|     var absoluteStart = path.resolve(basedir); | ||||
| 
 | ||||
|     if (opts.preserveSymlinks === false) { | ||||
|         try { | ||||
|             absoluteStart = fs.realpathSync(absoluteStart); | ||||
|         } catch (realPathErr) { | ||||
|             if (realPathErr.code !== 'ENOENT') { | ||||
|                 throw realPathErr; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) { | ||||
|         var res = path.resolve(absoluteStart, x); | ||||
|         if (x === '..' || x.slice(-1) === '/') res += '/'; | ||||
|         var m = loadAsFileSync(res) || loadAsDirectorySync(res); | ||||
|         if (m) return m; | ||||
|     } else if (core[x]) { | ||||
|         return x; | ||||
|     } else { | ||||
|         var n = loadNodeModulesSync(x, absoluteStart); | ||||
|         if (n) return n; | ||||
|     } | ||||
| 
 | ||||
|     if (core[x]) return x; | ||||
| 
 | ||||
|     var err = new Error("Cannot find module '" + x + "' from '" + parent + "'"); | ||||
|     err.code = 'MODULE_NOT_FOUND'; | ||||
|     throw err; | ||||
| 
 | ||||
|     function loadAsFileSync(x) { | ||||
|         var pkg = loadpkg(path.dirname(x)); | ||||
| 
 | ||||
|         if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) { | ||||
|             var rfile = path.relative(pkg.dir, x); | ||||
|             var r = opts.pathFilter(pkg.pkg, x, rfile); | ||||
|             if (r) { | ||||
|                 x = path.resolve(pkg.dir, r); // eslint-disable-line no-param-reassign
 | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         if (isFile(x)) { | ||||
|             return x; | ||||
|         } | ||||
| 
 | ||||
|         for (var i = 0; i < extensions.length; i++) { | ||||
|             var file = x + extensions[i]; | ||||
|             if (isFile(file)) { | ||||
|                 return file; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     function loadpkg(dir) { | ||||
|         if (dir === '' || dir === '/') return; | ||||
|         if (process.platform === 'win32' && (/^\w:[/\\]*$/).test(dir)) { | ||||
|             return; | ||||
|         } | ||||
|         if ((/[/\\]node_modules[/\\]*$/).test(dir)) return; | ||||
| 
 | ||||
|         var pkgfile = path.join(dir, 'package.json'); | ||||
| 
 | ||||
|         if (!isFile(pkgfile)) { | ||||
|             return loadpkg(path.dirname(dir)); | ||||
|         } | ||||
| 
 | ||||
|         var body = readFileSync(pkgfile); | ||||
| 
 | ||||
|         try { | ||||
|             var pkg = JSON.parse(body); | ||||
|         } catch (jsonErr) {} | ||||
| 
 | ||||
|         if (pkg && opts.packageFilter) { | ||||
|             pkg = opts.packageFilter(pkg, dir); | ||||
|         } | ||||
| 
 | ||||
|         return { pkg: pkg, dir: dir }; | ||||
|     } | ||||
| 
 | ||||
|     function loadAsDirectorySync(x) { | ||||
|         var pkgfile = path.join(x, '/package.json'); | ||||
|         if (isFile(pkgfile)) { | ||||
|             try { | ||||
|                 var body = readFileSync(pkgfile, 'UTF8'); | ||||
|                 var pkg = JSON.parse(body); | ||||
|             } catch (e) {} | ||||
| 
 | ||||
|             if (opts.packageFilter) { | ||||
|                 pkg = opts.packageFilter(pkg, x); | ||||
|             } | ||||
| 
 | ||||
|             if (pkg.main) { | ||||
|                 if (typeof pkg.main !== 'string') { | ||||
|                     var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); | ||||
|                     mainError.code = 'INVALID_PACKAGE_MAIN'; | ||||
|                     throw mainError; | ||||
|                 } | ||||
|                 if (pkg.main === '.' || pkg.main === './') { | ||||
|                     pkg.main = 'index'; | ||||
|                 } | ||||
|                 try { | ||||
|                     var m = loadAsFileSync(path.resolve(x, pkg.main)); | ||||
|                     if (m) return m; | ||||
|                     var n = loadAsDirectorySync(path.resolve(x, pkg.main)); | ||||
|                     if (n) return n; | ||||
|                 } catch (e) {} | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return loadAsFileSync(path.join(x, '/index')); | ||||
|     } | ||||
| 
 | ||||
|     function loadNodeModulesSync(x, start) { | ||||
|         var dirs = nodeModulesPaths(start, opts, x); | ||||
|         for (var i = 0; i < dirs.length; i++) { | ||||
|             var dir = dirs[i]; | ||||
|             if (isDirectory(dir)) { | ||||
|                 var m = loadAsFileSync(path.join(dir, '/', x)); | ||||
|                 if (m) return m; | ||||
|                 var n = loadAsDirectorySync(path.join(dir, '/', x)); | ||||
|                 if (n) return n; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| }; | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue