@atlaspack/core 2.12.1-canary.3573 → 2.12.1-canary.3575

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.
@@ -924,11 +924,17 @@ class RequestTracker {
924
924
  if (this.options.shouldDisableCache) {
925
925
  return;
926
926
  }
927
+ let total = 0;
928
+ (0, _ReporterRunner.report)({
929
+ type: 'cache',
930
+ phase: 'start',
931
+ total,
932
+ size: this.graph.nodes.length
933
+ });
927
934
  let serialisedGraph = this.graph.serialize();
928
935
 
929
936
  // Delete an existing request graph cache, to prevent invalid states
930
937
  await this.options.cache.deleteLargeBlob(requestGraphKey);
931
- let total = 0;
932
938
  const serialiseAndSet = async (key, contents) => {
933
939
  if (signal !== null && signal !== void 0 && signal.aborted) {
934
940
  throw new Error('Serialization was aborted');
@@ -947,12 +953,6 @@ class RequestTracker {
947
953
  let queue = new (_utils().PromiseQueue)({
948
954
  maxConcurrent: 32
949
955
  });
950
- (0, _ReporterRunner.report)({
951
- type: 'cache',
952
- phase: 'start',
953
- total,
954
- size: this.graph.nodes.length
955
- });
956
956
 
957
957
  // Preallocating a sparse array is faster than pushing when N is high enough
958
958
  let cacheableNodes = new Array(serialisedGraph.nodes.length);
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createAssetGraphRequestRust = createAssetGraphRequestRust;
7
+ exports.getAssetGraph = getAssetGraph;
7
8
  function _assert() {
8
9
  const data = _interopRequireDefault(require("assert"));
9
10
  _assert = function () {
@@ -65,6 +66,8 @@ function createAssetGraphRequestRust(rustAtlaspack) {
65
66
  input
66
67
  });
67
68
  }
69
+
70
+ // $FlowFixMe
68
71
  function getAssetGraph(serializedGraph) {
69
72
  let graph = new _AssetGraph.default({
70
73
  _contentKeyToNodeId: new Map(),
@@ -96,7 +99,6 @@ function getAssetGraph(serializedGraph) {
96
99
  }
97
100
 
98
101
  // See crates/atlaspack_core/src/types/environment.rs
99
- let cachedAssets = new Map();
100
102
  let changedAssets = new Map();
101
103
  let entry = 0;
102
104
  let envs = new Map();
@@ -109,7 +111,6 @@ function getAssetGraph(serializedGraph) {
109
111
  }
110
112
  return envId;
111
113
  };
112
- const dependencyMap = new Map();
113
114
  for (let node of serializedGraph.nodes) {
114
115
  if (node.type === 'root') {
115
116
  let index = graph.addNodeByContentKey('@@root', {
@@ -128,24 +129,20 @@ function getAssetGraph(serializedGraph) {
128
129
  } else if (node.type === 'asset') {
129
130
  let asset = node.value;
130
131
  let id = asset.id;
131
- let deps = dependencyMap.get(id);
132
- if (!deps) {
133
- deps = new Map();
134
- dependencyMap.set(id, deps);
135
- }
136
132
  asset.committed = true;
137
133
  asset.contentKey = id;
138
- asset.dependencies = deps;
139
134
  asset.env.id = getEnvId(asset.env);
140
135
  asset.mapKey = `map:${asset.id}`;
141
136
 
137
+ // This is populated later when we map the edges between assets and dependencies
138
+ asset.dependencies = new Map();
139
+
142
140
  // We need to add this property for source map handling, as some assets like runtimes
143
141
  // are processed after the Rust transformation and take the v2 code path
144
142
  asset.meta.isV3 = true;
145
143
  if (asset.symbols != null) {
146
144
  asset.symbols = new Map(asset.symbols.map(mapSymbols));
147
145
  }
148
- cachedAssets.set(id, asset.code);
149
146
  changedAssets.set(id, asset);
150
147
  graph.addNodeByContentKey(id, {
151
148
  id,
@@ -158,12 +155,6 @@ function getAssetGraph(serializedGraph) {
158
155
  } else if (node.type === 'dependency') {
159
156
  let id = node.value.id;
160
157
  let dependency = node.value.dependency;
161
- let deps = dependencyMap.get(dependency.sourceAssetId);
162
- if (!deps) {
163
- deps = new Map();
164
- dependencyMap.set(dependency.sourceAssetId, deps);
165
- }
166
- deps.set(id, dependency);
167
158
  dependency.id = id;
168
159
  dependency.env.id = getEnvId(dependency.env);
169
160
  if (dependency.symbols != null) {
@@ -195,8 +186,8 @@ function getAssetGraph(serializedGraph) {
195
186
  let from = serializedGraph.edges[i];
196
187
  let to = serializedGraph.edges[i + 1];
197
188
  let fromNode = graph.getNode(from);
189
+ let toNode = graph.getNode(to);
198
190
  if ((fromNode === null || fromNode === void 0 ? void 0 : fromNode.type) === 'dependency') {
199
- let toNode = graph.getNode(to);
200
191
  (0, _assert().default)((toNode === null || toNode === void 0 ? void 0 : toNode.type) === 'asset');
201
192
 
202
193
  // For backwards compatibility, create asset group node if needed.
@@ -209,13 +200,15 @@ function getAssetGraph(serializedGraph) {
209
200
  let index = graph.addNodeByContentKeyIfNeeded(assetGroupNode.id, assetGroupNode);
210
201
  graph.addEdge(from, index);
211
202
  graph.addEdge(index, to);
203
+ } else if ((fromNode === null || fromNode === void 0 ? void 0 : fromNode.type) === 'asset' && (toNode === null || toNode === void 0 ? void 0 : toNode.type) === 'dependency') {
204
+ fromNode.value.dependencies.set(toNode.value.id, toNode.value);
205
+ graph.addEdge(from, to);
212
206
  } else {
213
207
  graph.addEdge(from, to);
214
208
  }
215
209
  }
216
210
  return {
217
211
  assetGraph: graph,
218
- cachedAssets,
219
212
  changedAssets
220
213
  };
221
214
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaspack/core",
3
- "version": "2.12.1-canary.3573+4e1e11e5e",
3
+ "version": "2.12.1-canary.3575+019613744",
4
4
  "license": "(MIT OR Apache-2.0)",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -20,21 +20,21 @@
20
20
  "check-ts": "tsc --noEmit index.d.ts"
21
21
  },
22
22
  "dependencies": {
23
- "@atlaspack/build-cache": "2.12.1-canary.3573+4e1e11e5e",
24
- "@atlaspack/cache": "2.12.1-canary.3573+4e1e11e5e",
25
- "@atlaspack/diagnostic": "2.12.1-canary.3573+4e1e11e5e",
26
- "@atlaspack/events": "2.12.1-canary.3573+4e1e11e5e",
27
- "@atlaspack/feature-flags": "2.12.1-canary.3573+4e1e11e5e",
28
- "@atlaspack/fs": "2.12.1-canary.3573+4e1e11e5e",
29
- "@atlaspack/graph": "3.2.1-canary.3573+4e1e11e5e",
30
- "@atlaspack/logger": "2.12.1-canary.3573+4e1e11e5e",
31
- "@atlaspack/package-manager": "2.12.1-canary.3573+4e1e11e5e",
32
- "@atlaspack/plugin": "2.12.1-canary.3573+4e1e11e5e",
33
- "@atlaspack/profiler": "2.12.1-canary.3573+4e1e11e5e",
34
- "@atlaspack/rust": "2.12.1-canary.3573+4e1e11e5e",
35
- "@atlaspack/types": "2.12.1-canary.3573+4e1e11e5e",
36
- "@atlaspack/utils": "2.12.1-canary.3573+4e1e11e5e",
37
- "@atlaspack/workers": "2.12.1-canary.3573+4e1e11e5e",
23
+ "@atlaspack/build-cache": "2.12.1-canary.3575+019613744",
24
+ "@atlaspack/cache": "2.12.1-canary.3575+019613744",
25
+ "@atlaspack/diagnostic": "2.12.1-canary.3575+019613744",
26
+ "@atlaspack/events": "2.12.1-canary.3575+019613744",
27
+ "@atlaspack/feature-flags": "2.12.1-canary.3575+019613744",
28
+ "@atlaspack/fs": "2.12.1-canary.3575+019613744",
29
+ "@atlaspack/graph": "3.2.1-canary.3575+019613744",
30
+ "@atlaspack/logger": "2.12.1-canary.3575+019613744",
31
+ "@atlaspack/package-manager": "2.12.1-canary.3575+019613744",
32
+ "@atlaspack/plugin": "2.12.1-canary.3575+019613744",
33
+ "@atlaspack/profiler": "2.12.1-canary.3575+019613744",
34
+ "@atlaspack/rust": "2.12.1-canary.3575+019613744",
35
+ "@atlaspack/types": "2.12.1-canary.3575+019613744",
36
+ "@atlaspack/utils": "2.12.1-canary.3575+019613744",
37
+ "@atlaspack/workers": "2.12.1-canary.3575+019613744",
38
38
  "@mischnic/json-sourcemap": "^0.1.0",
39
39
  "@parcel/source-map": "^2.1.1",
40
40
  "base-x": "^3.0.8",
@@ -66,5 +66,5 @@
66
66
  "browser": {
67
67
  "./src/serializerCore.js": "./src/serializerCore.browser.js"
68
68
  },
69
- "gitHead": "4e1e11e5ea800f076e130249ff1f05ff7327c823"
69
+ "gitHead": "019613744ac9f1cf3b3298542f90573b74dc32f9"
70
70
  }
@@ -1457,12 +1457,19 @@ export default class RequestTracker {
1457
1457
  return;
1458
1458
  }
1459
1459
 
1460
+ let total = 0;
1461
+ report({
1462
+ type: 'cache',
1463
+ phase: 'start',
1464
+ total,
1465
+ size: this.graph.nodes.length,
1466
+ });
1467
+
1460
1468
  let serialisedGraph = this.graph.serialize();
1461
1469
 
1462
1470
  // Delete an existing request graph cache, to prevent invalid states
1463
1471
  await this.options.cache.deleteLargeBlob(requestGraphKey);
1464
1472
 
1465
- let total = 0;
1466
1473
  const serialiseAndSet = async (
1467
1474
  key: string,
1468
1475
  // $FlowFixMe serialise input is any type
@@ -1496,13 +1503,6 @@ export default class RequestTracker {
1496
1503
  maxConcurrent: 32,
1497
1504
  });
1498
1505
 
1499
- report({
1500
- type: 'cache',
1501
- phase: 'start',
1502
- total,
1503
- size: this.graph.nodes.length,
1504
- });
1505
-
1506
1506
  // Preallocating a sparse array is faster than pushing when N is high enough
1507
1507
  let cacheableNodes = new Array(serialisedGraph.nodes.length);
1508
1508
  for (let i = 0; i < serialisedGraph.nodes.length; i += 1) {
@@ -9,7 +9,7 @@ import AssetGraph, {nodeFromAssetGroup} from '../AssetGraph';
9
9
  import type {AtlaspackV3} from '../atlaspack-v3';
10
10
  import {requestTypes, type StaticRunOpts} from '../RequestTracker';
11
11
  import {propagateSymbols} from '../SymbolPropagation';
12
- import type {Environment} from '../types';
12
+ import type {Environment, Asset} from '../types';
13
13
 
14
14
  import type {
15
15
  AssetGraphRequestInput,
@@ -78,7 +78,11 @@ export function createAssetGraphRequestRust(
78
78
  });
79
79
  }
80
80
 
81
- function getAssetGraph(serializedGraph) {
81
+ // $FlowFixMe
82
+ export function getAssetGraph(serializedGraph: any): {
83
+ assetGraph: AssetGraph,
84
+ changedAssets: Map<string, Asset>,
85
+ } {
82
86
  let graph = new AssetGraph({
83
87
  _contentKeyToNodeId: new Map(),
84
88
  _nodeIdToContentKey: new Map(),
@@ -111,7 +115,6 @@ function getAssetGraph(serializedGraph) {
111
115
  }
112
116
 
113
117
  // See crates/atlaspack_core/src/types/environment.rs
114
- let cachedAssets = new Map();
115
118
  let changedAssets = new Map();
116
119
  let entry = 0;
117
120
 
@@ -140,8 +143,6 @@ function getAssetGraph(serializedGraph) {
140
143
  return envId;
141
144
  };
142
145
 
143
- const dependencyMap = new Map();
144
-
145
146
  for (let node of serializedGraph.nodes) {
146
147
  if (node.type === 'root') {
147
148
  let index = graph.addNodeByContentKey('@@root', {
@@ -163,18 +164,14 @@ function getAssetGraph(serializedGraph) {
163
164
  let asset = node.value;
164
165
  let id = asset.id;
165
166
 
166
- let deps = dependencyMap.get(id);
167
- if (!deps) {
168
- deps = new Map();
169
- dependencyMap.set(id, deps);
170
- }
171
-
172
167
  asset.committed = true;
173
168
  asset.contentKey = id;
174
- asset.dependencies = deps;
175
169
  asset.env.id = getEnvId(asset.env);
176
170
  asset.mapKey = `map:${asset.id}`;
177
171
 
172
+ // This is populated later when we map the edges between assets and dependencies
173
+ asset.dependencies = new Map();
174
+
178
175
  // We need to add this property for source map handling, as some assets like runtimes
179
176
  // are processed after the Rust transformation and take the v2 code path
180
177
  asset.meta.isV3 = true;
@@ -183,7 +180,6 @@ function getAssetGraph(serializedGraph) {
183
180
  asset.symbols = new Map(asset.symbols.map(mapSymbols));
184
181
  }
185
182
 
186
- cachedAssets.set(id, asset.code);
187
183
  changedAssets.set(id, asset);
188
184
 
189
185
  graph.addNodeByContentKey(id, {
@@ -198,13 +194,6 @@ function getAssetGraph(serializedGraph) {
198
194
  let id = node.value.id;
199
195
  let dependency = node.value.dependency;
200
196
 
201
- let deps = dependencyMap.get(dependency.sourceAssetId);
202
- if (!deps) {
203
- deps = new Map();
204
- dependencyMap.set(dependency.sourceAssetId, deps);
205
- }
206
- deps.set(id, dependency);
207
-
208
197
  dependency.id = id;
209
198
  dependency.env.id = getEnvId(dependency.env);
210
199
 
@@ -239,8 +228,9 @@ function getAssetGraph(serializedGraph) {
239
228
  let from = serializedGraph.edges[i];
240
229
  let to = serializedGraph.edges[i + 1];
241
230
  let fromNode = graph.getNode(from);
231
+ let toNode = graph.getNode(to);
232
+
242
233
  if (fromNode?.type === 'dependency') {
243
- let toNode = graph.getNode(to);
244
234
  invariant(toNode?.type === 'asset');
245
235
 
246
236
  // For backwards compatibility, create asset group node if needed.
@@ -258,6 +248,9 @@ function getAssetGraph(serializedGraph) {
258
248
 
259
249
  graph.addEdge(from, index);
260
250
  graph.addEdge(index, to);
251
+ } else if (fromNode?.type === 'asset' && toNode?.type === 'dependency') {
252
+ fromNode.value.dependencies.set(toNode.value.id, toNode.value);
253
+ graph.addEdge(from, to);
261
254
  } else {
262
255
  graph.addEdge(from, to);
263
256
  }
@@ -265,7 +258,6 @@ function getAssetGraph(serializedGraph) {
265
258
 
266
259
  return {
267
260
  assetGraph: graph,
268
- cachedAssets,
269
261
  changedAssets,
270
262
  };
271
263
  }
@@ -0,0 +1,410 @@
1
+ import assert from 'assert';
2
+ import {getAssetGraph} from '../../src/requests/AssetGraphRequestRust';
3
+
4
+ describe('AssetGraphRequestRust -> getAssetGraph', function () {
5
+ it('should create a valid AssetGraph', () => {
6
+ const {assetGraph} = getAssetGraph(getSerializedGraph());
7
+
8
+ const indexAsset = assetGraph.getNodeByContentKey('79c128d4f549c408');
9
+ const libraryDep = assetGraph.getNodeByContentKey('cfe74f65a41af1a7');
10
+
11
+ assert(indexAsset?.type === 'asset');
12
+ assert(libraryDep?.type === 'dependency');
13
+
14
+ assert.equal(indexAsset.value.filePath, '/index.ts');
15
+ assert.equal(libraryDep.value.specifier, './library');
16
+ assert.deepEqual(
17
+ indexAsset.value.dependencies.get('cfe74f65a41af1a7')?.specifier,
18
+ './library',
19
+ );
20
+
21
+ const indexAssetNodeId =
22
+ assetGraph.getNodeIdByContentKey('79c128d4f549c408');
23
+ const libraryDepNodeId =
24
+ assetGraph.getNodeIdByContentKey('cfe74f65a41af1a7');
25
+ assert.deepEqual(assetGraph.getNodeIdsConnectedFrom(indexAssetNodeId), [
26
+ libraryDepNodeId,
27
+ ]);
28
+ });
29
+ });
30
+
31
+ function getSerializedGraph() {
32
+ return {
33
+ edges: [0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6],
34
+ nodes: [
35
+ {
36
+ type: 'root',
37
+ },
38
+ {
39
+ type: 'dependency',
40
+ value: {
41
+ id: 'b01a088f112fa82f',
42
+ dependency: {
43
+ bundleBehavior: null,
44
+ env: {
45
+ context: 'browser',
46
+ engines: {
47
+ browsers: [
48
+ 'last 1 Chrome version',
49
+ 'last 1 Safari version',
50
+ 'last 1 Firefox version',
51
+ 'last 1 Edge version',
52
+ ],
53
+ },
54
+ includeNodeModules: true,
55
+ isLibrary: false,
56
+ loc: null,
57
+ outputFormat: 'global',
58
+ shouldScopeHoist: true,
59
+ shouldOptimize: false,
60
+ sourceMap: {},
61
+ sourceType: 'module',
62
+ },
63
+ loc: null,
64
+ meta: {},
65
+ pipeline: null,
66
+ priority: 0,
67
+ range: null,
68
+ resolveFrom: null,
69
+ sourceAssetId: null,
70
+ sourcePath: null,
71
+ specifier: '/index.html',
72
+ specifierType: 2,
73
+ symbols: null,
74
+ target: {
75
+ distDir: '/dist',
76
+ distEntry: null,
77
+ env: {
78
+ context: 'browser',
79
+ engines: {
80
+ browsers: [
81
+ 'last 1 Chrome version',
82
+ 'last 1 Safari version',
83
+ 'last 1 Firefox version',
84
+ 'last 1 Edge version',
85
+ ],
86
+ },
87
+ includeNodeModules: true,
88
+ isLibrary: false,
89
+ loc: null,
90
+ outputFormat: 'global',
91
+ shouldScopeHoist: true,
92
+ shouldOptimize: false,
93
+ sourceMap: {},
94
+ sourceType: 'module',
95
+ },
96
+ loc: null,
97
+ name: 'default',
98
+ publicUrl: '/',
99
+ },
100
+ isEntry: true,
101
+ isOptional: false,
102
+ needsStableName: true,
103
+ shouldWrap: false,
104
+ isEsm: false,
105
+ placeholder: null,
106
+ },
107
+ },
108
+ has_deferred: false,
109
+ },
110
+ {
111
+ type: 'asset',
112
+ value: {
113
+ id: 'e2056518260d7dc7',
114
+ bundleBehavior: 1,
115
+ env: {
116
+ context: 'browser',
117
+ engines: {
118
+ browsers: [
119
+ 'last 1 Chrome version',
120
+ 'last 1 Safari version',
121
+ 'last 1 Firefox version',
122
+ 'last 1 Edge version',
123
+ ],
124
+ },
125
+ includeNodeModules: true,
126
+ isLibrary: false,
127
+ loc: null,
128
+ outputFormat: 'global',
129
+ shouldScopeHoist: true,
130
+ shouldOptimize: false,
131
+ sourceMap: {},
132
+ sourceType: 'module',
133
+ },
134
+ filePath: '/index.html',
135
+ type: 'html',
136
+ meta: {},
137
+ pipeline: null,
138
+ query: null,
139
+ stats: {
140
+ size: 93,
141
+ time: 2,
142
+ },
143
+ symbols: null,
144
+ sideEffects: true,
145
+ isBundleSplittable: true,
146
+ isSource: true,
147
+ hasCjsExports: false,
148
+ staticExports: false,
149
+ shouldWrap: false,
150
+ hasNodeReplacements: false,
151
+ isConstantModule: false,
152
+ conditions: [],
153
+ configPath: null,
154
+ configKeyPath: null,
155
+ },
156
+ },
157
+ {
158
+ type: 'dependency',
159
+ value: {
160
+ id: 'aece0f57a78d1ef8',
161
+ dependency: {
162
+ bundleBehavior: null,
163
+ env: {
164
+ context: 'browser',
165
+ engines: {
166
+ browsers: [
167
+ 'last 1 Chrome version',
168
+ 'last 1 Safari version',
169
+ 'last 1 Firefox version',
170
+ 'last 1 Edge version',
171
+ ],
172
+ },
173
+ includeNodeModules: true,
174
+ isLibrary: false,
175
+ loc: null,
176
+ outputFormat: 'esmodule',
177
+ shouldScopeHoist: true,
178
+ shouldOptimize: false,
179
+ sourceMap: {},
180
+ sourceType: 'module',
181
+ },
182
+ loc: null,
183
+ meta: {},
184
+ pipeline: null,
185
+ priority: 1,
186
+ range: null,
187
+ resolveFrom: null,
188
+ sourceAssetId: 'e2056518260d7dc7',
189
+ sourcePath: '/index.html',
190
+ specifier: './index.ts',
191
+ specifierType: 2,
192
+ sourceAssetType: 'html',
193
+ symbols: null,
194
+ target: null,
195
+ isEntry: false,
196
+ isOptional: false,
197
+ needsStableName: false,
198
+ shouldWrap: false,
199
+ isEsm: true,
200
+ placeholder: null,
201
+ },
202
+ },
203
+ has_deferred: false,
204
+ },
205
+ {
206
+ type: 'asset',
207
+ value: {
208
+ id: '79c128d4f549c408',
209
+ bundleBehavior: null,
210
+ env: {
211
+ context: 'browser',
212
+ engines: {
213
+ browsers: [
214
+ 'last 1 Chrome version',
215
+ 'last 1 Safari version',
216
+ 'last 1 Firefox version',
217
+ 'last 1 Edge version',
218
+ ],
219
+ },
220
+ includeNodeModules: true,
221
+ isLibrary: false,
222
+ loc: null,
223
+ outputFormat: 'esmodule',
224
+ shouldScopeHoist: true,
225
+ shouldOptimize: false,
226
+ sourceMap: {},
227
+ sourceType: 'module',
228
+ },
229
+ filePath: '/index.ts',
230
+ type: 'js',
231
+ meta: {
232
+ hasCJSExports: false,
233
+ staticExports: true,
234
+ shouldWrap: false,
235
+ id: 'cc346b5b74d3d478',
236
+ },
237
+ pipeline: null,
238
+ query: null,
239
+ stats: {
240
+ size: 121,
241
+ time: 39,
242
+ },
243
+ symbols: [],
244
+ sideEffects: true,
245
+ isBundleSplittable: true,
246
+ isSource: true,
247
+ hasCjsExports: false,
248
+ staticExports: true,
249
+ shouldWrap: false,
250
+ hasNodeReplacements: false,
251
+ isConstantModule: false,
252
+ conditions: [],
253
+ configPath: null,
254
+ configKeyPath: null,
255
+ },
256
+ },
257
+ {
258
+ type: 'dependency',
259
+ value: {
260
+ id: 'cfe74f65a41af1a7',
261
+ dependency: {
262
+ bundleBehavior: null,
263
+ env: {
264
+ context: 'browser',
265
+ engines: {
266
+ browsers: [
267
+ 'last 1 Chrome version',
268
+ 'last 1 Safari version',
269
+ 'last 1 Firefox version',
270
+ 'last 1 Edge version',
271
+ ],
272
+ },
273
+ includeNodeModules: true,
274
+ isLibrary: false,
275
+ loc: null,
276
+ outputFormat: 'esmodule',
277
+ shouldScopeHoist: true,
278
+ shouldOptimize: false,
279
+ sourceMap: {},
280
+ sourceType: 'module',
281
+ },
282
+ loc: {
283
+ filePath: '/index.ts',
284
+ start: {
285
+ line: 1,
286
+ column: 21,
287
+ },
288
+ end: {
289
+ line: 1,
290
+ column: 32,
291
+ },
292
+ },
293
+ meta: {
294
+ kind: 'Import',
295
+ },
296
+ pipeline: null,
297
+ priority: 0,
298
+ range: null,
299
+ resolveFrom: null,
300
+ sourceAssetId: 'cc346b5b74d3d478',
301
+ sourcePath: '/index.ts',
302
+ specifier: './library',
303
+ specifierType: 0,
304
+ sourceAssetType: 'ts',
305
+ symbols: [
306
+ {
307
+ local:
308
+ '$cc346b5b74d3d478$import$b83d1a328c413a1a$2e2bcd8739ae039',
309
+ exported: 'default',
310
+ loc: {
311
+ filePath: '/index.ts',
312
+ start: {
313
+ line: 1,
314
+ column: 8,
315
+ },
316
+ end: {
317
+ line: 1,
318
+ column: 15,
319
+ },
320
+ },
321
+ isWeak: false,
322
+ isEsmExport: false,
323
+ selfReferenced: false,
324
+ },
325
+ ],
326
+ target: null,
327
+ isEntry: false,
328
+ isOptional: false,
329
+ needsStableName: false,
330
+ shouldWrap: false,
331
+ isEsm: true,
332
+ placeholder: null,
333
+ },
334
+ },
335
+ has_deferred: false,
336
+ },
337
+ {
338
+ type: 'asset',
339
+ value: {
340
+ id: '13fc7969eb974fe3',
341
+ bundleBehavior: null,
342
+ env: {
343
+ context: 'browser',
344
+ engines: {
345
+ browsers: [
346
+ 'last 1 Chrome version',
347
+ 'last 1 Safari version',
348
+ 'last 1 Firefox version',
349
+ 'last 1 Edge version',
350
+ ],
351
+ },
352
+ includeNodeModules: true,
353
+ isLibrary: false,
354
+ loc: null,
355
+ outputFormat: 'esmodule',
356
+ shouldScopeHoist: true,
357
+ shouldOptimize: false,
358
+ sourceMap: {},
359
+ sourceType: 'module',
360
+ },
361
+ filePath: '/library.ts',
362
+ type: 'js',
363
+ meta: {
364
+ hasCJSExports: false,
365
+ staticExports: true,
366
+ shouldWrap: false,
367
+ id: '579fff58dabc69a5',
368
+ },
369
+ pipeline: null,
370
+ query: null,
371
+ stats: {
372
+ size: 58,
373
+ time: 1,
374
+ },
375
+ symbols: [
376
+ {
377
+ local: '$579fff58dabc69a5$export$2e2bcd8739ae039',
378
+ exported: 'default',
379
+ loc: {
380
+ filePath: '/library.ts',
381
+ start: {
382
+ line: 1,
383
+ column: 1,
384
+ },
385
+ end: {
386
+ line: 1,
387
+ column: 26,
388
+ },
389
+ },
390
+ isWeak: false,
391
+ isEsmExport: true,
392
+ selfReferenced: false,
393
+ },
394
+ ],
395
+ sideEffects: true,
396
+ isBundleSplittable: true,
397
+ isSource: true,
398
+ hasCjsExports: false,
399
+ staticExports: true,
400
+ shouldWrap: false,
401
+ hasNodeReplacements: false,
402
+ isConstantModule: false,
403
+ conditions: [],
404
+ configPath: null,
405
+ configKeyPath: null,
406
+ },
407
+ },
408
+ ],
409
+ };
410
+ }