@atlaspack/core 2.38.0 → 2.38.3-dev-ce9f111cb.0

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.
Files changed (80) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/LICENSE +201 -0
  3. package/dist/atlaspack-v3/NapiWorkerPool.js +33 -0
  4. package/dist/atlaspack-v3/worker/compat/index.js +0 -1
  5. package/dist/atlaspack-v3/worker/worker.js +10 -3
  6. package/lib/AssetGraph.js +1 -1
  7. package/lib/Atlaspack.js +2 -3
  8. package/lib/AtlaspackConfig.js +2 -3
  9. package/lib/BundleGraph.js +1 -2
  10. package/lib/CommittedAsset.js +1 -1
  11. package/lib/Dependency.js +1 -1
  12. package/lib/Environment.js +1 -2
  13. package/lib/IdentifierRegistry.js +1 -1
  14. package/lib/PackagerRunner.js +2 -3
  15. package/lib/ReporterRunner.js +2 -3
  16. package/lib/RequestTracker.js +2 -3
  17. package/lib/SymbolPropagation.js +2 -3
  18. package/lib/Transformation.js +2 -4
  19. package/lib/UncommittedAsset.js +1 -1
  20. package/lib/Validation.js +2 -3
  21. package/lib/applyRuntimes.js +2 -3
  22. package/lib/assetUtils.js +1 -1
  23. package/lib/atlaspack-v3/AtlaspackV3.js +1 -1
  24. package/lib/atlaspack-v3/NapiWorkerPool.js +36 -2
  25. package/lib/atlaspack-v3/worker/compat/index.js +0 -11
  26. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +1 -1
  27. package/lib/atlaspack-v3/worker/compat/plugin-config.js +1 -1
  28. package/lib/atlaspack-v3/worker/compat/plugin-options.js +0 -2
  29. package/lib/atlaspack-v3/worker/side-effect-detector.js +0 -1
  30. package/lib/atlaspack-v3/worker/worker.js +28 -8
  31. package/lib/dumpGraphToGraphViz.js +1 -1
  32. package/lib/index.js +2 -3
  33. package/lib/loadAtlaspackPlugin.js +2 -3
  34. package/lib/loadDotEnv.js +1 -1
  35. package/lib/projectPath.js +1 -1
  36. package/lib/public/Asset.js +1 -1
  37. package/lib/public/Bundle.js +1 -2
  38. package/lib/public/BundleGraph.js +2 -3
  39. package/lib/public/BundleGroup.js +1 -1
  40. package/lib/public/Config.js +1 -2
  41. package/lib/public/Dependency.js +1 -1
  42. package/lib/public/Environment.js +1 -1
  43. package/lib/public/MutableBundleGraph.js +2 -3
  44. package/lib/public/Symbols.js +1 -1
  45. package/lib/public/Target.js +1 -1
  46. package/lib/registerCoreWithSerializer.js +2 -1
  47. package/lib/requests/AssetGraphRequest.js +1 -1
  48. package/lib/requests/AssetGraphRequestRust.js +2 -4
  49. package/lib/requests/AssetRequest.js +1 -1
  50. package/lib/requests/AtlaspackBuildRequest.js +1 -1
  51. package/lib/requests/AtlaspackConfigRequest.js +2 -3
  52. package/lib/requests/BundleGraphRequest.js +2 -3
  53. package/lib/requests/BundleGraphRequestRust.js +2 -3
  54. package/lib/requests/BundleGraphRequestUtils.js +2 -3
  55. package/lib/requests/ConfigRequest.js +2 -3
  56. package/lib/requests/DevDepRequest.js +1 -1
  57. package/lib/requests/EntryRequest.js +2 -3
  58. package/lib/requests/PackageRequest.js +1 -1
  59. package/lib/requests/PathRequest.js +2 -3
  60. package/lib/requests/TargetRequest.js +2 -3
  61. package/lib/requests/ValidationRequest.js +1 -1
  62. package/lib/requests/WriteBundleRequest.js +2 -3
  63. package/lib/requests/WriteBundlesRequest.js +1 -1
  64. package/lib/requests/asset-graph-diff.js +1 -1
  65. package/lib/requests/asset-graph-dot.js +1 -1
  66. package/lib/resolveOptions.js +1 -1
  67. package/lib/serializerCore.browser.js +1 -2
  68. package/lib/summarizeRequest.js +1 -1
  69. package/lib/types/atlaspack-v3/worker/compat/index.d.ts +0 -1
  70. package/lib/utils.js +1 -1
  71. package/lib/worker.js +2 -1
  72. package/package.json +23 -22
  73. package/src/atlaspack-v3/NapiWorkerPool.ts +38 -0
  74. package/src/atlaspack-v3/worker/compat/index.ts +0 -1
  75. package/src/atlaspack-v3/worker/worker.ts +11 -4
  76. package/tsconfig.tsbuildinfo +1 -1
  77. package/dist/atlaspack-v3/worker/compat/plugin-logger.js +0 -26
  78. package/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
  79. package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +0 -9
  80. package/src/atlaspack-v3/worker/compat/plugin-logger.ts +0 -45
