@atlaspack/core 2.16.2-canary.48 → 2.16.2-canary.481
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/CHANGELOG.md +1324 -0
- package/dist/AssetGraph.js +523 -0
- package/dist/Atlaspack.js +701 -0
- package/dist/AtlaspackConfig.js +324 -0
- package/dist/AtlaspackConfig.schema.js +117 -0
- package/dist/BundleGraph.js +1906 -0
- package/dist/CommittedAsset.js +142 -0
- package/dist/Dependency.js +125 -0
- package/dist/Environment.js +132 -0
- package/dist/EnvironmentManager.js +108 -0
- package/dist/IdentifierRegistry.js +38 -0
- package/dist/InternalConfig.js +37 -0
- package/dist/PackagerRunner.js +470 -0
- package/dist/ReporterRunner.js +151 -0
- package/dist/RequestTracker.js +1297 -0
- package/dist/SymbolPropagation.js +624 -0
- package/dist/TargetDescriptor.schema.js +146 -0
- package/dist/Transformation.js +514 -0
- package/dist/UncommittedAsset.js +310 -0
- package/dist/Validation.js +196 -0
- package/dist/applyRuntimes.js +384 -0
- package/dist/assetUtils.js +169 -0
- package/dist/atlaspack-v3/AtlaspackV3.js +83 -0
- package/dist/atlaspack-v3/NapiWorkerPool.js +114 -0
- package/dist/atlaspack-v3/fs.js +53 -0
- package/dist/atlaspack-v3/index.js +25 -0
- package/dist/atlaspack-v3/jsCallable.js +16 -0
- package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
- package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
- package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
- package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
- package/dist/atlaspack-v3/worker/compat/index.js +24 -0
- package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
- package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
- package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
- package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
- package/dist/atlaspack-v3/worker/compat/target.js +14 -0
- package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
- package/dist/atlaspack-v3/worker/worker.js +398 -0
- package/dist/constants.js +17 -0
- package/dist/dumpGraphToGraphViz.js +281 -0
- package/dist/index.js +62 -0
- package/dist/loadAtlaspackPlugin.js +128 -0
- package/dist/loadDotEnv.js +41 -0
- package/dist/projectPath.js +83 -0
- package/dist/public/Asset.js +279 -0
- package/dist/public/Bundle.js +224 -0
- package/dist/public/BundleGraph.js +371 -0
- package/dist/public/BundleGroup.js +53 -0
- package/dist/public/Config.js +286 -0
- package/dist/public/Dependency.js +138 -0
- package/dist/public/Environment.js +278 -0
- package/dist/public/MutableBundleGraph.js +277 -0
- package/dist/public/PluginOptions.js +80 -0
- package/dist/public/Symbols.js +248 -0
- package/dist/public/Target.js +69 -0
- package/dist/registerCoreWithSerializer.js +38 -0
- package/dist/requests/AssetGraphRequest.js +430 -0
- package/dist/requests/AssetGraphRequestRust.js +471 -0
- package/dist/requests/AssetRequest.js +130 -0
- package/dist/requests/AtlaspackBuildRequest.js +98 -0
- package/dist/requests/AtlaspackConfigRequest.js +493 -0
- package/dist/requests/BundleGraphRequest.js +381 -0
- package/dist/requests/BundleGraphRequestRust.js +324 -0
- package/dist/requests/BundleGraphRequestUtils.js +262 -0
- package/dist/requests/ConfigRequest.js +246 -0
- package/dist/requests/DevDepRequest.js +204 -0
- package/dist/requests/EntryRequest.js +314 -0
- package/dist/requests/PackageRequest.js +89 -0
- package/dist/requests/PathRequest.js +349 -0
- package/dist/requests/TargetRequest.js +1316 -0
- package/dist/requests/ValidationRequest.js +49 -0
- package/dist/requests/WriteBundleRequest.js +522 -0
- package/dist/requests/WriteBundlesRequest.js +190 -0
- package/dist/requests/asset-graph-diff.js +128 -0
- package/dist/requests/asset-graph-dot.js +131 -0
- package/dist/resolveOptions.js +267 -0
- package/dist/rustWorkerThreadDylibHack.js +19 -0
- package/dist/serializerCore.browser.js +43 -0
- package/dist/summarizeRequest.js +39 -0
- package/dist/types.js +31 -0
- package/dist/utils.js +172 -0
- package/dist/worker.js +123 -0
- package/lib/AssetGraph.js +53 -15
- package/lib/Atlaspack.js +140 -56
- package/lib/AtlaspackConfig.js +17 -6
- package/lib/AtlaspackConfig.schema.js +16 -5
- package/lib/BundleGraph.js +390 -43
- package/lib/CommittedAsset.js +8 -2
- package/lib/Dependency.js +9 -3
- package/lib/Environment.js +16 -10
- package/lib/EnvironmentManager.js +143 -0
- package/lib/IdentifierRegistry.js +2 -4
- package/lib/InternalConfig.js +3 -2
- package/lib/PackagerRunner.js +46 -82
- package/lib/ReporterRunner.js +8 -12
- package/lib/RequestTracker.js +191 -152
- package/lib/SymbolPropagation.js +52 -29
- package/lib/TargetDescriptor.schema.js +10 -1
- package/lib/Transformation.js +68 -19
- package/lib/UncommittedAsset.js +17 -24
- package/lib/Validation.js +20 -5
- package/lib/applyRuntimes.js +98 -7
- package/lib/assetUtils.js +16 -6
- package/lib/atlaspack-v3/AtlaspackV3.js +58 -15
- package/lib/atlaspack-v3/NapiWorkerPool.js +63 -2
- package/lib/atlaspack-v3/fs.js +4 -1
- package/lib/atlaspack-v3/index.js +28 -1
- package/lib/atlaspack-v3/jsCallable.js +0 -2
- package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
- package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
- package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
- package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
- package/lib/atlaspack-v3/worker/compat/index.js +0 -11
- package/lib/atlaspack-v3/worker/compat/mutable-asset.js +16 -11
- package/lib/atlaspack-v3/worker/compat/plugin-config.js +14 -35
- package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -2
- package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
- package/lib/atlaspack-v3/worker/compat/target.js +2 -0
- package/lib/atlaspack-v3/worker/index.js +3 -0
- package/lib/atlaspack-v3/worker/side-effect-detector.js +214 -0
- package/lib/atlaspack-v3/worker/worker.js +231 -79
- package/lib/constants.js +0 -1
- package/lib/dumpGraphToGraphViz.js +72 -17
- package/lib/index.js +46 -3
- package/lib/loadAtlaspackPlugin.js +2 -3
- package/lib/loadDotEnv.js +5 -2
- package/lib/projectPath.js +6 -1
- package/lib/public/Asset.js +22 -12
- package/lib/public/Bundle.js +16 -18
- package/lib/public/BundleGraph.js +27 -25
- package/lib/public/BundleGroup.js +5 -6
- package/lib/public/Config.js +118 -18
- package/lib/public/Dependency.js +9 -7
- package/lib/public/Environment.js +13 -8
- package/lib/public/MutableBundleGraph.js +56 -15
- package/lib/public/PluginOptions.js +2 -2
- package/lib/public/Symbols.js +12 -12
- package/lib/public/Target.js +8 -7
- package/lib/registerCoreWithSerializer.js +7 -4
- package/lib/requests/AssetGraphRequest.js +61 -40
- package/lib/requests/AssetGraphRequestRust.js +314 -82
- package/lib/requests/AssetRequest.js +24 -7
- package/lib/requests/AtlaspackBuildRequest.js +53 -7
- package/lib/requests/AtlaspackConfigRequest.js +29 -19
- package/lib/requests/BundleGraphRequest.js +61 -130
- package/lib/requests/BundleGraphRequestRust.js +381 -0
- package/lib/requests/BundleGraphRequestUtils.js +280 -0
- package/lib/requests/ConfigRequest.js +55 -7
- package/lib/requests/DevDepRequest.js +32 -6
- package/lib/requests/EntryRequest.js +4 -3
- package/lib/requests/PackageRequest.js +56 -12
- package/lib/requests/PathRequest.js +26 -6
- package/lib/requests/TargetRequest.js +129 -60
- package/lib/requests/ValidationRequest.js +6 -2
- package/lib/requests/WriteBundleRequest.js +329 -20
- package/lib/requests/WriteBundlesRequest.js +64 -10
- package/lib/requests/asset-graph-diff.js +13 -8
- package/lib/requests/asset-graph-dot.js +2 -8
- package/lib/resolveOptions.js +37 -14
- package/lib/rustWorkerThreadDylibHack.js +0 -1
- package/lib/serializerCore.browser.js +1 -2
- package/lib/summarizeRequest.js +1 -1
- package/lib/types/AssetGraph.d.ts +55 -0
- package/lib/types/Atlaspack.d.ts +52 -0
- package/lib/types/AtlaspackConfig.d.ts +65 -0
- package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
- package/lib/types/BundleGraph.d.ts +232 -0
- package/lib/types/CommittedAsset.d.ts +23 -0
- package/lib/types/Dependency.d.ts +44 -0
- package/lib/types/Environment.d.ts +11 -0
- package/lib/types/EnvironmentManager.d.ts +37 -0
- package/lib/types/IdentifierRegistry.d.ts +6 -0
- package/lib/types/InternalConfig.d.ts +23 -0
- package/lib/types/PackagerRunner.d.ts +85 -0
- package/lib/types/ReporterRunner.d.ts +25 -0
- package/lib/types/RequestTracker.d.ts +385 -0
- package/lib/types/SymbolPropagation.d.ts +11 -0
- package/lib/types/TargetDescriptor.schema.d.ts +5 -0
- package/lib/types/Transformation.d.ts +72 -0
- package/lib/types/UncommittedAsset.d.ts +61 -0
- package/lib/types/Validation.d.ts +37 -0
- package/lib/types/applyRuntimes.d.ts +25 -0
- package/lib/types/assetUtils.d.ts +42 -0
- package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +35 -0
- package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
- package/lib/types/atlaspack-v3/fs.d.ts +13 -0
- package/lib/types/atlaspack-v3/index.d.ts +6 -0
- package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
- package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
- package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
- package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
- package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
- package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -2
- package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
- package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
- package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
- package/lib/types/atlaspack-v3/worker/worker.d.ts +81 -0
- package/lib/types/constants.d.ts +13 -0
- package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
- package/lib/types/index.d.ts +8 -0
- package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
- package/lib/types/loadDotEnv.d.ts +3 -0
- package/lib/types/projectPath.d.ts +19 -0
- package/lib/types/public/Asset.d.ts +74 -0
- package/lib/types/public/Bundle.d.ts +45 -0
- package/lib/types/public/BundleGraph.d.ts +72 -0
- package/lib/types/public/BundleGroup.d.ts +12 -0
- package/lib/types/public/Config.d.ts +75 -0
- package/lib/types/public/Dependency.d.ts +32 -0
- package/lib/types/public/Environment.d.ts +34 -0
- package/lib/types/public/MutableBundleGraph.d.ts +26 -0
- package/lib/types/public/PluginOptions.d.ts +25 -0
- package/lib/types/public/Symbols.d.ts +81 -0
- package/lib/types/public/Target.d.ts +16 -0
- package/lib/types/registerCoreWithSerializer.d.ts +2 -0
- package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
- package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
- package/lib/types/requests/AssetRequest.d.ts +16 -0
- package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
- package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
- package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
- package/lib/types/requests/BundleGraphRequestRust.d.ts +34 -0
- package/lib/types/requests/BundleGraphRequestUtils.d.ts +38 -0
- package/lib/types/requests/ConfigRequest.d.ts +67 -0
- package/lib/types/requests/DevDepRequest.d.ts +30 -0
- package/lib/types/requests/EntryRequest.d.ts +36 -0
- package/lib/types/requests/PackageRequest.d.ts +27 -0
- package/lib/types/requests/PathRequest.d.ts +48 -0
- package/lib/types/requests/TargetRequest.d.ts +48 -0
- package/lib/types/requests/ValidationRequest.d.ts +20 -0
- package/lib/types/requests/WriteBundleRequest.d.ts +80 -0
- package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
- package/lib/types/requests/asset-graph-diff.d.ts +1 -0
- package/lib/types/requests/asset-graph-dot.d.ts +9 -0
- package/lib/types/resolveOptions.d.ts +3 -0
- package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
- package/lib/types/serializerCore.browser.d.ts +3 -0
- package/lib/types/summarizeRequest.d.ts +10 -0
- package/lib/types/types.d.ts +496 -0
- package/lib/types/utils.d.ts +23 -0
- package/lib/types/worker.d.ts +44 -0
- package/lib/types.js +8 -1
- package/lib/utils.js +18 -3
- package/lib/worker.js +32 -15
- package/package.json +26 -36
- package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
- package/src/{Atlaspack.js → Atlaspack.ts} +181 -72
- package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
- package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
- package/src/{BundleGraph.js → BundleGraph.ts} +575 -145
- package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
- package/src/{Dependency.js → Dependency.ts} +59 -42
- package/src/{Environment.js → Environment.ts} +24 -15
- package/src/EnvironmentManager.ts +154 -0
- package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
- package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
- package/src/{PackagerRunner.js → PackagerRunner.ts} +114 -159
- package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
- package/src/{RequestTracker.js → RequestTracker.ts} +444 -355
- package/src/{SymbolPropagation.js → SymbolPropagation.ts} +178 -61
- package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +10 -1
- package/src/{Transformation.js → Transformation.ts} +110 -65
- package/src/{UncommittedAsset.js → UncommittedAsset.ts} +45 -49
- package/src/{Validation.js → Validation.ts} +32 -17
- package/src/{applyRuntimes.js → applyRuntimes.ts} +135 -26
- package/src/{assetUtils.js → assetUtils.ts} +49 -36
- package/src/atlaspack-v3/AtlaspackV3.ts +183 -0
- package/src/atlaspack-v3/NapiWorkerPool.ts +129 -0
- package/src/atlaspack-v3/{fs.js → fs.ts} +8 -4
- package/src/atlaspack-v3/{index.js → index.ts} +3 -4
- package/src/atlaspack-v3/jsCallable.ts +14 -0
- package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
- package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
- package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
- package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
- package/src/atlaspack-v3/worker/compat/index.ts +8 -0
- package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
- package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
- package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
- package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
- package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
- package/src/atlaspack-v3/worker/index.js +2 -1
- package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
- package/src/atlaspack-v3/worker/worker.ts +548 -0
- package/src/{constants.js → constants.ts} +0 -3
- package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
- package/src/index.ts +18 -0
- package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
- package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
- package/src/{projectPath.js → projectPath.ts} +20 -9
- package/src/public/{Asset.js → Asset.ts} +41 -28
- package/src/public/{Bundle.js → Bundle.ts} +28 -29
- package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
- package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
- package/src/public/{Config.js → Config.ts} +171 -33
- package/src/public/{Dependency.js → Dependency.ts} +20 -17
- package/src/public/{Environment.js → Environment.ts} +28 -17
- package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
- package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
- package/src/public/{Symbols.js → Symbols.ts} +75 -36
- package/src/public/{Target.js → Target.ts} +10 -8
- package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
- package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +117 -90
- package/src/requests/AssetGraphRequestRust.ts +557 -0
- package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
- package/src/requests/AtlaspackBuildRequest.ts +168 -0
- package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
- package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +119 -199
- package/src/requests/BundleGraphRequestRust.ts +470 -0
- package/src/requests/BundleGraphRequestUtils.ts +323 -0
- package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
- package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
- package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
- package/src/requests/{PackageRequest.js → PackageRequest.ts} +52 -25
- package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
- package/src/requests/{TargetRequest.js → TargetRequest.ts} +265 -179
- package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
- package/src/requests/WriteBundleRequest.ts +734 -0
- package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +134 -50
- package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
- package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
- package/src/{resolveOptions.js → resolveOptions.ts} +57 -27
- package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
- package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
- package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
- package/src/types.ts +651 -0
- package/src/{utils.js → utils.ts} +52 -21
- package/src/{worker.js → worker.ts} +50 -42
- package/test/{AssetGraph.test.js → AssetGraph.test.ts} +5 -8
- package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
- package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
- package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
- package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
- package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
- package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
- package/test/Environment.test.ts +153 -0
- package/test/EnvironmentManager.test.ts +188 -0
- package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
- package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
- package/test/PackagerRunner.test.ts +0 -0
- package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
- package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
- package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
- package/test/PublicEnvironment.test.ts +49 -0
- package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
- package/test/{RequestTracker.test.js → RequestTracker.test.ts} +136 -58
- package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
- package/test/{TargetRequest.test.js → TargetRequest.test.ts} +91 -92
- package/test/fixtures/config-with-reporters/.parcelrc +7 -0
- package/test/fixtures/custom-targets/package.json +6 -0
- package/test/public/Config.test.ts +104 -0
- package/test/requests/AssetGraphRequestRust.test.ts +443 -0
- package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
- package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
- package/test/requests/WriteBundleRequest.test.ts +602 -0
- package/test/{test-utils.js → test-utils.ts} +3 -4
- package/test/{utils.test.js → utils.test.ts} +1 -3
- package/tsconfig.json +60 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/index.d.ts +0 -30
- package/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
- package/src/atlaspack-v3/AtlaspackV3.js +0 -87
- package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
- package/src/atlaspack-v3/jsCallable.js +0 -18
- package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
- package/src/atlaspack-v3/worker/compat/plugin-logger.js +0 -47
- package/src/atlaspack-v3/worker/worker.js +0 -369
- package/src/index.js +0 -13
- package/src/requests/AssetGraphRequestRust.js +0 -263
- package/src/requests/AtlaspackBuildRequest.js +0 -111
- package/src/requests/WriteBundleRequest.js +0 -369
- package/src/types.js +0 -600
- package/test/Environment.test.js +0 -119
- package/test/PackagerRunner.test.js +0 -27
- package/test/PublicEnvironment.test.js +0 -27
- package/test/requests/AssetGraphRequestRust.test.js +0 -411
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
import type {WorkerApi} from '@atlaspack/workers';
|
|
4
2
|
import type {AssetGroup, AtlaspackOptions, ReportFn} from './types';
|
|
5
3
|
import type {Validator, ValidateResult} from '@atlaspack/types';
|
|
@@ -18,29 +16,34 @@ import summarizeRequest from './summarizeRequest';
|
|
|
18
16
|
import {fromProjectPath, fromProjectPathRelative} from './projectPath';
|
|
19
17
|
import {PluginTracer} from '@atlaspack/profiler';
|
|
20
18
|
|
|
21
|
-
export type ValidationOpts = {
|
|
22
|
-
config: AtlaspackConfig
|
|
19
|
+
export type ValidationOpts = {
|
|
20
|
+
config: AtlaspackConfig;
|
|
23
21
|
/**
|
|
24
22
|
* If true, this Validation instance will run all validators that implement the single-threaded "validateAll" method.
|
|
25
23
|
* If falsy, it will run validators that implement the one-asset-at-a-time "validate" method.
|
|
26
24
|
*/
|
|
27
|
-
dedicatedThread?: boolean
|
|
28
|
-
options: AtlaspackOptions
|
|
29
|
-
requests: AssetGroup[]
|
|
30
|
-
report: ReportFn
|
|
31
|
-
workerApi?: WorkerApi
|
|
32
|
-
|
|
25
|
+
dedicatedThread?: boolean;
|
|
26
|
+
options: AtlaspackOptions;
|
|
27
|
+
requests: AssetGroup[];
|
|
28
|
+
report: ReportFn;
|
|
29
|
+
workerApi?: WorkerApi;
|
|
30
|
+
};
|
|
33
31
|
|
|
34
32
|
export default class Validation {
|
|
35
|
-
allAssets: {
|
|
36
|
-
|
|
33
|
+
allAssets: {
|
|
34
|
+
[validatorName: string]: UncommittedAsset[];
|
|
35
|
+
} = {};
|
|
36
|
+
allValidators: {
|
|
37
|
+
[validatorName: string]: Validator;
|
|
38
|
+
} = {};
|
|
37
39
|
dedicatedThread: boolean;
|
|
38
|
-
|
|
40
|
+
// @ts-expect-error TS2564
|
|
41
|
+
impactfulOptions: Partial<AtlaspackOptions>;
|
|
39
42
|
options: AtlaspackOptions;
|
|
40
43
|
atlaspackConfig: AtlaspackConfig;
|
|
41
44
|
report: ReportFn;
|
|
42
45
|
requests: AssetGroup[];
|
|
43
|
-
workerApi:
|
|
46
|
+
workerApi: WorkerApi | null | undefined;
|
|
44
47
|
|
|
45
48
|
constructor({
|
|
46
49
|
config,
|
|
@@ -71,10 +74,12 @@ export default class Validation {
|
|
|
71
74
|
origin: validatorName,
|
|
72
75
|
category: 'validator',
|
|
73
76
|
});
|
|
74
|
-
let validatorResults: Array
|
|
77
|
+
let validatorResults: Array<ValidateResult | null | undefined> = [];
|
|
75
78
|
try {
|
|
76
79
|
// If the plugin supports the single-threading validateAll method, pass all assets to it.
|
|
80
|
+
// @ts-expect-error TS2339
|
|
77
81
|
if (plugin.validateAll && this.dedicatedThread) {
|
|
82
|
+
// @ts-expect-error TS2339
|
|
78
83
|
validatorResults = await plugin.validateAll({
|
|
79
84
|
assets: assets.map((asset) => new Asset(asset)),
|
|
80
85
|
options: pluginOptions,
|
|
@@ -94,12 +99,15 @@ export default class Validation {
|
|
|
94
99
|
}
|
|
95
100
|
|
|
96
101
|
// Otherwise, pass the assets one-at-a-time
|
|
102
|
+
// @ts-expect-error TS2339
|
|
97
103
|
else if (plugin.validate && !this.dedicatedThread) {
|
|
98
104
|
await Promise.all(
|
|
99
105
|
assets.map(async (input) => {
|
|
100
106
|
let config = null;
|
|
101
107
|
let publicAsset = new Asset(input);
|
|
108
|
+
// @ts-expect-error TS2339
|
|
102
109
|
if (plugin.getConfig) {
|
|
110
|
+
// @ts-expect-error TS2339
|
|
103
111
|
config = await plugin.getConfig({
|
|
104
112
|
asset: publicAsset,
|
|
105
113
|
options: pluginOptions,
|
|
@@ -115,6 +123,7 @@ export default class Validation {
|
|
|
115
123
|
});
|
|
116
124
|
}
|
|
117
125
|
|
|
126
|
+
// @ts-expect-error TS2339
|
|
118
127
|
let validatorResult = await plugin.validate({
|
|
119
128
|
asset: publicAsset,
|
|
120
129
|
options: pluginOptions,
|
|
@@ -127,7 +136,7 @@ export default class Validation {
|
|
|
127
136
|
);
|
|
128
137
|
}
|
|
129
138
|
this.handleResults(validatorResults);
|
|
130
|
-
} catch (e) {
|
|
139
|
+
} catch (e: any) {
|
|
131
140
|
throw new ThrowableDiagnostic({
|
|
132
141
|
diagnostic: errorToDiagnostic(e, {
|
|
133
142
|
origin: validatorName,
|
|
@@ -145,12 +154,14 @@ export default class Validation {
|
|
|
145
154
|
this.requests.map(async (request) => {
|
|
146
155
|
this.report({
|
|
147
156
|
type: 'validation',
|
|
157
|
+
// @ts-expect-error TS2322
|
|
148
158
|
filePath: fromProjectPath(this.options.projectRoot, request.filePath),
|
|
149
159
|
});
|
|
150
160
|
|
|
151
161
|
let asset = await this.loadAsset(request);
|
|
152
162
|
|
|
153
163
|
let validators = await this.atlaspackConfig.getValidators(
|
|
164
|
+
// @ts-expect-error TS2345
|
|
154
165
|
request.filePath,
|
|
155
166
|
);
|
|
156
167
|
|
|
@@ -166,7 +177,7 @@ export default class Validation {
|
|
|
166
177
|
);
|
|
167
178
|
}
|
|
168
179
|
|
|
169
|
-
handleResults(validatorResults: Array
|
|
180
|
+
handleResults(validatorResults: Array<ValidateResult | null | undefined>) {
|
|
170
181
|
let warnings: Array<Diagnostic> = [];
|
|
171
182
|
let errors: Array<Diagnostic> = [];
|
|
172
183
|
validatorResults.forEach((result) => {
|
|
@@ -192,6 +203,7 @@ export default class Validation {
|
|
|
192
203
|
let {content, size, isSource} = await summarizeRequest(
|
|
193
204
|
this.options.inputFS,
|
|
194
205
|
{
|
|
206
|
+
// @ts-expect-error TS2322
|
|
195
207
|
filePath: fromProjectPath(this.options.projectRoot, request.filePath),
|
|
196
208
|
},
|
|
197
209
|
);
|
|
@@ -199,10 +211,13 @@ export default class Validation {
|
|
|
199
211
|
return new UncommittedAsset({
|
|
200
212
|
value: createAsset(this.options.projectRoot, {
|
|
201
213
|
code,
|
|
214
|
+
// @ts-expect-error TS2322
|
|
202
215
|
filePath: filePath,
|
|
203
216
|
isSource,
|
|
217
|
+
// @ts-expect-error TS2345
|
|
204
218
|
type: path.extname(fromProjectPathRelative(filePath)).slice(1),
|
|
205
219
|
query,
|
|
220
|
+
// @ts-expect-error TS2322
|
|
206
221
|
env: env,
|
|
207
222
|
stats: {
|
|
208
223
|
time: 0,
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
import type {ContentKey} from '@atlaspack/graph';
|
|
4
2
|
import type {Dependency, NamedBundle as INamedBundle} from '@atlaspack/types';
|
|
5
3
|
import type {SharedReference} from '@atlaspack/workers';
|
|
@@ -11,6 +9,7 @@ import type {
|
|
|
11
9
|
DevDepRequest,
|
|
12
10
|
AtlaspackOptions,
|
|
13
11
|
DevDepRequestRef,
|
|
12
|
+
DependencyNode,
|
|
14
13
|
} from './types';
|
|
15
14
|
import type {AtlaspackConfig} from './AtlaspackConfig';
|
|
16
15
|
import type PluginOptions from './public/PluginOptions';
|
|
@@ -21,6 +20,7 @@ import assert from 'assert';
|
|
|
21
20
|
import invariant from 'assert';
|
|
22
21
|
import nullthrows from 'nullthrows';
|
|
23
22
|
import {nodeFromAssetGroup} from './AssetGraph';
|
|
23
|
+
import type AssetGraph from './AssetGraph';
|
|
24
24
|
import BundleGraph from './public/BundleGraph';
|
|
25
25
|
import InternalBundleGraph, {bundleGraphEdgeTypes} from './BundleGraph';
|
|
26
26
|
import {NamedBundle} from './public/Bundle';
|
|
@@ -34,13 +34,15 @@ import {createDevDependency, runDevDepRequest} from './requests/DevDepRequest';
|
|
|
34
34
|
import {toProjectPath, fromProjectPathRelative} from './projectPath';
|
|
35
35
|
import {tracer, PluginTracer} from '@atlaspack/profiler';
|
|
36
36
|
import {DefaultMap} from '@atlaspack/utils';
|
|
37
|
+
import {fromEnvironmentId} from './EnvironmentManager';
|
|
38
|
+
import {getFeatureFlag} from '@atlaspack/feature-flags';
|
|
37
39
|
|
|
38
|
-
type RuntimeConnection = {
|
|
39
|
-
bundle: InternalBundle
|
|
40
|
-
assetGroup: AssetGroup
|
|
41
|
-
dependency:
|
|
42
|
-
isEntry:
|
|
43
|
-
|
|
40
|
+
type RuntimeConnection = {
|
|
41
|
+
bundle: InternalBundle;
|
|
42
|
+
assetGroup: AssetGroup;
|
|
43
|
+
dependency: Dependency | null | undefined;
|
|
44
|
+
isEntry: boolean | null | undefined;
|
|
45
|
+
};
|
|
44
46
|
|
|
45
47
|
function nameRuntimeBundle(
|
|
46
48
|
bundle: InternalBundle,
|
|
@@ -70,7 +72,7 @@ function nameRuntimeBundle(
|
|
|
70
72
|
* Introduction of manifest bundles: https://github.com/parcel-bundler/parcel/pull/8837
|
|
71
73
|
* Introduction of reverse topology: https://github.com/parcel-bundler/parcel/pull/8981
|
|
72
74
|
*/
|
|
73
|
-
export default async function applyRuntimes<TResult
|
|
75
|
+
export default async function applyRuntimes<TResult extends RequestResult>({
|
|
74
76
|
bundleGraph,
|
|
75
77
|
config,
|
|
76
78
|
options,
|
|
@@ -80,17 +82,17 @@ export default async function applyRuntimes<TResult: RequestResult>({
|
|
|
80
82
|
previousDevDeps,
|
|
81
83
|
devDepRequests,
|
|
82
84
|
configs,
|
|
83
|
-
}: {
|
|
84
|
-
bundleGraph: InternalBundleGraph
|
|
85
|
-
config: AtlaspackConfig
|
|
86
|
-
options: AtlaspackOptions
|
|
87
|
-
optionsRef: SharedReference
|
|
88
|
-
pluginOptions: PluginOptions
|
|
89
|
-
api: RunAPI<TResult
|
|
90
|
-
previousDevDeps: Map<string, string
|
|
91
|
-
devDepRequests: Map<string, DevDepRequest | DevDepRequestRef
|
|
92
|
-
configs: Map<string, Config
|
|
93
|
-
|
|
85
|
+
}: {
|
|
86
|
+
bundleGraph: InternalBundleGraph;
|
|
87
|
+
config: AtlaspackConfig;
|
|
88
|
+
options: AtlaspackOptions;
|
|
89
|
+
optionsRef: SharedReference;
|
|
90
|
+
pluginOptions: PluginOptions;
|
|
91
|
+
api: RunAPI<TResult>;
|
|
92
|
+
previousDevDeps: Map<string, string>;
|
|
93
|
+
devDepRequests: Map<string, DevDepRequest | DevDepRequestRef>;
|
|
94
|
+
configs: Map<string, Config>;
|
|
95
|
+
}): Promise<Map<string, Asset>> {
|
|
94
96
|
let runtimes = await config.getRuntimes();
|
|
95
97
|
|
|
96
98
|
/**
|
|
@@ -106,9 +108,11 @@ export default async function applyRuntimes<TResult: RequestResult>({
|
|
|
106
108
|
* order), so that children will always be available when parents try to reference
|
|
107
109
|
* them.
|
|
108
110
|
*/
|
|
109
|
-
|
|
111
|
+
// @ts-expect-error TS2304
|
|
112
|
+
let bundles: Array<Bundle> = [];
|
|
110
113
|
bundleGraph.traverseBundles({
|
|
111
|
-
|
|
114
|
+
// @ts-expect-error TS2304
|
|
115
|
+
exit(bundle: Bundle) {
|
|
112
116
|
bundles.push(bundle);
|
|
113
117
|
},
|
|
114
118
|
});
|
|
@@ -149,7 +153,9 @@ export default async function applyRuntimes<TResult: RequestResult>({
|
|
|
149
153
|
filePath,
|
|
150
154
|
isEntry,
|
|
151
155
|
env,
|
|
156
|
+
runtimeAssetRequiringExecutionOnLoad,
|
|
152
157
|
priority,
|
|
158
|
+
symbolData,
|
|
153
159
|
} of runtimeAssets) {
|
|
154
160
|
let sourceName = path.join(
|
|
155
161
|
path.dirname(filePath),
|
|
@@ -158,11 +164,17 @@ export default async function applyRuntimes<TResult: RequestResult>({
|
|
|
158
164
|
|
|
159
165
|
let assetGroup = {
|
|
160
166
|
code,
|
|
167
|
+
runtimeAssetRequiringExecutionOnLoad,
|
|
161
168
|
filePath: toProjectPath(options.projectRoot, sourceName),
|
|
162
|
-
env: mergeEnvironments(
|
|
169
|
+
env: mergeEnvironments(
|
|
170
|
+
options.projectRoot,
|
|
171
|
+
fromEnvironmentId(bundle.env),
|
|
172
|
+
env,
|
|
173
|
+
),
|
|
163
174
|
// Runtime assets should be considered source, as they should be
|
|
164
175
|
// e.g. compiled to run in the target environment
|
|
165
176
|
isSource: true,
|
|
177
|
+
symbolData,
|
|
166
178
|
};
|
|
167
179
|
|
|
168
180
|
let connectionBundle = bundle;
|
|
@@ -200,6 +212,7 @@ export default async function applyRuntimes<TResult: RequestResult>({
|
|
|
200
212
|
nameRuntimeBundle(connectionBundle, bundle);
|
|
201
213
|
}
|
|
202
214
|
|
|
215
|
+
// @ts-expect-error TS2345
|
|
203
216
|
connectionMap.get(connectionBundle).push({
|
|
204
217
|
bundle: connectionBundle,
|
|
205
218
|
assetGroup,
|
|
@@ -208,7 +221,7 @@ export default async function applyRuntimes<TResult: RequestResult>({
|
|
|
208
221
|
});
|
|
209
222
|
}
|
|
210
223
|
}
|
|
211
|
-
} catch (e) {
|
|
224
|
+
} catch (e: any) {
|
|
212
225
|
throw new ThrowableDiagnostic({
|
|
213
226
|
diagnostic: errorToDiagnostic(e, {
|
|
214
227
|
origin: runtime.name,
|
|
@@ -238,7 +251,8 @@ export default async function applyRuntimes<TResult: RequestResult>({
|
|
|
238
251
|
*/
|
|
239
252
|
let connections: Array<RuntimeConnection> = [];
|
|
240
253
|
bundleGraph.traverseBundles({
|
|
241
|
-
|
|
254
|
+
// @ts-expect-error TS2304
|
|
255
|
+
enter(bundle: Bundle) {
|
|
242
256
|
connections.push(...connectionMap.get(bundle));
|
|
243
257
|
},
|
|
244
258
|
});
|
|
@@ -267,6 +281,11 @@ export default async function applyRuntimes<TResult: RequestResult>({
|
|
|
267
281
|
let {assetGraph: runtimesAssetGraph, changedAssets} =
|
|
268
282
|
await reconcileNewRuntimes(api, connections, optionsRef);
|
|
269
283
|
|
|
284
|
+
if (getFeatureFlag('skipRuntimeSymbolProp')) {
|
|
285
|
+
// Apply pre-computed symbol data from runtime assets to skip symbol propagation
|
|
286
|
+
applyRuntimeSymbolData(runtimesAssetGraph, connections);
|
|
287
|
+
}
|
|
288
|
+
|
|
270
289
|
// Convert the runtime AssetGraph into a BundleGraph, this includes assigning
|
|
271
290
|
// the assets their public ids
|
|
272
291
|
let runtimesBundleGraph = InternalBundleGraph.fromAssetGraph(
|
|
@@ -389,7 +408,94 @@ export default async function applyRuntimes<TResult: RequestResult>({
|
|
|
389
408
|
return changedAssets;
|
|
390
409
|
}
|
|
391
410
|
|
|
392
|
-
|
|
411
|
+
/**
|
|
412
|
+
* Apply pre-computed symbol data from runtime assets to the asset graph
|
|
413
|
+
* to avoid running symbol propagation on runtime code we control.
|
|
414
|
+
*/
|
|
415
|
+
function applyRuntimeSymbolData(
|
|
416
|
+
assetGraph: AssetGraph,
|
|
417
|
+
connections: Array<RuntimeConnection>,
|
|
418
|
+
) {
|
|
419
|
+
for (let {assetGroup} of connections) {
|
|
420
|
+
let assetGroupNode = nodeFromAssetGroup(assetGroup);
|
|
421
|
+
let assetGroupAssetNodeIds = assetGraph.getNodeIdsConnectedFrom(
|
|
422
|
+
assetGraph.getNodeIdByContentKey(assetGroupNode.id),
|
|
423
|
+
);
|
|
424
|
+
|
|
425
|
+
if (assetGroupAssetNodeIds.length !== 1) {
|
|
426
|
+
continue;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
let runtimeAssetNodeId = assetGroupAssetNodeIds[0];
|
|
430
|
+
let runtimeAssetNode = assetGraph.getNode(runtimeAssetNodeId);
|
|
431
|
+
if (!runtimeAssetNode || runtimeAssetNode.type !== 'asset') {
|
|
432
|
+
continue;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
let symbolData = assetGroup.symbolData;
|
|
436
|
+
if (!symbolData) {
|
|
437
|
+
// We completely skip symbol propagation for runtime assets, so symbolData
|
|
438
|
+
// is required
|
|
439
|
+
throw new Error('Runtime asset is missing symbol data');
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
if (symbolData.symbols) {
|
|
443
|
+
// Convert from SymbolData format to internal Asset.symbols format
|
|
444
|
+
let internalSymbols = new Map();
|
|
445
|
+
for (let [symbol, data] of symbolData.symbols) {
|
|
446
|
+
internalSymbols.set(symbol, {
|
|
447
|
+
local: data.local,
|
|
448
|
+
loc: data.loc || null,
|
|
449
|
+
meta: data.meta,
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
runtimeAssetNode.value.symbols = internalSymbols;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
if (symbolData.dependencies && symbolData.dependencies.length > 0) {
|
|
456
|
+
let outgoingDeps = assetGraph
|
|
457
|
+
.getNodeIdsConnectedFrom(runtimeAssetNodeId)
|
|
458
|
+
.map((id) => assetGraph.getNode(id))
|
|
459
|
+
.filter((node) => node?.type === 'dependency')
|
|
460
|
+
.map((node) => node as DependencyNode);
|
|
461
|
+
|
|
462
|
+
for (let depSymbolData of symbolData.dependencies) {
|
|
463
|
+
let matchingDep = outgoingDeps.find(
|
|
464
|
+
(depNode) => depNode.value.specifier === depSymbolData.specifier,
|
|
465
|
+
);
|
|
466
|
+
|
|
467
|
+
if (matchingDep) {
|
|
468
|
+
if (depSymbolData.symbols) {
|
|
469
|
+
let internalDepSymbols = new Map();
|
|
470
|
+
for (let [symbol, data] of depSymbolData.symbols) {
|
|
471
|
+
internalDepSymbols.set(symbol, {
|
|
472
|
+
local: data.local,
|
|
473
|
+
loc: data.loc || null,
|
|
474
|
+
isWeak: data.isWeak,
|
|
475
|
+
meta: data.meta,
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
matchingDep.value.symbols = internalDepSymbols;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
if (depSymbolData.usedSymbols) {
|
|
482
|
+
matchingDep.usedSymbolsDown = new Set(depSymbolData.usedSymbols);
|
|
483
|
+
// For runtime assets, usedSymbolsUp will be the same as usedSymbolsDown
|
|
484
|
+
// since we know exactly what we're using
|
|
485
|
+
let usedSymbolsUp = new Map();
|
|
486
|
+
for (let symbol of depSymbolData.usedSymbols) {
|
|
487
|
+
// Mark as resolved to external (null) since runtime deps are typically external
|
|
488
|
+
usedSymbolsUp.set(symbol, null);
|
|
489
|
+
}
|
|
490
|
+
matchingDep.usedSymbolsUp = usedSymbolsUp;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
function reconcileNewRuntimes<TResult extends RequestResult>(
|
|
393
499
|
api: RunAPI<TResult>,
|
|
394
500
|
connections: Array<RuntimeConnection>,
|
|
395
501
|
optionsRef: SharedReference,
|
|
@@ -399,6 +505,9 @@ function reconcileNewRuntimes<TResult: RequestResult>(
|
|
|
399
505
|
name: 'Runtimes',
|
|
400
506
|
assetGroups,
|
|
401
507
|
optionsRef,
|
|
508
|
+
skipSymbolProp:
|
|
509
|
+
getFeatureFlag('skipRuntimeSymbolProp') ||
|
|
510
|
+
getFeatureFlag('rustSymbolTracker'),
|
|
402
511
|
});
|
|
403
512
|
|
|
404
513
|
// rebuild the graph
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
|
-
|
|
3
1
|
import type {
|
|
4
2
|
ASTGenerator,
|
|
5
3
|
BundleBehavior,
|
|
@@ -16,7 +14,6 @@ import type {
|
|
|
16
14
|
Asset,
|
|
17
15
|
RequestInvalidation,
|
|
18
16
|
Dependency,
|
|
19
|
-
Environment,
|
|
20
17
|
AtlaspackOptions,
|
|
21
18
|
} from './types';
|
|
22
19
|
|
|
@@ -32,7 +29,7 @@ import PluginOptions from './public/PluginOptions';
|
|
|
32
29
|
import {blobToStream, hashFile} from '@atlaspack/utils';
|
|
33
30
|
import {hashFromOption, toInternalSourceLocation} from './utils';
|
|
34
31
|
import {
|
|
35
|
-
|
|
32
|
+
ProjectPath,
|
|
36
33
|
fromProjectPath,
|
|
37
34
|
fromProjectPathRelative,
|
|
38
35
|
} from './projectPath';
|
|
@@ -40,45 +37,58 @@ import {hashString, createAssetId as createAssetIdRust} from '@atlaspack/rust';
|
|
|
40
37
|
import {BundleBehavior as BundleBehaviorMap} from './types';
|
|
41
38
|
import {PluginTracer} from '@atlaspack/profiler';
|
|
42
39
|
import {identifierRegistry} from './IdentifierRegistry';
|
|
40
|
+
import type {EnvironmentRef} from './EnvironmentManager';
|
|
41
|
+
import {toEnvironmentId} from './EnvironmentManager';
|
|
42
|
+
import SourceMap from '@atlaspack/source-map';
|
|
43
43
|
|
|
44
|
-
export type AssetOptions = {
|
|
45
|
-
id?: string
|
|
46
|
-
committed?: boolean
|
|
47
|
-
code: string |
|
|
48
|
-
filePath: ProjectPath
|
|
49
|
-
query?:
|
|
50
|
-
type: string
|
|
51
|
-
contentKey?:
|
|
52
|
-
mapKey?:
|
|
53
|
-
astKey?:
|
|
54
|
-
astGenerator?:
|
|
55
|
-
dependencies?: Map<string, Dependency
|
|
56
|
-
bundleBehavior?:
|
|
57
|
-
isBundleSplittable?:
|
|
58
|
-
isSource: boolean
|
|
59
|
-
env:
|
|
60
|
-
meta?: Meta
|
|
61
|
-
outputHash?:
|
|
62
|
-
pipeline?:
|
|
63
|
-
stats: Stats
|
|
64
|
-
symbols?:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
|
44
|
+
export type AssetOptions = {
|
|
45
|
+
id?: string;
|
|
46
|
+
committed?: boolean;
|
|
47
|
+
code: string | undefined | null;
|
|
48
|
+
filePath: ProjectPath;
|
|
49
|
+
query?: string | null | undefined;
|
|
50
|
+
type: string;
|
|
51
|
+
contentKey?: string | null | undefined;
|
|
52
|
+
mapKey?: string | null | undefined;
|
|
53
|
+
astKey?: string | null | undefined;
|
|
54
|
+
astGenerator?: ASTGenerator | null | undefined;
|
|
55
|
+
dependencies?: Map<string, Dependency>;
|
|
56
|
+
bundleBehavior?: BundleBehavior | null | undefined;
|
|
57
|
+
isBundleSplittable?: boolean | null | undefined;
|
|
58
|
+
isSource: boolean;
|
|
59
|
+
env: EnvironmentRef;
|
|
60
|
+
meta?: Meta;
|
|
61
|
+
outputHash?: string | null | undefined;
|
|
62
|
+
pipeline?: string | null | undefined;
|
|
63
|
+
stats: Stats;
|
|
64
|
+
symbols?:
|
|
65
|
+
| Map<
|
|
66
|
+
symbol,
|
|
67
|
+
{
|
|
68
|
+
local: symbol;
|
|
69
|
+
loc: SourceLocation | null | undefined;
|
|
70
|
+
meta?: Meta | null | undefined;
|
|
71
|
+
}
|
|
72
|
+
>
|
|
73
|
+
| null
|
|
74
|
+
| undefined;
|
|
75
|
+
sideEffects?: boolean;
|
|
76
|
+
uniqueKey?: string | null | undefined;
|
|
77
|
+
plugin?: PackageName;
|
|
78
|
+
configPath?: ProjectPath;
|
|
79
|
+
configKeyPath?: string;
|
|
80
|
+
};
|
|
71
81
|
|
|
72
82
|
export function createAssetIdFromOptions(options: AssetOptions): string {
|
|
73
83
|
const data = {
|
|
74
|
-
environmentId: options.env
|
|
84
|
+
environmentId: toEnvironmentId(options.env),
|
|
75
85
|
filePath: options.filePath,
|
|
76
86
|
code: options.code,
|
|
77
87
|
pipeline: options.pipeline,
|
|
78
88
|
query: options.query,
|
|
79
89
|
uniqueKey: options.uniqueKey,
|
|
80
90
|
fileType: options.type,
|
|
81
|
-
};
|
|
91
|
+
} as const;
|
|
82
92
|
const id = createAssetIdRust(data);
|
|
83
93
|
identifierRegistry.addIdentifier('asset', id, data);
|
|
84
94
|
return id;
|
|
@@ -112,7 +122,7 @@ export function createAsset(
|
|
|
112
122
|
symbols:
|
|
113
123
|
options.symbols &&
|
|
114
124
|
new Map(
|
|
115
|
-
[...options.symbols].map(([k, v]) => [
|
|
125
|
+
[...options.symbols].map(([k, v]: [any, any]) => [
|
|
116
126
|
k,
|
|
117
127
|
{
|
|
118
128
|
local: v.local,
|
|
@@ -149,7 +159,7 @@ async function _generateFromAST(asset: CommittedAsset | UncommittedAsset) {
|
|
|
149
159
|
}
|
|
150
160
|
|
|
151
161
|
let pluginName = nullthrows(asset.value.plugin);
|
|
152
|
-
let {plugin} = await loadPlugin<Transformer<
|
|
162
|
+
let {plugin} = await loadPlugin<Transformer<unknown>>(
|
|
153
163
|
pluginName,
|
|
154
164
|
fromProjectPath(
|
|
155
165
|
asset.options.projectRoot,
|
|
@@ -171,7 +181,7 @@ async function _generateFromAST(asset: CommittedAsset | UncommittedAsset) {
|
|
|
171
181
|
tracer: new PluginTracer({origin: pluginName, category: 'asset-generate'}),
|
|
172
182
|
});
|
|
173
183
|
|
|
174
|
-
let mapBuffer = map
|
|
184
|
+
let mapBuffer = SourceMap.safeToBuffer(map);
|
|
175
185
|
// Store the results in the cache so we can avoid generating again next time
|
|
176
186
|
await Promise.all([
|
|
177
187
|
asset.options.cache.setStream(
|
|
@@ -200,6 +210,7 @@ export function getInvalidationId(invalidation: RequestInvalidation): string {
|
|
|
200
210
|
case 'option':
|
|
201
211
|
return 'option:' + invalidation.key;
|
|
202
212
|
default:
|
|
213
|
+
// @ts-expect-error TS2339
|
|
203
214
|
throw new Error('Unknown invalidation type: ' + invalidation.type);
|
|
204
215
|
}
|
|
205
216
|
}
|
|
@@ -240,9 +251,11 @@ export async function getInvalidationHash(
|
|
|
240
251
|
break;
|
|
241
252
|
case 'option':
|
|
242
253
|
hashes +=
|
|
254
|
+
// @ts-expect-error TS7053
|
|
243
255
|
invalidation.key + ':' + hashFromOption(options[invalidation.key]);
|
|
244
256
|
break;
|
|
245
257
|
default:
|
|
258
|
+
// @ts-expect-error TS2339
|
|
246
259
|
throw new Error('Unknown invalidation type: ' + invalidation.type);
|
|
247
260
|
}
|
|
248
261
|
}
|