@atlaspack/core 2.12.1-dev.3450 → 2.12.1-dev.3460
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/AssetGraph.js +5 -1
- package/lib/Atlaspack.js +2 -2
- package/lib/Dependency.js +1 -1
- package/lib/PackagerRunner.js +45 -3
- package/lib/SymbolPropagation.js +25 -36
- package/lib/assetUtils.js +1 -1
- package/lib/atlaspack-v3/fs.js +31 -29
- package/lib/atlaspack-v3/index.js +2 -2
- package/lib/atlaspack-v3/jsCallable.js +9 -4
- package/lib/atlaspack-v3/worker/compat/asset-symbols.js +192 -0
- package/lib/atlaspack-v3/worker/compat/bitflags.js +84 -0
- package/lib/atlaspack-v3/worker/compat/dependency.js +44 -0
- package/lib/atlaspack-v3/worker/compat/environment.js +68 -0
- package/lib/atlaspack-v3/worker/compat/index.js +104 -0
- package/lib/atlaspack-v3/worker/compat/mutable-asset.js +144 -0
- package/lib/atlaspack-v3/worker/compat/plugin-config.js +58 -0
- package/lib/atlaspack-v3/worker/compat/plugin-logger.js +29 -0
- package/lib/atlaspack-v3/worker/compat/plugin-options.js +113 -0
- package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +12 -0
- package/lib/atlaspack-v3/worker/compat/target.js +17 -0
- package/lib/atlaspack-v3/worker/worker.js +115 -127
- package/lib/projectPath.js +12 -4
- package/lib/requests/ConfigRequest.js +1 -1
- package/lib/requests/WriteBundleRequest.js +15 -15
- package/package.json +23 -16
- package/src/AssetGraph.js +15 -13
- package/src/Atlaspack.js +5 -6
- package/src/AtlaspackConfig.js +11 -9
- package/src/AtlaspackConfig.schema.js +1 -1
- package/src/BundleGraph.js +83 -79
- package/src/CommittedAsset.js +1 -1
- package/src/Dependency.js +1 -1
- package/src/PackagerRunner.js +56 -8
- package/src/ReporterRunner.js +4 -4
- package/src/RequestTracker.js +18 -18
- package/src/SymbolPropagation.js +40 -52
- package/src/Transformation.js +12 -12
- package/src/UncommittedAsset.js +2 -2
- package/src/Validation.js +5 -5
- package/src/applyRuntimes.js +2 -2
- package/src/assetUtils.js +1 -1
- package/src/atlaspack-v3/AtlaspackV3.js +1 -1
- package/src/atlaspack-v3/fs.js +39 -25
- package/src/atlaspack-v3/index.js +1 -1
- package/src/atlaspack-v3/jsCallable.js +11 -10
- package/src/atlaspack-v3/worker/compat/asset-symbols.js +225 -0
- package/src/atlaspack-v3/worker/compat/bitflags.js +100 -0
- package/src/atlaspack-v3/worker/compat/dependency.js +83 -0
- package/src/atlaspack-v3/worker/compat/environment.js +92 -0
- package/src/atlaspack-v3/worker/compat/index.js +10 -0
- package/src/atlaspack-v3/worker/compat/mutable-asset.js +184 -0
- package/src/atlaspack-v3/worker/compat/plugin-config.js +94 -0
- package/src/atlaspack-v3/worker/compat/plugin-logger.js +47 -0
- package/src/atlaspack-v3/worker/compat/plugin-options.js +137 -0
- package/src/atlaspack-v3/worker/compat/plugin-tracer.js +11 -0
- package/src/atlaspack-v3/worker/compat/target.js +27 -0
- package/src/atlaspack-v3/worker/worker.js +148 -134
- package/src/dumpGraphToGraphViz.js +1 -1
- package/src/loadDotEnv.js +1 -1
- package/src/projectPath.js +12 -4
- package/src/public/Asset.js +1 -1
- package/src/public/Bundle.js +3 -3
- package/src/public/BundleGraph.js +20 -20
- package/src/public/Config.js +1 -1
- package/src/public/MutableBundleGraph.js +8 -8
- package/src/requests/AssetGraphRequest.js +10 -10
- package/src/requests/AssetGraphRequestRust.js +3 -3
- package/src/requests/AssetRequest.js +3 -3
- package/src/requests/AtlaspackConfigRequest.js +5 -3
- package/src/requests/BundleGraphRequest.js +6 -6
- package/src/requests/ConfigRequest.js +5 -5
- package/src/requests/DevDepRequest.js +7 -7
- package/src/requests/EntryRequest.js +2 -2
- package/src/requests/TargetRequest.js +9 -8
- package/src/requests/ValidationRequest.js +2 -2
- package/src/requests/WriteBundleRequest.js +26 -20
- package/src/requests/WriteBundlesRequest.js +6 -6
- package/src/requests/asset-graph-diff.js +4 -4
- package/src/resolveOptions.js +3 -3
- package/src/serializer.js +2 -2
- package/src/serializerCore.browser.js +3 -2
- package/src/serializerCore.js +2 -2
- package/src/utils.js +2 -2
- package/test/AtlaspackConfigRequest.test.js +1 -1
- package/test/BundleGraph.test.js +3 -3
- package/test/Dependency.test.js +28 -0
- package/test/PublicMutableBundleGraph.test.js +2 -2
- package/test/RequestTracker.test.js +7 -6
- package/test/SymbolPropagation.test.js +9 -9
- package/test/requests/ConfigRequest.test.js +3 -6
- package/test/utils.test.js +1 -1
- package/lib/atlaspack-v3/worker/compat.js +0 -57
- package/src/atlaspack-v3/worker/compat.js +0 -82
- package/test/requests/WriteBundleRequest.test.js +0 -132
|
@@ -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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
159
|
+
priority: _compat.dependencyPriorityMap.intoNullable(result.priority),
|
|
207
160
|
query: result.query && result.query.toString()
|
|
208
161
|
}
|
|
209
162
|
};
|
|
210
163
|
});
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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 (
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
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/projectPath.js
CHANGED
|
@@ -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
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
//
|
|
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,14 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = createWriteBundleRequest;
|
|
7
|
-
exports.replaceStream = replaceStream;
|
|
8
|
-
function _rust() {
|
|
9
|
-
const data = require("@atlaspack/rust");
|
|
10
|
-
_rust = function () {
|
|
11
|
-
return data;
|
|
12
|
-
};
|
|
13
|
-
return data;
|
|
14
|
-
}
|
|
15
7
|
var _constants = require("../constants");
|
|
16
8
|
function _nullthrows() {
|
|
17
9
|
const data = _interopRequireDefault(require("nullthrows"));
|
|
@@ -135,8 +127,16 @@ async function run({
|
|
|
135
127
|
let writeOptions = publicBundle.env.isBrowser() || !mainEntry ? undefined : {
|
|
136
128
|
mode: (await inputFS.stat(mainEntry.filePath)).mode
|
|
137
129
|
};
|
|
138
|
-
|
|
139
|
-
|
|
130
|
+
let contentStream;
|
|
131
|
+
if (info.isLargeBlob) {
|
|
132
|
+
contentStream = options.cache.getStream(cacheKeys.content);
|
|
133
|
+
} else {
|
|
134
|
+
contentStream = (0, _utils().blobToStream)(await options.cache.getBlob(cacheKeys.content));
|
|
135
|
+
}
|
|
136
|
+
let size = 0;
|
|
137
|
+
contentStream = contentStream.pipe(new (_utils().TapStream)(buf => {
|
|
138
|
+
size += buf.length;
|
|
139
|
+
}));
|
|
140
140
|
let configResult = (0, _nullthrows().default)(await api.runRequest((0, _AtlaspackConfigRequest.default)()));
|
|
141
141
|
let config = (0, _AtlaspackConfigRequest.getCachedAtlaspackConfig)(configResult, options);
|
|
142
142
|
let {
|
|
@@ -144,9 +144,9 @@ async function run({
|
|
|
144
144
|
invalidDevDeps
|
|
145
145
|
} = await (0, _DevDepRequest.getDevDepRequests)(api);
|
|
146
146
|
(0, _DevDepRequest.invalidateDevDeps)(invalidDevDeps, options, config);
|
|
147
|
-
await writeFiles(
|
|
147
|
+
await writeFiles(contentStream, info, hashRefToNameHash, options, config, outputFS, filePath, writeOptions, devDeps, api);
|
|
148
148
|
if (mapKey && bundle.env.sourceMap && !bundle.env.sourceMap.inline && (await options.cache.has(mapKey))) {
|
|
149
|
-
await writeFiles(await options.cache.getBlob(mapKey), info, hashRefToNameHash, options, config, outputFS, (0, _projectPath.toProjectPathUnsafe)((0, _projectPath.fromProjectPathRelative)(filePath) + '.map'), writeOptions, devDeps, api);
|
|
149
|
+
await writeFiles((0, _utils().blobToStream)(await options.cache.getBlob(mapKey)), info, hashRefToNameHash, options, config, outputFS, (0, _projectPath.toProjectPathUnsafe)((0, _projectPath.fromProjectPathRelative)(filePath) + '.map'), writeOptions, devDeps, api);
|
|
150
150
|
}
|
|
151
151
|
let res = {
|
|
152
152
|
filePath,
|
|
@@ -159,13 +159,13 @@ async function run({
|
|
|
159
159
|
api.storeResult(res);
|
|
160
160
|
return res;
|
|
161
161
|
}
|
|
162
|
-
async function writeFiles(
|
|
162
|
+
async function writeFiles(inputStream, info, hashRefToNameHash, options, config, outputFS, filePath, writeOptions, devDeps, api) {
|
|
163
163
|
let compressors = await config.getCompressors((0, _projectPath.fromProjectPathRelative)(filePath));
|
|
164
164
|
let fullPath = (0, _projectPath.fromProjectPath)(options.projectRoot, filePath);
|
|
165
|
-
|
|
165
|
+
let stream = info.hashReferences.length ? inputStream.pipe(replaceStream(hashRefToNameHash)) : inputStream;
|
|
166
166
|
let promises = [];
|
|
167
167
|
for (let compressor of compressors) {
|
|
168
|
-
promises.push(runCompressor(compressor, (
|
|
168
|
+
promises.push(runCompressor(compressor, cloneStream(stream), options, outputFS, fullPath, writeOptions, devDeps, api));
|
|
169
169
|
}
|
|
170
170
|
await Promise.all(promises);
|
|
171
171
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaspack/core",
|
|
3
|
-
"version": "2.12.1-dev.
|
|
3
|
+
"version": "2.12.1-dev.3460+340817991",
|
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -20,20 +20,20 @@
|
|
|
20
20
|
"check-ts": "tsc --noEmit index.d.ts"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@atlaspack/cache": "2.12.1-dev.
|
|
24
|
-
"@atlaspack/diagnostic": "2.12.1-dev.
|
|
25
|
-
"@atlaspack/events": "2.12.1-dev.
|
|
26
|
-
"@atlaspack/feature-flags": "2.12.1-dev.
|
|
27
|
-
"@atlaspack/fs": "2.12.1-dev.
|
|
28
|
-
"@atlaspack/graph": "3.2.1-dev.
|
|
29
|
-
"@atlaspack/logger": "2.12.1-dev.
|
|
30
|
-
"@atlaspack/package-manager": "2.12.1-dev.
|
|
31
|
-
"@atlaspack/plugin": "2.12.1-dev.
|
|
32
|
-
"@atlaspack/profiler": "2.12.1-dev.
|
|
33
|
-
"@atlaspack/rust": "2.12.1-dev.
|
|
34
|
-
"@atlaspack/types": "2.12.1-dev.
|
|
35
|
-
"@atlaspack/utils": "2.12.1-dev.
|
|
36
|
-
"@atlaspack/workers": "2.12.1-dev.
|
|
23
|
+
"@atlaspack/cache": "2.12.1-dev.3460+340817991",
|
|
24
|
+
"@atlaspack/diagnostic": "2.12.1-dev.3460+340817991",
|
|
25
|
+
"@atlaspack/events": "2.12.1-dev.3460+340817991",
|
|
26
|
+
"@atlaspack/feature-flags": "2.12.1-dev.3460+340817991",
|
|
27
|
+
"@atlaspack/fs": "2.12.1-dev.3460+340817991",
|
|
28
|
+
"@atlaspack/graph": "3.2.1-dev.3460+340817991",
|
|
29
|
+
"@atlaspack/logger": "2.12.1-dev.3460+340817991",
|
|
30
|
+
"@atlaspack/package-manager": "2.12.1-dev.3460+340817991",
|
|
31
|
+
"@atlaspack/plugin": "2.12.1-dev.3460+340817991",
|
|
32
|
+
"@atlaspack/profiler": "2.12.1-dev.3460+340817991",
|
|
33
|
+
"@atlaspack/rust": "2.12.1-dev.3460+340817991",
|
|
34
|
+
"@atlaspack/types": "2.12.1-dev.3460+340817991",
|
|
35
|
+
"@atlaspack/utils": "2.12.1-dev.3460+340817991",
|
|
36
|
+
"@atlaspack/workers": "2.12.1-dev.3460+340817991",
|
|
37
37
|
"@mischnic/json-sourcemap": "^0.1.0",
|
|
38
38
|
"@parcel/source-map": "^2.1.1",
|
|
39
39
|
"base-x": "^3.0.8",
|
|
@@ -54,8 +54,15 @@
|
|
|
54
54
|
"rfdc": "1",
|
|
55
55
|
"tempy": "^0.2.1"
|
|
56
56
|
},
|
|
57
|
+
"exports": {
|
|
58
|
+
".": "./lib/index.js",
|
|
59
|
+
"./worker": {
|
|
60
|
+
"development": "./src/worker.js",
|
|
61
|
+
"default": "./lib/worker.js"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
57
64
|
"browser": {
|
|
58
65
|
"./src/serializerCore.js": "./src/serializerCore.browser.js"
|
|
59
66
|
},
|
|
60
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "3408179911d6c67e2bdad99e545dd7a0a9a6782c"
|
|
61
68
|
}
|
package/src/AssetGraph.js
CHANGED
|
@@ -168,13 +168,15 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
168
168
|
nodes.push(node);
|
|
169
169
|
}
|
|
170
170
|
} else if (assetGroups) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
171
|
+
for (const assetGroup of assetGroups) {
|
|
172
|
+
// Adding nodes individually ensures we do not encounter a range stack size exceeded error
|
|
173
|
+
// when there are >100000 asset groups
|
|
174
|
+
nodes.push(nodeFromAssetGroup(assetGroup));
|
|
175
|
+
}
|
|
174
176
|
}
|
|
175
177
|
this.replaceNodeIdsConnectedTo(
|
|
176
178
|
nullthrows(this.rootNodeId),
|
|
177
|
-
nodes.map(node => this.addNode(node)),
|
|
179
|
+
nodes.map((node) => this.addNode(node)),
|
|
178
180
|
);
|
|
179
181
|
}
|
|
180
182
|
|
|
@@ -213,7 +215,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
213
215
|
|
|
214
216
|
this.replaceNodeIdsConnectedTo(
|
|
215
217
|
entrySpecifierNodeId,
|
|
216
|
-
resolved.map(file => this.addNode(nodeFromEntryFile(file))),
|
|
218
|
+
resolved.map((file) => this.addNode(nodeFromEntryFile(file))),
|
|
217
219
|
);
|
|
218
220
|
}
|
|
219
221
|
|
|
@@ -222,7 +224,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
222
224
|
targets: Array<Target>,
|
|
223
225
|
correspondingRequest: string,
|
|
224
226
|
) {
|
|
225
|
-
let depNodes = targets.map(target => {
|
|
227
|
+
let depNodes = targets.map((target) => {
|
|
226
228
|
let node = nodeFromDep(
|
|
227
229
|
// The passed project path is ignored in this case, because there is no `loc`
|
|
228
230
|
createDependency('', {
|
|
@@ -254,7 +256,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
254
256
|
|
|
255
257
|
this.replaceNodeIdsConnectedTo(
|
|
256
258
|
entryNodeId,
|
|
257
|
-
depNodes.map(node => this.addNode(node)),
|
|
259
|
+
depNodes.map((node) => this.addNode(node)),
|
|
258
260
|
);
|
|
259
261
|
}
|
|
260
262
|
|
|
@@ -340,7 +342,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
340
342
|
let traversedNode = nullthrows(this.getNode(traversedNodeId));
|
|
341
343
|
if (traversedNode.type === 'asset') {
|
|
342
344
|
let hasDeferred = this.getNodeIdsConnectedFrom(traversedNodeId).some(
|
|
343
|
-
childNodeId => {
|
|
345
|
+
(childNodeId) => {
|
|
344
346
|
let childNode = nullthrows(this.getNode(childNodeId));
|
|
345
347
|
return childNode.hasDeferred == null
|
|
346
348
|
? false
|
|
@@ -417,7 +419,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
417
419
|
|
|
418
420
|
let deps = this.getIncomingDependencies(resolvedAsset);
|
|
419
421
|
|
|
420
|
-
return deps.every(d => {
|
|
422
|
+
return deps.every((d) => {
|
|
421
423
|
// If this dependency has already been through this process, and we
|
|
422
424
|
// know it's not deferrable, then there's no need to re-check
|
|
423
425
|
if (this.undeferredDependencies.has(d)) {
|
|
@@ -428,7 +430,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
428
430
|
d.symbols &&
|
|
429
431
|
!(d.env.isLibrary && d.isEntry) &&
|
|
430
432
|
!d.symbols.has('*') &&
|
|
431
|
-
![...d.symbols.keys()].some(symbol => {
|
|
433
|
+
![...d.symbols.keys()].some((symbol) => {
|
|
432
434
|
let assetSymbol = resolvedAsset.symbols?.get(symbol)?.local;
|
|
433
435
|
return assetSymbol != null && symbols.has(assetSymbol);
|
|
434
436
|
});
|
|
@@ -532,7 +534,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
532
534
|
};
|
|
533
535
|
}
|
|
534
536
|
let dependentAsset = dependentAssets.find(
|
|
535
|
-
a => a.uniqueKey === dep.specifier,
|
|
537
|
+
(a) => a.uniqueKey === dep.specifier,
|
|
536
538
|
);
|
|
537
539
|
if (dependentAsset) {
|
|
538
540
|
depNode.complete = true;
|
|
@@ -593,7 +595,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
593
595
|
startNodeId: ?NodeId,
|
|
594
596
|
): ?TContext {
|
|
595
597
|
return this.filteredTraverse(
|
|
596
|
-
nodeId => {
|
|
598
|
+
(nodeId) => {
|
|
597
599
|
let node = nullthrows(this.getNode(nodeId));
|
|
598
600
|
return node.type === 'asset' ? node.value : null;
|
|
599
601
|
},
|
|
@@ -631,7 +633,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
|
|
|
631
633
|
|
|
632
634
|
let hash = new Hash();
|
|
633
635
|
// TODO: sort??
|
|
634
|
-
this.traverse(nodeId => {
|
|
636
|
+
this.traverse((nodeId) => {
|
|
635
637
|
let node = nullthrows(this.getNode(nodeId));
|
|
636
638
|
if (node.type === 'asset') {
|
|
637
639
|
hash.writeString(nullthrows(node.value.outputHash));
|
package/src/Atlaspack.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict-local
|
|
2
|
-
|
|
3
2
|
import type {
|
|
4
3
|
Asset,
|
|
5
4
|
AsyncSubscription,
|
|
@@ -58,7 +57,7 @@ import {
|
|
|
58
57
|
} from './projectPath';
|
|
59
58
|
import {tracer} from '@atlaspack/profiler';
|
|
60
59
|
import {setFeatureFlags, DEFAULT_FEATURE_FLAGS} from '@atlaspack/feature-flags';
|
|
61
|
-
import {AtlaspackV3,
|
|
60
|
+
import {AtlaspackV3, FileSystemV3} from './atlaspack-v3';
|
|
62
61
|
|
|
63
62
|
registerCoreWithSerializer();
|
|
64
63
|
|
|
@@ -144,7 +143,7 @@ export default class Atlaspack {
|
|
|
144
143
|
? undefined
|
|
145
144
|
: [entries],
|
|
146
145
|
env: resolvedOptions.env,
|
|
147
|
-
fs: inputFS &&
|
|
146
|
+
fs: inputFS && new FileSystemV3(inputFS),
|
|
148
147
|
defaultTargetOptions: {
|
|
149
148
|
// $FlowFixMe projectPath is just a string
|
|
150
149
|
distDir: resolvedOptions.defaultTargetOptions.distDir,
|
|
@@ -401,7 +400,7 @@ export default class Atlaspack {
|
|
|
401
400
|
options,
|
|
402
401
|
),
|
|
403
402
|
buildTime: Date.now() - startTime,
|
|
404
|
-
requestBundle: async bundle => {
|
|
403
|
+
requestBundle: async (bundle) => {
|
|
405
404
|
let bundleNode = bundleGraph._graph.getNodeByContentKey(bundle.id);
|
|
406
405
|
invariant(bundleNode?.type === 'bundle', 'Bundle does not exist');
|
|
407
406
|
|
|
@@ -580,7 +579,7 @@ export default class Atlaspack {
|
|
|
580
579
|
let res = await this.#requestTracker.runRequest(request, {
|
|
581
580
|
force: true,
|
|
582
581
|
});
|
|
583
|
-
return res.map(asset =>
|
|
582
|
+
return res.map((asset) =>
|
|
584
583
|
assetFromValue(asset, nullthrows(this.#resolvedOptions)),
|
|
585
584
|
);
|
|
586
585
|
}
|
|
@@ -648,7 +647,7 @@ export function createWorkerFarm(
|
|
|
648
647
|
...options,
|
|
649
648
|
// $FlowFixMe
|
|
650
649
|
workerPath: process.browser
|
|
651
|
-
? '@atlaspack/core/
|
|
650
|
+
? '@atlaspack/core/worker'
|
|
652
651
|
: require.resolve('./worker'),
|
|
653
652
|
});
|
|
654
653
|
}
|