@atlaspack/core 2.34.0 → 2.35.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 (60) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/AssetGraph.js +4 -72
  3. package/dist/BundleGraph.js +34 -0
  4. package/dist/PackagerRunner.js +8 -53
  5. package/dist/RequestTracker.js +17 -80
  6. package/dist/TargetDescriptor.schema.js +3 -0
  7. package/dist/UncommittedAsset.js +0 -5
  8. package/dist/atlaspack-v3/AtlaspackV3.js +6 -2
  9. package/dist/requests/AssetGraphRequest.js +6 -15
  10. package/dist/requests/AssetGraphRequestRust.js +51 -7
  11. package/dist/requests/AtlaspackBuildRequest.js +8 -2
  12. package/dist/requests/BundleGraphRequest.js +8 -15
  13. package/dist/requests/BundleGraphRequestRust.js +1 -2
  14. package/dist/requests/PackageRequest.js +1 -1
  15. package/dist/requests/TargetRequest.js +5 -0
  16. package/dist/requests/WriteBundleRequest.js +3 -9
  17. package/dist/resolveOptions.js +2 -4
  18. package/lib/AssetGraph.js +3 -62
  19. package/lib/BundleGraph.js +38 -0
  20. package/lib/PackagerRunner.js +8 -42
  21. package/lib/RequestTracker.js +15 -69
  22. package/lib/TargetDescriptor.schema.js +3 -0
  23. package/lib/UncommittedAsset.js +0 -11
  24. package/lib/atlaspack-v3/AtlaspackV3.js +6 -2
  25. package/lib/requests/AssetGraphRequest.js +4 -18
  26. package/lib/requests/AssetGraphRequestRust.js +51 -7
  27. package/lib/requests/AtlaspackBuildRequest.js +8 -2
  28. package/lib/requests/BundleGraphRequest.js +10 -15
  29. package/lib/requests/BundleGraphRequestRust.js +2 -3
  30. package/lib/requests/PackageRequest.js +3 -1
  31. package/lib/requests/TargetRequest.js +5 -0
  32. package/lib/requests/WriteBundleRequest.js +3 -3
  33. package/lib/resolveOptions.js +2 -4
  34. package/lib/types/AssetGraph.d.ts +2 -27
  35. package/lib/types/BundleGraph.d.ts +5 -0
  36. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +3 -2
  37. package/lib/types/requests/BundleGraphRequest.d.ts +1 -1
  38. package/lib/types/types.d.ts +1 -0
  39. package/package.json +15 -15
  40. package/src/AssetGraph.ts +4 -72
  41. package/src/BundleGraph.ts +39 -0
  42. package/src/PackagerRunner.ts +9 -55
  43. package/src/RequestTracker.ts +24 -110
  44. package/src/TargetDescriptor.schema.ts +3 -0
  45. package/src/UncommittedAsset.ts +1 -11
  46. package/src/atlaspack-v3/AtlaspackV3.ts +19 -3
  47. package/src/requests/AssetGraphRequest.ts +8 -20
  48. package/src/requests/AssetGraphRequestRust.ts +59 -7
  49. package/src/requests/AtlaspackBuildRequest.ts +16 -8
  50. package/src/requests/BundleGraphRequest.ts +11 -30
  51. package/src/requests/BundleGraphRequestRust.ts +1 -2
  52. package/src/requests/PackageRequest.ts +1 -1
  53. package/src/requests/TargetRequest.ts +5 -0
  54. package/src/requests/WriteBundleRequest.ts +3 -9
  55. package/src/resolveOptions.ts +2 -4
  56. package/src/types.ts +1 -0
  57. package/test/AssetGraph.test.ts +0 -32
  58. package/test/RequestTracker.test.ts +0 -165
  59. package/test/TargetRequest.test.ts +25 -0
  60. package/tsconfig.tsbuildinfo +1 -1
@@ -538,171 +538,6 @@ describe('RequestTracker', () => {
538
538
  });
539
539
  });
540
540
  });
