@atlaspack/core 2.16.2-canary.21 → 2.16.2-canary.211
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 +561 -0
- package/dist/AssetGraph.js +591 -0
- package/dist/Atlaspack.js +656 -0
- package/dist/AtlaspackConfig.js +324 -0
- package/dist/AtlaspackConfig.schema.js +108 -0
- package/dist/BundleGraph.js +1628 -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 +531 -0
- package/dist/ReporterRunner.js +151 -0
- package/dist/RequestTracker.js +1368 -0
- package/dist/SymbolPropagation.js +617 -0
- package/dist/TargetDescriptor.schema.js +143 -0
- package/dist/Transformation.js +487 -0
- package/dist/UncommittedAsset.js +315 -0
- package/dist/Validation.js +196 -0
- package/dist/applyRuntimes.js +305 -0
- package/dist/assetUtils.js +168 -0
- package/dist/atlaspack-v3/AtlaspackV3.js +70 -0
- package/dist/atlaspack-v3/NapiWorkerPool.js +57 -0
- package/dist/atlaspack-v3/fs.js +52 -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 +94 -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 +25 -0
- package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
- package/dist/atlaspack-v3/worker/compat/plugin-config.js +76 -0
- package/dist/atlaspack-v3/worker/compat/plugin-logger.js +26 -0
- package/dist/atlaspack-v3/worker/compat/plugin-options.js +122 -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/worker.js +292 -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 +359 -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 +429 -0
- package/dist/requests/AssetGraphRequestRust.js +246 -0
- package/dist/requests/AssetRequest.js +130 -0
- package/dist/requests/AtlaspackBuildRequest.js +60 -0
- package/dist/requests/AtlaspackConfigRequest.js +490 -0
- package/dist/requests/BundleGraphRequest.js +441 -0
- package/dist/requests/ConfigRequest.js +222 -0
- package/dist/requests/DevDepRequest.js +204 -0
- package/dist/requests/EntryRequest.js +314 -0
- package/dist/requests/PackageRequest.js +65 -0
- package/dist/requests/PathRequest.js +349 -0
- package/dist/requests/TargetRequest.js +1310 -0
- package/dist/requests/ValidationRequest.js +49 -0
- package/dist/requests/WriteBundleRequest.js +254 -0
- package/dist/requests/WriteBundlesRequest.js +165 -0
- package/dist/requests/asset-graph-diff.js +126 -0
- package/dist/requests/asset-graph-dot.js +131 -0
- package/dist/resolveOptions.js +268 -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 +111 -14
- package/lib/Atlaspack.js +82 -35
- package/lib/AtlaspackConfig.js +15 -3
- package/lib/AtlaspackConfig.schema.js +7 -5
- package/lib/BundleGraph.js +83 -30
- package/lib/CommittedAsset.js +6 -0
- package/lib/Dependency.js +8 -2
- package/lib/Environment.js +15 -8
- package/lib/EnvironmentManager.js +143 -0
- package/lib/IdentifierRegistry.js +1 -3
- package/lib/InternalConfig.js +3 -2
- package/lib/PackagerRunner.js +66 -23
- package/lib/ReporterRunner.js +6 -9
- package/lib/RequestTracker.js +256 -139
- package/lib/SymbolPropagation.js +22 -3
- package/lib/TargetDescriptor.schema.js +7 -1
- package/lib/Transformation.js +16 -9
- package/lib/UncommittedAsset.js +30 -9
- package/lib/Validation.js +18 -2
- package/lib/applyRuntimes.js +9 -1
- package/lib/assetUtils.js +7 -4
- package/lib/atlaspack-v3/AtlaspackV3.js +32 -7
- package/lib/atlaspack-v3/NapiWorkerPool.js +3 -0
- package/lib/atlaspack-v3/fs.js +3 -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 +7 -6
- package/lib/atlaspack-v3/worker/compat/dependency.js +3 -0
- package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
- package/lib/atlaspack-v3/worker/compat/mutable-asset.js +14 -9
- package/lib/atlaspack-v3/worker/compat/plugin-config.js +8 -10
- package/lib/atlaspack-v3/worker/compat/plugin-options.js +1 -0
- 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/worker.js +34 -6
- package/lib/constants.js +0 -1
- package/lib/dumpGraphToGraphViz.js +71 -16
- package/lib/index.js +45 -1
- package/lib/loadDotEnv.js +4 -1
- package/lib/projectPath.js +5 -0
- package/lib/public/Asset.js +21 -11
- package/lib/public/Bundle.js +15 -16
- package/lib/public/BundleGraph.js +10 -4
- package/lib/public/BundleGroup.js +4 -5
- package/lib/public/Config.js +118 -17
- package/lib/public/Dependency.js +8 -6
- package/lib/public/Environment.js +12 -7
- package/lib/public/MutableBundleGraph.js +54 -12
- package/lib/public/PluginOptions.js +2 -2
- package/lib/public/Symbols.js +11 -11
- package/lib/public/Target.js +7 -6
- package/lib/registerCoreWithSerializer.js +5 -3
- package/lib/requests/AssetGraphRequest.js +41 -4
- package/lib/requests/AssetGraphRequestRust.js +29 -14
- package/lib/requests/AssetRequest.js +23 -6
- package/lib/requests/AtlaspackBuildRequest.js +6 -2
- package/lib/requests/AtlaspackConfigRequest.js +12 -11
- package/lib/requests/BundleGraphRequest.js +29 -18
- package/lib/requests/ConfigRequest.js +28 -4
- package/lib/requests/DevDepRequest.js +31 -5
- package/lib/requests/EntryRequest.js +2 -0
- package/lib/requests/PackageRequest.js +7 -2
- package/lib/requests/PathRequest.js +24 -3
- package/lib/requests/TargetRequest.js +120 -56
- package/lib/requests/ValidationRequest.js +5 -1
- package/lib/requests/WriteBundleRequest.js +39 -11
- package/lib/requests/WriteBundlesRequest.js +24 -2
- package/lib/requests/asset-graph-diff.js +8 -3
- package/lib/requests/asset-graph-dot.js +1 -7
- package/lib/resolveOptions.js +36 -10
- package/lib/rustWorkerThreadDylibHack.js +0 -1
- package/lib/types/AssetGraph.d.ts +80 -0
- package/lib/types/Atlaspack.d.ts +52 -0
- package/lib/types/AtlaspackConfig.d.ts +65 -0
- package/lib/types/AtlaspackConfig.schema.d.ts +46 -0
- package/lib/types/BundleGraph.d.ts +182 -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 +24 -0
- package/lib/types/PackagerRunner.d.ts +80 -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 +26 -0
- package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +12 -0
- package/lib/types/atlaspack-v3/fs.d.ts +12 -0
- package/lib/types/atlaspack-v3/index.d.ts +5 -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 +15 -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 -1
- package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +37 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
- package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +22 -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/worker.d.ts +58 -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 +70 -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 +74 -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 +29 -0
- package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
- package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
- package/lib/types/requests/ConfigRequest.d.ts +59 -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 +28 -0
- package/lib/types/requests/WriteBundlesRequest.d.ts +26 -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 +493 -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 +17 -2
- package/lib/worker.js +29 -13
- package/package.json +24 -34
- package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
- package/src/{Atlaspack.js → Atlaspack.ts} +113 -60
- package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +16 -19
- package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
- package/src/{BundleGraph.js → BundleGraph.ts} +213 -133
- package/src/{CommittedAsset.js → CommittedAsset.ts} +14 -12
- 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} +149 -81
- package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
- package/src/{RequestTracker.js → RequestTracker.ts} +558 -336
- package/src/{SymbolPropagation.js → SymbolPropagation.ts} +137 -39
- package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
- package/src/{Transformation.js → Transformation.ts} +67 -61
- package/src/{UncommittedAsset.js → UncommittedAsset.ts} +57 -36
- package/src/{Validation.js → Validation.ts} +32 -17
- package/src/{applyRuntimes.js → applyRuntimes.ts} +35 -26
- package/src/{assetUtils.js → assetUtils.ts} +47 -35
- package/src/atlaspack-v3/AtlaspackV3.ts +122 -0
- package/src/atlaspack-v3/{NapiWorkerPool.js → NapiWorkerPool.ts} +10 -5
- package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
- package/src/atlaspack-v3/{index.js → index.ts} +2 -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.js → bitflags.ts} +9 -10
- package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +12 -12
- package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
- package/src/atlaspack-v3/worker/compat/index.ts +9 -0
- package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +20 -19
- package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +27 -26
- package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
- package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +4 -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/{worker.js → worker.ts} +94 -65
- 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} +40 -27
- package/src/public/{Bundle.js → Bundle.ts} +28 -29
- package/src/public/{BundleGraph.js → BundleGraph.ts} +81 -50
- 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} +83 -48
- package/src/requests/{AssetGraphRequestRust.js → AssetGraphRequestRust.ts} +36 -29
- package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
- package/src/requests/{AtlaspackBuildRequest.js → AtlaspackBuildRequest.ts} +30 -31
- package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +58 -51
- package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +66 -57
- package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +71 -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} +21 -21
- package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
- package/src/requests/{TargetRequest.js → TargetRequest.ts} +259 -179
- package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
- package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
- package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +77 -34
- package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +14 -14
- package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
- package/src/{resolveOptions.js → resolveOptions.ts} +56 -24
- 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 +647 -0
- package/src/{utils.js → utils.ts} +52 -21
- package/src/{worker.js → worker.ts} +49 -41
- package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -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} +3 -15
- 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} +314 -59
- package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
- package/test/{TargetRequest.test.js → TargetRequest.test.ts} +54 -92
- package/test/public/Config.test.ts +104 -0
- package/test/requests/{AssetGraphRequestRust.test.js → AssetGraphRequestRust.test.ts} +163 -134
- package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
- package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
- package/test/{test-utils.js → test-utils.ts} +4 -11
- package/test/{utils.test.js → utils.test.ts} +1 -3
- package/tsconfig.json +57 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/index.d.ts +0 -30
- package/src/atlaspack-v3/AtlaspackV3.js +0 -87
- package/src/atlaspack-v3/jsCallable.js +0 -18
- package/src/index.js +0 -13
- 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
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
1
|
import type {
|
|
3
2
|
Config as IConfig,
|
|
4
3
|
ConfigResult,
|
|
@@ -20,19 +19,98 @@ import {
|
|
|
20
19
|
} from '@atlaspack/utils';
|
|
21
20
|
import Environment from './Environment';
|
|
22
21
|
import {fromProjectPath, toProjectPath} from '../projectPath';
|
|
22
|
+
import {fromEnvironmentId} from '../EnvironmentManager';
|
|
23
23
|
|
|
24
24
|
const internalConfigToConfig: DefaultWeakMap<
|
|
25
25
|
AtlaspackOptions,
|
|
26
|
-
WeakMap<Config, PublicConfig
|
|
26
|
+
WeakMap<Config, PublicConfig>
|
|
27
27
|
> = new DefaultWeakMap(() => new WeakMap());
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Implements read tracking over an object.
|
|
31
|
+
*
|
|
32
|
+
* Calling this function with a non-trivial object like a class instance will fail to work.
|
|
33
|
+
*
|
|
34
|
+
* We track reads to fields that resolve to:
|
|
35
|
+
*
|
|
36
|
+
* - primitive values
|
|
37
|
+
* - arrays
|
|
38
|
+
*
|
|
39
|
+
* That is, reading a nested field `a.b.c` will make a single call to `onRead` with the path
|
|
40
|
+
* `['a', 'b', 'c']`.
|
|
41
|
+
*
|
|
42
|
+
* In case the value is null or an array, we will track the read as well.
|
|
43
|
+
*
|
|
44
|
+
* Iterating over `Object.keys(obj.field)` will register a read for the `['field']` path.
|
|
45
|
+
* Other reads work normally.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
*
|
|
49
|
+
* const usedPaths = new Set();
|
|
50
|
+
* const onRead = (path) => {
|
|
51
|
+
* usedPaths.add(path);
|
|
52
|
+
* };
|
|
53
|
+
*
|
|
54
|
+
* const config = makeConfigProxy(onRead, {a: {b: {c: 'd'}}})
|
|
55
|
+
* console.log(config.a.b.c);
|
|
56
|
+
* console.log(Array.from(usedPaths));
|
|
57
|
+
* // We get a single read for the path
|
|
58
|
+
* // ['a', 'b', 'c']
|
|
59
|
+
*
|
|
60
|
+
*/
|
|
61
|
+
export function makeConfigProxy<T>(
|
|
62
|
+
onRead: (path: string[]) => void,
|
|
63
|
+
config: T,
|
|
64
|
+
): T {
|
|
65
|
+
const reportedPaths = new Set();
|
|
66
|
+
const reportPath = (path: Array<string>) => {
|
|
67
|
+
if (reportedPaths.has(path)) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
reportedPaths.add(path);
|
|
71
|
+
onRead(path);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const makeProxy = (target: T, path: Array<string>) => {
|
|
75
|
+
// @ts-expect-error TS2345
|
|
76
|
+
return new Proxy(target, {
|
|
77
|
+
ownKeys(target: T) {
|
|
78
|
+
reportPath(path);
|
|
79
|
+
|
|
80
|
+
return Object.getOwnPropertyNames(target);
|
|
81
|
+
},
|
|
82
|
+
get(target: T, prop: string) {
|
|
83
|
+
// @ts-expect-error TS7053
|
|
84
|
+
const value = target[prop];
|
|
85
|
+
|
|
86
|
+
if (
|
|
87
|
+
typeof value === 'object' &&
|
|
88
|
+
value != null &&
|
|
89
|
+
!Array.isArray(value)
|
|
90
|
+
) {
|
|
91
|
+
return makeProxy(value, [...path, prop]);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
reportPath([...path, prop]);
|
|
95
|
+
|
|
96
|
+
return value;
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
};
|
|
34
100
|
|
|
35
|
-
|
|
101
|
+
// @ts-expect-error TS2322
|
|
102
|
+
return makeProxy(config, []);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export default class PublicConfig implements IConfig {
|
|
106
|
+
// @ts-expect-error TS2564
|
|
107
|
+
#config: Config;
|
|
108
|
+
#pkg: PackageJSON | null | undefined;
|
|
109
|
+
#pkgFilePath: FilePath | null | undefined;
|
|
110
|
+
// @ts-expect-error TS2564
|
|
111
|
+
#options: AtlaspackOptions;
|
|
112
|
+
|
|
113
|
+
constructor(config: Config, options: AtlaspackOptions) {
|
|
36
114
|
let existing = internalConfigToConfig.get(options).get(config);
|
|
37
115
|
if (existing != null) {
|
|
38
116
|
return existing;
|
|
@@ -45,7 +123,7 @@ export default class PublicConfig implements IConfig {
|
|
|
45
123
|
}
|
|
46
124
|
|
|
47
125
|
get env(): Environment {
|
|
48
|
-
return new Environment(this.#config.env, this.#options);
|
|
126
|
+
return new Environment(fromEnvironmentId(this.#config.env), this.#options);
|
|
49
127
|
}
|
|
50
128
|
|
|
51
129
|
get searchPath(): FilePath {
|
|
@@ -60,7 +138,6 @@ export default class PublicConfig implements IConfig {
|
|
|
60
138
|
return this.#config.isSource;
|
|
61
139
|
}
|
|
62
140
|
|
|
63
|
-
// $FlowFixMe
|
|
64
141
|
setResult(result: any): void {
|
|
65
142
|
this.#config.result = result;
|
|
66
143
|
}
|
|
@@ -75,7 +152,7 @@ export default class PublicConfig implements IConfig {
|
|
|
75
152
|
);
|
|
76
153
|
}
|
|
77
154
|
|
|
78
|
-
invalidateOnConfigKeyChange(filePath: FilePath, configKey: string) {
|
|
155
|
+
invalidateOnConfigKeyChange(filePath: FilePath, configKey: string[]) {
|
|
79
156
|
this.#config.invalidateOnConfigKeyChange.push({
|
|
80
157
|
filePath: toProjectPath(this.#options.projectRoot, filePath),
|
|
81
158
|
configKey,
|
|
@@ -86,31 +163,43 @@ export default class PublicConfig implements IConfig {
|
|
|
86
163
|
this.#config.devDeps.push({
|
|
87
164
|
...devDep,
|
|
88
165
|
resolveFrom: toProjectPath(this.#options.projectRoot, devDep.resolveFrom),
|
|
89
|
-
additionalInvalidations: devDep.additionalInvalidations?.map(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
166
|
+
additionalInvalidations: devDep.additionalInvalidations?.map(
|
|
167
|
+
(i: {
|
|
168
|
+
// @ts-expect-error TS2304
|
|
169
|
+
range?: SemverRange | null | undefined;
|
|
170
|
+
resolveFrom: FilePath;
|
|
171
|
+
// @ts-expect-error TS2304
|
|
172
|
+
specifier: DependencySpecifier;
|
|
173
|
+
}) => ({
|
|
174
|
+
...i,
|
|
175
|
+
resolveFrom: toProjectPath(this.#options.projectRoot, i.resolveFrom),
|
|
176
|
+
}),
|
|
177
|
+
),
|
|
93
178
|
});
|
|
94
179
|
}
|
|
95
180
|
|
|
96
181
|
invalidateOnFileCreate(invalidation: FileCreateInvalidation) {
|
|
182
|
+
// @ts-expect-error TS2339
|
|
97
183
|
if (invalidation.glob != null) {
|
|
98
|
-
// $FlowFixMe
|
|
99
184
|
this.#config.invalidateOnFileCreate.push(invalidation);
|
|
185
|
+
// @ts-expect-error TS2339
|
|
100
186
|
} else if (invalidation.filePath != null) {
|
|
101
187
|
this.#config.invalidateOnFileCreate.push({
|
|
102
188
|
filePath: toProjectPath(
|
|
103
189
|
this.#options.projectRoot,
|
|
190
|
+
// @ts-expect-error TS2339
|
|
104
191
|
invalidation.filePath,
|
|
105
192
|
),
|
|
106
193
|
});
|
|
107
194
|
} else {
|
|
195
|
+
// @ts-expect-error TS2339
|
|
108
196
|
invariant(invalidation.aboveFilePath != null);
|
|
109
197
|
this.#config.invalidateOnFileCreate.push({
|
|
110
|
-
//
|
|
198
|
+
// @ts-expect-error TS2339
|
|
111
199
|
fileName: invalidation.fileName,
|
|
112
200
|
aboveFilePath: toProjectPath(
|
|
113
201
|
this.#options.projectRoot,
|
|
202
|
+
// @ts-expect-error TS2339
|
|
114
203
|
invalidation.aboveFilePath,
|
|
115
204
|
),
|
|
116
205
|
});
|
|
@@ -132,29 +221,69 @@ export default class PublicConfig implements IConfig {
|
|
|
132
221
|
async getConfigFrom<T>(
|
|
133
222
|
searchPath: FilePath,
|
|
134
223
|
fileNames: Array<string>,
|
|
135
|
-
options:
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
224
|
+
options:
|
|
225
|
+
| {
|
|
226
|
+
/**
|
|
227
|
+
* @deprecated Use `configKey` instead.
|
|
228
|
+
*/
|
|
229
|
+
packageKey?: string;
|
|
230
|
+
parse?: boolean;
|
|
231
|
+
exclude?: boolean;
|
|
232
|
+
}
|
|
233
|
+
| null
|
|
234
|
+
| undefined
|
|
235
|
+
| {
|
|
236
|
+
/**
|
|
237
|
+
* If specified, this function will return a proxy object that will track reads to
|
|
238
|
+
* config fields and only register invalidations for when those keys change.
|
|
239
|
+
*/
|
|
240
|
+
readTracking?: boolean;
|
|
241
|
+
}
|
|
242
|
+
| null
|
|
243
|
+
| undefined,
|
|
244
|
+
): Promise<ConfigResultWithFilePath<T> | null | undefined> {
|
|
245
|
+
// @ts-expect-error TS2339
|
|
141
246
|
let packageKey = options?.packageKey;
|
|
142
247
|
if (packageKey != null) {
|
|
143
248
|
let pkg = await this.getConfigFrom(searchPath, ['package.json'], {
|
|
144
249
|
exclude: true,
|
|
145
250
|
});
|
|
146
251
|
|
|
252
|
+
// @ts-expect-error TS18046
|
|
147
253
|
if (pkg && pkg.contents[packageKey]) {
|
|
148
254
|
// Invalidate only when the package key changes
|
|
149
|
-
this.invalidateOnConfigKeyChange(pkg.filePath, packageKey);
|
|
255
|
+
this.invalidateOnConfigKeyChange(pkg.filePath, [packageKey]);
|
|
150
256
|
|
|
151
257
|
return {
|
|
258
|
+
// @ts-expect-error TS18046
|
|
152
259
|
contents: pkg.contents[packageKey],
|
|
153
260
|
filePath: pkg.filePath,
|
|
154
261
|
};
|
|
155
262
|
}
|
|
156
263
|
}
|
|
157
264
|
|
|
265
|
+
// @ts-expect-error TS2339
|
|
266
|
+
const readTracking = options?.readTracking;
|
|
267
|
+
if (readTracking === true) {
|
|
268
|
+
for (let fileName of fileNames) {
|
|
269
|
+
const config = await this.getConfigFrom(searchPath, [fileName], {
|
|
270
|
+
exclude: true,
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
if (config != null) {
|
|
274
|
+
// @ts-expect-error TS2322
|
|
275
|
+
return Promise.resolve({
|
|
276
|
+
contents: makeConfigProxy((keyPath) => {
|
|
277
|
+
this.invalidateOnConfigKeyChange(config.filePath, keyPath);
|
|
278
|
+
}, config.contents),
|
|
279
|
+
filePath: config.filePath,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// fall through so that file above invalidations are registered
|
|
285
|
+
}
|
|
286
|
+
|
|
158
287
|
if (fileNames.length === 0) {
|
|
159
288
|
return null;
|
|
160
289
|
}
|
|
@@ -167,6 +296,7 @@ export default class PublicConfig implements IConfig {
|
|
|
167
296
|
});
|
|
168
297
|
}
|
|
169
298
|
|
|
299
|
+
// @ts-expect-error TS2339
|
|
170
300
|
let parse = options && options.parse;
|
|
171
301
|
let configFilePath = await resolveConfig(
|
|
172
302
|
this.#options.inputFS,
|
|
@@ -178,6 +308,7 @@ export default class PublicConfig implements IConfig {
|
|
|
178
308
|
return null;
|
|
179
309
|
}
|
|
180
310
|
|
|
311
|
+
// @ts-expect-error TS2339
|
|
181
312
|
if (!options || !options.exclude) {
|
|
182
313
|
this.invalidateOnFileChange(configFilePath);
|
|
183
314
|
}
|
|
@@ -203,7 +334,6 @@ export default class PublicConfig implements IConfig {
|
|
|
203
334
|
);
|
|
204
335
|
|
|
205
336
|
if (
|
|
206
|
-
// $FlowFixMe
|
|
207
337
|
Object.prototype.toString.call(config) === '[object Module]' &&
|
|
208
338
|
config.default != null
|
|
209
339
|
) {
|
|
@@ -234,21 +364,29 @@ export default class PublicConfig implements IConfig {
|
|
|
234
364
|
|
|
235
365
|
getConfig<T>(
|
|
236
366
|
filePaths: Array<FilePath>,
|
|
237
|
-
options:
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
367
|
+
options:
|
|
368
|
+
| {
|
|
369
|
+
packageKey?: string;
|
|
370
|
+
parse?: boolean;
|
|
371
|
+
exclude?: boolean;
|
|
372
|
+
}
|
|
373
|
+
| null
|
|
374
|
+
| undefined
|
|
375
|
+
| {
|
|
376
|
+
readTracking?: boolean;
|
|
377
|
+
},
|
|
378
|
+
): Promise<ConfigResultWithFilePath<T> | null | undefined> {
|
|
243
379
|
return this.getConfigFrom(this.searchPath, filePaths, options);
|
|
244
380
|
}
|
|
245
381
|
|
|
246
|
-
async getPackage(): Promise
|
|
382
|
+
async getPackage(): Promise<PackageJSON | null | undefined> {
|
|
247
383
|
if (this.#pkg) {
|
|
248
384
|
return this.#pkg;
|
|
249
385
|
}
|
|
250
386
|
|
|
251
|
-
let pkgConfig = await this.getConfig<PackageJSON>(['package.json']
|
|
387
|
+
let pkgConfig = await this.getConfig<PackageJSON>(['package.json'], {
|
|
388
|
+
readTracking: true,
|
|
389
|
+
});
|
|
252
390
|
if (!pkgConfig) {
|
|
253
391
|
return null;
|
|
254
392
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @flow
|
|
2
1
|
import type {
|
|
3
2
|
Dependency as IDependency,
|
|
4
3
|
Environment as IEnvironment,
|
|
@@ -27,6 +26,7 @@ import {
|
|
|
27
26
|
} from '../types';
|
|
28
27
|
import {fromProjectPath} from '../projectPath';
|
|
29
28
|
import {fromInternalSourceLocation} from '../utils';
|
|
29
|
+
import {fromEnvironmentId} from '../EnvironmentManager';
|
|
30
30
|
|
|
31
31
|
const SpecifierTypeNames = Object.keys(SpecifierTypeMap);
|
|
32
32
|
const PriorityNames = Object.keys(Priority);
|
|
@@ -37,7 +37,7 @@ const internalDependencyToDependency: WeakMap<InternalDependency, Dependency> =
|
|
|
37
37
|
new WeakMap();
|
|
38
38
|
const _dependencyToInternalDependency: WeakMap<
|
|
39
39
|
IDependency,
|
|
40
|
-
InternalDependency
|
|
40
|
+
InternalDependency
|
|
41
41
|
> = new WeakMap();
|
|
42
42
|
export function dependencyToInternalDependency(
|
|
43
43
|
dependency: IDependency,
|
|
@@ -58,10 +58,10 @@ export function getPublicDependency(
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
export default class Dependency implements IDependency {
|
|
61
|
-
#dep
|
|
62
|
-
#options
|
|
61
|
+
#dep: InternalDependency;
|
|
62
|
+
#options: AtlaspackOptions;
|
|
63
63
|
|
|
64
|
-
constructor(dep: InternalDependency, options: AtlaspackOptions)
|
|
64
|
+
constructor(dep: InternalDependency, options: AtlaspackOptions) {
|
|
65
65
|
this.#dep = dep;
|
|
66
66
|
this.#options = options;
|
|
67
67
|
_dependencyToInternalDependency.set(this, dep);
|
|
@@ -69,7 +69,6 @@ export default class Dependency implements IDependency {
|
|
|
69
69
|
return this;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
// $FlowFixMe
|
|
73
72
|
[inspect](): string {
|
|
74
73
|
return `Dependency(${String(this.sourcePath)} -> ${this.specifier})`;
|
|
75
74
|
}
|
|
@@ -83,10 +82,12 @@ export default class Dependency implements IDependency {
|
|
|
83
82
|
}
|
|
84
83
|
|
|
85
84
|
get specifierType(): SpecifierType {
|
|
85
|
+
// @ts-expect-error TS2322
|
|
86
86
|
return SpecifierTypeNames[this.#dep.specifierType];
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
get priority(): DependencyPriority {
|
|
90
|
+
// @ts-expect-error TS2322
|
|
90
91
|
return PriorityNames[this.#dep.priority];
|
|
91
92
|
}
|
|
92
93
|
|
|
@@ -94,7 +95,7 @@ export default class Dependency implements IDependency {
|
|
|
94
95
|
return this.#dep.needsStableName;
|
|
95
96
|
}
|
|
96
97
|
|
|
97
|
-
get bundleBehavior():
|
|
98
|
+
get bundleBehavior(): BundleBehavior | null | undefined {
|
|
98
99
|
let bundleBehavior = this.#dep.bundleBehavior;
|
|
99
100
|
return bundleBehavior == null ? null : BundleBehaviorNames[bundleBehavior];
|
|
100
101
|
}
|
|
@@ -107,15 +108,15 @@ export default class Dependency implements IDependency {
|
|
|
107
108
|
return this.#dep.isOptional;
|
|
108
109
|
}
|
|
109
110
|
|
|
110
|
-
get loc():
|
|
111
|
+
get loc(): SourceLocation | null | undefined {
|
|
111
112
|
return fromInternalSourceLocation(this.#options.projectRoot, this.#dep.loc);
|
|
112
113
|
}
|
|
113
114
|
|
|
114
115
|
get env(): IEnvironment {
|
|
115
|
-
return new Environment(this.#dep.env, this.#options);
|
|
116
|
+
return new Environment(fromEnvironmentId(this.#dep.env), this.#options);
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
get packageConditions():
|
|
119
|
+
get packageConditions(): Array<string> | null | undefined {
|
|
119
120
|
// Merge custom conditions with conditions stored as bitflags.
|
|
120
121
|
// Order is not important because exports conditions are resolved
|
|
121
122
|
// in the order they are declared in the package.json.
|
|
@@ -123,6 +124,7 @@ export default class Dependency implements IDependency {
|
|
|
123
124
|
if (this.#dep.packageConditions) {
|
|
124
125
|
conditions = conditions ? [...conditions] : [];
|
|
125
126
|
for (let key in ExportsCondition) {
|
|
127
|
+
// @ts-expect-error TS7053
|
|
126
128
|
if (this.#dep.packageConditions & ExportsCondition[key]) {
|
|
127
129
|
conditions.push(key);
|
|
128
130
|
}
|
|
@@ -137,40 +139,41 @@ export default class Dependency implements IDependency {
|
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
get symbols(): IMutableDependencySymbols {
|
|
142
|
+
// @ts-expect-error TS2322
|
|
140
143
|
return new MutableDependencySymbols(this.#options, this.#dep);
|
|
141
144
|
}
|
|
142
145
|
|
|
143
|
-
get target():
|
|
146
|
+
get target(): Target | null | undefined {
|
|
144
147
|
let target = this.#dep.target;
|
|
145
148
|
return target ? new Target(target, this.#options) : null;
|
|
146
149
|
}
|
|
147
150
|
|
|
148
|
-
get sourceAssetId():
|
|
151
|
+
get sourceAssetId(): string | null | undefined {
|
|
149
152
|
// TODO: does this need to be public?
|
|
150
153
|
return this.#dep.sourceAssetId;
|
|
151
154
|
}
|
|
152
155
|
|
|
153
|
-
get sourcePath():
|
|
156
|
+
get sourcePath(): FilePath | null | undefined {
|
|
154
157
|
// TODO: does this need to be public?
|
|
155
158
|
return fromProjectPath(this.#options.projectRoot, this.#dep.sourcePath);
|
|
156
159
|
}
|
|
157
160
|
|
|
158
|
-
get sourceAssetType():
|
|
161
|
+
get sourceAssetType(): string | null | undefined {
|
|
159
162
|
return this.#dep.sourceAssetType;
|
|
160
163
|
}
|
|
161
164
|
|
|
162
|
-
get resolveFrom():
|
|
165
|
+
get resolveFrom(): string | null | undefined {
|
|
163
166
|
return fromProjectPath(
|
|
164
167
|
this.#options.projectRoot,
|
|
165
168
|
this.#dep.resolveFrom ?? this.#dep.sourcePath,
|
|
166
169
|
);
|
|
167
170
|
}
|
|
168
171
|
|
|
169
|
-
get range():
|
|
172
|
+
get range(): string | null | undefined {
|
|
170
173
|
return this.#dep.range;
|
|
171
174
|
}
|
|
172
175
|
|
|
173
|
-
get pipeline():
|
|
176
|
+
get pipeline(): string | null | undefined {
|
|
174
177
|
return this.#dep.pipeline;
|
|
175
178
|
}
|
|
176
179
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @flow strict-local
|
|
2
1
|
import type {
|
|
3
2
|
Environment as IEnvironment,
|
|
4
3
|
EnvironmentContext,
|
|
@@ -10,6 +9,7 @@ import type {
|
|
|
10
9
|
SourceLocation,
|
|
11
10
|
SourceType,
|
|
12
11
|
TargetSourceMapOptions,
|
|
12
|
+
EnvMap,
|
|
13
13
|
} from '@atlaspack/types';
|
|
14
14
|
import type {
|
|
15
15
|
Environment as InternalEnvironment,
|
|
@@ -27,12 +27,17 @@ export const BROWSER_ENVS: Set<string> = new Set<string>([
|
|
|
27
27
|
'web-worker',
|
|
28
28
|
'service-worker',
|
|
29
29
|
'worklet',
|
|
30
|
+
'tesseract',
|
|
30
31
|
'electron-renderer',
|
|
31
32
|
]);
|
|
32
33
|
const ELECTRON_ENVS = new Set(['electron-main', 'electron-renderer']);
|
|
33
34
|
const NODE_ENVS = new Set(['node', ...ELECTRON_ENVS]);
|
|
34
35
|
const WORKER_ENVS = new Set(['web-worker', 'service-worker']);
|
|
35
|
-
export const ISOLATED_ENVS: Set<string> = new Set([
|
|
36
|
+
export const ISOLATED_ENVS: Set<string> = new Set([
|
|
37
|
+
...WORKER_ENVS,
|
|
38
|
+
'worklet',
|
|
39
|
+
'tesseract',
|
|
40
|
+
]);
|
|
36
41
|
|
|
37
42
|
const ALL_BROWSERS = [
|
|
38
43
|
'chrome',
|
|
@@ -139,15 +144,15 @@ const supportData = {
|
|
|
139
144
|
android: '71',
|
|
140
145
|
samsung: '10.1',
|
|
141
146
|
},
|
|
142
|
-
};
|
|
147
|
+
} as const;
|
|
143
148
|
|
|
144
149
|
const internalEnvironmentToEnvironment: WeakMap<
|
|
145
150
|
InternalEnvironment,
|
|
146
|
-
Environment
|
|
151
|
+
Environment
|
|
147
152
|
> = new WeakMap();
|
|
148
153
|
const _environmentToInternalEnvironment: WeakMap<
|
|
149
154
|
IEnvironment,
|
|
150
|
-
InternalEnvironment
|
|
155
|
+
InternalEnvironment
|
|
151
156
|
> = new WeakMap();
|
|
152
157
|
export function environmentToInternalEnvironment(
|
|
153
158
|
environment: IEnvironment,
|
|
@@ -156,13 +161,12 @@ export function environmentToInternalEnvironment(
|
|
|
156
161
|
}
|
|
157
162
|
|
|
158
163
|
export default class Environment implements IEnvironment {
|
|
159
|
-
|
|
160
|
-
#
|
|
164
|
+
// @ts-expect-error TS2564
|
|
165
|
+
#environment: InternalEnvironment;
|
|
166
|
+
// @ts-expect-error TS2564
|
|
167
|
+
#options: AtlaspackOptions;
|
|
161
168
|
|
|
162
|
-
constructor(
|
|
163
|
-
env: InternalEnvironment,
|
|
164
|
-
options: AtlaspackOptions,
|
|
165
|
-
): Environment {
|
|
169
|
+
constructor(env: InternalEnvironment, options: AtlaspackOptions) {
|
|
166
170
|
let existing = internalEnvironmentToEnvironment.get(env);
|
|
167
171
|
if (existing != null) {
|
|
168
172
|
return existing;
|
|
@@ -190,7 +194,7 @@ export default class Environment implements IEnvironment {
|
|
|
190
194
|
get includeNodeModules():
|
|
191
195
|
| boolean
|
|
192
196
|
| Array<PackageName>
|
|
193
|
-
|
|
|
197
|
+
| Partial<Record<PackageName, boolean>> {
|
|
194
198
|
return this.#environment.includeNodeModules;
|
|
195
199
|
}
|
|
196
200
|
|
|
@@ -214,11 +218,11 @@ export default class Environment implements IEnvironment {
|
|
|
214
218
|
return this.#environment.shouldScopeHoist;
|
|
215
219
|
}
|
|
216
220
|
|
|
217
|
-
get sourceMap():
|
|
221
|
+
get sourceMap(): TargetSourceMapOptions | null | undefined {
|
|
218
222
|
return this.#environment.sourceMap;
|
|
219
223
|
}
|
|
220
224
|
|
|
221
|
-
get loc():
|
|
225
|
+
get loc(): SourceLocation | null | undefined {
|
|
222
226
|
return fromInternalSourceLocation(
|
|
223
227
|
this.#options.projectRoot,
|
|
224
228
|
this.#environment.loc,
|
|
@@ -229,7 +233,10 @@ export default class Environment implements IEnvironment {
|
|
|
229
233
|
return this.#environment.unstableSingleFileOutput;
|
|
230
234
|
}
|
|
231
235
|
|
|
232
|
-
|
|
236
|
+
get customEnv(): EnvMap | null | undefined {
|
|
237
|
+
return this.#environment.customEnv;
|
|
238
|
+
}
|
|
239
|
+
|
|
233
240
|
[inspect](): string {
|
|
234
241
|
return `Env(${this.#environment.context})`;
|
|
235
242
|
}
|
|
@@ -258,9 +265,13 @@ export default class Environment implements IEnvironment {
|
|
|
258
265
|
return this.#environment.context === 'worklet';
|
|
259
266
|
}
|
|
260
267
|
|
|
268
|
+
isTesseract(): boolean {
|
|
269
|
+
return this.#environment.context === 'tesseract';
|
|
270
|
+
}
|
|
271
|
+
|
|
261
272
|
matchesEngines(
|
|
262
273
|
minVersions: VersionMap,
|
|
263
|
-
defaultValue
|
|
274
|
+
defaultValue: boolean = false,
|
|
264
275
|
): boolean {
|
|
265
276
|
// Determine if the environment matches some minimum version requirements.
|
|
266
277
|
// For browsers, we run a browserslist query with and without the minimum
|
|
@@ -306,7 +317,7 @@ export default class Environment implements IEnvironment {
|
|
|
306
317
|
}
|
|
307
318
|
|
|
308
319
|
function getExcludedBrowsers(minVersions: VersionMap) {
|
|
309
|
-
let browsers = [];
|
|
320
|
+
let browsers: Array<string> = [];
|
|
310
321
|
for (let browser of ALL_BROWSERS) {
|
|
311
322
|
let version = minVersions[browser];
|
|
312
323
|
if (version) {
|