@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
package/lib/applyRuntimes.js
CHANGED
|
@@ -69,9 +69,16 @@ function _utils() {
|
|
|
69
69
|
};
|
|
70
70
|
return data;
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
function
|
|
74
|
-
|
|
72
|
+
var _EnvironmentManager = require("./EnvironmentManager");
|
|
73
|
+
function _featureFlags() {
|
|
74
|
+
const data = require("@atlaspack/feature-flags");
|
|
75
|
+
_featureFlags = function () {
|
|
76
|
+
return data;
|
|
77
|
+
};
|
|
78
|
+
return data;
|
|
79
|
+
}
|
|
80
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
81
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
75
82
|
function nameRuntimeBundle(bundle, siblingBundle) {
|
|
76
83
|
// We don't run custom namers on runtime bundles as the runtime assumes that they are
|
|
77
84
|
// located at the same nesting level as their owning bundle. Custom naming could
|
|
@@ -123,8 +130,10 @@ async function applyRuntimes({
|
|
|
123
130
|
* order), so that children will always be available when parents try to reference
|
|
124
131
|
* them.
|
|
125
132
|
*/
|
|
133
|
+
// @ts-expect-error TS2304
|
|
126
134
|
let bundles = [];
|
|
127
135
|
bundleGraph.traverseBundles({
|
|
136
|
+
// @ts-expect-error TS2304
|
|
128
137
|
exit(bundle) {
|
|
129
138
|
bundles.push(bundle);
|
|
130
139
|
}
|
|
@@ -158,16 +167,20 @@ async function applyRuntimes({
|
|
|
158
167
|
filePath,
|
|
159
168
|
isEntry,
|
|
160
169
|
env,
|
|
161
|
-
|
|
170
|
+
runtimeAssetRequiringExecutionOnLoad,
|
|
171
|
+
priority,
|
|
172
|
+
symbolData
|
|
162
173
|
} of runtimeAssets) {
|
|
163
174
|
let sourceName = _path().default.join(_path().default.dirname(filePath), `runtime-${(0, _rust().hashString)(code)}.${bundle.type}`);
|
|
164
175
|
let assetGroup = {
|
|
165
176
|
code,
|
|
177
|
+
runtimeAssetRequiringExecutionOnLoad,
|
|
166
178
|
filePath: (0, _projectPath.toProjectPath)(options.projectRoot, sourceName),
|
|
167
|
-
env: (0, _Environment.mergeEnvironments)(options.projectRoot, bundle.env, env),
|
|
179
|
+
env: (0, _Environment.mergeEnvironments)(options.projectRoot, (0, _EnvironmentManager.fromEnvironmentId)(bundle.env), env),
|
|
168
180
|
// Runtime assets should be considered source, as they should be
|
|
169
181
|
// e.g. compiled to run in the target environment
|
|
170
|
-
isSource: true
|
|
182
|
+
isSource: true,
|
|
183
|
+
symbolData
|
|
171
184
|
};
|
|
172
185
|
let connectionBundle = bundle;
|
|
173
186
|
|
|
@@ -195,6 +208,8 @@ async function applyRuntimes({
|
|
|
195
208
|
// been named as this point.
|
|
196
209
|
nameRuntimeBundle(connectionBundle, bundle);
|
|
197
210
|
}
|
|
211
|
+
|
|
212
|
+
// @ts-expect-error TS2345
|
|
198
213
|
connectionMap.get(connectionBundle).push({
|
|
199
214
|
bundle: connectionBundle,
|
|
200
215
|
assetGroup,
|
|
@@ -233,6 +248,7 @@ async function applyRuntimes({
|
|
|
233
248
|
*/
|
|
234
249
|
let connections = [];
|
|
235
250
|
bundleGraph.traverseBundles({
|
|
251
|
+
// @ts-expect-error TS2304
|
|
236
252
|
enter(bundle) {
|
|
237
253
|
connections.push(...connectionMap.get(bundle));
|
|
238
254
|
}
|
|
@@ -254,6 +270,10 @@ async function applyRuntimes({
|
|
|
254
270
|
assetGraph: runtimesAssetGraph,
|
|
255
271
|
changedAssets
|
|
256
272
|
} = await reconcileNewRuntimes(api, connections, optionsRef);
|
|
273
|
+
if ((0, _featureFlags().getFeatureFlag)('skipRuntimeSymbolProp')) {
|
|
274
|
+
// Apply pre-computed symbol data from runtime assets to skip symbol propagation
|
|
275
|
+
applyRuntimeSymbolData(runtimesAssetGraph, connections);
|
|
276
|
+
}
|
|
257
277
|
|
|
258
278
|
// Convert the runtime AssetGraph into a BundleGraph, this includes assigning
|
|
259
279
|
// the assets their public ids
|
|
@@ -340,12 +360,83 @@ async function applyRuntimes({
|
|
|
340
360
|
}
|
|
341
361
|
return changedAssets;
|
|
342
362
|
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Apply pre-computed symbol data from runtime assets to the asset graph
|
|
366
|
+
* to avoid running symbol propagation on runtime code we control.
|
|
367
|
+
*/
|
|
368
|
+
function applyRuntimeSymbolData(assetGraph, connections) {
|
|
369
|
+
for (let {
|
|
370
|
+
assetGroup
|
|
371
|
+
} of connections) {
|
|
372
|
+
let assetGroupNode = (0, _AssetGraph.nodeFromAssetGroup)(assetGroup);
|
|
373
|
+
let assetGroupAssetNodeIds = assetGraph.getNodeIdsConnectedFrom(assetGraph.getNodeIdByContentKey(assetGroupNode.id));
|
|
374
|
+
if (assetGroupAssetNodeIds.length !== 1) {
|
|
375
|
+
continue;
|
|
376
|
+
}
|
|
377
|
+
let runtimeAssetNodeId = assetGroupAssetNodeIds[0];
|
|
378
|
+
let runtimeAssetNode = assetGraph.getNode(runtimeAssetNodeId);
|
|
379
|
+
if (!runtimeAssetNode || runtimeAssetNode.type !== 'asset') {
|
|
380
|
+
continue;
|
|
381
|
+
}
|
|
382
|
+
let symbolData = assetGroup.symbolData;
|
|
383
|
+
if (!symbolData) {
|
|
384
|
+
// We completely skip symbol propagation for runtime assets, so symbolData
|
|
385
|
+
// is required
|
|
386
|
+
throw new Error('Runtime asset is missing symbol data');
|
|
387
|
+
}
|
|
388
|
+
if (symbolData.symbols) {
|
|
389
|
+
// Convert from SymbolData format to internal Asset.symbols format
|
|
390
|
+
let internalSymbols = new Map();
|
|
391
|
+
for (let [symbol, data] of symbolData.symbols) {
|
|
392
|
+
internalSymbols.set(symbol, {
|
|
393
|
+
local: data.local,
|
|
394
|
+
loc: data.loc || null,
|
|
395
|
+
meta: data.meta
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
runtimeAssetNode.value.symbols = internalSymbols;
|
|
399
|
+
}
|
|
400
|
+
if (symbolData.dependencies && symbolData.dependencies.length > 0) {
|
|
401
|
+
let outgoingDeps = assetGraph.getNodeIdsConnectedFrom(runtimeAssetNodeId).map(id => assetGraph.getNode(id)).filter(node => (node === null || node === void 0 ? void 0 : node.type) === 'dependency').map(node => node);
|
|
402
|
+
for (let depSymbolData of symbolData.dependencies) {
|
|
403
|
+
let matchingDep = outgoingDeps.find(depNode => depNode.value.specifier === depSymbolData.specifier);
|
|
404
|
+
if (matchingDep) {
|
|
405
|
+
if (depSymbolData.symbols) {
|
|
406
|
+
let internalDepSymbols = new Map();
|
|
407
|
+
for (let [symbol, data] of depSymbolData.symbols) {
|
|
408
|
+
internalDepSymbols.set(symbol, {
|
|
409
|
+
local: data.local,
|
|
410
|
+
loc: data.loc || null,
|
|
411
|
+
isWeak: data.isWeak,
|
|
412
|
+
meta: data.meta
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
matchingDep.value.symbols = internalDepSymbols;
|
|
416
|
+
}
|
|
417
|
+
if (depSymbolData.usedSymbols) {
|
|
418
|
+
matchingDep.usedSymbolsDown = new Set(depSymbolData.usedSymbols);
|
|
419
|
+
// For runtime assets, usedSymbolsUp will be the same as usedSymbolsDown
|
|
420
|
+
// since we know exactly what we're using
|
|
421
|
+
let usedSymbolsUp = new Map();
|
|
422
|
+
for (let symbol of depSymbolData.usedSymbols) {
|
|
423
|
+
// Mark as resolved to external (null) since runtime deps are typically external
|
|
424
|
+
usedSymbolsUp.set(symbol, null);
|
|
425
|
+
}
|
|
426
|
+
matchingDep.usedSymbolsUp = usedSymbolsUp;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
343
433
|
function reconcileNewRuntimes(api, connections, optionsRef) {
|
|
344
434
|
let assetGroups = connections.map(t => t.assetGroup);
|
|
345
435
|
let request = (0, _AssetGraphRequest.default)({
|
|
346
436
|
name: 'Runtimes',
|
|
347
437
|
assetGroups,
|
|
348
|
-
optionsRef
|
|
438
|
+
optionsRef,
|
|
439
|
+
skipSymbolProp: (0, _featureFlags().getFeatureFlag)('skipRuntimeSymbolProp') || (0, _featureFlags().getFeatureFlag)('rustSymbolTracker')
|
|
349
440
|
});
|
|
350
441
|
|
|
351
442
|
// rebuild the graph
|
package/lib/assetUtils.js
CHANGED
|
@@ -36,8 +36,6 @@ function _nullthrows() {
|
|
|
36
36
|
};
|
|
37
37
|
return data;
|
|
38
38
|
}
|
|
39
|
-
var _CommittedAsset = _interopRequireDefault(require("./CommittedAsset"));
|
|
40
|
-
var _UncommittedAsset = _interopRequireDefault(require("./UncommittedAsset"));
|
|
41
39
|
var _loadAtlaspackPlugin = _interopRequireDefault(require("./loadAtlaspackPlugin"));
|
|
42
40
|
var _Asset = require("./public/Asset");
|
|
43
41
|
var _PluginOptions = _interopRequireDefault(require("./public/PluginOptions"));
|
|
@@ -66,10 +64,18 @@ function _profiler() {
|
|
|
66
64
|
return data;
|
|
67
65
|
}
|
|
68
66
|
var _IdentifierRegistry = require("./IdentifierRegistry");
|
|
69
|
-
|
|
67
|
+
var _EnvironmentManager = require("./EnvironmentManager");
|
|
68
|
+
function _sourceMap() {
|
|
69
|
+
const data = _interopRequireDefault(require("@atlaspack/source-map"));
|
|
70
|
+
_sourceMap = function () {
|
|
71
|
+
return data;
|
|
72
|
+
};
|
|
73
|
+
return data;
|
|
74
|
+
}
|
|
75
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
70
76
|
function createAssetIdFromOptions(options) {
|
|
71
77
|
const data = {
|
|
72
|
-
environmentId: options.env
|
|
78
|
+
environmentId: (0, _EnvironmentManager.toEnvironmentId)(options.env),
|
|
73
79
|
filePath: options.filePath,
|
|
74
80
|
code: options.code,
|
|
75
81
|
pipeline: options.pipeline,
|
|
@@ -151,7 +157,7 @@ async function _generateFromAST(asset) {
|
|
|
151
157
|
category: 'asset-generate'
|
|
152
158
|
})
|
|
153
159
|
});
|
|
154
|
-
let mapBuffer =
|
|
160
|
+
let mapBuffer = _sourceMap().default.safeToBuffer(map);
|
|
155
161
|
// Store the results in the cache so we can avoid generating again next time
|
|
156
162
|
await Promise.all([asset.options.cache.setStream((0, _nullthrows().default)(asset.value.contentKey), (0, _utils().blobToStream)(content)), mapBuffer != null && asset.options.cache.setBlob((0, _nullthrows().default)(asset.value.mapKey), mapBuffer)]);
|
|
157
163
|
return {
|
|
@@ -168,6 +174,7 @@ function getInvalidationId(invalidation) {
|
|
|
168
174
|
case 'option':
|
|
169
175
|
return 'option:' + invalidation.key;
|
|
170
176
|
default:
|
|
177
|
+
// @ts-expect-error TS2339
|
|
171
178
|
throw new Error('Unknown invalidation type: ' + invalidation.type);
|
|
172
179
|
}
|
|
173
180
|
}
|
|
@@ -195,9 +202,12 @@ async function getInvalidationHash(invalidations, options) {
|
|
|
195
202
|
hashes += invalidation.key + ':' + (options.env[invalidation.key] || '');
|
|
196
203
|
break;
|
|
197
204
|
case 'option':
|
|
198
|
-
hashes +=
|
|
205
|
+
hashes +=
|
|
206
|
+
// @ts-expect-error TS7053
|
|
207
|
+
invalidation.key + ':' + (0, _utils2.hashFromOption)(options[invalidation.key]);
|
|
199
208
|
break;
|
|
200
209
|
default:
|
|
210
|
+
// @ts-expect-error TS2339
|
|
201
211
|
throw new Error('Unknown invalidation type: ' + invalidation.type);
|
|
202
212
|
}
|
|
203
213
|
}
|
|
@@ -19,23 +19,36 @@ function _diagnostic() {
|
|
|
19
19
|
};
|
|
20
20
|
return data;
|
|
21
21
|
}
|
|
22
|
-
function _interopRequireDefault(
|
|
22
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
23
23
|
class AtlaspackV3 {
|
|
24
|
-
constructor(atlaspack_napi) {
|
|
24
|
+
constructor(atlaspack_napi, napiWorkerPool, isDefaultNapiWorkerPool) {
|
|
25
25
|
this._atlaspack_napi = atlaspack_napi;
|
|
26
|
+
this._napiWorkerPool = napiWorkerPool;
|
|
27
|
+
this._isDefaultNapiWorkerPool = isDefaultNapiWorkerPool;
|
|
26
28
|
}
|
|
27
29
|
static async create({
|
|
28
30
|
fs,
|
|
29
31
|
packageManager,
|
|
30
32
|
threads,
|
|
31
33
|
lmdb,
|
|
32
|
-
napiWorkerPool
|
|
34
|
+
napiWorkerPool,
|
|
33
35
|
...options
|
|
34
36
|
}) {
|
|
37
|
+
// @ts-expect-error TS2339
|
|
35
38
|
options.logLevel = options.logLevel || 'error';
|
|
39
|
+
// @ts-expect-error TS2339
|
|
36
40
|
options.defaultTargetOptions = options.defaultTargetOptions || {};
|
|
37
|
-
//
|
|
38
|
-
options.defaultTargetOptions.engines =
|
|
41
|
+
// @ts-expect-error TS2339
|
|
42
|
+
options.defaultTargetOptions.engines =
|
|
43
|
+
// @ts-expect-error TS2339
|
|
44
|
+
options.defaultTargetOptions.engines || {};
|
|
45
|
+
let isDefaultNapiWorkerPool = false;
|
|
46
|
+
if (!napiWorkerPool) {
|
|
47
|
+
napiWorkerPool = new _NapiWorkerPool.NapiWorkerPool();
|
|
48
|
+
isDefaultNapiWorkerPool = true;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// @ts-expect-error TS2488
|
|
39
52
|
const [internal, error] = await (0, _rust().atlaspackNapiCreate)({
|
|
40
53
|
fs,
|
|
41
54
|
packageManager,
|
|
@@ -48,19 +61,49 @@ class AtlaspackV3 {
|
|
|
48
61
|
diagnostic: error
|
|
49
62
|
});
|
|
50
63
|
}
|
|
51
|
-
return new AtlaspackV3(internal);
|
|
64
|
+
return new AtlaspackV3(internal, napiWorkerPool, isDefaultNapiWorkerPool);
|
|
52
65
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
66
|
+
end() {
|
|
67
|
+
// If the worker pool was provided to us, don't shut it down, it's up to the provider.
|
|
68
|
+
if (this._isDefaultNapiWorkerPool) {
|
|
69
|
+
this._napiWorkerPool.shutdown();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
buildAssetGraph(progressCallback) {
|
|
73
|
+
return (0, _rust().atlaspackNapiBuildAssetGraph)(this._atlaspack_napi, progressCallback);
|
|
74
|
+
}
|
|
75
|
+
buildBundleGraph(progressCallback) {
|
|
76
|
+
return (0, _rust().atlaspackNapiBuildBundleGraph)(this._atlaspack_napi, progressCallback);
|
|
77
|
+
}
|
|
78
|
+
build(progressCallback) {
|
|
79
|
+
return (0, _rust().atlaspackNapiBuild)(this._atlaspack_napi, progressCallback);
|
|
80
|
+
}
|
|
81
|
+
loadBundleGraph(bundleGraph) {
|
|
82
|
+
const {
|
|
83
|
+
nodesJson,
|
|
84
|
+
edges,
|
|
85
|
+
publicIdByAssetId,
|
|
86
|
+
environmentsJson
|
|
87
|
+
} = bundleGraph.serializeForNative();
|
|
88
|
+
return (0, _rust().atlaspackNapiLoadBundleGraph)(this._atlaspack_napi, nodesJson, edges, publicIdByAssetId, environmentsJson);
|
|
89
|
+
}
|
|
90
|
+
updateBundleGraph(bundleGraph, changedAssetIds) {
|
|
91
|
+
const nodesJson = bundleGraph.serializeAssetNodesForNative(changedAssetIds);
|
|
92
|
+
return (0, _rust().atlaspackNapiUpdateBundleGraph)(this._atlaspack_napi, nodesJson);
|
|
93
|
+
}
|
|
94
|
+
package(bundleId, options) {
|
|
95
|
+
return (0, _rust().atlaspackNapiPackage)(this._atlaspack_napi, bundleId, options);
|
|
96
|
+
}
|
|
97
|
+
async respondToFsEvents(events) {
|
|
98
|
+
// @ts-expect-error TS2488
|
|
99
|
+
let [needsRebuild, error] = await (0, _rust().atlaspackNapiRespondToFsEvents)(this._atlaspack_napi, events);
|
|
100
|
+
if (error) {
|
|
101
|
+
throw new Error(error);
|
|
59
102
|
}
|
|
60
|
-
return
|
|
103
|
+
return needsRebuild;
|
|
61
104
|
}
|
|
62
|
-
|
|
63
|
-
return (0, _rust().
|
|
105
|
+
async completeCacheSession() {
|
|
106
|
+
return await (0, _rust().atlaspackNapiCompleteSession)(this._atlaspack_napi);
|
|
64
107
|
}
|
|
65
108
|
}
|
|
66
109
|
exports.AtlaspackV3 = AtlaspackV3;
|
|
@@ -32,7 +32,16 @@ function _rust() {
|
|
|
32
32
|
};
|
|
33
33
|
return data;
|
|
34
34
|
}
|
|
35
|
-
function
|
|
35
|
+
function _logger() {
|
|
36
|
+
const data = _interopRequireDefault(require("@atlaspack/logger"));
|
|
37
|
+
_logger = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
43
|
+
// @ts-expect-error TS2724
|
|
44
|
+
|
|
36
45
|
const WORKER_PATH = _path().default.join(__dirname, 'worker', 'index.js');
|
|
37
46
|
const ATLASPACK_NAPI_WORKERS = _process().default.env.ATLASPACK_NAPI_WORKERS && parseInt(_process().default.env.ATLASPACK_NAPI_WORKERS, 10);
|
|
38
47
|
class NapiWorkerPool {
|
|
@@ -44,7 +53,11 @@ class NapiWorkerPool {
|
|
|
44
53
|
} = {
|
|
45
54
|
workerCount: undefined
|
|
46
55
|
}) {
|
|
47
|
-
|
|
56
|
+
// @ts-expect-error TS2322
|
|
57
|
+
this.#workerCount = workerCount ?? ATLASPACK_NAPI_WORKERS ??
|
|
58
|
+
// Default to a maximum of 4 workers as performance worsens beyond that
|
|
59
|
+
// point in most cases
|
|
60
|
+
Math.min((0, _rust().getAvailableThreads)(), 4);
|
|
48
61
|
if (!this.#workerCount) {
|
|
49
62
|
// TODO use main thread if workerCount is 0
|
|
50
63
|
}
|
|
@@ -54,8 +67,56 @@ class NapiWorkerPool {
|
|
|
54
67
|
let worker = new (_worker_threads().Worker)(WORKER_PATH);
|
|
55
68
|
this.#workers.push(worker);
|
|
56
69
|
this.#napiWorkers.push(new Promise(res => worker.once('message', res)));
|
|
70
|
+
|
|
71
|
+
// Re-emit log events from the worker thread into the main-thread logger
|
|
72
|
+
// so they reach reporters and are subject to log-level filtering.
|
|
73
|
+
worker.on('message', message => {
|
|
74
|
+
if (message != null && typeof message === 'object' && message.type === 'logEvent') {
|
|
75
|
+
const event = message.event;
|
|
76
|
+
switch (event.level) {
|
|
77
|
+
case 'verbose':
|
|
78
|
+
_logger().default.verbose(event.diagnostics);
|
|
79
|
+
break;
|
|
80
|
+
case 'info':
|
|
81
|
+
_logger().default.info(event.diagnostics);
|
|
82
|
+
break;
|
|
83
|
+
case 'warn':
|
|
84
|
+
_logger().default.warn(event.diagnostics);
|
|
85
|
+
break;
|
|
86
|
+
case 'error':
|
|
87
|
+
_logger().default.error(event.diagnostics);
|
|
88
|
+
break;
|
|
89
|
+
case 'progress':
|
|
90
|
+
_logger().default.progress(event.message);
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
57
95
|
}
|
|
58
96
|
}
|
|
97
|
+
clearAllWorkerState() {
|
|
98
|
+
return Promise.all(this.#workers.map(worker => new Promise(res => {
|
|
99
|
+
worker.postMessage('clearState');
|
|
100
|
+
|
|
101
|
+
// Set up a message handler that only resolves on 'stateCleared'
|
|
102
|
+
// and ignores all other messages (like the initial napiWorker Transferable)
|
|
103
|
+
const messageHandler = message => {
|
|
104
|
+
if (message === 'stateCleared') {
|
|
105
|
+
worker.removeListener('message', messageHandler);
|
|
106
|
+
res();
|
|
107
|
+
} else if (message != null && typeof message === 'object' && message.type === 'logEvent') {
|
|
108
|
+
// logEvent messages are forwarded asynchronously from the worker
|
|
109
|
+
// logger bridge and are expected at any time; ignore them here.
|
|
110
|
+
} else {
|
|
111
|
+
// Log unexpected messages for debugging
|
|
112
|
+
// eslint-disable-next-line no-console
|
|
113
|
+
console.warn(`[NapiWorkerPool] Received unexpected message during clearAllWorkerState: ${JSON.stringify(message)} (type: ${typeof message})`);
|
|
114
|
+
// Keep listening for 'stateCleared' - don't remove the listener
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
worker.on('message', messageHandler);
|
|
118
|
+
})));
|
|
119
|
+
}
|
|
59
120
|
workerCount() {
|
|
60
121
|
return this.#workerCount;
|
|
61
122
|
}
|
package/lib/atlaspack-v3/fs.js
CHANGED
|
@@ -5,6 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.FileSystemV3 = void 0;
|
|
7
7
|
var _jsCallable = require("./jsCallable");
|
|
8
|
+
// @ts-expect-error TS2305
|
|
9
|
+
|
|
10
|
+
// @ts-expect-error TS2420
|
|
8
11
|
class FileSystemV3 {
|
|
9
12
|
#fs;
|
|
10
13
|
constructor(fs) {
|
|
@@ -29,11 +32,11 @@ class FileSystemV3 {
|
|
|
29
32
|
};
|
|
30
33
|
readFile = (0, _jsCallable.jsCallable)((path, encoding) => {
|
|
31
34
|
if (!encoding) {
|
|
32
|
-
// $FlowFixMe
|
|
33
35
|
return [...this.#fs.readFileSync(path)];
|
|
34
36
|
} else {
|
|
35
37
|
return this.#fs.readFileSync(path, encoding);
|
|
36
38
|
}
|
|
37
39
|
});
|
|
40
|
+
writeFile = (0, _jsCallable.jsCallable)((path, contents) => this.#fs.writeFile(path, Buffer.from(contents)));
|
|
38
41
|
}
|
|
39
42
|
exports.FileSystemV3 = FileSystemV3;
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
FileSystemV3: true,
|
|
8
|
+
AtlaspackV3: true,
|
|
9
|
+
NapiWorkerPool: true
|
|
10
|
+
};
|
|
6
11
|
Object.defineProperty(exports, "AtlaspackV3", {
|
|
7
12
|
enumerable: true,
|
|
8
13
|
get: function () {
|
|
@@ -23,4 +28,26 @@ Object.defineProperty(exports, "NapiWorkerPool", {
|
|
|
23
28
|
});
|
|
24
29
|
var _fs = require("./fs");
|
|
25
30
|
var _AtlaspackV = require("./AtlaspackV3");
|
|
26
|
-
|
|
31
|
+
Object.keys(_AtlaspackV).forEach(function (key) {
|
|
32
|
+
if (key === "default" || key === "__esModule") return;
|
|
33
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
34
|
+
if (key in exports && exports[key] === _AtlaspackV[key]) return;
|
|
35
|
+
Object.defineProperty(exports, key, {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () {
|
|
38
|
+
return _AtlaspackV[key];
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
var _NapiWorkerPool = require("./NapiWorkerPool");
|
|
43
|
+
Object.keys(_NapiWorkerPool).forEach(function (key) {
|
|
44
|
+
if (key === "default" || key === "__esModule") return;
|
|
45
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
46
|
+
if (key in exports && exports[key] === _NapiWorkerPool[key]) return;
|
|
47
|
+
Object.defineProperty(exports, key, {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
get: function () {
|
|
50
|
+
return _NapiWorkerPool[key];
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
@@ -7,10 +7,8 @@ exports.jsCallable = jsCallable;
|
|
|
7
7
|
function jsCallable(fn) {
|
|
8
8
|
return async (...args) => {
|
|
9
9
|
try {
|
|
10
|
-
// $FlowFixMe "await" is needed to log the error from
|
|
11
10
|
// Promises and is safe to use on non-promises
|
|
12
11
|
return await fn(...args);
|
|
13
|
-
// $FlowFixMe
|
|
14
12
|
} catch (error) {
|
|
15
13
|
// eslint-disable-next-line no-console
|
|
16
14
|
console.error(error);
|
|
@@ -54,7 +54,7 @@ class MutableDependencySymbols {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/*:: @@iterator(): Iterator<[Symbol, DependencyAssetSymbol]> { return ({}: any); } */
|
|
57
|
-
//
|
|
57
|
+
// @ts-expect-error TS2416
|
|
58
58
|
[Symbol.iterator]() {
|
|
59
59
|
return this.#symbols.values();
|
|
60
60
|
}
|
|
@@ -102,7 +102,7 @@ class AssetSymbols {
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
/*:: @@iterator(): Iterator<[Symbol, AssetSymbol]> { return ({}: any); } */
|
|
105
|
-
//
|
|
105
|
+
// @ts-expect-error TS2416
|
|
106
106
|
[Symbol.iterator]() {
|
|
107
107
|
return this.#symbols.values();
|
|
108
108
|
}
|
|
@@ -122,10 +122,12 @@ class MutableAssetSymbols {
|
|
|
122
122
|
loc,
|
|
123
123
|
local,
|
|
124
124
|
isEsmExport,
|
|
125
|
-
selfReferenced
|
|
125
|
+
selfReferenced,
|
|
126
|
+
isStaticBindingSafe
|
|
126
127
|
} of inner || []) {
|
|
127
128
|
this.set(exported, local, loc, {
|
|
128
129
|
isEsm: isEsmExport,
|
|
130
|
+
isStaticBindingSafe,
|
|
129
131
|
selfReferenced
|
|
130
132
|
});
|
|
131
133
|
}
|
|
@@ -152,6 +154,7 @@ class MutableAssetSymbols {
|
|
|
152
154
|
}
|
|
153
155
|
} : undefined,
|
|
154
156
|
isEsmExport: Boolean(meta === null || meta === void 0 ? void 0 : meta.isEsm),
|
|
157
|
+
isStaticBindingSafe: Boolean(meta === null || meta === void 0 ? void 0 : meta.isStaticBindingSafe),
|
|
155
158
|
isWeak: false,
|
|
156
159
|
selfReferenced: Boolean(meta === null || meta === void 0 ? void 0 : meta.selfReferenced)
|
|
157
160
|
});
|
|
@@ -189,7 +192,7 @@ class MutableAssetSymbols {
|
|
|
189
192
|
}
|
|
190
193
|
|
|
191
194
|
/*:: @@iterator(): Iterator<[Symbol, AssetSymbol]> { return ({}: any); } */
|
|
192
|
-
//
|
|
195
|
+
// @ts-expect-error TS2416
|
|
193
196
|
[Symbol.iterator]() {
|
|
194
197
|
return this.#symbols.values();
|
|
195
198
|
}
|
|
@@ -6,18 +6,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.specifierTypeMap = exports.packageConditionsMap = exports.dependencyPriorityMap = exports.bundleBehaviorMap = exports.BitFlags = void 0;
|
|
7
7
|
/// BitFlags is used to map number/string types from napi types
|
|
8
8
|
class BitFlags {
|
|
9
|
+
// @ts-expect-error TS2344
|
|
9
10
|
#kv;
|
|
10
11
|
#vk;
|
|
12
|
+
|
|
13
|
+
// @ts-expect-error TS2344
|
|
11
14
|
constructor(source) {
|
|
12
15
|
this.#kv = source;
|
|
13
|
-
this.#vk = Object.fromEntries(
|
|
14
|
-
// $FlowFixMe
|
|
15
|
-
Object.entries(source).map(a => a.reverse()));
|
|
16
|
+
this.#vk = Object.fromEntries(Object.entries(source).map(a => a.reverse()));
|
|
16
17
|
}
|
|
17
18
|
into(key) {
|
|
18
19
|
const found = this.#kv[key];
|
|
19
20
|
if (found === undefined) {
|
|
20
|
-
// $FlowFixMe
|
|
21
21
|
throw new Error(`Invalid BundleBehavior(${key})`);
|
|
22
22
|
}
|
|
23
23
|
return found;
|
|
@@ -28,13 +28,9 @@ class BitFlags {
|
|
|
28
28
|
}
|
|
29
29
|
return this.into(key);
|
|
30
30
|
}
|
|
31
|
-
intoArray(keys) {
|
|
32
|
-
return keys.map(key => this.into(key));
|
|
33
|
-
}
|
|
34
31
|
from(key) {
|
|
35
32
|
const found = this.#vk[key];
|
|
36
33
|
if (found === undefined) {
|
|
37
|
-
// $FlowFixMe
|
|
38
34
|
throw new Error(`Invalid BundleBehavior(${key})`);
|
|
39
35
|
}
|
|
40
36
|
return found;
|
|
@@ -45,14 +41,21 @@ class BitFlags {
|
|
|
45
41
|
}
|
|
46
42
|
return this.from(key);
|
|
47
43
|
}
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
toArray(keys) {
|
|
45
|
+
let values = [];
|
|
46
|
+
for (let [key, value] of Object.entries(this.#kv)) {
|
|
47
|
+
if ((keys & value) !== 0) {
|
|
48
|
+
values.push(key);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return values;
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
54
|
exports.BitFlags = BitFlags;
|
|
53
55
|
const bundleBehaviorMap = exports.bundleBehaviorMap = new BitFlags({
|
|
54
56
|
inline: 0,
|
|
55
|
-
isolated: 1
|
|
57
|
+
isolated: 1,
|
|
58
|
+
inlineIsolated: 2
|
|
56
59
|
});
|
|
57
60
|
const dependencyPriorityMap = exports.dependencyPriorityMap = new BitFlags({
|
|
58
61
|
sync: 0,
|
|
@@ -60,21 +63,24 @@ const dependencyPriorityMap = exports.dependencyPriorityMap = new BitFlags({
|
|
|
60
63
|
lazy: 2,
|
|
61
64
|
conditional: 3
|
|
62
65
|
});
|
|
66
|
+
|
|
67
|
+
// Note: The bitflags must match the bitflags in the Rust code.
|
|
68
|
+
// crates/atlaspack_core/src/types/package_json.rs
|
|
63
69
|
const packageConditionsMap = exports.packageConditionsMap = new BitFlags({
|
|
64
|
-
import: 0,
|
|
65
|
-
require: 1,
|
|
66
|
-
module: 2,
|
|
67
|
-
node: 3,
|
|
68
|
-
browser: 4,
|
|
69
|
-
worker: 5,
|
|
70
|
-
worklet: 6,
|
|
71
|
-
electron: 7,
|
|
72
|
-
development: 8,
|
|
73
|
-
production: 9,
|
|
74
|
-
types: 10,
|
|
75
|
-
default: 11,
|
|
76
|
-
style: 12,
|
|
77
|
-
sass: 13
|
|
70
|
+
import: 1 << 0,
|
|
71
|
+
require: 1 << 1,
|
|
72
|
+
module: 1 << 2,
|
|
73
|
+
node: 1 << 3,
|
|
74
|
+
browser: 1 << 4,
|
|
75
|
+
worker: 1 << 5,
|
|
76
|
+
worklet: 1 << 6,
|
|
77
|
+
electron: 1 << 7,
|
|
78
|
+
development: 1 << 8,
|
|
79
|
+
production: 1 << 9,
|
|
80
|
+
types: 1 << 10,
|
|
81
|
+
default: 1 << 11,
|
|
82
|
+
style: 1 << 12,
|
|
83
|
+
sass: 1 << 13
|
|
78
84
|
});
|
|
79
85
|
const specifierTypeMap = exports.specifierTypeMap = new BitFlags({
|
|
80
86
|
esm: 0,
|
|
@@ -7,6 +7,8 @@ exports.Dependency = void 0;
|
|
|
7
7
|
var _target = require("./target");
|
|
8
8
|
var _assetSymbols = require("./asset-symbols");
|
|
9
9
|
var _bitflags = require("./bitflags");
|
|
10
|
+
// @ts-expect-error TS2305
|
|
11
|
+
|
|
10
12
|
class Dependency {
|
|
11
13
|
get id() {
|
|
12
14
|
throw new Error('Dependency.id');
|
|
@@ -24,6 +26,7 @@ class Dependency {
|
|
|
24
26
|
this.bundleBehavior = _bitflags.bundleBehaviorMap.from(inner.bundleBehavior);
|
|
25
27
|
}
|
|
26
28
|
this.bundleBehavior = undefined;
|
|
29
|
+
// @ts-expect-error TS2322
|
|
27
30
|
this.symbols = new _assetSymbols.MutableDependencySymbols(inner.symbols || []);
|
|
28
31
|
this.specifier = inner.specifier;
|
|
29
32
|
this.specifierType = _bitflags.specifierTypeMap.from(inner.specifierType);
|
|
@@ -32,7 +35,7 @@ class Dependency {
|
|
|
32
35
|
this.isOptional = inner.isOptional;
|
|
33
36
|
this.isEntry = inner.isEntry;
|
|
34
37
|
this.loc = inner.loc;
|
|
35
|
-
this.packageConditions = _bitflags.packageConditionsMap.
|
|
38
|
+
this.packageConditions = _bitflags.packageConditionsMap.toArray(inner.packageConditions || []);
|
|
36
39
|
this.sourceAssetId = inner.sourceAssetId;
|
|
37
40
|
this.sourcePath = inner.sourcePath;
|
|
38
41
|
this.sourceAssetType = inner.sourceAssetType;
|