@granite-js/mpack 0.0.1
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 +46 -0
- package/LICENSE +202 -0
- package/README.md +24 -0
- package/dist/bundler/Bundler.d.ts +24 -0
- package/dist/bundler/Bundler.js +175 -0
- package/dist/bundler/PluginDriver.d.ts +9 -0
- package/dist/bundler/PluginDriver.js +47 -0
- package/dist/bundler/index.d.ts +1 -0
- package/dist/bundler/index.js +22 -0
- package/dist/bundler/plugins/buildStatusPlugin/buildStatusPlugin.d.ts +12 -0
- package/dist/bundler/plugins/buildStatusPlugin/buildStatusPlugin.js +75 -0
- package/dist/bundler/plugins/buildStatusPlugin/index.d.ts +1 -0
- package/dist/bundler/plugins/buildStatusPlugin/index.js +28 -0
- package/dist/bundler/plugins/dependencyAliasPlugin/aliasResolver.d.ts +3 -0
- package/dist/bundler/plugins/dependencyAliasPlugin/aliasResolver.js +89 -0
- package/dist/bundler/plugins/dependencyAliasPlugin/dependencyAliasPlugin.d.ts +3 -0
- package/dist/bundler/plugins/dependencyAliasPlugin/dependencyAliasPlugin.js +43 -0
- package/dist/bundler/plugins/dependencyAliasPlugin/index.d.ts +1 -0
- package/dist/bundler/plugins/dependencyAliasPlugin/index.js +28 -0
- package/dist/bundler/plugins/dependencyAliasPlugin/protocolResolver.d.ts +3 -0
- package/dist/bundler/plugins/dependencyAliasPlugin/protocolResolver.js +53 -0
- package/dist/bundler/plugins/index.d.ts +4 -0
- package/dist/bundler/plugins/index.js +28 -0
- package/dist/bundler/plugins/requireContextPlugin/index.d.ts +1 -0
- package/dist/bundler/plugins/requireContextPlugin/index.js +28 -0
- package/dist/bundler/plugins/requireContextPlugin/requireContextPlugin.d.ts +6 -0
- package/dist/bundler/plugins/requireContextPlugin/requireContextPlugin.js +101 -0
- package/dist/bundler/plugins/requireContextPlugin/scripts.d.ts +56 -0
- package/dist/bundler/plugins/requireContextPlugin/scripts.js +65 -0
- package/dist/bundler/plugins/shared/swc.d.ts +11 -0
- package/dist/bundler/plugins/shared/swc.js +70 -0
- package/dist/bundler/plugins/transformPlugin/helpers/preludeScript.d.ts +23 -0
- package/dist/bundler/plugins/transformPlugin/helpers/preludeScript.js +79 -0
- package/dist/bundler/plugins/transformPlugin/index.d.ts +1 -0
- package/dist/bundler/plugins/transformPlugin/index.js +28 -0
- package/dist/bundler/plugins/transformPlugin/steps/createCacheSteps.d.ts +10 -0
- package/dist/bundler/plugins/transformPlugin/steps/createCacheSteps.js +56 -0
- package/dist/bundler/plugins/transformPlugin/steps/createFullyTransformStep.d.ts +8 -0
- package/dist/bundler/plugins/transformPlugin/steps/createFullyTransformStep.js +120 -0
- package/dist/bundler/plugins/transformPlugin/steps/createStripFlowStep.d.ts +6 -0
- package/dist/bundler/plugins/transformPlugin/steps/createStripFlowStep.js +91 -0
- package/dist/bundler/plugins/transformPlugin/steps/createTransformToHermesSyntaxStep.d.ts +8 -0
- package/dist/bundler/plugins/transformPlugin/steps/createTransformToHermesSyntaxStep.js +100 -0
- package/dist/bundler/plugins/transformPlugin/transformPlugin.d.ts +8 -0
- package/dist/bundler/plugins/transformPlugin/transformPlugin.js +88 -0
- package/dist/bundler/plugins/types.d.ts +7 -0
- package/dist/bundler/plugins/types.js +16 -0
- package/dist/bundler/types.d.ts +17 -0
- package/dist/bundler/types.js +16 -0
- package/dist/cache/Cache.d.ts +25 -0
- package/dist/cache/Cache.js +87 -0
- package/dist/cache/index.d.ts +1 -0
- package/dist/cache/index.js +22 -0
- package/dist/constants/index.d.ts +20 -0
- package/dist/constants/index.js +91 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +60 -0
- package/dist/logger/Logger.d.ts +17 -0
- package/dist/logger/Logger.js +115 -0
- package/dist/logger/clientLogger.d.ts +2 -0
- package/dist/logger/clientLogger.js +49 -0
- package/dist/logger/index.d.ts +3 -0
- package/dist/logger/index.js +31 -0
- package/dist/metro/assetRegistry.d.ts +12 -0
- package/dist/metro/assetRegistry.js +57 -0
- package/dist/metro/enhancedResolver.d.ts +7 -0
- package/dist/metro/enhancedResolver.js +127 -0
- package/dist/metro/getMetroConfig.d.ts +12 -0
- package/dist/metro/getMetroConfig.js +138 -0
- package/dist/metro/getMonorepoRoot.d.ts +4 -0
- package/dist/metro/getMonorepoRoot.js +80 -0
- package/dist/metro/index.d.ts +3 -0
- package/dist/metro/index.js +24 -0
- package/dist/metro/pnpapi.d.ts +6 -0
- package/dist/metro/pnpapi.js +32 -0
- package/dist/metro/runBuild.d.ts +12 -0
- package/dist/metro/runBuild.js +66 -0
- package/dist/metro/runtime.d.ts +3 -0
- package/dist/metro/runtime.js +56 -0
- package/dist/metro/types.d.ts +88 -0
- package/dist/metro/types.js +16 -0
- package/dist/operations/constants.d.ts +3 -0
- package/dist/operations/constants.js +34 -0
- package/dist/operations/createDebuggerMiddleware.d.ts +11 -0
- package/dist/operations/createDebuggerMiddleware.js +128 -0
- package/dist/operations/experimental/StartMenuHandler.d.ts +13 -0
- package/dist/operations/experimental/StartMenuHandler.js +86 -0
- package/dist/operations/experimental/runServer.d.ts +16 -0
- package/dist/operations/experimental/runServer.js +137 -0
- package/dist/operations/index.d.ts +3 -0
- package/dist/operations/index.js +26 -0
- package/dist/operations/openDebugger.d.ts +1 -0
- package/dist/operations/openDebugger.js +73 -0
- package/dist/operations/runBundle.d.ts +12 -0
- package/dist/operations/runBundle.js +97 -0
- package/dist/operations/runServer.d.ts +15 -0
- package/dist/operations/runServer.js +134 -0
- package/dist/performance/Performance.d.ts +23 -0
- package/dist/performance/Performance.js +121 -0
- package/dist/performance/index.d.ts +2 -0
- package/dist/performance/index.js +31 -0
- package/dist/performance/printSummary.d.ts +5 -0
- package/dist/performance/printSummary.js +58 -0
- package/dist/plugins/index.d.ts +1 -0
- package/dist/plugins/index.js +22 -0
- package/dist/plugins/statusPlugin.d.ts +2 -0
- package/dist/plugins/statusPlugin.js +64 -0
- package/dist/server/DevServer.d.ts +23 -0
- package/dist/server/DevServer.js +216 -0
- package/dist/server/constants.d.ts +1 -0
- package/dist/server/constants.js +28 -0
- package/dist/server/debugger/DebuggerEventHandler.d.ts +41 -0
- package/dist/server/debugger/DebuggerEventHandler.js +169 -0
- package/dist/server/debugger/parseDomain.d.ts +1 -0
- package/dist/server/debugger/parseDomain.js +30 -0
- package/dist/server/helpers/createBundlerForDevServer.d.ts +10 -0
- package/dist/server/helpers/createBundlerForDevServer.js +75 -0
- package/dist/server/helpers/mergeBundles.d.ts +7 -0
- package/dist/server/helpers/mergeBundles.js +129 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +22 -0
- package/dist/server/middlewares/createLiveReloadMiddleware.d.ts +10 -0
- package/dist/server/middlewares/createLiveReloadMiddleware.js +129 -0
- package/dist/server/middlewares/index.d.ts +1 -0
- package/dist/server/middlewares/index.js +22 -0
- package/dist/server/plugins/debuggerPlugin.d.ts +7 -0
- package/dist/server/plugins/debuggerPlugin.js +68 -0
- package/dist/server/plugins/index.d.ts +5 -0
- package/dist/server/plugins/index.js +30 -0
- package/dist/server/plugins/indexPagePlugin.d.ts +4 -0
- package/dist/server/plugins/indexPagePlugin.js +52 -0
- package/dist/server/plugins/reply.d.ts +3 -0
- package/dist/server/plugins/reply.js +38 -0
- package/dist/server/plugins/serveBundlePlugin.d.ts +8 -0
- package/dist/server/plugins/serveBundlePlugin.js +118 -0
- package/dist/server/plugins/statusPlugin.d.ts +7 -0
- package/dist/server/plugins/statusPlugin.js +50 -0
- package/dist/server/plugins/symbolicatePlugin/index.d.ts +1 -0
- package/dist/server/plugins/symbolicatePlugin/index.js +28 -0
- package/dist/server/plugins/symbolicatePlugin/parseStackFrame.d.ts +25 -0
- package/dist/server/plugins/symbolicatePlugin/parseStackFrame.js +51 -0
- package/dist/server/plugins/symbolicatePlugin/symbolicate.d.ts +25 -0
- package/dist/server/plugins/symbolicatePlugin/symbolicate.js +84 -0
- package/dist/server/plugins/symbolicatePlugin/symbolicatePlugin.d.ts +8 -0
- package/dist/server/plugins/symbolicatePlugin/symbolicatePlugin.js +77 -0
- package/dist/server/types.d.ts +97 -0
- package/dist/server/types.js +16 -0
- package/dist/server/wss/WebSocketServerDelegate.d.ts +23 -0
- package/dist/server/wss/WebSocketServerDelegate.js +50 -0
- package/dist/server/wss/WebSocketServerRouter.d.ts +8 -0
- package/dist/server/wss/WebSocketServerRouter.js +66 -0
- package/dist/server/wss/index.d.ts +2 -0
- package/dist/server/wss/index.js +24 -0
- package/dist/shared/PersistentStorage.d.ts +21 -0
- package/dist/shared/PersistentStorage.js +68 -0
- package/dist/transformer/AsyncTransformPipeline.d.ts +4 -0
- package/dist/transformer/AsyncTransformPipeline.js +58 -0
- package/dist/transformer/TransformPipeline.d.ts +37 -0
- package/dist/transformer/TransformPipeline.js +64 -0
- package/dist/transformer/index.d.ts +1 -0
- package/dist/transformer/index.js +28 -0
- package/dist/types/BuildConfig.d.ts +183 -0
- package/dist/types/BuildConfig.js +16 -0
- package/dist/types/BundlerConfig.d.ts +56 -0
- package/dist/types/BundlerConfig.js +16 -0
- package/dist/types/Config.d.ts +12 -0
- package/dist/types/Config.js +16 -0
- package/dist/types/DevServerConfig.d.ts +9 -0
- package/dist/types/DevServerConfig.js +16 -0
- package/dist/types/Plugin.d.ts +28 -0
- package/dist/types/Plugin.js +16 -0
- package/dist/types/Preset.d.ts +3 -0
- package/dist/types/Preset.js +16 -0
- package/dist/types/PresetContext.d.ts +2 -0
- package/dist/types/PresetContext.js +16 -0
- package/dist/types/ServicesConfig.d.ts +2 -0
- package/dist/types/ServicesConfig.js +16 -0
- package/dist/types/TaskConfig.d.ts +16 -0
- package/dist/types/TaskConfig.js +16 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.js +38 -0
- package/dist/types/schemas/buildConfigSchema.d.ts +235 -0
- package/dist/types/schemas/buildConfigSchema.js +79 -0
- package/dist/types/schemas/bundlerConfigSchema.d.ts +3 -0
- package/dist/types/schemas/bundlerConfigSchema.js +51 -0
- package/dist/types/schemas/configSchema.d.ts +3 -0
- package/dist/types/schemas/configSchema.js +50 -0
- package/dist/types/schemas/devServerConfigSchema.d.ts +3 -0
- package/dist/types/schemas/devServerConfigSchema.js +43 -0
- package/dist/types/schemas/index.d.ts +6 -0
- package/dist/types/schemas/index.js +32 -0
- package/dist/types/schemas/servicesConfigSchema.d.ts +3 -0
- package/dist/types/schemas/servicesConfigSchema.js +48 -0
- package/dist/types/schemas/taskConfigSchema.d.ts +3 -0
- package/dist/types/schemas/taskConfigSchema.js +45 -0
- package/dist/utils/cleanupOutputDirectory.d.ts +1 -0
- package/dist/utils/cleanupOutputDirectory.js +53 -0
- package/dist/utils/defineStepName.d.ts +2 -0
- package/dist/utils/defineStepName.js +30 -0
- package/dist/utils/esbuildUtils.d.ts +1 -0
- package/dist/utils/esbuildUtils.js +45 -0
- package/dist/utils/getBundleName.d.ts +1 -0
- package/dist/utils/getBundleName.js +30 -0
- package/dist/utils/getBundleOutputs.d.ts +5 -0
- package/dist/utils/getBundleOutputs.js +49 -0
- package/dist/utils/getId.d.ts +2 -0
- package/dist/utils/getId.js +41 -0
- package/dist/utils/getSourcemapName.d.ts +1 -0
- package/dist/utils/getSourcemapName.js +30 -0
- package/dist/utils/isDebugMode.d.ts +1 -0
- package/dist/utils/isDebugMode.js +30 -0
- package/dist/utils/loadConfig.d.ts +2 -0
- package/dist/utils/loadConfig.js +37 -0
- package/dist/utils/loadPresets.d.ts +2 -0
- package/dist/utils/loadPresets.js +40 -0
- package/dist/utils/md5.d.ts +1 -0
- package/dist/utils/md5.js +41 -0
- package/dist/utils/mergeBanners.d.ts +6 -0
- package/dist/utils/mergeBanners.js +35 -0
- package/dist/utils/mergeBuildConfigs.d.ts +2 -0
- package/dist/utils/mergeBuildConfigs.js +59 -0
- package/dist/utils/mergeInject.d.ts +3 -0
- package/dist/utils/mergeInject.js +30 -0
- package/dist/utils/printLogo.d.ts +1 -0
- package/dist/utils/printLogo.js +56 -0
- package/dist/utils/printSummary.d.ts +7 -0
- package/dist/utils/printSummary.js +55 -0
- package/dist/utils/progressBar.d.ts +9 -0
- package/dist/utils/progressBar.js +97 -0
- package/dist/utils/promiseHandler.d.ts +12 -0
- package/dist/utils/promiseHandler.js +54 -0
- package/dist/utils/replaceModulePath.d.ts +1 -0
- package/dist/utils/replaceModulePath.js +31 -0
- package/dist/utils/replacePlaceholders.d.ts +1 -0
- package/dist/utils/replacePlaceholders.js +33 -0
- package/dist/utils/stripExtension.d.ts +1 -0
- package/dist/utils/stripExtension.js +41 -0
- package/dist/utils/writeBundle.d.ts +2 -0
- package/dist/utils/writeBundle.js +52 -0
- package/dist/vendors/@react-native/dev-middleware/Device.d.ts +5 -0
- package/dist/vendors/@react-native/dev-middleware/Device.js +33 -0
- package/dist/vendors/@react-native/dev-middleware/InspectorProxy.d.ts +31 -0
- package/dist/vendors/@react-native/dev-middleware/InspectorProxy.js +169 -0
- package/dist/vendors/@react-native/dev-middleware/index.d.ts +3 -0
- package/dist/vendors/@react-native/dev-middleware/index.js +26 -0
- package/dist/vendors/@react-native/dev-middleware/types.d.ts +54 -0
- package/dist/vendors/@react-native/dev-middleware/types.js +16 -0
- package/dist/vendors/@react-native-community/cli-server-api/createWebSocketEndpoints.d.ts +23 -0
- package/dist/vendors/@react-native-community/cli-server-api/createWebSocketEndpoints.js +47 -0
- package/dist/vendors/@react-native-community/cli-server-api/index.d.ts +1 -0
- package/dist/vendors/@react-native-community/cli-server-api/index.js +22 -0
- package/dist/vendors/index.d.ts +27 -0
- package/dist/vendors/index.js +63 -0
- package/dist/vendors/metro/src/Assets.js +159 -0
- package/dist/vendors/metro/src/Bundler/util.js +131 -0
- package/dist/vendors/metro/src/Bundler.js +43 -0
- package/dist/vendors/metro/src/DeltaBundler/DeltaCalculator.js +176 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/baseBytecodeBundle.js +61 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/baseJSBundle.js +45 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/getAllFiles.js +30 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/getAssets.js +23 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/getExplodedSourceMap.js +17 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/getRamBundleInfo.js +87 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/bytecode.js +51 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js +6 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +16 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js +21 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/js.js +43 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js +13 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/processModules.js +13 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/hmrJSBundle.js +66 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapGenerator.js +63 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapObject.js +18 -0
- package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapString.js +8 -0
- package/dist/vendors/metro/src/DeltaBundler/Transformer.js +133 -0
- package/dist/vendors/metro/src/DeltaBundler/Worker.flow.js +64 -0
- package/dist/vendors/metro/src/DeltaBundler/Worker.js +6 -0
- package/dist/vendors/metro/src/DeltaBundler/WorkerFarm.js +128 -0
- package/dist/vendors/metro/src/DeltaBundler/getTransformCacheKey.js +20 -0
- package/dist/vendors/metro/src/DeltaBundler/graphOperations.js +420 -0
- package/dist/vendors/metro/src/DeltaBundler/mergeDeltas.js +52 -0
- package/dist/vendors/metro/src/DeltaBundler/types.flow.js +24 -0
- package/dist/vendors/metro/src/DeltaBundler.js +56 -0
- package/dist/vendors/metro/src/HmrServer.js +224 -0
- package/dist/vendors/metro/src/IncrementalBundler/GraphNotFoundError.js +9 -0
- package/dist/vendors/metro/src/IncrementalBundler/ResourceNotFoundError.js +9 -0
- package/dist/vendors/metro/src/IncrementalBundler/RevisionNotFoundError.js +9 -0
- package/dist/vendors/metro/src/IncrementalBundler.js +213 -0
- package/dist/vendors/metro/src/ModuleGraph/module.js +14 -0
- package/dist/vendors/metro/src/ModuleGraph/node-haste/HasteFS.js +66 -0
- package/dist/vendors/metro/src/ModuleGraph/node-haste/Module.js +22 -0
- package/dist/vendors/metro/src/ModuleGraph/node-haste/ModuleCache.js +43 -0
- package/dist/vendors/metro/src/ModuleGraph/node-haste/Package.js +81 -0
- package/dist/vendors/metro/src/ModuleGraph/node-haste/node-haste.flow.js +1 -0
- package/dist/vendors/metro/src/ModuleGraph/node-haste/node-haste.js +127 -0
- package/dist/vendors/metro/src/ModuleGraph/output/indexed-ram-bundle.js +71 -0
- package/dist/vendors/metro/src/ModuleGraph/output/multiple-files-ram-bundle.js +53 -0
- package/dist/vendors/metro/src/ModuleGraph/output/plain-bundle.js +36 -0
- package/dist/vendors/metro/src/ModuleGraph/output/reverse-dependency-map-references.js +53 -0
- package/dist/vendors/metro/src/ModuleGraph/output/util.js +168 -0
- package/dist/vendors/metro/src/ModuleGraph/silent-console.js +5 -0
- package/dist/vendors/metro/src/ModuleGraph/types.flow.js +1 -0
- package/dist/vendors/metro/src/ModuleGraph/worker/JsFileWrapping.js +87 -0
- package/dist/vendors/metro/src/ModuleGraph/worker/Platforms.js +3 -0
- package/dist/vendors/metro/src/ModuleGraph/worker/collectDependencies.js +440 -0
- package/dist/vendors/metro/src/ModuleGraph/worker/generate.js +21 -0
- package/dist/vendors/metro/src/ModuleGraph/worker/generateImportNames.js +19 -0
- package/dist/vendors/metro/src/ModuleGraph/worker/mergeSourceMaps.js +29 -0
- package/dist/vendors/metro/src/Server/MultipartResponse.js +57 -0
- package/dist/vendors/metro/src/Server/symbolicate.js +109 -0
- package/dist/vendors/metro/src/Server.js +855 -0
- package/dist/vendors/metro/src/cli-utils.js +14 -0
- package/dist/vendors/metro/src/cli.js +9 -0
- package/dist/vendors/metro/src/commands/build.js +67 -0
- package/dist/vendors/metro/src/commands/dependencies.js +75 -0
- package/dist/vendors/metro/src/commands/serve.js +56 -0
- package/dist/vendors/metro/src/index.d.ts +8 -0
- package/dist/vendors/metro/src/index.flow.js +279 -0
- package/dist/vendors/metro/src/index.js +6 -0
- package/dist/vendors/metro/src/isPnP.js +13 -0
- package/dist/vendors/metro/src/lib/BatchProcessor.js +69 -0
- package/dist/vendors/metro/src/lib/CountingSet.js +98 -0
- package/dist/vendors/metro/src/lib/JsonReporter.js +21 -0
- package/dist/vendors/metro/src/lib/RamBundleParser.js +36 -0
- package/dist/vendors/metro/src/lib/TerminalReporter.d.ts +18 -0
- package/dist/vendors/metro/src/lib/TerminalReporter.js +258 -0
- package/dist/vendors/metro/src/lib/bundleToBytecode.js +40 -0
- package/dist/vendors/metro/src/lib/bundleToString.js +22 -0
- package/dist/vendors/metro/src/lib/contextModule.js +73 -0
- package/dist/vendors/metro/src/lib/contextModuleTemplates.js +116 -0
- package/dist/vendors/metro/src/lib/countLines.js +4 -0
- package/dist/vendors/metro/src/lib/createModuleIdFactory.js +14 -0
- package/dist/vendors/metro/src/lib/createWebsocketServer.js +54 -0
- package/dist/vendors/metro/src/lib/debounceAsyncQueue.js +33 -0
- package/dist/vendors/metro/src/lib/formatBundlingError.js +76 -0
- package/dist/vendors/metro/src/lib/getAppendScripts.js +131 -0
- package/dist/vendors/metro/src/lib/getGraphId.js +27 -0
- package/dist/vendors/metro/src/lib/getMaxWorkers.js +6 -0
- package/dist/vendors/metro/src/lib/getPreludeCode.js +32 -0
- package/dist/vendors/metro/src/lib/getPrependedScripts.js +93 -0
- package/dist/vendors/metro/src/lib/logToConsole.js +46 -0
- package/dist/vendors/metro/src/lib/parseCustomResolverOptions.js +13 -0
- package/dist/vendors/metro/src/lib/parseCustomTransformOptions.js +13 -0
- package/dist/vendors/metro/src/lib/parseOptionsFromUrl.js +50 -0
- package/dist/vendors/metro/src/lib/relativizeSourceMap.js +14 -0
- package/dist/vendors/metro/src/lib/reporting.js +26 -0
- package/dist/vendors/metro/src/lib/splitBundleOptions.js +32 -0
- package/dist/vendors/metro/src/lib/transformHelpers.js +112 -0
- package/dist/vendors/metro/src/node-haste/DependencyGraph/ModuleResolution.js +221 -0
- package/dist/vendors/metro/src/node-haste/DependencyGraph/createHasteMap.js +71 -0
- package/dist/vendors/metro/src/node-haste/DependencyGraph.js +223 -0
- package/dist/vendors/metro/src/node-haste/Module.js +21 -0
- package/dist/vendors/metro/src/node-haste/ModuleCache.js +81 -0
- package/dist/vendors/metro/src/node-haste/Package.js +98 -0
- package/dist/vendors/metro/src/node-haste/lib/AssetPaths.js +41 -0
- package/dist/vendors/metro/src/node-haste/lib/parsePlatformFilePath.js +19 -0
- package/dist/vendors/metro/src/shared/output/RamBundle/as-assets.js +61 -0
- package/dist/vendors/metro/src/shared/output/RamBundle/as-indexed-file.js +115 -0
- package/dist/vendors/metro/src/shared/output/RamBundle/buildSourcemapWithMetadata.js +23 -0
- package/dist/vendors/metro/src/shared/output/RamBundle/magic-number.js +2 -0
- package/dist/vendors/metro/src/shared/output/RamBundle/util.js +94 -0
- package/dist/vendors/metro/src/shared/output/RamBundle/write-sourcemap.js +12 -0
- package/dist/vendors/metro/src/shared/output/RamBundle.js +18 -0
- package/dist/vendors/metro/src/shared/output/bundle.flow.js +42 -0
- package/dist/vendors/metro/src/shared/output/bundle.js +6 -0
- package/dist/vendors/metro/src/shared/output/meta.js +31 -0
- package/dist/vendors/metro/src/shared/output/unbundle.js +2 -0
- package/dist/vendors/metro/src/shared/output/writeFile.js +6 -0
- package/dist/vendors/metro/src/shared/types.flow.js +1 -0
- package/dist/vendors/metro-config/src/configTypes.flow.js +1 -0
- package/dist/vendors/metro-config/src/defaults/defaults.js +66 -0
- package/dist/vendors/metro-config/src/defaults/exclusionList.d.ts +3 -0
- package/dist/vendors/metro-config/src/defaults/exclusionList.js +17 -0
- package/dist/vendors/metro-config/src/defaults/index.d.ts +5 -0
- package/dist/vendors/metro-config/src/defaults/index.js +161 -0
- package/dist/vendors/metro-config/src/defaults/validConfig.js +28 -0
- package/dist/vendors/metro-config/src/index.js +9 -0
- package/dist/vendors/metro-config/src/loadConfig.d.ts +4 -0
- package/dist/vendors/metro-config/src/loadConfig.js +188 -0
- package/dist/vendors/metro-core/src/Logger.js +62 -0
- package/dist/vendors/metro-core/src/Terminal.d.ts +30 -0
- package/dist/vendors/metro-core/src/Terminal.js +100 -0
- package/dist/vendors/metro-core/src/canonicalize.js +17 -0
- package/dist/vendors/metro-core/src/errors/AmbiguousModuleResolutionError.js +11 -0
- package/dist/vendors/metro-core/src/errors/PackageResolutionError.js +18 -0
- package/dist/vendors/metro-core/src/errors.js +7 -0
- package/dist/vendors/metro-core/src/index.js +11 -0
- package/dist/vendors/metro-inspector-proxy/src/Device.js +398 -0
- package/dist/vendors/metro-inspector-proxy/src/InspectorProxy.d.ts +21 -0
- package/dist/vendors/metro-inspector-proxy/src/InspectorProxy.js +153 -0
- package/dist/vendors/metro-inspector-proxy/src/cli.js +15 -0
- package/dist/vendors/metro-inspector-proxy/src/index.js +23 -0
- package/dist/vendors/metro-inspector-proxy/src/types.js +1 -0
- package/dist/vendors/metro-transform-worker/src/index.js +430 -0
- package/dist/vendors/metro-transform-worker/src/utils/assetTransformer.js +20 -0
- package/dist/vendors/metro-transform-worker/src/utils/getMinifier.js +11 -0
- package/package.json +162 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const { getJsOutput } = require("./js");
|
|
3
|
+
function getSourceMapInfo(module2, options) {
|
|
4
|
+
return {
|
|
5
|
+
...getJsOutput(module2).data,
|
|
6
|
+
path: module2.path,
|
|
7
|
+
source: options.excludeSource ? "" : getModuleSource(module2)
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function getModuleSource(module2) {
|
|
11
|
+
if (getJsOutput(module2).type === "js/module/asset") {
|
|
12
|
+
return "";
|
|
13
|
+
}
|
|
14
|
+
return module2.getSource().toString();
|
|
15
|
+
}
|
|
16
|
+
module.exports = getSourceMapInfo;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function getTransitiveDependencies(path, graph) {
|
|
3
|
+
const dependencies = _getDeps(path, graph, /* @__PURE__ */ new Set());
|
|
4
|
+
dependencies.delete(path);
|
|
5
|
+
return dependencies;
|
|
6
|
+
}
|
|
7
|
+
function _getDeps(path, graph, deps) {
|
|
8
|
+
if (deps.has(path)) {
|
|
9
|
+
return deps;
|
|
10
|
+
}
|
|
11
|
+
const module2 = graph.dependencies.get(path);
|
|
12
|
+
if (!module2) {
|
|
13
|
+
return deps;
|
|
14
|
+
}
|
|
15
|
+
deps.add(path);
|
|
16
|
+
for (const dependency of module2.dependencies.values()) {
|
|
17
|
+
_getDeps(dependency.absolutePath, graph, deps);
|
|
18
|
+
}
|
|
19
|
+
return deps;
|
|
20
|
+
}
|
|
21
|
+
module.exports = getTransitiveDependencies;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const invariant = require("invariant");
|
|
3
|
+
const { addParamsToDefineCall } = require("metro-transform-plugins");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
function wrapModule(module2, options) {
|
|
6
|
+
const output = getJsOutput(module2);
|
|
7
|
+
if (output.type.startsWith("js/script")) {
|
|
8
|
+
return output.data.code;
|
|
9
|
+
}
|
|
10
|
+
const moduleId = options.createModuleId(module2.path);
|
|
11
|
+
const params = [
|
|
12
|
+
moduleId,
|
|
13
|
+
Array.from(module2.dependencies.values()).map((dependency) => options.createModuleId(dependency.absolutePath))
|
|
14
|
+
];
|
|
15
|
+
if (options.dev) {
|
|
16
|
+
params.push(path.relative(options.projectRoot, module2.path));
|
|
17
|
+
}
|
|
18
|
+
return addParamsToDefineCall(output.data.code, ...params);
|
|
19
|
+
}
|
|
20
|
+
function getJsOutput(module2) {
|
|
21
|
+
const jsModules = module2.output.filter(({ type }) => type.startsWith("js/"));
|
|
22
|
+
invariant(
|
|
23
|
+
jsModules.length === 1,
|
|
24
|
+
`Modules must have exactly one JS output, but ${module2.path ?? "unknown module"} has ${jsModules.length} JS outputs.`
|
|
25
|
+
);
|
|
26
|
+
const jsOutput = jsModules[0];
|
|
27
|
+
invariant(
|
|
28
|
+
Number.isFinite(jsOutput.data.lineCount),
|
|
29
|
+
`JS output must populate lineCount, but ${module2.path ?? "unknown module"} has ${jsOutput.type} output with lineCount '${jsOutput.data.lineCount}'`
|
|
30
|
+
);
|
|
31
|
+
return jsOutput;
|
|
32
|
+
}
|
|
33
|
+
function isJsModule(module2) {
|
|
34
|
+
return module2.output.filter(isJsOutput).length > 0;
|
|
35
|
+
}
|
|
36
|
+
function isJsOutput(output) {
|
|
37
|
+
return output.type.startsWith("js/");
|
|
38
|
+
}
|
|
39
|
+
module.exports = {
|
|
40
|
+
getJsOutput,
|
|
41
|
+
isJsModule,
|
|
42
|
+
wrapModule
|
|
43
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const { isBytecodeModule, wrapModule } = require("./bytecode");
|
|
3
|
+
function processBytecodeModules(modules, { filter = () => true, createModuleId, dev, projectRoot }) {
|
|
4
|
+
return [...modules].filter(isBytecodeModule).filter(filter).map((module2) => [
|
|
5
|
+
module2,
|
|
6
|
+
wrapModule(module2, {
|
|
7
|
+
createModuleId,
|
|
8
|
+
dev,
|
|
9
|
+
projectRoot
|
|
10
|
+
})
|
|
11
|
+
]);
|
|
12
|
+
}
|
|
13
|
+
module.exports = processBytecodeModules;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const { isJsModule, wrapModule } = require("./js");
|
|
3
|
+
function processModules(modules, { filter = () => true, createModuleId, dev, projectRoot }) {
|
|
4
|
+
return [...modules].filter(isJsModule).filter(filter).map((module2) => [
|
|
5
|
+
module2,
|
|
6
|
+
wrapModule(module2, {
|
|
7
|
+
createModuleId,
|
|
8
|
+
dev,
|
|
9
|
+
projectRoot
|
|
10
|
+
})
|
|
11
|
+
]);
|
|
12
|
+
}
|
|
13
|
+
module.exports = processModules;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const { isJsModule, wrapModule } = require("./helpers/js");
|
|
3
|
+
const { addParamsToDefineCall } = require("metro-transform-plugins");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const url = require("url");
|
|
6
|
+
function generateModules(sourceModules, graph, options) {
|
|
7
|
+
const modules = [];
|
|
8
|
+
for (const module2 of sourceModules) {
|
|
9
|
+
if (isJsModule(module2)) {
|
|
10
|
+
const getURL = (extension) => {
|
|
11
|
+
options.clientUrl.pathname = path.relative(
|
|
12
|
+
options.projectRoot,
|
|
13
|
+
path.join(path.dirname(module2.path), path.basename(module2.path, path.extname(module2.path)) + "." + extension)
|
|
14
|
+
);
|
|
15
|
+
return url.format(options.clientUrl);
|
|
16
|
+
};
|
|
17
|
+
const sourceMappingURL = getURL("map");
|
|
18
|
+
const sourceURL = getURL("bundle");
|
|
19
|
+
const code = prepareModule(module2, graph, options) + `
|
|
20
|
+
//# sourceMappingURL=${sourceMappingURL}
|
|
21
|
+
//# sourceURL=${sourceURL}
|
|
22
|
+
`;
|
|
23
|
+
modules.push({
|
|
24
|
+
module: [options.createModuleId(module2.path), code],
|
|
25
|
+
sourceMappingURL,
|
|
26
|
+
sourceURL
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return modules;
|
|
31
|
+
}
|
|
32
|
+
function prepareModule(module2, graph, options) {
|
|
33
|
+
const code = wrapModule(module2, {
|
|
34
|
+
...options,
|
|
35
|
+
dev: true
|
|
36
|
+
});
|
|
37
|
+
const inverseDependencies = getInverseDependencies(module2.path, graph);
|
|
38
|
+
const inverseDependenciesById = /* @__PURE__ */ Object.create(null);
|
|
39
|
+
Object.keys(inverseDependencies).forEach((path2) => {
|
|
40
|
+
inverseDependenciesById[options.createModuleId(path2)] = inverseDependencies[path2].map(options.createModuleId);
|
|
41
|
+
});
|
|
42
|
+
return addParamsToDefineCall(code, inverseDependenciesById);
|
|
43
|
+
}
|
|
44
|
+
function getInverseDependencies(path2, graph, inverseDependencies = {}) {
|
|
45
|
+
if (path2 in inverseDependencies) {
|
|
46
|
+
return inverseDependencies;
|
|
47
|
+
}
|
|
48
|
+
const module2 = graph.dependencies.get(path2);
|
|
49
|
+
if (!module2) {
|
|
50
|
+
return inverseDependencies;
|
|
51
|
+
}
|
|
52
|
+
inverseDependencies[path2] = [];
|
|
53
|
+
for (const inverse of module2.inverseDependencies) {
|
|
54
|
+
inverseDependencies[path2].push(inverse);
|
|
55
|
+
getInverseDependencies(inverse, graph, inverseDependencies);
|
|
56
|
+
}
|
|
57
|
+
return inverseDependencies;
|
|
58
|
+
}
|
|
59
|
+
function hmrJSBundle(delta, graph, options) {
|
|
60
|
+
return {
|
|
61
|
+
added: generateModules(delta.added.values(), graph, options),
|
|
62
|
+
modified: generateModules(delta.modified.values(), graph, options),
|
|
63
|
+
deleted: [...delta.deleted].map((path2) => options.createModuleId(path2))
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
module.exports = hmrJSBundle;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const getSourceMapInfo = require("./helpers/getSourceMapInfo");
|
|
3
|
+
const { isJsModule } = require("./helpers/js");
|
|
4
|
+
const { fromRawMappings, fromRawMappingsNonBlocking } = require("metro-source-map");
|
|
5
|
+
function getSourceMapInfosImpl(isBlocking, onDone, modules, options) {
|
|
6
|
+
const sourceMapInfos = [];
|
|
7
|
+
const modulesToProcess = modules.filter(isJsModule).filter(options.processModuleFilter);
|
|
8
|
+
function processNextModule() {
|
|
9
|
+
if (modulesToProcess.length === 0) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
const mod = modulesToProcess.shift();
|
|
13
|
+
const info = getSourceMapInfo(mod, {
|
|
14
|
+
excludeSource: options.excludeSource
|
|
15
|
+
});
|
|
16
|
+
sourceMapInfos.push(info);
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
function workLoop() {
|
|
20
|
+
const time = process.hrtime();
|
|
21
|
+
while (true) {
|
|
22
|
+
const isDone = processNextModule();
|
|
23
|
+
if (isDone) {
|
|
24
|
+
onDone(sourceMapInfos);
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
if (!isBlocking) {
|
|
28
|
+
const diff = process.hrtime(time);
|
|
29
|
+
const NS_IN_MS = 1e6;
|
|
30
|
+
if (diff[1] > 50 * NS_IN_MS) {
|
|
31
|
+
setImmediate(workLoop);
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
workLoop();
|
|
38
|
+
}
|
|
39
|
+
function sourceMapGenerator(modules, options) {
|
|
40
|
+
let sourceMapInfos;
|
|
41
|
+
getSourceMapInfosImpl(
|
|
42
|
+
true,
|
|
43
|
+
(infos) => {
|
|
44
|
+
sourceMapInfos = infos;
|
|
45
|
+
},
|
|
46
|
+
modules,
|
|
47
|
+
options
|
|
48
|
+
);
|
|
49
|
+
if (sourceMapInfos == null) {
|
|
50
|
+
throw new Error("Expected getSourceMapInfosImpl() to finish synchronously.");
|
|
51
|
+
}
|
|
52
|
+
return fromRawMappings(sourceMapInfos);
|
|
53
|
+
}
|
|
54
|
+
async function sourceMapGeneratorNonBlocking(modules, options) {
|
|
55
|
+
const sourceMapInfos = await new Promise((resolve) => {
|
|
56
|
+
getSourceMapInfosImpl(false, resolve, modules, options);
|
|
57
|
+
});
|
|
58
|
+
return fromRawMappingsNonBlocking(sourceMapInfos);
|
|
59
|
+
}
|
|
60
|
+
module.exports = {
|
|
61
|
+
sourceMapGenerator,
|
|
62
|
+
sourceMapGeneratorNonBlocking
|
|
63
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const { sourceMapGenerator, sourceMapGeneratorNonBlocking } = require("./sourceMapGenerator");
|
|
3
|
+
function sourceMapObject(modules, options) {
|
|
4
|
+
const generator = sourceMapGenerator(modules, options);
|
|
5
|
+
return generator.toMap(void 0, {
|
|
6
|
+
excludeSource: options.excludeSource
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
async function sourceMapObjectNonBlocking(modules, options) {
|
|
10
|
+
const generator = await sourceMapGeneratorNonBlocking(modules, options);
|
|
11
|
+
return generator.toMap(void 0, {
|
|
12
|
+
excludeSource: options.excludeSource
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
module.exports = {
|
|
16
|
+
sourceMapObject,
|
|
17
|
+
sourceMapObjectNonBlocking
|
|
18
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const { sourceMapGenerator } = require("./sourceMapGenerator");
|
|
3
|
+
function sourceMapString(modules, options) {
|
|
4
|
+
return sourceMapGenerator(modules, options).toString(void 0, {
|
|
5
|
+
excludeSource: options.excludeSource
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
module.exports = sourceMapString;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var import_crypto = __toESM(require("crypto"));
|
|
25
|
+
const getTransformCacheKey = require("./getTransformCacheKey");
|
|
26
|
+
const WorkerFarm = require("./WorkerFarm");
|
|
27
|
+
const assert = require("assert");
|
|
28
|
+
const fs = require("fs");
|
|
29
|
+
const { Cache, stableHash } = require("metro-cache");
|
|
30
|
+
const path = require("path");
|
|
31
|
+
class Transformer {
|
|
32
|
+
_config;
|
|
33
|
+
_cache;
|
|
34
|
+
_baseHash;
|
|
35
|
+
_getSha1;
|
|
36
|
+
_workerFarm;
|
|
37
|
+
constructor(config, getSha1Fn) {
|
|
38
|
+
this._config = config;
|
|
39
|
+
this._config.watchFolders.forEach(verifyRootExists);
|
|
40
|
+
this._cache = new Cache(config.cacheStores);
|
|
41
|
+
this._getSha1 = getSha1Fn;
|
|
42
|
+
const {
|
|
43
|
+
getTransformOptions: _getTransformOptions,
|
|
44
|
+
transformVariants: _transformVariants,
|
|
45
|
+
workerPath: _workerPath,
|
|
46
|
+
...transformerConfig
|
|
47
|
+
} = this._config.transformer;
|
|
48
|
+
const transformerOptions = {
|
|
49
|
+
transformerPath: this._config.transformerPath,
|
|
50
|
+
transformerConfig
|
|
51
|
+
};
|
|
52
|
+
this._workerFarm = new WorkerFarm(config, transformerOptions);
|
|
53
|
+
const globalCacheKey = this._cache.isDisabled ? "" : getTransformCacheKey({
|
|
54
|
+
cacheVersion: this._config.cacheVersion,
|
|
55
|
+
projectRoot: this._config.projectRoot,
|
|
56
|
+
transformerConfig: transformerOptions
|
|
57
|
+
});
|
|
58
|
+
this._baseHash = stableHash([globalCacheKey]).toString("binary");
|
|
59
|
+
}
|
|
60
|
+
async transformFile(filePath, transformerOptions, fileBuffer) {
|
|
61
|
+
const cache = this._cache;
|
|
62
|
+
const {
|
|
63
|
+
customTransformOptions,
|
|
64
|
+
dev,
|
|
65
|
+
experimentalImportSupport,
|
|
66
|
+
hot,
|
|
67
|
+
inlinePlatform,
|
|
68
|
+
inlineRequires,
|
|
69
|
+
minify,
|
|
70
|
+
nonInlinedRequires,
|
|
71
|
+
platform,
|
|
72
|
+
runtimeBytecodeVersion,
|
|
73
|
+
type,
|
|
74
|
+
unstable_disableES6Transforms,
|
|
75
|
+
unstable_transformProfile,
|
|
76
|
+
...extra
|
|
77
|
+
} = transformerOptions;
|
|
78
|
+
for (const key in extra) {
|
|
79
|
+
if (hasOwnProperty.call(extra, key)) {
|
|
80
|
+
throw new Error("Extra keys detected: " + Object.keys(extra).join(", "));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const localPath = path.relative(this._config.projectRoot, filePath);
|
|
84
|
+
const partialKey = stableHash([
|
|
85
|
+
// This is the hash related to the global Bundler config.
|
|
86
|
+
this._baseHash,
|
|
87
|
+
// Path.
|
|
88
|
+
localPath,
|
|
89
|
+
customTransformOptions,
|
|
90
|
+
dev,
|
|
91
|
+
experimentalImportSupport,
|
|
92
|
+
hot,
|
|
93
|
+
inlinePlatform,
|
|
94
|
+
inlineRequires,
|
|
95
|
+
minify,
|
|
96
|
+
nonInlinedRequires,
|
|
97
|
+
platform,
|
|
98
|
+
runtimeBytecodeVersion,
|
|
99
|
+
type,
|
|
100
|
+
unstable_disableES6Transforms,
|
|
101
|
+
unstable_transformProfile
|
|
102
|
+
]);
|
|
103
|
+
let sha1;
|
|
104
|
+
if (fileBuffer) {
|
|
105
|
+
sha1 = import_crypto.default.createHash("sha1").update(fileBuffer).digest("hex");
|
|
106
|
+
} else {
|
|
107
|
+
sha1 = this._getSha1(filePath);
|
|
108
|
+
}
|
|
109
|
+
let fullKey = Buffer.concat([partialKey, Buffer.from(sha1, "hex")]);
|
|
110
|
+
const result = await cache.get(fullKey);
|
|
111
|
+
const data = result ? { result, sha1 } : await this._workerFarm.transform(localPath, transformerOptions, fileBuffer);
|
|
112
|
+
if (sha1 !== data.sha1) {
|
|
113
|
+
fullKey = Buffer.concat([partialKey, Buffer.from(data.sha1, "hex")]);
|
|
114
|
+
}
|
|
115
|
+
cache.set(fullKey, data.result);
|
|
116
|
+
return {
|
|
117
|
+
...data.result,
|
|
118
|
+
getSource() {
|
|
119
|
+
if (fileBuffer) {
|
|
120
|
+
return fileBuffer;
|
|
121
|
+
}
|
|
122
|
+
return fs.readFileSync(filePath);
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
end() {
|
|
127
|
+
this._workerFarm.kill();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function verifyRootExists(root) {
|
|
131
|
+
assert(fs.statSync(root).isDirectory(), "Root has to be a valid directory");
|
|
132
|
+
}
|
|
133
|
+
module.exports = Transformer;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const traverse = require("@babel/traverse").default;
|
|
3
|
+
const crypto = require("crypto");
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
function asDeserializedBuffer(value) {
|
|
7
|
+
if (Buffer.isBuffer(value)) {
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
if (value && value.type === "Buffer") {
|
|
11
|
+
return Buffer.from(value.data);
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
async function transform(filename, transformOptions, projectRoot, transformerConfig, fileBuffer) {
|
|
16
|
+
let data;
|
|
17
|
+
const fileBufferObject = asDeserializedBuffer(fileBuffer);
|
|
18
|
+
if (fileBufferObject) {
|
|
19
|
+
data = fileBufferObject;
|
|
20
|
+
} else {
|
|
21
|
+
data = fs.readFileSync(path.resolve(projectRoot, filename));
|
|
22
|
+
}
|
|
23
|
+
return transformFile(filename, data, transformOptions, projectRoot, transformerConfig);
|
|
24
|
+
}
|
|
25
|
+
async function transformFile(filename, data, transformOptions, projectRoot, transformerConfig) {
|
|
26
|
+
const Transformer = require.call(null, transformerConfig.transformerPath);
|
|
27
|
+
const transformFileStartLogEntry = {
|
|
28
|
+
action_name: "Transforming file",
|
|
29
|
+
action_phase: "start",
|
|
30
|
+
file_name: filename,
|
|
31
|
+
log_entry_label: "Transforming file",
|
|
32
|
+
start_timestamp: process.hrtime()
|
|
33
|
+
};
|
|
34
|
+
const sha1 = crypto.createHash("sha1").update(data).digest("hex");
|
|
35
|
+
const result = await Transformer.transform(
|
|
36
|
+
transformerConfig.transformerConfig,
|
|
37
|
+
projectRoot,
|
|
38
|
+
filename,
|
|
39
|
+
data,
|
|
40
|
+
transformOptions
|
|
41
|
+
);
|
|
42
|
+
traverse.cache.clear();
|
|
43
|
+
const transformFileEndLogEntry = getEndLogEntry(transformFileStartLogEntry, filename);
|
|
44
|
+
return {
|
|
45
|
+
result,
|
|
46
|
+
sha1,
|
|
47
|
+
transformFileStartLogEntry,
|
|
48
|
+
transformFileEndLogEntry
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function getEndLogEntry(startLogEntry, filename) {
|
|
52
|
+
const timeDelta = process.hrtime(startLogEntry.start_timestamp);
|
|
53
|
+
const duration_ms = Math.round((timeDelta[0] * 1e9 + timeDelta[1]) / 1e6);
|
|
54
|
+
return {
|
|
55
|
+
action_name: "Transforming file",
|
|
56
|
+
action_phase: "end",
|
|
57
|
+
file_name: filename,
|
|
58
|
+
duration_ms,
|
|
59
|
+
log_entry_label: "Transforming file"
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
module.exports = {
|
|
63
|
+
transform
|
|
64
|
+
};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const { Worker: JestWorker } = require("jest-worker");
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const { Logger } = require("../../../metro-core/src");
|
|
6
|
+
class WorkerFarm {
|
|
7
|
+
_config;
|
|
8
|
+
_transformerConfig;
|
|
9
|
+
_worker;
|
|
10
|
+
constructor(config, transformerConfig) {
|
|
11
|
+
this._config = config;
|
|
12
|
+
this._transformerConfig = transformerConfig;
|
|
13
|
+
if (this._config.maxWorkers > 1) {
|
|
14
|
+
const worker = this._makeFarm(this._config.transformer.workerPath, ["transform"], this._config.maxWorkers);
|
|
15
|
+
worker.getStdout().on("data", (chunk) => {
|
|
16
|
+
this._config.reporter.update({
|
|
17
|
+
type: "worker_stdout_chunk",
|
|
18
|
+
chunk: chunk.toString("utf8")
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
worker.getStderr().on("data", (chunk) => {
|
|
22
|
+
this._config.reporter.update({
|
|
23
|
+
type: "worker_stderr_chunk",
|
|
24
|
+
chunk: chunk.toString("utf8")
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
this._worker = worker;
|
|
28
|
+
} else {
|
|
29
|
+
this._worker = require.call(null, this._config.transformer.workerPath);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async kill() {
|
|
33
|
+
if (this._worker && typeof this._worker.end === "function") {
|
|
34
|
+
await this._worker.end();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async transform(filename, options, fileBuffer) {
|
|
38
|
+
try {
|
|
39
|
+
const { INTERNAL__transformSync } = this._config.transformer;
|
|
40
|
+
const buffer = asDeserializedBuffer(fileBuffer);
|
|
41
|
+
if (buffer) {
|
|
42
|
+
fileBuffer = buffer;
|
|
43
|
+
} else {
|
|
44
|
+
fileBuffer = fs.readFileSync(path.resolve(this._config.projectRoot, filename));
|
|
45
|
+
}
|
|
46
|
+
if (typeof INTERNAL__transformSync === "function") {
|
|
47
|
+
fileBuffer = Buffer.from(INTERNAL__transformSync(filename, fileBuffer.toString("utf-8")));
|
|
48
|
+
}
|
|
49
|
+
const data = await this._worker.transform(
|
|
50
|
+
filename,
|
|
51
|
+
options,
|
|
52
|
+
this._config.projectRoot,
|
|
53
|
+
this._transformerConfig,
|
|
54
|
+
fileBuffer
|
|
55
|
+
);
|
|
56
|
+
Logger.log(data.transformFileStartLogEntry);
|
|
57
|
+
Logger.log(data.transformFileEndLogEntry);
|
|
58
|
+
return {
|
|
59
|
+
result: data.result,
|
|
60
|
+
sha1: data.sha1
|
|
61
|
+
};
|
|
62
|
+
} catch (err) {
|
|
63
|
+
if (err.loc) {
|
|
64
|
+
throw this._formatBabelError(err, filename);
|
|
65
|
+
} else {
|
|
66
|
+
throw this._formatGenericError(err, filename);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
_makeFarm(workerPath, exposedMethods, numWorkers) {
|
|
71
|
+
const env = {
|
|
72
|
+
...process.env,
|
|
73
|
+
// Force color to print syntax highlighted code frames.
|
|
74
|
+
FORCE_COLOR: 1
|
|
75
|
+
};
|
|
76
|
+
return new JestWorker(workerPath, {
|
|
77
|
+
computeWorkerKey: this._config.stickyWorkers ? (
|
|
78
|
+
// $FlowFixMe[method-unbinding] added when improving typing for this parameters
|
|
79
|
+
this._computeWorkerKey
|
|
80
|
+
) : void 0,
|
|
81
|
+
exposedMethods,
|
|
82
|
+
forkOptions: { env },
|
|
83
|
+
numWorkers
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
_computeWorkerKey(method, filename) {
|
|
87
|
+
if (method === "transform") {
|
|
88
|
+
return filename;
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
_formatGenericError(err, filename) {
|
|
93
|
+
const error = new TransformError(`${filename}: ${err.message}`);
|
|
94
|
+
return Object.assign(error, {
|
|
95
|
+
stack: (err.stack || "").split("\n").slice(0, -1).join("\n"),
|
|
96
|
+
lineNumber: 0
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
_formatBabelError(err, filename) {
|
|
100
|
+
const error = new TransformError(
|
|
101
|
+
`${err.type || "Error"}${err.message.includes(filename) ? "" : " in " + filename}: ${err.message}`
|
|
102
|
+
);
|
|
103
|
+
return Object.assign(error, {
|
|
104
|
+
stack: err.stack,
|
|
105
|
+
snippet: err.codeFrame,
|
|
106
|
+
lineNumber: err.loc.line,
|
|
107
|
+
column: err.loc.column,
|
|
108
|
+
filename
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
class TransformError extends SyntaxError {
|
|
113
|
+
type = "TransformError";
|
|
114
|
+
constructor(message) {
|
|
115
|
+
super(message);
|
|
116
|
+
Error.captureStackTrace && Error.captureStackTrace(this, TransformError);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function asDeserializedBuffer(value) {
|
|
120
|
+
if (Buffer.isBuffer(value)) {
|
|
121
|
+
return value;
|
|
122
|
+
}
|
|
123
|
+
if (value && value.type === "Buffer") {
|
|
124
|
+
return Buffer.from(value.data);
|
|
125
|
+
}
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
module.exports = WorkerFarm;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const VERSION = require("../../../../constants").VERSION;
|
|
3
|
+
const crypto = require("crypto");
|
|
4
|
+
const getCacheKey = require("metro-cache-key");
|
|
5
|
+
function getTransformCacheKey(opts) {
|
|
6
|
+
const { transformerPath, transformerConfig } = opts.transformerConfig;
|
|
7
|
+
const Transformer = require.call(null, transformerPath);
|
|
8
|
+
const transformerKey = Transformer.getCacheKey ? Transformer.getCacheKey(transformerConfig) : "";
|
|
9
|
+
return crypto.createHash("sha1").update(
|
|
10
|
+
[
|
|
11
|
+
"metro-cache",
|
|
12
|
+
VERSION,
|
|
13
|
+
opts.cacheVersion,
|
|
14
|
+
getCacheKey([require.resolve(transformerPath)]),
|
|
15
|
+
transformerKey,
|
|
16
|
+
transformerConfig.globalPrefix
|
|
17
|
+
].join("$")
|
|
18
|
+
).digest("hex");
|
|
19
|
+
}
|
|
20
|
+
module.exports = getTransformCacheKey;
|