541
-
542
- describe('incremental bundling', () => {
543
- async function runIncrementalBundlingScenario(
544
- incrementalBundlingVersioning: boolean,
545
- ) {
546
- const fs = new OverlayFS(new MemoryFS(farm), new NodeFS());
547
- const appRoot = __dirname;
548
- await fs.mkdirp(path.join(appRoot, 'app'));
549
- await fs.writeFile(path.join(appRoot, 'app', 'package.json'), '{}');
550
- await fs.writeFile(path.join(appRoot, 'app', '.git'), '');
551
- await fs.writeFile(
552
- path.join(appRoot, 'app', '.parcelrc'),
553
- '{"extends":"@atlaspack/config-default"}',
554
- );
555
- await fs.writeFile(
556
- path.join(appRoot, 'app', 'target.js'),
557
- 'console.log("hello")',
558
- );
559
-
560
- const atlaspack = new Atlaspack({
561
- featureFlags: {
562
- incrementalBundlingVersioning,
563
- },
564
- workerFarm: farm,
565
- entries: [path.join(appRoot, 'app', 'target.js')],
566
- cache: new LMDBLiteCache(DEFAULT_OPTIONS.cacheDir),
567
- inputFS: fs,
568
- outputFS: fs,
569
- });
570
- await atlaspack._init();
571
- const options = atlaspack._getResolvedAtlaspackOptions();
572
- const tracker = new RequestTracker({farm, options});
573
- let {ref: optionsRef} = await farm.createSharedReference(options, false);
574
-
575
- const getAssetRequests = () =>
576
- runRequestSpy
577
- .getCalls()
578
- .map((call: any) => call.args[0])
579
- .filter(
580
- (request: any) => request.type === requestTypes.asset_request,
581
- );
582
-
583
- // Running the build once builds one asset
584
- const runRequestSpy = sinon.spy(tracker, 'runRequest');
585
- await tracker.runRequest(
586
- createAtlaspackBuildRequest({
587
- optionsRef,
588
- requestedAssetIds: new Set(),
589
- }),
590
- );
591
- assert.equal(getAssetRequests().length, 1);
592
- runRequestSpy.resetHistory();
593
-
594
- // Running the build again with no invalidations does not build any assets
595
- await tracker.runRequest(
596
- createAtlaspackBuildRequest({
597
- optionsRef,
598
- requestedAssetIds: new Set(),
599
- }),
600
- );
601
- assert.equal(getAssetRequests().length, 0);
602
- runRequestSpy.resetHistory();
603
-
604
- // Running the build again with a file change builds the asset again
605
- tracker.respondToFSEvents(
606
- [
607
- {
608
- type: 'update',
609
- path: path.join(appRoot, 'app', 'target.js'),
610
- },
611
- ],
612
- Number.MAX_VALUE,
613
- );
614
- await tracker.runRequest(
615
- createAtlaspackBuildRequest({
616
- optionsRef,
617
- requestedAssetIds: new Set(),
618
- }),
619
- );
620
- assert.equal(getAssetRequests().length, 1);
621
- runRequestSpy.resetHistory();
622
-
623
- // Run the asset graph request, but not bundling
624
- await fs.writeFile(
625
- path.join(appRoot, 'app', 'target.js'),
626
- 'require("./dep.js")',
627
- );
628
- await fs.writeFile(
629
- path.join(appRoot, 'app', 'dep.js'),
630
- 'console.log("dep")',
631
- );
632
- tracker.respondToFSEvents(
633
- [
634
- {
635
- type: 'update',
636
- path: path.join(appRoot, 'app', 'target.js'),
637
- },
638
- ],
639
- Number.MAX_VALUE,
640
- );
641
- const assetGraphRequestResult = await tracker.runRequest(
642
- createAssetGraphRequest({
643
- name: 'Main',
644
- entries: [
645
- toProjectPath(
646
- path.join(appRoot, 'app'),
647
- path.join(appRoot, 'app', 'target.js'),
648
- ),
649
- ],
650
- optionsRef,
651
- shouldBuildLazily: false,
652
- lazyIncludes: [],
653
- lazyExcludes: [],
654
- requestedAssetIds: new Set(),
655
- }),
656
- );
657
- assert.equal(getAssetRequests().length, 2);
658
- assert.equal(
659
- assetGraphRequestResult.assetGraph.safeToIncrementallyBundle,
660
- false,
661
- );
662
-
663
- // Now make another change
664
- tracker.respondToFSEvents(
665
- [
666
- {
667
- type: 'update',
668
- path: path.join(appRoot, 'app', 'target.js'),
669
- },
670
- {
671
- type: 'update',
672
- path: path.join(appRoot, 'app', 'dep.js'),
673
- },
674
- ],
675
- Number.MAX_VALUE,
676
- );
677
- // And run the build again
678
-
679
- if (!incrementalBundlingVersioning) {
680
- await assert.rejects(async () => {
681
- await tracker.runRequest(
682
- createAtlaspackBuildRequest({
683
- optionsRef,
684
- requestedAssetIds: new Set(),
685
- }),
686
- );
687
- });
688
- } else {
689
- await tracker.runRequest(
690
- createAtlaspackBuildRequest({
691
- optionsRef,
692
- requestedAssetIds: new Set(),
693
- }),
694
- );
695
- }
696
- }
697
-
698
- it('throws a content key not found exception without bundling versioning', async () => {
699
- await runIncrementalBundlingScenario(false);
700
- });
701
-
702
- it('works fine with bundling versioning', async () => {
703
- await runIncrementalBundlingScenario(true);
704
- });
705
- });
706
541
  });
