@atlaspack/node-resolver-core 3.5.5-canary.137 → 3.5.5-canary.139
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/lib/Wrapper.d.ts +36 -0
- package/lib/Wrapper.js +23 -8
- package/lib/builtins.browser.d.ts +8 -0
- package/lib/builtins.browser.js +1 -3
- package/lib/builtins.d.ts +8 -0
- package/lib/builtins.js +4 -4
- package/lib/index.d.ts +4 -0
- package/lib/index.js +3 -1
- package/package.json +13 -11
package/lib/Wrapper.d.ts
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
import type { FilePath, SpecifierType, SemverRange, Environment, SourceLocation, BuildMode, ResolveResult, PluginLogger } from '@atlaspack/types';
|
2
|
+
import type { FileSystem } from '@atlaspack/fs';
|
3
|
+
import type { PackageManager } from '@atlaspack/package-manager';
|
4
|
+
import type { Diagnostic } from '@atlaspack/diagnostic';
|
5
|
+
type Options = {
|
6
|
+
fs: FileSystem;
|
7
|
+
projectRoot: FilePath;
|
8
|
+
packageManager?: PackageManager;
|
9
|
+
logger?: PluginLogger;
|
10
|
+
shouldAutoInstall?: boolean;
|
11
|
+
mode: BuildMode;
|
12
|
+
mainFields?: Array<string>;
|
13
|
+
extensions?: Array<string>;
|
14
|
+
packageExports?: boolean;
|
15
|
+
};
|
16
|
+
type ResolveOptions = {
|
17
|
+
filename: FilePath;
|
18
|
+
parent: FilePath | null | undefined;
|
19
|
+
specifierType: SpecifierType;
|
20
|
+
range?: SemverRange | null | undefined;
|
21
|
+
env: Environment;
|
22
|
+
sourcePath?: FilePath | null | undefined;
|
23
|
+
loc?: SourceLocation | null | undefined;
|
24
|
+
packageConditions?: Array<string> | null | undefined;
|
25
|
+
};
|
26
|
+
export default class NodeResolver {
|
27
|
+
resolversByEnv: Map<string, any>;
|
28
|
+
options: Options;
|
29
|
+
constructor(options: Options);
|
30
|
+
resolve(options: ResolveOptions): Promise<ResolveResult | null | undefined>;
|
31
|
+
resolveBuiltin(name: string, options: ResolveOptions): Promise<ResolveResult | null | undefined>;
|
32
|
+
shouldIncludeNodeModule({ includeNodeModules }: Environment, name: string): boolean | null | undefined;
|
33
|
+
handleError(error: any, options: ResolveOptions): Promise<Diagnostic | Array<Diagnostic> | null | undefined>;
|
34
|
+
checkExcludedDependency(sourceFile: FilePath, name: string, options: ResolveOptions): Promise<Diagnostic | null | undefined>;
|
35
|
+
}
|
36
|
+
export {};
|
package/lib/Wrapper.js
CHANGED
@@ -71,6 +71,8 @@ function _featureFlags() {
|
|
71
71
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
72
72
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
73
73
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
74
|
+
// @ts-expect-error TS2305
|
75
|
+
|
74
76
|
// Package.json fields. Must match package_json.rs.
|
75
77
|
const MAIN = 1 << 0;
|
76
78
|
const MODULE = 1 << 1;
|
@@ -116,7 +118,7 @@ class NodeResolver {
|
|
116
118
|
conditions: environmentToExportsConditions(options.env, this.options.mode),
|
117
119
|
packageExports: this.options.packageExports ?? false,
|
118
120
|
moduleDirResolver: process.versions.pnp != null ? (module, from) => {
|
119
|
-
//
|
121
|
+
// @ts-expect-error TS2339
|
120
122
|
let pnp = _module().default.findPnpApi(_path().default.dirname(from));
|
121
123
|
return pnp.resolveToUnqualified(
|
122
124
|
// append slash to force loading builtins from npm
|
@@ -137,16 +139,12 @@ class NodeResolver {
|
|
137
139
|
|
138
140
|
// Async resolver is only supported in non-WASM environments, and does not support JS callbacks (e.g. FS, PnP).
|
139
141
|
let canResolveAsync = !_rust().init && this.options.fs instanceof _fs().NodeFS && process.versions.pnp == null;
|
140
|
-
let res = canResolveAsync ?
|
141
|
-
// $FlowFixMe[incompatible-call] - parent is not null here.
|
142
|
-
await resolver.resolveAsync(options) :
|
143
|
-
// $FlowFixMe[incompatible-call] - parent is not null here.
|
144
|
-
resolver.resolve(options);
|
142
|
+
let res = canResolveAsync ? await resolver.resolveAsync(options) : resolver.resolve(options);
|
145
143
|
|
146
144
|
// Invalidate whenever the .pnp.js file changes.
|
147
145
|
// TODO: only when we actually resolve a node_modules package?
|
148
146
|
if (process.versions.pnp != null && options.parent && res.invalidateOnFileChange) {
|
149
|
-
//
|
147
|
+
// @ts-expect-error TS2339
|
150
148
|
let pnp = _module().default.findPnpApi(_path().default.dirname(options.parent));
|
151
149
|
res.invalidateOnFileChange.push(pnp.resolveToUnqualified('pnpapi', null));
|
152
150
|
}
|
@@ -242,6 +240,7 @@ class NodeResolver {
|
|
242
240
|
if (this.options.shouldAutoInstall && packageManager) {
|
243
241
|
var _this$options$logger2;
|
244
242
|
(_this$options$logger2 = this.options.logger) === null || _this$options$logger2 === void 0 || _this$options$logger2.warn({
|
243
|
+
// @ts-expect-error TS2345
|
245
244
|
message: (0, _diagnostic().md)`Auto installing polyfill for Node builtin module "${packageName}"...`,
|
246
245
|
codeFrames: options.loc ? [{
|
247
246
|
filePath: options.loc.filePath,
|
@@ -267,13 +266,16 @@ class NodeResolver {
|
|
267
266
|
} else {
|
268
267
|
throw new (_diagnostic().default)({
|
269
268
|
diagnostic: {
|
269
|
+
// @ts-expect-error TS2345
|
270
270
|
message: (0, _diagnostic().md)`Node builtin polyfill "${packageName}" is not installed, but auto install is disabled.`,
|
271
271
|
codeFrames: options.loc ? [{
|
272
272
|
filePath: options.loc.filePath,
|
273
273
|
codeHighlights: [(0, _diagnostic().convertSourceLocationToHighlight)(options.loc, 'used here')]
|
274
274
|
}] : [],
|
275
275
|
documentationURL: 'https://parceljs.org/features/node-emulation/#polyfilling-%26-excluding-builtin-node-modules',
|
276
|
-
hints: [
|
276
|
+
hints: [
|
277
|
+
// @ts-expect-error TS2345
|
278
|
+
(0, _diagnostic().md)`Install the "${packageName}" package with your package manager, and run Parcel again.`]
|
277
279
|
}
|
278
280
|
});
|
279
281
|
}
|
@@ -327,6 +329,7 @@ class NodeResolver {
|
|
327
329
|
);
|
328
330
|
|
329
331
|
return {
|
332
|
+
// @ts-expect-error TS2345
|
330
333
|
message: (0, _diagnostic().md)`Cannot load file '${relative}' in '${(0, _utils().relativePath)(this.options.projectRoot, dir)}'.`,
|
331
334
|
hints: potentialFiles.map(r => {
|
332
335
|
return `Did you mean '__${r}__'?`;
|
@@ -337,6 +340,7 @@ class NodeResolver {
|
|
337
340
|
{
|
338
341
|
let alternativeModules = await (0, _utils().findAlternativeNodeModules)(this.options.fs, error.module, options.parent ? _path().default.dirname(options.parent) : this.options.projectRoot);
|
339
342
|
return {
|
343
|
+
// @ts-expect-error TS2345
|
340
344
|
message: (0, _diagnostic().md)`Cannot find module '${error.module}'`,
|
341
345
|
hints: alternativeModules.map(r => {
|
342
346
|
return `Did you mean '__${r}__'?`;
|
@@ -351,6 +355,7 @@ class NodeResolver {
|
|
351
355
|
let alternative = alternatives[0];
|
352
356
|
let pkgContent = await this.options.fs.readFile(error.package_path, 'utf8');
|
353
357
|
return {
|
358
|
+
// @ts-expect-error TS2345
|
354
359
|
message: (0, _diagnostic().md)`Could not load '${fileSpecifier}' from module '${error.module}' found in package.json#${error.field}`,
|
355
360
|
codeFrames: [{
|
356
361
|
filePath: error.package_path,
|
@@ -359,6 +364,7 @@ class NodeResolver {
|
|
359
364
|
codeHighlights: (0, _diagnostic().generateJSONCodeHighlights)(pkgContent, [{
|
360
365
|
key: `/${error.field}`,
|
361
366
|
type: 'value',
|
367
|
+
// @ts-expect-error TS2345
|
362
368
|
message: (0, _diagnostic().md)`'${fileSpecifier}' does not exist${alternative ? `, did you mean '${alternative}'?` : ''}'`
|
363
369
|
}])
|
364
370
|
}]
|
@@ -378,6 +384,7 @@ class NodeResolver {
|
|
378
384
|
relative = './' + relative;
|
379
385
|
}
|
380
386
|
return {
|
387
|
+
// @ts-expect-error TS2345
|
381
388
|
message: (0, _diagnostic().md)`Cannot load file '${relative}' from module '${error.module}'`,
|
382
389
|
hints: potentialFiles.map(r => {
|
383
390
|
return `Did you mean '__${error.module}/${r}__'?`;
|
@@ -433,6 +440,7 @@ class NodeResolver {
|
|
433
440
|
case 'UnknownScheme':
|
434
441
|
{
|
435
442
|
return {
|
443
|
+
// @ts-expect-error TS2345
|
436
444
|
message: (0, _diagnostic().md)`Unknown url scheme or pipeline '${error.scheme}:'`
|
437
445
|
};
|
438
446
|
}
|
@@ -444,6 +452,7 @@ class NodeResolver {
|
|
444
452
|
case 'PackagePathNotExported':
|
445
453
|
{
|
446
454
|
return {
|
455
|
+
// @ts-expect-error TS2345
|
447
456
|
message: (0, _diagnostic().md)`Module '${options.filename}' is not exported from the '${error.module}' package`,
|
448
457
|
codeFrames: [{
|
449
458
|
filePath: error.path,
|
@@ -460,6 +469,7 @@ class NodeResolver {
|
|
460
469
|
{
|
461
470
|
let parsed = (0, _jsonSourcemap().parse)(pkgContent);
|
462
471
|
return {
|
472
|
+
// @ts-expect-error TS2345
|
463
473
|
message: (0, _diagnostic().md)`Package import '${options.filename}' is not defined in the '${error.module}' package`,
|
464
474
|
codeFrames: [{
|
465
475
|
filePath: error.path,
|
@@ -475,6 +485,7 @@ class NodeResolver {
|
|
475
485
|
case 'InvalidPackageTarget':
|
476
486
|
{
|
477
487
|
return {
|
488
|
+
// @ts-expect-error TS2345
|
478
489
|
message: (0, _diagnostic().md)`Invalid package target in the '${error.module} package. Targets may not refer to files outside the package.`,
|
479
490
|
codeFrames: [{
|
480
491
|
filePath: error.path,
|
@@ -491,6 +502,7 @@ class NodeResolver {
|
|
491
502
|
case 'InvalidSpecifier':
|
492
503
|
{
|
493
504
|
return {
|
505
|
+
// @ts-expect-error TS2345
|
494
506
|
message: (0, _diagnostic().md)`Invalid package import specifier '${options.filename}'.`
|
495
507
|
};
|
496
508
|
}
|
@@ -500,6 +512,7 @@ class NodeResolver {
|
|
500
512
|
case 'PackageJsonNotFound':
|
501
513
|
{
|
502
514
|
return {
|
515
|
+
// @ts-expect-error TS2345
|
503
516
|
message: (0, _diagnostic().md)`Cannot find a package.json above '${(0, _utils().relativePath)(this.options.projectRoot, options.parent ? _path().default.dirname(options.parent) : this.options.projectRoot)}'`
|
504
517
|
};
|
505
518
|
}
|
@@ -545,6 +558,7 @@ class NodeResolver {
|
|
545
558
|
if (!((_pkg$dependencies = pkg.dependencies) !== null && _pkg$dependencies !== void 0 && _pkg$dependencies[moduleName]) && !((_pkg$peerDependencies = pkg.peerDependencies) !== null && _pkg$peerDependencies !== void 0 && _pkg$peerDependencies[moduleName]) && !((_pkg$engines = pkg.engines) !== null && _pkg$engines !== void 0 && _pkg$engines[moduleName])) {
|
546
559
|
let pkgContent = await this.options.fs.readFile(pkgfile, 'utf8');
|
547
560
|
return {
|
561
|
+
// @ts-expect-error TS2345
|
548
562
|
message: (0, _diagnostic().md)`External dependency "${moduleName}" is not declared in package.json.`,
|
549
563
|
codeFrames: [{
|
550
564
|
filePath: pkgfile,
|
@@ -576,6 +590,7 @@ class NodeResolver {
|
|
576
590
|
let pkgContent = await this.options.fs.readFile(pkgfile, 'utf8');
|
577
591
|
let field = (_pkg$dependencies3 = pkg.dependencies) !== null && _pkg$dependencies3 !== void 0 && _pkg$dependencies3[moduleName] ? 'dependencies' : 'peerDependencies';
|
578
592
|
return {
|
593
|
+
// @ts-expect-error TS2345
|
579
594
|
message: (0, _diagnostic().md)`External dependency "${moduleName}" does not satisfy required semver range "${range}".`,
|
580
595
|
codeFrames: [{
|
581
596
|
filePath: pkgfile,
|
package/lib/builtins.browser.js
CHANGED
@@ -6,9 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.empty = exports.default = void 0;
|
7
7
|
const builtinModules = ['_http_agent', '_http_client', '_http_common', '_http_incoming', '_http_outgoing', '_http_server', '_stream_duplex', '_stream_passthrough', '_stream_readable', '_stream_transform', '_stream_wrap', '_stream_writable', '_tls_common', '_tls_wrap', 'assert', 'assert/strict', 'async_hooks', 'buffer', 'child_process', 'cluster', 'console', 'constants', 'crypto', 'dgram', 'diagnostics_channel', 'dns', 'dns/promises', 'domain', 'events', 'fs', 'fs/promises', 'http', 'http2', 'https', 'inspector', 'module', 'net', 'os', 'path', 'path/posix', 'path/win32', 'perf_hooks', 'process', 'punycode', 'querystring', 'readline', 'repl', 'stream', 'stream/consumers', 'stream/promises', 'stream/web', 'string_decoder', 'sys', 'timers', 'timers/promises', 'tls', 'trace_events', 'tty', 'url', 'util', 'util/types', 'v8', 'vm', 'worker_threads', 'zlib'];
|
8
8
|
const empty = exports.empty = '/_empty.js';
|
9
|
-
let builtins =
|
10
|
-
// $FlowFixMe
|
11
|
-
Object.create(null);
|
9
|
+
let builtins = Object.create(null);
|
12
10
|
|
13
11
|
// use definite (current) list of Node builtins
|
14
12
|
for (let key of builtinModules) {
|
package/lib/builtins.js
CHANGED
@@ -20,12 +20,10 @@ function _nullthrows() {
|
|
20
20
|
}
|
21
21
|
var _package = _interopRequireDefault(require("../package.json"));
|
22
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
23
|
-
// $FlowFixMe this is untyped
|
24
23
|
// flowlint-next-line untyped-import:off
|
24
|
+
|
25
25
|
const empty = exports.empty = require.resolve('./_empty.js');
|
26
|
-
let builtins =
|
27
|
-
// $FlowFixMe
|
28
|
-
Object.create(null);
|
26
|
+
let builtins = Object.create(null);
|
29
27
|
|
30
28
|
// use definite (current) list of Node builtins
|
31
29
|
for (let key of _module().builtinModules) {
|
@@ -60,9 +58,11 @@ let polyfills = {
|
|
60
58
|
zlib: 'browserify-zlib'
|
61
59
|
};
|
62
60
|
for (let k in polyfills) {
|
61
|
+
// @ts-expect-error TS7053
|
63
62
|
let polyfill = polyfills[k];
|
64
63
|
builtins[k] = {
|
65
64
|
name: polyfill + (_module().builtinModules.includes(polyfill) ? '/' : ''),
|
65
|
+
// @ts-expect-error TS7053
|
66
66
|
range: (0, _nullthrows().default)(_package.default.devDependencies[polyfill])
|
67
67
|
};
|
68
68
|
}
|
package/lib/index.d.ts
ADDED
package/lib/index.js
CHANGED
@@ -25,4 +25,6 @@ function _rust() {
|
|
25
25
|
}
|
26
26
|
var _Wrapper = _interopRequireDefault(require("./Wrapper"));
|
27
27
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
28
|
-
const ResolverBase = exports.ResolverBase = _rust().Resolver;
|
28
|
+
const ResolverBase = exports.ResolverBase = _rust().Resolver;
|
29
|
+
|
30
|
+
// @ts-expect-error TS2305
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@atlaspack/node-resolver-core",
|
3
|
-
"version": "3.5.5-canary.
|
3
|
+
"version": "3.5.5-canary.139+d2fd84977",
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
5
5
|
"publishConfig": {
|
6
6
|
"access": "public"
|
@@ -9,23 +9,25 @@
|
|
9
9
|
"type": "git",
|
10
10
|
"url": "https://github.com/atlassian-labs/atlaspack.git"
|
11
11
|
},
|
12
|
-
"main": "lib/index.js",
|
13
|
-
"source": "src/index.
|
12
|
+
"main": "./lib/index.js",
|
13
|
+
"source": "./src/index.ts",
|
14
|
+
"types": "./lib/index.d.ts",
|
14
15
|
"engines": {
|
15
16
|
"node": ">= 16.0.0"
|
16
17
|
},
|
17
18
|
"scripts": {
|
18
|
-
"test": "mocha test"
|
19
|
+
"test": "mocha test",
|
20
|
+
"check-ts": "tsc --emitDeclarationOnly --rootDir src"
|
19
21
|
},
|
20
22
|
"files": [
|
21
23
|
"lib"
|
22
24
|
],
|
23
25
|
"dependencies": {
|
24
|
-
"@atlaspack/diagnostic": "2.14.1-canary.
|
25
|
-
"@atlaspack/feature-flags": "2.14.1-canary.
|
26
|
-
"@atlaspack/fs": "2.14.5-canary.
|
27
|
-
"@atlaspack/rust": "3.2.1-canary.
|
28
|
-
"@atlaspack/utils": "2.14.5-canary.
|
26
|
+
"@atlaspack/diagnostic": "2.14.1-canary.207+d2fd84977",
|
27
|
+
"@atlaspack/feature-flags": "2.14.1-canary.207+d2fd84977",
|
28
|
+
"@atlaspack/fs": "2.14.5-canary.139+d2fd84977",
|
29
|
+
"@atlaspack/rust": "3.2.1-canary.139+d2fd84977",
|
30
|
+
"@atlaspack/utils": "2.14.5-canary.139+d2fd84977",
|
29
31
|
"@mischnic/json-sourcemap": "^0.1.0",
|
30
32
|
"nullthrows": "^1.1.1",
|
31
33
|
"semver": "^7.5.2"
|
@@ -58,5 +60,5 @@
|
|
58
60
|
"./src/builtins.js": "./src/builtins.browser.js"
|
59
61
|
},
|
60
62
|
"type": "commonjs",
|
61
|
-
"gitHead": "
|
62
|
-
}
|
63
|
+
"gitHead": "d2fd849770fe6305e9c694bd97b1bd905abd9d94"
|
64
|
+
}
|