@@ -77,9 +77,8 @@ function _featureFlags() {
77
77
  };
78
78
  return data;
79
79
  }
80
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
81
- 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); }
82
- 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; }
80
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
81
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
83
82
  const DEFAULT_DIST_DIRNAME = 'dist';
84
83
  const JS_RE = /\.[mc]?js$/;
85
84
  const JS_EXTENSIONS = ['.js', '.mjs', '.cjs'];
@@ -16,7 +16,7 @@ var _ReporterRunner = require("../ReporterRunner");
16
16
  var _Validation = _interopRequireDefault(require("../Validation"));
17
17
  var _AtlaspackConfigRequest = _interopRequireDefault(require("./AtlaspackConfigRequest"));
18
18
  var _RequestTracker = require("../RequestTracker");
19
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
20
  function createValidationRequest(input) {
21
21
  return {
22
22
  id: 'validation',
@@ -86,9 +86,8 @@ function _sourceMap() {
86
86
  };
87
87
  return data;
88
88
  }
89
- 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); }
90
- 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; }
91
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
89
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
90
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
92
91
  const HASH_REF_PREFIX_LEN = _constants.HASH_REF_PREFIX.length;
93
92
  const BOUNDARY_LENGTH = _constants.HASH_REF_PREFIX.length + 32 - 1;
94
93
  const HASH_REF_PLACEHOLDER_LEN = HASH_REF_PREFIX_LEN + _constants.HASH_REF_HASH_LEN;
@@ -39,7 +39,7 @@ function _utils() {
39
39
  };
40
40
  return data;
41
41
  }
42
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
43
43
  /** Length of the hash suffix in output filenames (e.g. .runtime.13dc01ac.js). */
44
44
  const NAME_HASH_DISPLAY_LEN = 8;
45
45
 
@@ -15,7 +15,7 @@ function _jestDiff() {
15
15
  return data;
16
16
  }
17
17
  var _projectPath = require("../projectPath");
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
19
  /* eslint-disable no-console */
20
20
  // @ts-expect-error missing types
21
21
 
@@ -13,7 +13,7 @@ function _path() {
13
13
  };
14
14
  return data;
15
15
  }
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
17
  /** @description Renders AssetGraph into GraphViz Dot format */
18
18
  function assetGraphToDot(assetGraph, {
19
19
  sort = false,
@@ -57,7 +57,7 @@ var _loadDotEnv = _interopRequireDefault(require("./loadDotEnv"));
57
57
  var _projectPath = require("./projectPath");
58
58
  var _AtlaspackConfigRequest = require("./requests/AtlaspackConfigRequest");
59
59
  var _constants = require("./constants");
60
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
60
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
61
61
  // Default cache directory name
62
62
  const DEFAULT_CACHE_DIRNAME = '.parcel-cache';
63
63
  const LOCK_FILE_NAMES = ['yarn.lock', 'package-lock.json', 'pnpm-lock.yaml'];
@@ -18,8 +18,7 @@ function msgpackr() {
18
18
  };
19
19
  return data;
20
20
  }
21
- 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); }
22
- 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; }
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
22
  let encoder = new (msgpackr().Encoder)({
24
23
  structuredClone: true
25
24
  });
@@ -11,7 +11,7 @@ function _path() {
11
11
  };
12
12
  return data;
13
13
  }
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  const NODE_MODULES = `${_path().default.sep}node_modules${_path().default.sep}`;
16
16
  const BUFFER_LIMIT = 5000000; // 5mb
17
17
 
@@ -4,6 +4,5 @@ export * from './environment';
4
4
  export * from './target';
5
5
  export * from './plugin-config';
6
6
  export * from './plugin-tracer';
7
- export * from './plugin-logger';
8
7
  export * from './plugin-options';
9
8
  export * from './mutable-asset';
package/lib/utils.js CHANGED
@@ -36,7 +36,7 @@ function _utils() {
36
36
  return data;
37
37
  }
38
38
  var _projectPath = require("./projectPath");
39
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
40
40
  // flow-to-ts helpers
41
41
 
42
42
  // /flow-to-ts helpers