707
542
 
708
543
  describe('cleanUpOrphans', () => {
@@ -122,6 +122,7 @@ describe('TargetResolver', () => {
122
122
  {
123
123
  name: 'customA',
124
124
  publicUrl: '/',
125
+ inlineRequires: false,
125
126
  distDir: normalizeSeparators(path.resolve('customA')),
126
127
  env: createEnvironment({
127
128
  context: 'browser',
@@ -142,6 +143,7 @@ describe('TargetResolver', () => {
142
143
  {
143
144
  name: 'customB',
144
145
  publicUrl: '/',
146
+ inlineRequires: false,
145
147
  distEntry: 'b.js',
146
148
  distDir: normalizeSeparators(path.resolve('customB')),
147
149
  env: createEnvironment({
@@ -175,6 +177,7 @@ describe('TargetResolver', () => {
175
177
  distDir: 'fixtures/common-targets/dist/main',
176
178
  distEntry: 'index.js',
177
179
  publicUrl: '/',
180
+ inlineRequires: false,
178
181
  env: createEnvironment({
179
182
  context: 'node',
180
183
  engines: {
@@ -209,6 +212,7 @@ describe('TargetResolver', () => {
209
212
  distDir: 'fixtures/common-targets/dist/module',
210
213
  distEntry: 'index.js',
211
214
  publicUrl: '/',
215
+ inlineRequires: false,
212
216
  env: createEnvironment({
213
217
  context: 'browser',
214
218
  engines: {
@@ -245,6 +249,7 @@ describe('TargetResolver', () => {
245
249
  distDir: 'fixtures/common-targets/dist/browser',
246
250
  distEntry: 'index.js',
247
251
  publicUrl: '/assets',
252
+ inlineRequires: false,
248
253
  env: createEnvironment({
249
254
  context: 'browser',
250
255
  engines: {
@@ -291,6 +296,7 @@ describe('TargetResolver', () => {
291
296
  ),
292
297
  distEntry: 'index.js',
293
298
  publicUrl: '/',
299
+ inlineRequires: false,
294
300
  env: createEnvironment({
295
301
  context: 'node',
296
302
  engines: {
@@ -334,6 +340,7 @@ describe('TargetResolver', () => {
334
340
  distDir: 'fixtures/custom-targets/dist/main',
335
341
  distEntry: 'index.js',
336
342
  publicUrl: '/',
343
+ inlineRequires: false,
337
344
  env: createEnvironment({
338
345
  context: 'node',
339
346
  engines: {
@@ -368,6 +375,7 @@ describe('TargetResolver', () => {
368
375
  distDir: 'fixtures/custom-targets/dist/browserModern',
369
376
  distEntry: 'index.js',
370
377
  publicUrl: '/',
378
+ inlineRequires: false,
371
379
  env: createEnvironment({
372
380
  context: 'browser',
373
381
  engines: {
@@ -405,6 +413,7 @@ describe('TargetResolver', () => {
405
413
  distDir: 'fixtures/custom-targets/dist/browserLegacy',
406
414
  distEntry: 'index.js',
407
415
  publicUrl: '/',
416
+ inlineRequires: false,
408
417
  env: createEnvironment({
409
418
  context: 'browser',
410
419
  engines: {
@@ -459,6 +468,7 @@ describe('TargetResolver', () => {
459
468
  distDir: 'fixtures/custom-targets/dist/main',
460
469
  distEntry: 'index.js',
461
470
  publicUrl: '/',
471
+ inlineRequires: false,
462
472
  env: createEnvironment({
463
473
  context: 'node',
464
474
  engines: {
@@ -493,6 +503,7 @@ describe('TargetResolver', () => {
493
503
  distDir: 'fixtures/custom-targets/dist/browserModern',
494
504
  distEntry: 'index.js',
495
505
  publicUrl: '/',
506
+ inlineRequires: false,
496
507
  env: createEnvironment({
497
508
  context: 'browser',
498
509
  engines: {
@@ -530,6 +541,7 @@ describe('TargetResolver', () => {
530
541
  distDir: 'fixtures/custom-targets/dist/browserLegacy',
531
542
  distEntry: 'index.js',
532
543
  publicUrl: '/',
544
+ inlineRequires: false,
533
545
  env: createEnvironment({
534
546
  context: 'browser',
535
547
  engines: {
@@ -576,6 +588,7 @@ describe('TargetResolver', () => {
576
588
  distDir: 'fixtures/custom-targets-distdir/www',
577
589
  distEntry: undefined,
578
590
  publicUrl: 'www',
591
+ inlineRequires: false,
579
592
  env: createEnvironment({
580
593
  context: 'browser',
581
594
  engines: {
@@ -631,6 +644,7 @@ describe('TargetResolver', () => {
631
644
  name: 'customB',
632
645
  distDir: normalizeSeparators(path.resolve('customB')),
633
646
  publicUrl: '/',
647
+ inlineRequires: false,
634
648
  env: createEnvironment({
635
649
  context: 'browser',
636
650
  engines: {
@@ -673,6 +687,7 @@ describe('TargetResolver', () => {
673
687
  name: 'customA',
674
688
  distDir: normalizeSeparators(path.resolve('customA')),
675
689
  publicUrl: '/',
690
+ inlineRequires: false,
676
691
  env: createEnvironment({
677
692
  context: 'browser',
678
693
  engines: {
@@ -702,6 +717,7 @@ describe('TargetResolver', () => {
702
717
  distDir: 'fixtures/context/dist/main',
703
718
  distEntry: 'index.js',
704
719
  publicUrl: '/',
720
+ inlineRequires: false,
705
721
  env: createEnvironment({
706
722
  context: 'node',
707
723
  engines: {
@@ -1073,6 +1089,7 @@ describe('TargetResolver', () => {
1073
1089
  distDir: relative(path.join(fixture, 'dist')),
1074
1090
  distEntry: 'index.mjs',
1075
1091
  publicUrl: '/',
1092
+ inlineRequires: false,
1076
1093
  env: createEnvironment({
1077
1094
  context: 'browser',
1078
1095
  engines: {
@@ -1118,6 +1135,7 @@ describe('TargetResolver', () => {
1118
1135
  distDir: relative(path.join(fixture, 'dist')),
1119
1136
  distEntry: 'index.js',
1120
1137
  publicUrl: '/',
1138
+ inlineRequires: false,
1121
1139
  env: createEnvironment({
1122
1140
  context: 'browser',
1123
1141
  engines: {
@@ -1167,6 +1185,7 @@ describe('TargetResolver', () => {
1167
1185
  distDir: 'fixtures/common-targets/dist/main',
1168
1186
  distEntry: 'index.js',
1169
1187
  publicUrl: '/',
1188
+ inlineRequires: false,
1170
1189
  env: createEnvironment({
1171
1190
  context: 'node',
1172
1191
  engines: {
@@ -1201,6 +1220,7 @@ describe('TargetResolver', () => {
1201
1220
  distDir: 'fixtures/common-targets/dist/browser',
1202
1221
  distEntry: 'index.js',
1203
1222
  publicUrl: '/assets',
1223
+ inlineRequires: false,
1204
1224
  env: createEnvironment({
1205
1225
  context: 'browser',
1206
1226
  engines: {
@@ -1249,6 +1269,7 @@ describe('TargetResolver', () => {
1249
1269
  name: 'default',
1250
1270
  distDir: serveDistDir,
1251
1271
  publicUrl: '/',
1272
+ inlineRequires: false,
1252
1273
  env: createEnvironment({
1253
1274
  context: 'browser',
1254
1275
  engines: {
@@ -1286,6 +1307,7 @@ describe('TargetResolver', () => {
1286
1307
  path.join(DEFAULT_DISTPATH_FIXTURE_PATHS.none, 'dist'),
1287
1308
  ),
1288
1309
  publicUrl: '/',
1310
+ inlineRequires: false,
1289
1311
  env: createEnvironment({
1290
1312
  context: 'browser',
1291
1313
  engines: {
@@ -1319,6 +1341,7 @@ describe('TargetResolver', () => {
1319
1341
  ),
1320
1342
  distEntry: undefined,
1321
1343
  publicUrl: '/',
1344
+ inlineRequires: false,
1322
1345
  env: createEnvironment({
1323
1346
  context: 'browser',
1324
1347
  engines: {
@@ -1369,6 +1392,7 @@ describe('TargetResolver', () => {
1369
1392
  ),
1370
1393
  distEntry: undefined,
1371
1394
  publicUrl: '/',
1395
+ inlineRequires: false,
1372
1396
  env: createEnvironment({
1373
1397
  context: 'browser',
1374
1398
  engines: {
@@ -1409,6 +1433,7 @@ describe('TargetResolver', () => {
1409
1433
  ),
1410
1434
  distEntry: undefined,
1411
1435
  publicUrl: '/',
1436
+ inlineRequires: false,
1412
1437
  env: createEnvironment({
1413
1438
  context: 'browser',
1414
1439
  engines: {