@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.
@@ -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
- // $FlowFixMe[prop-missing]
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
- // $FlowFixMe[prop-missing]
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: [(0, _diagnostic().md)`Install the "${packageName}" package with your package manager, and run Parcel again.`]
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,
@@ -0,0 +1,8 @@
1
+ export declare const empty: string;
2
+ declare let builtins: {
3
+ [key: string]: {
4
+ name: string;
5
+ range: string | null | undefined;
6
+ };
7
+ };
8
+ export default builtins;
@@ -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) {
@@ -0,0 +1,8 @@
1
+ export declare const empty: string;
2
+ declare let builtins: {
3
+ [key: string]: {
4
+ name: string;
5
+ range: string | null | undefined;
6
+ };
7
+ };
8
+ export default builtins;
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
@@ -0,0 +1,4 @@
1
+ import { Resolver } from '@atlaspack/rust';
2
+ export declare const ResolverBase: typeof Resolver;
3
+ export { default } from './Wrapper';
4
+ export { init } from '@atlaspack/rust';
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.137+069de478e",
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.js",
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.205+069de478e",
25
- "@atlaspack/feature-flags": "2.14.1-canary.205+069de478e",
26
- "@atlaspack/fs": "2.14.5-canary.137+069de478e",
27
- "@atlaspack/rust": "3.2.1-canary.137+069de478e",
28
- "@atlaspack/utils": "2.14.5-canary.137+069de478e",
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": "069de478e64fb5889f6f2ce023eb510782767fbd"
62
- }
63
+ "gitHead": "d2fd849770fe6305e9c694bd97b1bd905abd9d94"
64
+ }