package/lib/worker.js CHANGED
@@ -76,7 +76,7 @@ function _featureFlags() {
76
76
  require("@atlaspack/cache");
77
77
  require("@atlaspack/package-manager");
78
78
  require("@atlaspack/fs");
79
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
79
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
80
80
  // @ts-expect-error TS2305
81
81
 
82
82
  // register with serializer
@@ -89,6 +89,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
89
89
 
90
90
  // Remove the workerApi type from the TransformationOpts and ValidationOpts types:
91
91
  // https://github.com/facebook/flow/issues/2835
92
+
92
93
  // TODO: this should eventually be replaced by an in memory cache layer
93
94
  let atlaspackConfigCache = new Map();
94
95
  function loadOptions(ref, workerApi) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaspack/core",
3
- "version": "2.38.0",
3
+ "version": "2.38.3-dev-ce9f111cb.0",
4
4
  "license": "(MIT OR Apache-2.0)",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -22,27 +22,27 @@
22
22
  "build:lib": "gulp build --gulpfile ../../../gulpfile.js --cwd ."
23
23
  },
24
24
  "dependencies": {
25
+ "@atlaspack/build-cache": "2.13.15-dev-ce9f111cb.0",
26
+ "@atlaspack/cache": "3.2.56-dev-ce9f111cb.0",
27
+ "@atlaspack/diagnostic": "2.14.5-dev-ce9f111cb.0",
28
+ "@atlaspack/events": "2.14.5-dev-ce9f111cb.0",
29
+ "@atlaspack/feature-flags": "2.31.1-dev-ce9f111cb.0",
30
+ "@atlaspack/fs": "2.15.56-dev-ce9f111cb.0",
31
+ "@atlaspack/graph": "3.6.23-dev-ce9f111cb.0",
32
+ "@atlaspack/logger": "2.14.53-dev-ce9f111cb.0",
33
+ "@atlaspack/package-manager": "2.14.61-dev-ce9f111cb.0",
34
+ "@atlaspack/plugin": "2.14.61-dev-ce9f111cb.0",
35
+ "@atlaspack/profiler": "2.15.22-dev-ce9f111cb.0",
36
+ "@atlaspack/rust": "3.28.1-dev-ce9f111cb.0",
37
+ "@atlaspack/source-map": "3.3.5-dev-ce9f111cb.0",
38
+ "@atlaspack/types": "2.15.51-dev-ce9f111cb.0",
39
+ "@atlaspack/utils": "3.4.3-dev-ce9f111cb.0",
40
+ "@atlaspack/workers": "2.14.61-dev-ce9f111cb.0",
25
41
  "@mischnic/json-sourcemap": "^0.1.0",
26
- "@atlaspack/build-cache": "2.13.14",
27
- "@atlaspack/cache": "3.2.53",
28
- "@atlaspack/diagnostic": "2.14.4",
29
- "@atlaspack/events": "2.14.4",
30
- "@atlaspack/feature-flags": "2.31.0",
31
- "@atlaspack/fs": "2.15.53",
32
- "@atlaspack/graph": "3.6.20",
33
- "@atlaspack/logger": "2.14.50",
34
- "@atlaspack/package-manager": "2.14.58",
35
- "@atlaspack/plugin": "2.14.58",
36
- "@atlaspack/profiler": "2.15.19",
37
- "@atlaspack/rust": "3.26.0",
38
- "@atlaspack/types": "2.15.48",
39
- "@atlaspack/utils": "3.4.0",
40
- "@atlaspack/workers": "2.14.58",
41
- "@atlaspack/source-map": "3.3.2",
42
42
  "base-x": "^3.0.8",
43
43
  "browserslist": "^4.6.6",
44
44
  "clone": "^2.1.1",
45
- "dotenv": "^7.0.0",
45
+ "dotenv": "^12.0.4",
46
46
  "dotenv-expand": "^5.1.0",
47
47
  "json5": "^2.2.0",
48
48
  "msgpackr": "^1.9.9",
@@ -50,15 +50,16 @@
50
50
  "semver": "^7.5.2"
51
51
  },
52
52
  "devDependencies": {
53
- "@atlaspack/babel-register": "2.14.4",
53
+ "@atlaspack/babel-register": "2.14.5-dev-ce9f111cb.0",
54
54
  "@types/node": ">= 18",
55
- "rfdc": "1",
56
- "jest-diff": "*",
57
55
  "graphviz": "^0.0.9",
56
+ "jest-diff": "*",
57
+ "rfdc": "1",
58
58
  "tempy": "^0.2.1"
59
59
  },
60
60
  "browser": {
61
61
  "./src/serializerCore.js": "./src/serializerCore.browser.js"
62
62
  },
63
- "type": "commonjs"
63
+ "type": "commonjs",
64
+ "gitHead": "ce9f111cb9f9e852c6a0fdaa8f72308d365fe823"
64
65
  }
@@ -5,6 +5,8 @@ import process from 'process';
5
5
  // @ts-expect-error TS2724
6
6
  import type {Transferable} from '@atlaspack/rust';
7
7
  import {getAvailableThreads} from '@atlaspack/rust';
8
+ import logger from '@atlaspack/logger';
9
+ import type {LogEvent} from '@atlaspack/types-internal';
8
10
 
