@atlaspack/core 2.12.1-dev.3450 → 2.12.1-dev.3466

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 (112) hide show
  1. package/lib/AssetGraph.js +5 -1
  2. package/lib/Atlaspack.js +2 -2
  3. package/lib/CommittedAsset.js +11 -5
  4. package/lib/Dependency.js +1 -1
  5. package/lib/PackagerRunner.js +53 -5
  6. package/lib/RequestTracker.js +10 -4
  7. package/lib/SymbolPropagation.js +25 -36
  8. package/lib/UncommittedAsset.js +8 -2
  9. package/lib/assetUtils.js +9 -3
  10. package/lib/atlaspack-v3/fs.js +31 -29
  11. package/lib/atlaspack-v3/index.js +2 -2
  12. package/lib/atlaspack-v3/jsCallable.js +9 -4
  13. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +192 -0
  14. package/lib/atlaspack-v3/worker/compat/bitflags.js +84 -0
  15. package/lib/atlaspack-v3/worker/compat/dependency.js +44 -0
  16. package/lib/atlaspack-v3/worker/compat/environment.js +68 -0
  17. package/lib/atlaspack-v3/worker/compat/index.js +104 -0
  18. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +144 -0
  19. package/lib/atlaspack-v3/worker/compat/plugin-config.js +58 -0
  20. package/lib/atlaspack-v3/worker/compat/plugin-logger.js +29 -0
  21. package/lib/atlaspack-v3/worker/compat/plugin-options.js +113 -0
  22. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +12 -0
  23. package/lib/atlaspack-v3/worker/compat/target.js +17 -0
  24. package/lib/atlaspack-v3/worker/worker.js +115 -127
  25. package/lib/index.js +0 -43
  26. package/lib/projectPath.js +12 -4
  27. package/lib/registerCoreWithSerializer.js +11 -5
  28. package/lib/requests/AtlaspackConfigRequest.js +8 -2
  29. package/lib/requests/ConfigRequest.js +9 -4
  30. package/lib/requests/DevDepRequest.js +9 -3
  31. package/lib/requests/PathRequest.js +8 -2
  32. package/lib/requests/WriteBundleRequest.js +15 -15
  33. package/lib/worker.js +8 -2
  34. package/package.json +24 -16
  35. package/src/AssetGraph.js +15 -13
  36. package/src/Atlaspack.js +5 -6
  37. package/src/AtlaspackConfig.js +11 -9
  38. package/src/AtlaspackConfig.schema.js +1 -1
  39. package/src/BundleGraph.js +83 -79
  40. package/src/CommittedAsset.js +5 -3
  41. package/src/Dependency.js +1 -1
  42. package/src/PackagerRunner.js +57 -9
  43. package/src/ReporterRunner.js +4 -4
  44. package/src/RequestTracker.js +19 -19
  45. package/src/SymbolPropagation.js +40 -52
  46. package/src/Transformation.js +12 -12
  47. package/src/UncommittedAsset.js +3 -3
  48. package/src/Validation.js +5 -5
  49. package/src/applyRuntimes.js +2 -2
  50. package/src/assetUtils.js +2 -2
  51. package/src/atlaspack-v3/AtlaspackV3.js +1 -1
  52. package/src/atlaspack-v3/fs.js +39 -25
  53. package/src/atlaspack-v3/index.js +1 -1
  54. package/src/atlaspack-v3/jsCallable.js +11 -10
  55. package/src/atlaspack-v3/worker/compat/asset-symbols.js +225 -0
  56. package/src/atlaspack-v3/worker/compat/bitflags.js +100 -0
  57. package/src/atlaspack-v3/worker/compat/dependency.js +83 -0
  58. package/src/atlaspack-v3/worker/compat/environment.js +92 -0
  59. package/src/atlaspack-v3/worker/compat/index.js +10 -0
  60. package/src/atlaspack-v3/worker/compat/mutable-asset.js +184 -0
  61. package/src/atlaspack-v3/worker/compat/plugin-config.js +94 -0
  62. package/src/atlaspack-v3/worker/compat/plugin-logger.js +47 -0
  63. package/src/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  64. package/src/atlaspack-v3/worker/compat/plugin-tracer.js +11 -0
  65. package/src/atlaspack-v3/worker/compat/target.js +27 -0
  66. package/src/atlaspack-v3/worker/worker.js +148 -134
  67. package/src/dumpGraphToGraphViz.js +1 -1
  68. package/src/index.js +0 -10
  69. package/src/loadDotEnv.js +1 -1
  70. package/src/projectPath.js +12 -4
  71. package/src/public/Asset.js +1 -1
  72. package/src/public/Bundle.js +3 -3
  73. package/src/public/BundleGraph.js +20 -20
  74. package/src/public/Config.js +1 -1
  75. package/src/public/MutableBundleGraph.js +8 -8
  76. package/src/registerCoreWithSerializer.js +7 -4
  77. package/src/requests/AssetGraphRequest.js +10 -10
  78. package/src/requests/AssetGraphRequestRust.js +3 -3
  79. package/src/requests/AssetRequest.js +3 -3
  80. package/src/requests/AtlaspackConfigRequest.js +6 -4
  81. package/src/requests/BundleGraphRequest.js +6 -6
  82. package/src/requests/ConfigRequest.js +5 -6
  83. package/src/requests/DevDepRequest.js +8 -8
  84. package/src/requests/EntryRequest.js +2 -2
  85. package/src/requests/PathRequest.js +1 -1
  86. package/src/requests/TargetRequest.js +9 -8
  87. package/src/requests/ValidationRequest.js +2 -2
  88. package/src/requests/WriteBundleRequest.js +26 -20
  89. package/src/requests/WriteBundlesRequest.js +6 -6
  90. package/src/requests/asset-graph-diff.js +4 -4
  91. package/src/resolveOptions.js +3 -3
  92. package/src/serializerCore.browser.js +3 -2
  93. package/src/utils.js +2 -2
  94. package/src/worker.js +1 -1
  95. package/test/AtlaspackConfigRequest.test.js +1 -1
  96. package/test/BundleGraph.test.js +3 -3
  97. package/test/Dependency.test.js +28 -0
  98. package/test/PublicMutableBundleGraph.test.js +2 -2
  99. package/test/RequestTracker.test.js +7 -6
  100. package/test/SymbolPropagation.test.js +9 -9
  101. package/test/requests/ConfigRequest.test.js +3 -6
  102. package/test/utils.test.js +1 -1
  103. package/lib/atlaspack-v3/worker/compat.js +0 -57
  104. package/lib/buildCache.js +0 -18
  105. package/lib/serializer.js +0 -216
  106. package/lib/serializerCore.js +0 -16
  107. package/src/atlaspack-v3/worker/compat.js +0 -82
  108. package/src/buildCache.js +0 -15
  109. package/src/serializer.js +0 -255
  110. package/src/serializerCore.js +0 -5
  111. package/test/requests/WriteBundleRequest.test.js +0 -132
  112. package/test/serializer.test.js +0 -302
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PluginLogger = void 0;
7
+ class PluginLogger {
8
+ verbose(diagnostic) {
9
+ // eslint-disable-next-line no-console
10
+ console.log(diagnostic);
11
+ }
12
+ info(diagnostic) {
13
+ // eslint-disable-next-line no-console
14
+ console.info(diagnostic);
15
+ }
16
+ log(diagnostic) {
17
+ // eslint-disable-next-line no-console
18
+ console.log(diagnostic);
19
+ }
20
+ warn(diagnostic) {
21
+ // eslint-disable-next-line no-console
22
+ console.warn(diagnostic);
23
+ }
24
+ error(input) {
25
+ // eslint-disable-next-line no-console
26
+ console.error(input);
27
+ }
28
+ }
29
+ exports.PluginLogger = PluginLogger;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PluginOptions = void 0;
7
+ class PluginOptions {
8
+ #options;
9
+ get env() {
10
+ if (!('env' in this.#options)) {
11
+ return process.env;
12
+ // throw new Error('PluginOptions.env');
13
+ }
14
+
15
+ return this.#options.env;
16
+ }
17
+ get projectRoot() {
18
+ if (!('projectRoot' in this.#options)) {
19
+ throw new Error('PluginOptions.projectRoot');
20
+ }
21
+ return this.#options.projectRoot;
22
+ }
23
+ get packageManager() {
24
+ if (!('packageManager' in this.#options)) {
25
+ throw new Error('PluginOptions.packageManager');
26
+ }
27
+ return this.#options.packageManager;
28
+ }
29
+ get mode() {
30
+ if (!('mode' in this.#options)) {
31
+ throw new Error('PluginOptions.mode');
32
+ }
33
+ return this.#options.mode;
34
+ }
35
+ get parcelVersion() {
36
+ if (!('parcelVersion' in this.#options)) {
37
+ return 'UNKNOWN VERSION';
38
+ // throw new Error('PluginOptions.parcelVersion');
39
+ }
40
+
41
+ return this.#options.parcelVersion;
42
+ }
43
+ get hmrOptions() {
44
+ if (!('hmrOptions' in this.#options)) {
45
+ throw new Error('PluginOptions.hmrOptions');
46
+ }
47
+ return this.#options.hmrOptions;
48
+ }
49
+ get serveOptions() {
50
+ if (!('serveOptions' in this.#options)) {
51
+ throw new Error('PluginOptions.serveOptions');
52
+ }
53
+ return this.#options.serveOptions;
54
+ }
55
+ get shouldBuildLazily() {
56
+ if (!('shouldBuildLazily' in this.#options)) {
57
+ throw new Error('PluginOptions.shouldBuildLazily');
58
+ }
59
+ return this.#options.shouldBuildLazily;
60
+ }
61
+ get shouldAutoInstall() {
62
+ if (!('shouldAutoInstall' in this.#options)) {
63
+ throw new Error('PluginOptions.shouldAutoInstall');
64
+ }
65
+ return this.#options.shouldAutoInstall;
66
+ }
67
+ get logLevel() {
68
+ if (!('logLevel' in this.#options)) {
69
+ throw new Error('PluginOptions.logLevel');
70
+ }
71
+ return this.#options.logLevel;
72
+ }
73
+ get cacheDir() {
74
+ if (!('cacheDir' in this.#options)) {
75
+ throw new Error('PluginOptions.cacheDir');
76
+ }
77
+ return this.#options.cacheDir;
78
+ }
79
+ get inputFS() {
80
+ if (!('inputFS' in this.#options)) {
81
+ throw new Error('PluginOptions.inputFS');
82
+ }
83
+ return this.#options.inputFS;
84
+ }
85
+ get outputFS() {
86
+ if (!('outputFS' in this.#options)) {
87
+ throw new Error('PluginOptions.outputFS');
88
+ }
89
+ return this.#options.outputFS;
90
+ }
91
+ get instanceId() {
92
+ if (!('instanceId' in this.#options)) {
93
+ throw new Error('PluginOptions.instanceId');
94
+ }
95
+ return this.#options.instanceId;
96
+ }
97
+ get detailedReport() {
98
+ if (!('detailedReport' in this.#options)) {
99
+ throw new Error('PluginOptions.detailedReport');
100
+ }
101
+ return this.#options.detailedReport;
102
+ }
103
+ get featureFlags() {
104
+ if (!('featureFlags' in this.#options)) {
105
+ throw new Error('PluginOptions.featureFlags');
106
+ }
107
+ return this.#options.featureFlags;
108
+ }
109
+ constructor(options) {
110
+ this.#options = options;
111
+ }
112
+ }
113
+ exports.PluginOptions = PluginOptions;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PluginTracer = void 0;
7
+ class PluginTracer {
8
+ createMeasurement() {
9
+ throw new Error('PluginTracer.createMeasurement');
10
+ }
11
+ }
12
+ exports.PluginTracer = PluginTracer;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Target = void 0;
7
+ class Target {
8
+ constructor(inner, env) {
9
+ this.distDir = inner.distDir;
10
+ this.distEntry = inner.distEntry;
11
+ this.name = inner.name;
12
+ this.publicUrl = inner.publicUrl;
13
+ this.loc = inner.loc;
14
+ this.env = env;
15
+ }
16
+ }
17
+ exports.Target = Target;
@@ -48,16 +48,17 @@ function _module() {
48
48
  }
49
49
  var _compat = require("./compat");
50
50
  var _jsCallable = require("../jsCallable");
51
- var _Environment = _interopRequireDefault(require("../../public/Environment"));
52
51
  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); }
53
52
  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; }
54
53
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
55
54
  const CONFIG = Symbol.for('parcel-plugin-config');
56
55
  class AtlaspackWorker {
57
56
  #resolvers;
57
+ #transformers;
58
58
  #fs;
59
59
  constructor() {
60
60
  this.#resolvers = new Map();
61
+ this.#transformers = new Map();
61
62
  this.#fs = new (_fs().NodeFS)();
62
63
  }
63
64
  loadPlugin = (0, _jsCallable.jsCallable)(async ({
@@ -83,11 +84,16 @@ class AtlaspackWorker {
83
84
  resolver: instance
84
85
  });
85
86
  break;
87
+ case 'transformer':
88
+ this.#transformers.set(specifier, {
89
+ transformer: instance
90
+ });
91
+ break;
86
92
  }
87
93
  });
88
94
  runResolverResolve = (0, _jsCallable.jsCallable)(async ({
89
95
  key,
90
- dependency,
96
+ dependency: napiDependency,
91
97
  specifier,
92
98
  pipeline,
93
99
  projectRoot
@@ -101,80 +107,27 @@ class AtlaspackWorker {
101
107
  packageManager = new (_packageManager().NodePackageManager)(this.#fs, projectRoot);
102
108
  state.packageManager = packageManager;
103
109
  }
110
+ const env = new _compat.Environment(napiDependency.env);
111
+ const dependency = new _compat.Dependency(napiDependency, env);
104
112
  const defaultOptions = {
105
- get logger() {
106
- // $FlowFixMe
107
- return globalThis.console;
108
- },
109
- tracer: {
110
- enabled: false,
111
- createMeasurement: () => null
112
- },
113
- options: {
114
- get mode() {
115
- throw new Error('Resolver.resolve.options.mode');
116
- },
117
- parcelVersion: 'TODO',
113
+ logger: new _compat.PluginLogger(),
114
+ tracer: new _compat.PluginTracer(),
115
+ options: new _compat.PluginOptions({
118
116
  packageManager,
119
- env: process.env,
120
- get hmrOptions() {
121
- throw new Error('Resolver.resolve.options.hmrOptions');
122
- },
123
- get serveOptions() {
124
- throw new Error('Resolver.resolve.options.serveOptions');
125
- },
126
- get shouldBuildLazily() {
127
- throw new Error('Resolver.resolve.options.shouldBuildLazily');
128
- },
129
117
  shouldAutoInstall: false,
130
- get logLevel() {
131
- throw new Error('Resolver.resolve.options.logLevel');
132
- },
133
118
  projectRoot,
134
- get cacheDir() {
135
- throw new Error('Resolver.resolve.options.cacheDir');
136
- },
137
119
  inputFS: this.#fs,
138
- outputFS: this.#fs,
139
- get instanceId() {
140
- throw new Error('Resolver.resolve.options.instanceId');
141
- },
142
- get detailedReport() {
143
- throw new Error('Resolver.resolve.options.detailedReport');
144
- },
145
- get featureFlags() {
146
- throw new Error('Resolver.resolve.options.featureFlags');
147
- }
148
- }
120
+ outputFS: this.#fs
121
+ })
149
122
  };
150
123
  if (!('config' in state)) {
151
124
  var _state$resolver$loadC, _state$resolver;
152
125
  state.config = await ((_state$resolver$loadC = (_state$resolver = state.resolver).loadConfig) === null || _state$resolver$loadC === void 0 ? void 0 : _state$resolver$loadC.call(_state$resolver, {
153
- config: {
126
+ config: new _compat.PluginConfig({
127
+ env,
154
128
  isSource: true,
155
- searchPath: '',
156
- // $FlowFixMe This isn't correct to flow but is enough to satisfy the runtime checks
157
- env: new _Environment.default(dependency.env, {
158
- projectRoot,
159
- hmrOptions: undefined
160
- }),
161
- invalidateOnFileChange() {},
162
- invalidateOnFileCreate() {},
163
- invalidateOnEnvChange() {},
164
- invalidateOnStartup() {},
165
- invalidateOnBuild() {},
166
- addDevDependency() {},
167
- setCacheKey() {},
168
- getConfig() {
169
- throw new Error('Resolver.loadConfig.config.getConfig');
170
- },
171
- getConfigFrom() {
172
- throw new Error('Resolver.loadConfig.config.getConfigFrom');
173
- },
174
- getPackage() {
175
- throw new Error('Resolver.loadConfig.config.getPackage');
176
- }
177
- },
129
+ searchPath: ''
130
+ }),
178
131
  ...defaultOptions
179
132
  }));
180
133
  }
@@ -203,74 +156,109 @@ class AtlaspackWorker {
203
156
  code: result.code || undefined,
204
157
  meta: result.meta || undefined,
205
158
  pipeline: result.pipeline || undefined,
206
- priority: result.priority && PriorityMap[result.priority],
159
+ priority: _compat.dependencyPriorityMap.intoNullable(result.priority),
207
160
  query: result.query && result.query.toString()
208
161
  }
209
162
  };
210
163
  });
211
- ping() {
212
- // console.log('Hi');
213
- }
214
- async runTransformer({
215
- resolveFrom,
216
- specifier,
217
- options,
218
- asset
219
- }) {
220
- const customRequire = _module().createRequire(resolveFrom);
221
- const resolvedPath = customRequire.resolve(specifier);
222
- // $FlowFixMe
223
- const transformerModule = await import(resolvedPath);
224
- const transformer = transformerModule.default.default[CONFIG];
225
- let assetCompat = new _compat.AssetCompat(asset, options);
226
- try {
227
- if (transformer.parse) {
228
- // $FlowFixMe
229
- const ast = await transformer.parse({
230
- asset: assetCompat
231
- }); // missing "config"
232
- // $FlowFixMe
233
- assetCompat.setAST(ast);
164
+ runTransformerTransform = (0, _jsCallable.jsCallable)(async ({
165
+ key,
166
+ env: napiEnv,
167
+ projectRoot,
168
+ asset: innerAsset
169
+ }) => {
170
+ var _transformer$loadConf;
171
+ const state = this.#transformers.get(key);
172
+ if (!state) {
173
+ throw new Error(`Transformer not found: ${key}`);
174
+ }
175
+ let packageManager = state.packageManager;
176
+ if (!packageManager) {
177
+ packageManager = new (_packageManager().NodePackageManager)(this.#fs, projectRoot);
178
+ state.packageManager = packageManager;
179
+ }
180
+ const transformer = state.transformer;
181
+ const env = new _compat.Environment(napiEnv);
182
+ const mutableAsset = new _compat.MutableAsset(innerAsset, this.#fs, env);
183
+ const defaultOptions = {
184
+ logger: new _compat.PluginLogger(),
185
+ tracer: new _compat.PluginTracer(),
186
+ options: new _compat.PluginOptions({
187
+ packageManager,
188
+ shouldAutoInstall: false,
189
+ projectRoot,
190
+ inputFS: this.#fs,
191
+ outputFS: this.#fs
192
+ })
193
+ };
194
+ const config = await ((_transformer$loadConf = transformer.loadConfig) === null || _transformer$loadConf === void 0 ? void 0 : _transformer$loadConf.call(transformer, {
195
+ config: new _compat.PluginConfig({
196
+ env,
197
+ isSource: true,
198
+ searchPath: ''
199
+ }),
200
+ ...defaultOptions
201
+ }));
202
+ if (transformer.parse) {
203
+ const ast = await transformer.parse({
204
+ asset: mutableAsset,
205
+ config,
206
+ get resolve() {
207
+ throw new Error('Transformer.parse.resolve()');
208
+ },
209
+ ...defaultOptions
210
+ });
211
+ if (ast) {
212
+ mutableAsset.setAST(ast);
234
213
  }
235
-
236
- // $FlowFixMe
237
- const result = await transformer.transform({
238
- // $FlowFixMe
239
- asset: assetCompat,
240
- options,
241
- config: null
214
+ }
215
+ const result = await state.transformer.transform({
216
+ asset: mutableAsset,
217
+ config,
218
+ get resolve() {
219
+ throw new Error('Transformer.transform.resolve()');
220
+ },
221
+ ...defaultOptions
222
+ });
223
+ if (transformer.generate) {
224
+ const ast = await mutableAsset.getAST();
225
+ if (!ast) {
226
+ throw new Error('Transformer.generate.ast');
227
+ }
228
+ // $FlowFixMe "Cannot call `transformer.generate` because undefined [1] is not a function." 🤷‍♀️
229
+ const output = await transformer.generate({
230
+ asset: mutableAsset,
231
+ ast,
232
+ ...defaultOptions
242
233
  });
243
- if (transformer.generate) {
244
- // $FlowFixMe
245
- let output = await transformer.generate({
246
- // $FlowFixMe
247
- asset: assetCompat,
248
- // $FlowFixMe
249
- ast: assetCompat.getAST()
250
- });
251
- // $FlowFixMe
252
- assetCompat.setCode(output.content);
234
+ if (typeof output.content === 'string') {
235
+ mutableAsset.setCode(output.content);
236
+ } else if (output.content instanceof Buffer) {
237
+ mutableAsset.setBuffer(output.content);
238
+ } else {
239
+ mutableAsset.setStream(output.content);
253
240
  }
254
- (0, _assert().default)(result.length === 1, '[V3] Unimplemented: Multiple asset return from Node transformer');
255
- (0, _assert().default)(result[0] === assetCompat, '[V3] Unimplemented: New asset returned from Node transformer');
256
- return {
257
- asset,
258
- dependencies: assetCompat._dependencies
259
- };
260
- } catch (e) {
261
- // TODO: Improve error logging from JS plugins. Without this you currently
262
- // only see the error message, no stack trace.
263
- // eslint-disable-next-line no-console
264
- console.error(e);
265
- throw e;
266
241
  }
267
- }
242
+ (0, _assert().default)(result.length === 1, '[V3] Unimplemented: Multiple asset return from Node transformer');
243
+ (0, _assert().default)(result[0] === mutableAsset, '[V3] Unimplemented: New asset returned from Node transformer');
244
+ return {
245
+ asset: {
246
+ id: mutableAsset.id,
247
+ bundleBehavior: _compat.bundleBehaviorMap.intoNullable(mutableAsset.bundleBehavior),
248
+ filePath: mutableAsset.filePath,
249
+ type: mutableAsset.type,
250
+ code: Array.from(await mutableAsset.getBuffer()),
251
+ meta: mutableAsset.meta,
252
+ pipeline: mutableAsset.pipeline,
253
+ query: mutableAsset.query.toString(),
254
+ symbols: mutableAsset.symbols.intoNapi(),
255
+ uniqueKey: mutableAsset.uniqueKey,
256
+ sideEffects: mutableAsset.sideEffects,
257
+ isBundleSplittable: mutableAsset.isBundleSplittable,
258
+ isSource: mutableAsset.isSource
259
+ }
260
+ };
261
+ });
268
262
  }
269
263
  exports.AtlaspackWorker = AtlaspackWorker;
270
- napi().registerWorker(_worker_threads().workerData.tx_worker, new AtlaspackWorker());
271
- const PriorityMap = {
272
- sync: 0,
273
- parallel: 1,
274
- lazy: 2,
275
- conditional: 3
276
- };
264
+ napi().registerWorker(_worker_threads().workerData.tx_worker, new AtlaspackWorker());
package/lib/index.js CHANGED
@@ -4,12 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  var _exportNames = {
7
- registerSerializableClass: true,
8
- unregisterSerializableClass: true,
9
- prepareForSerialization: true,
10
- restoreDeserializedObject: true,
11
- serialize: true,
12
- deserialize: true,
13
7
  Atlaspack: true,
14
8
  Parcel: true,
15
9
  BuildError: true,
@@ -59,43 +53,6 @@ Object.defineProperty(exports, "default", {
59
53
  return _Atlaspack.default;
60
54
  }
61
55
  });
62
- Object.defineProperty(exports, "deserialize", {
63
- enumerable: true,
64
- get: function () {
65
- return _serializer.deserialize;
66
- }
67
- });
68
- Object.defineProperty(exports, "prepareForSerialization", {
69
- enumerable: true,
70
- get: function () {
71
- return _serializer.prepareForSerialization;
72
- }
73
- });
74
- Object.defineProperty(exports, "registerSerializableClass", {
75
- enumerable: true,
76
- get: function () {
77
- return _serializer.registerSerializableClass;
78
- }
79
- });
80
- Object.defineProperty(exports, "restoreDeserializedObject", {
81
- enumerable: true,
82
- get: function () {
83
- return _serializer.restoreDeserializedObject;
84
- }
85
- });
86
- Object.defineProperty(exports, "serialize", {
87
- enumerable: true,
88
- get: function () {
89
- return _serializer.serialize;
90
- }
91
- });
92
- Object.defineProperty(exports, "unregisterSerializableClass", {
93
- enumerable: true,
94
- get: function () {
95
- return _serializer.unregisterSerializableClass;
96
- }
97
- });
98
- var _serializer = require("./serializer");
99
56
  var _Atlaspack = _interopRequireWildcard(require("./Atlaspack"));
100
57
  var _atlaspackV = require("./atlaspack-v3");
101
58
  Object.keys(_atlaspackV).forEach(function (key) {
@@ -27,14 +27,22 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
27
27
  * A path that's relative to the project root.
28
28
  */
29
29
  function toProjectPath_(projectRoot, p) {
30
+ // If the file path is not provided, then treat it as though it is already from the project root
30
31
  if (p == null) {
31
32
  return p;
32
33
  }
33
34
 
34
- // If the file is outside the project root, store an absolute path rather
35
- // than a relative one. This way if the project root is moved, the file
36
- // references still work. Accessing files outside the project root is not
37
- // portable anyway.
35
+ // If the file path is already relative and it does not begin with . then treat the path as if it
36
+ // is already from the project root. This prevents relative paths from being processed twice,
37
+ // most often within `toInternalSourceLocation` when handling loc types from symbols and asset
38
+ // dependencies.
39
+ if (p[0] !== '.' && !_path().default.isAbsolute(p)) {
40
+ return p;
41
+ }
42
+
43
+ // If the file is outside the project root, store an absolute path rather than a relative one.
44
+ // This way if the project root is moved, the file references still work. Accessing files outside
45
+ // the project root is not portable anyway.
38
46
  let relative = (0, _utils().relativePath)(projectRoot, p, false);
39
47
  if (relative.startsWith('..')) {
40
48
  return process.platform === 'win32' ? (0, _utils().normalizeSeparators)(p) : p;
@@ -4,6 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.registerCoreWithSerializer = registerCoreWithSerializer;
7
+ function _buildCache() {
8
+ const data = require("@atlaspack/build-cache");
9
+ _buildCache = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
7
14
  function _graph() {
8
15
  const data = require("@atlaspack/graph");
9
16
  _graph = function () {
@@ -11,13 +18,12 @@ function _graph() {
11
18
  };
12
19
  return data;
13
20
  }
14
- var _serializer = require("./serializer");
21
+ var _package = _interopRequireDefault(require("../package.json"));
22
+ var _AtlaspackConfig = _interopRequireDefault(require("./AtlaspackConfig"));
15
23
  var _AssetGraph = _interopRequireDefault(require("./AssetGraph"));
16
24
  var _BundleGraph = _interopRequireDefault(require("./BundleGraph"));
17
- var _AtlaspackConfig = _interopRequireDefault(require("./AtlaspackConfig"));
18
- var _RequestTracker = require("./RequestTracker");
19
25
  var _Config = _interopRequireDefault(require("./public/Config"));
20
- var _package = _interopRequireDefault(require("../package.json"));
26
+ var _RequestTracker = require("./RequestTracker");
21
27
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
28
  let coreRegistered;
23
29
  function registerCoreWithSerializer() {
@@ -39,7 +45,7 @@ function registerCoreWithSerializer() {
39
45
  RequestGraph: _RequestTracker.RequestGraph
40
46
  // $FlowFixMe[unclear-type]
41
47
  })) {
42
- (0, _serializer.registerSerializableClass)(packageVersion + ':' + name, ctor);
48
+ (0, _buildCache().registerSerializableClass)(packageVersion + ':' + name, ctor);
43
49
  }
44
50
  coreRegistered = true;
45
51
  }
@@ -56,7 +56,13 @@ function _assert() {
56
56
  var _AtlaspackConfig = _interopRequireDefault(require("../AtlaspackConfig.schema"));
57
57
  var _utils2 = require("../utils");
58
58
  var _AtlaspackConfig2 = _interopRequireDefault(require("../AtlaspackConfig"));
59
- var _buildCache = require("../buildCache");
59
+ function _buildCache() {
60
+ const data = require("@atlaspack/build-cache");
61
+ _buildCache = function () {
62
+ return data;
63
+ };
64
+ return data;
65
+ }
60
66
  var _projectPath = require("../projectPath");
61
67
  var _RequestTracker = require("../RequestTracker");
62
68
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -103,7 +109,7 @@ function createAtlaspackConfigRequest() {
103
109
  input: null
104
110
  };
105
111
  }
106
- const atlaspackConfigCache = (0, _buildCache.createBuildCache)();
112
+ const atlaspackConfigCache = (0, _buildCache().createBuildCache)();
107
113
  function getCachedAtlaspackConfig(result, options) {
108
114
  let {
109
115
  config: processedConfig,
@@ -15,7 +15,13 @@ function _utils() {
15
15
  };
16
16
  return data;
17
17
  }
18
- var _serializer = require("../serializer.js");
18
+ function _buildCache() {
19
+ const data = require("@atlaspack/build-cache");
20
+ _buildCache = function () {
21
+ return data;
22
+ };
23
+ return data;
24
+ }
19
25
  function _logger() {
20
26
  const data = require("@atlaspack/logger");
21
27
  _logger = function () {
@@ -50,7 +56,6 @@ function _profiler() {
50
56
  }
51
57
  var _RequestTracker = require("../RequestTracker");
52
58
  var _projectPath = require("../projectPath");
53
- var _buildCache = require("../buildCache");
54
59
  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); }
55
60
  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; }
56
61
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -81,7 +86,7 @@ async function loadPluginConfig(loadedPlugin, config, options) {
81
86
  });
82
87
  }
83
88
  }
84
- const configKeyCache = (0, _buildCache.createBuildCache)();
89
+ const configKeyCache = (0, _buildCache().createBuildCache)();
85
90
  async function getConfigKeyContentHash(filePath, configKey, options) {
86
91
  let cacheKey = `${(0, _projectPath.fromProjectPathRelative)(filePath)}:${configKey}`;
87
92
  let cachedValue = configKeyCache.get(cacheKey);
@@ -166,7 +171,7 @@ async function getConfigHash(config, pluginName, options) {
166
171
  })), options));
167
172
  } else if (config.result != null) {
168
173
  try {
169
- hash.writeBuffer((0, _serializer.serializeRaw)(config.result));
174
+ hash.writeBuffer((0, _buildCache().serializeRaw)(config.result));
170
175
  } catch (err) {
171
176
  throw new (_diagnostic().default)({
172
177
  diagnostic: {