9
11
  const WORKER_PATH = path.join(__dirname, 'worker', 'index.js');
10
12
  const ATLASPACK_NAPI_WORKERS =
@@ -43,6 +45,35 @@ export class NapiWorkerPool implements INapiWorkerPool {
43
45
  worker.once('message', res),
44
46
  ),
45
47
  );
48
+
49
+ // Re-emit log events from the worker thread into the main-thread logger
50
+ // so they reach reporters and are subject to log-level filtering.
51
+ worker.on('message', (message: unknown) => {
52
+ if (
53
+ message != null &&
54
+ typeof message === 'object' &&
55
+ (message as {type?: unknown}).type === 'logEvent'
56
+ ) {
57
+ const event = (message as {type: string; event: LogEvent}).event;
58
+ switch (event.level) {
59
+ case 'verbose':
60
+ logger.verbose(event.diagnostics);
61
+ break;
62
+ case 'info':
63
+ logger.info(event.diagnostics);
64
+ break;
65
+ case 'warn':
66
+ logger.warn(event.diagnostics);
67
+ break;
68
+ case 'error':
69
+ logger.error(event.diagnostics);
70
+ break;
71
+ case 'progress':
72
+ logger.progress(event.message);
73
+ break;
74
+ }
75
+ }
76
+ });
46
77
  }
47
78
  }
48
79
 
@@ -59,6 +90,13 @@ export class NapiWorkerPool implements INapiWorkerPool {
59
90
  if (message === 'stateCleared') {
60
91
  worker.removeListener('message', messageHandler);
61
92
  res();
93
+ } else if (
94
+ message != null &&
95
+ typeof message === 'object' &&
96
+ (message as {type?: unknown}).type === 'logEvent'
97
+ ) {
98
+ // logEvent messages are forwarded asynchronously from the worker
99
+ // logger bridge and are expected at any time; ignore them here.
62
100
  } else {
63
101
  // Log unexpected messages for debugging
64
102
  // eslint-disable-next-line no-console
@@ -4,6 +4,5 @@ export * from './environment';
4
4
  export * from './target';
5
5
  export * from './plugin-config';
6
6
  export * from './plugin-tracer';
7
- export * from './plugin-logger';
8
7
  export * from './plugin-options';
9
8
  export * from './mutable-asset';
@@ -19,14 +19,15 @@ import type {
19
19
  } from '@atlaspack/types';
20
20
  import type {FeatureFlags} from '@atlaspack/feature-flags';
21
21
  import {parentPort} from 'worker_threads';
22
+ import logger from '@atlaspack/logger';
22
23
  import * as module from 'module';
23
24
 
24
25
  import {jsCallable} from '../jsCallable';
26
+ import {PluginLogger} from '@atlaspack/logger';
25
27
  import {
26
28
  Environment,
27
29
  Dependency,
28
30
  PluginConfig,
29
- PluginLogger,
30
31
  PluginTracer,
31
32
  PluginOptions,
32
33
  MutableAsset,
@@ -130,7 +131,7 @@ export class AtlaspackWorker {
130
131
  const dependency = new Dependency(napiDependency, env);
131
132
 
132
133
  const defaultOptions = {
133
- logger: new PluginLogger(),
134
+ logger: new PluginLogger({origin: key}),
134
135
  tracer: new PluginTracer(),
135
136
  options: new PluginOptions(this.options),
136
137
  } as const;
@@ -236,7 +237,7 @@ export class AtlaspackWorker {
236
237
 
237
238
  const pluginOptions = new PluginOptions(this.options);
238
239
  const defaultOptions = {
239
- logger: new PluginLogger(),
240
+ logger: new PluginLogger({origin: key}),
240
241
  tracer: new PluginTracer(),
241
242
  options: pluginOptions,
242
243
  } as const;
@@ -403,7 +404,7 @@ export class AtlaspackWorker {
403
404
 
404
405
  if (transformer.setup) {
405
406
  let setupResult = await transformer.setup({
406
- logger: new PluginLogger(),
407
+ logger: new PluginLogger({origin: specifier}),
407
408
  options: new PluginOptions({
408
409
  ...this.options,
409
410
  shouldAutoInstall: false,
@@ -448,6 +449,12 @@ export class AtlaspackWorker {
448
449
  }
449
450
  }
450
451
 
452
+ // Forward all logger events from this worker thread to the main thread so
453
+ // they are re-emitted into the main-thread logger and reach reporters.
454
+ logger.onLog((event) => {
455
+ parentPort?.postMessage({type: 'logEvent', event});
456
+ });
457
+
451
458
  // Create napi worker and send it back to main thread
452
459
  const worker = new AtlaspackWorker();
453
460
  const napiWorker = napi.newNodejsWorker(worker);