@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.
Files changed (397) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/LICENSE +202 -0
  3. package/README.md +24 -0
  4. package/dist/bundler/Bundler.d.ts +24 -0
  5. package/dist/bundler/Bundler.js +175 -0
  6. package/dist/bundler/PluginDriver.d.ts +9 -0
  7. package/dist/bundler/PluginDriver.js +47 -0
  8. package/dist/bundler/index.d.ts +1 -0
  9. package/dist/bundler/index.js +22 -0
  10. package/dist/bundler/plugins/buildStatusPlugin/buildStatusPlugin.d.ts +12 -0
  11. package/dist/bundler/plugins/buildStatusPlugin/buildStatusPlugin.js +75 -0
  12. package/dist/bundler/plugins/buildStatusPlugin/index.d.ts +1 -0
  13. package/dist/bundler/plugins/buildStatusPlugin/index.js +28 -0
  14. package/dist/bundler/plugins/dependencyAliasPlugin/aliasResolver.d.ts +3 -0
  15. package/dist/bundler/plugins/dependencyAliasPlugin/aliasResolver.js +89 -0
  16. package/dist/bundler/plugins/dependencyAliasPlugin/dependencyAliasPlugin.d.ts +3 -0
  17. package/dist/bundler/plugins/dependencyAliasPlugin/dependencyAliasPlugin.js +43 -0
  18. package/dist/bundler/plugins/dependencyAliasPlugin/index.d.ts +1 -0
  19. package/dist/bundler/plugins/dependencyAliasPlugin/index.js +28 -0
  20. package/dist/bundler/plugins/dependencyAliasPlugin/protocolResolver.d.ts +3 -0
  21. package/dist/bundler/plugins/dependencyAliasPlugin/protocolResolver.js +53 -0
  22. package/dist/bundler/plugins/index.d.ts +4 -0
  23. package/dist/bundler/plugins/index.js +28 -0
  24. package/dist/bundler/plugins/requireContextPlugin/index.d.ts +1 -0
  25. package/dist/bundler/plugins/requireContextPlugin/index.js +28 -0
  26. package/dist/bundler/plugins/requireContextPlugin/requireContextPlugin.d.ts +6 -0
  27. package/dist/bundler/plugins/requireContextPlugin/requireContextPlugin.js +101 -0
  28. package/dist/bundler/plugins/requireContextPlugin/scripts.d.ts +56 -0
  29. package/dist/bundler/plugins/requireContextPlugin/scripts.js +65 -0
  30. package/dist/bundler/plugins/shared/swc.d.ts +11 -0
  31. package/dist/bundler/plugins/shared/swc.js +70 -0
  32. package/dist/bundler/plugins/transformPlugin/helpers/preludeScript.d.ts +23 -0
  33. package/dist/bundler/plugins/transformPlugin/helpers/preludeScript.js +79 -0
  34. package/dist/bundler/plugins/transformPlugin/index.d.ts +1 -0
  35. package/dist/bundler/plugins/transformPlugin/index.js +28 -0
  36. package/dist/bundler/plugins/transformPlugin/steps/createCacheSteps.d.ts +10 -0
  37. package/dist/bundler/plugins/transformPlugin/steps/createCacheSteps.js +56 -0
  38. package/dist/bundler/plugins/transformPlugin/steps/createFullyTransformStep.d.ts +8 -0
  39. package/dist/bundler/plugins/transformPlugin/steps/createFullyTransformStep.js +120 -0
  40. package/dist/bundler/plugins/transformPlugin/steps/createStripFlowStep.d.ts +6 -0
  41. package/dist/bundler/plugins/transformPlugin/steps/createStripFlowStep.js +91 -0
  42. package/dist/bundler/plugins/transformPlugin/steps/createTransformToHermesSyntaxStep.d.ts +8 -0
  43. package/dist/bundler/plugins/transformPlugin/steps/createTransformToHermesSyntaxStep.js +100 -0
  44. package/dist/bundler/plugins/transformPlugin/transformPlugin.d.ts +8 -0
  45. package/dist/bundler/plugins/transformPlugin/transformPlugin.js +88 -0
  46. package/dist/bundler/plugins/types.d.ts +7 -0
  47. package/dist/bundler/plugins/types.js +16 -0
  48. package/dist/bundler/types.d.ts +17 -0
  49. package/dist/bundler/types.js +16 -0
  50. package/dist/cache/Cache.d.ts +25 -0
  51. package/dist/cache/Cache.js +87 -0
  52. package/dist/cache/index.d.ts +1 -0
  53. package/dist/cache/index.js +22 -0
  54. package/dist/constants/index.d.ts +20 -0
  55. package/dist/constants/index.js +91 -0
  56. package/dist/index.d.ts +11 -0
  57. package/dist/index.js +60 -0
  58. package/dist/logger/Logger.d.ts +17 -0
  59. package/dist/logger/Logger.js +115 -0
  60. package/dist/logger/clientLogger.d.ts +2 -0
  61. package/dist/logger/clientLogger.js +49 -0
  62. package/dist/logger/index.d.ts +3 -0
  63. package/dist/logger/index.js +31 -0
  64. package/dist/metro/assetRegistry.d.ts +12 -0
  65. package/dist/metro/assetRegistry.js +57 -0
  66. package/dist/metro/enhancedResolver.d.ts +7 -0
  67. package/dist/metro/enhancedResolver.js +127 -0
  68. package/dist/metro/getMetroConfig.d.ts +12 -0
  69. package/dist/metro/getMetroConfig.js +138 -0
  70. package/dist/metro/getMonorepoRoot.d.ts +4 -0
  71. package/dist/metro/getMonorepoRoot.js +80 -0
  72. package/dist/metro/index.d.ts +3 -0
  73. package/dist/metro/index.js +24 -0
  74. package/dist/metro/pnpapi.d.ts +6 -0
  75. package/dist/metro/pnpapi.js +32 -0
  76. package/dist/metro/runBuild.d.ts +12 -0
  77. package/dist/metro/runBuild.js +66 -0
  78. package/dist/metro/runtime.d.ts +3 -0
  79. package/dist/metro/runtime.js +56 -0
  80. package/dist/metro/types.d.ts +88 -0
  81. package/dist/metro/types.js +16 -0
  82. package/dist/operations/constants.d.ts +3 -0
  83. package/dist/operations/constants.js +34 -0
  84. package/dist/operations/createDebuggerMiddleware.d.ts +11 -0
  85. package/dist/operations/createDebuggerMiddleware.js +128 -0
  86. package/dist/operations/experimental/StartMenuHandler.d.ts +13 -0
  87. package/dist/operations/experimental/StartMenuHandler.js +86 -0
  88. package/dist/operations/experimental/runServer.d.ts +16 -0
  89. package/dist/operations/experimental/runServer.js +137 -0
  90. package/dist/operations/index.d.ts +3 -0
  91. package/dist/operations/index.js +26 -0
  92. package/dist/operations/openDebugger.d.ts +1 -0
  93. package/dist/operations/openDebugger.js +73 -0
  94. package/dist/operations/runBundle.d.ts +12 -0
  95. package/dist/operations/runBundle.js +97 -0
  96. package/dist/operations/runServer.d.ts +15 -0
  97. package/dist/operations/runServer.js +134 -0
  98. package/dist/performance/Performance.d.ts +23 -0
  99. package/dist/performance/Performance.js +121 -0
  100. package/dist/performance/index.d.ts +2 -0
  101. package/dist/performance/index.js +31 -0
  102. package/dist/performance/printSummary.d.ts +5 -0
  103. package/dist/performance/printSummary.js +58 -0
  104. package/dist/plugins/index.d.ts +1 -0
  105. package/dist/plugins/index.js +22 -0
  106. package/dist/plugins/statusPlugin.d.ts +2 -0
  107. package/dist/plugins/statusPlugin.js +64 -0
  108. package/dist/server/DevServer.d.ts +23 -0
  109. package/dist/server/DevServer.js +216 -0
  110. package/dist/server/constants.d.ts +1 -0
  111. package/dist/server/constants.js +28 -0
  112. package/dist/server/debugger/DebuggerEventHandler.d.ts +41 -0
  113. package/dist/server/debugger/DebuggerEventHandler.js +169 -0
  114. package/dist/server/debugger/parseDomain.d.ts +1 -0
  115. package/dist/server/debugger/parseDomain.js +30 -0
  116. package/dist/server/helpers/createBundlerForDevServer.d.ts +10 -0
  117. package/dist/server/helpers/createBundlerForDevServer.js +75 -0
  118. package/dist/server/helpers/mergeBundles.d.ts +7 -0
  119. package/dist/server/helpers/mergeBundles.js +129 -0
  120. package/dist/server/index.d.ts +1 -0
  121. package/dist/server/index.js +22 -0
  122. package/dist/server/middlewares/createLiveReloadMiddleware.d.ts +10 -0
  123. package/dist/server/middlewares/createLiveReloadMiddleware.js +129 -0
  124. package/dist/server/middlewares/index.d.ts +1 -0
  125. package/dist/server/middlewares/index.js +22 -0
  126. package/dist/server/plugins/debuggerPlugin.d.ts +7 -0
  127. package/dist/server/plugins/debuggerPlugin.js +68 -0
  128. package/dist/server/plugins/index.d.ts +5 -0
  129. package/dist/server/plugins/index.js +30 -0
  130. package/dist/server/plugins/indexPagePlugin.d.ts +4 -0
  131. package/dist/server/plugins/indexPagePlugin.js +52 -0
  132. package/dist/server/plugins/reply.d.ts +3 -0
  133. package/dist/server/plugins/reply.js +38 -0
  134. package/dist/server/plugins/serveBundlePlugin.d.ts +8 -0
  135. package/dist/server/plugins/serveBundlePlugin.js +118 -0
  136. package/dist/server/plugins/statusPlugin.d.ts +7 -0
  137. package/dist/server/plugins/statusPlugin.js +50 -0
  138. package/dist/server/plugins/symbolicatePlugin/index.d.ts +1 -0
  139. package/dist/server/plugins/symbolicatePlugin/index.js +28 -0
  140. package/dist/server/plugins/symbolicatePlugin/parseStackFrame.d.ts +25 -0
  141. package/dist/server/plugins/symbolicatePlugin/parseStackFrame.js +51 -0
  142. package/dist/server/plugins/symbolicatePlugin/symbolicate.d.ts +25 -0
  143. package/dist/server/plugins/symbolicatePlugin/symbolicate.js +84 -0
  144. package/dist/server/plugins/symbolicatePlugin/symbolicatePlugin.d.ts +8 -0
  145. package/dist/server/plugins/symbolicatePlugin/symbolicatePlugin.js +77 -0
  146. package/dist/server/types.d.ts +97 -0
  147. package/dist/server/types.js +16 -0
  148. package/dist/server/wss/WebSocketServerDelegate.d.ts +23 -0
  149. package/dist/server/wss/WebSocketServerDelegate.js +50 -0
  150. package/dist/server/wss/WebSocketServerRouter.d.ts +8 -0
  151. package/dist/server/wss/WebSocketServerRouter.js +66 -0
  152. package/dist/server/wss/index.d.ts +2 -0
  153. package/dist/server/wss/index.js +24 -0
  154. package/dist/shared/PersistentStorage.d.ts +21 -0
  155. package/dist/shared/PersistentStorage.js +68 -0
  156. package/dist/transformer/AsyncTransformPipeline.d.ts +4 -0
  157. package/dist/transformer/AsyncTransformPipeline.js +58 -0
  158. package/dist/transformer/TransformPipeline.d.ts +37 -0
  159. package/dist/transformer/TransformPipeline.js +64 -0
  160. package/dist/transformer/index.d.ts +1 -0
  161. package/dist/transformer/index.js +28 -0
  162. package/dist/types/BuildConfig.d.ts +183 -0
  163. package/dist/types/BuildConfig.js +16 -0
  164. package/dist/types/BundlerConfig.d.ts +56 -0
  165. package/dist/types/BundlerConfig.js +16 -0
  166. package/dist/types/Config.d.ts +12 -0
  167. package/dist/types/Config.js +16 -0
  168. package/dist/types/DevServerConfig.d.ts +9 -0
  169. package/dist/types/DevServerConfig.js +16 -0
  170. package/dist/types/Plugin.d.ts +28 -0
  171. package/dist/types/Plugin.js +16 -0
  172. package/dist/types/Preset.d.ts +3 -0
  173. package/dist/types/Preset.js +16 -0
  174. package/dist/types/PresetContext.d.ts +2 -0
  175. package/dist/types/PresetContext.js +16 -0
  176. package/dist/types/ServicesConfig.d.ts +2 -0
  177. package/dist/types/ServicesConfig.js +16 -0
  178. package/dist/types/TaskConfig.d.ts +16 -0
  179. package/dist/types/TaskConfig.js +16 -0
  180. package/dist/types/index.d.ts +9 -0
  181. package/dist/types/index.js +38 -0
  182. package/dist/types/schemas/buildConfigSchema.d.ts +235 -0
  183. package/dist/types/schemas/buildConfigSchema.js +79 -0
  184. package/dist/types/schemas/bundlerConfigSchema.d.ts +3 -0
  185. package/dist/types/schemas/bundlerConfigSchema.js +51 -0
  186. package/dist/types/schemas/configSchema.d.ts +3 -0
  187. package/dist/types/schemas/configSchema.js +50 -0
  188. package/dist/types/schemas/devServerConfigSchema.d.ts +3 -0
  189. package/dist/types/schemas/devServerConfigSchema.js +43 -0
  190. package/dist/types/schemas/index.d.ts +6 -0
  191. package/dist/types/schemas/index.js +32 -0
  192. package/dist/types/schemas/servicesConfigSchema.d.ts +3 -0
  193. package/dist/types/schemas/servicesConfigSchema.js +48 -0
  194. package/dist/types/schemas/taskConfigSchema.d.ts +3 -0
  195. package/dist/types/schemas/taskConfigSchema.js +45 -0
  196. package/dist/utils/cleanupOutputDirectory.d.ts +1 -0
  197. package/dist/utils/cleanupOutputDirectory.js +53 -0
  198. package/dist/utils/defineStepName.d.ts +2 -0
  199. package/dist/utils/defineStepName.js +30 -0
  200. package/dist/utils/esbuildUtils.d.ts +1 -0
  201. package/dist/utils/esbuildUtils.js +45 -0
  202. package/dist/utils/getBundleName.d.ts +1 -0
  203. package/dist/utils/getBundleName.js +30 -0
  204. package/dist/utils/getBundleOutputs.d.ts +5 -0
  205. package/dist/utils/getBundleOutputs.js +49 -0
  206. package/dist/utils/getId.d.ts +2 -0
  207. package/dist/utils/getId.js +41 -0
  208. package/dist/utils/getSourcemapName.d.ts +1 -0
  209. package/dist/utils/getSourcemapName.js +30 -0
  210. package/dist/utils/isDebugMode.d.ts +1 -0
  211. package/dist/utils/isDebugMode.js +30 -0
  212. package/dist/utils/loadConfig.d.ts +2 -0
  213. package/dist/utils/loadConfig.js +37 -0
  214. package/dist/utils/loadPresets.d.ts +2 -0
  215. package/dist/utils/loadPresets.js +40 -0
  216. package/dist/utils/md5.d.ts +1 -0
  217. package/dist/utils/md5.js +41 -0
  218. package/dist/utils/mergeBanners.d.ts +6 -0
  219. package/dist/utils/mergeBanners.js +35 -0
  220. package/dist/utils/mergeBuildConfigs.d.ts +2 -0
  221. package/dist/utils/mergeBuildConfigs.js +59 -0
  222. package/dist/utils/mergeInject.d.ts +3 -0
  223. package/dist/utils/mergeInject.js +30 -0
  224. package/dist/utils/printLogo.d.ts +1 -0
  225. package/dist/utils/printLogo.js +56 -0
  226. package/dist/utils/printSummary.d.ts +7 -0
  227. package/dist/utils/printSummary.js +55 -0
  228. package/dist/utils/progressBar.d.ts +9 -0
  229. package/dist/utils/progressBar.js +97 -0
  230. package/dist/utils/promiseHandler.d.ts +12 -0
  231. package/dist/utils/promiseHandler.js +54 -0
  232. package/dist/utils/replaceModulePath.d.ts +1 -0
  233. package/dist/utils/replaceModulePath.js +31 -0
  234. package/dist/utils/replacePlaceholders.d.ts +1 -0
  235. package/dist/utils/replacePlaceholders.js +33 -0
  236. package/dist/utils/stripExtension.d.ts +1 -0
  237. package/dist/utils/stripExtension.js +41 -0
  238. package/dist/utils/writeBundle.d.ts +2 -0
  239. package/dist/utils/writeBundle.js +52 -0
  240. package/dist/vendors/@react-native/dev-middleware/Device.d.ts +5 -0
  241. package/dist/vendors/@react-native/dev-middleware/Device.js +33 -0
  242. package/dist/vendors/@react-native/dev-middleware/InspectorProxy.d.ts +31 -0
  243. package/dist/vendors/@react-native/dev-middleware/InspectorProxy.js +169 -0
  244. package/dist/vendors/@react-native/dev-middleware/index.d.ts +3 -0
  245. package/dist/vendors/@react-native/dev-middleware/index.js +26 -0
  246. package/dist/vendors/@react-native/dev-middleware/types.d.ts +54 -0
  247. package/dist/vendors/@react-native/dev-middleware/types.js +16 -0
  248. package/dist/vendors/@react-native-community/cli-server-api/createWebSocketEndpoints.d.ts +23 -0
  249. package/dist/vendors/@react-native-community/cli-server-api/createWebSocketEndpoints.js +47 -0
  250. package/dist/vendors/@react-native-community/cli-server-api/index.d.ts +1 -0
  251. package/dist/vendors/@react-native-community/cli-server-api/index.js +22 -0
  252. package/dist/vendors/index.d.ts +27 -0
  253. package/dist/vendors/index.js +63 -0
  254. package/dist/vendors/metro/src/Assets.js +159 -0
  255. package/dist/vendors/metro/src/Bundler/util.js +131 -0
  256. package/dist/vendors/metro/src/Bundler.js +43 -0
  257. package/dist/vendors/metro/src/DeltaBundler/DeltaCalculator.js +176 -0
  258. package/dist/vendors/metro/src/DeltaBundler/Serializers/baseBytecodeBundle.js +61 -0
  259. package/dist/vendors/metro/src/DeltaBundler/Serializers/baseJSBundle.js +45 -0
  260. package/dist/vendors/metro/src/DeltaBundler/Serializers/getAllFiles.js +30 -0
  261. package/dist/vendors/metro/src/DeltaBundler/Serializers/getAssets.js +23 -0
  262. package/dist/vendors/metro/src/DeltaBundler/Serializers/getExplodedSourceMap.js +17 -0
  263. package/dist/vendors/metro/src/DeltaBundler/Serializers/getRamBundleInfo.js +87 -0
  264. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/bytecode.js +51 -0
  265. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js +6 -0
  266. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +16 -0
  267. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js +21 -0
  268. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/js.js +43 -0
  269. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js +13 -0
  270. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/processModules.js +13 -0
  271. package/dist/vendors/metro/src/DeltaBundler/Serializers/hmrJSBundle.js +66 -0
  272. package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapGenerator.js +63 -0
  273. package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapObject.js +18 -0
  274. package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapString.js +8 -0
  275. package/dist/vendors/metro/src/DeltaBundler/Transformer.js +133 -0
  276. package/dist/vendors/metro/src/DeltaBundler/Worker.flow.js +64 -0
  277. package/dist/vendors/metro/src/DeltaBundler/Worker.js +6 -0
  278. package/dist/vendors/metro/src/DeltaBundler/WorkerFarm.js +128 -0
  279. package/dist/vendors/metro/src/DeltaBundler/getTransformCacheKey.js +20 -0
  280. package/dist/vendors/metro/src/DeltaBundler/graphOperations.js +420 -0
  281. package/dist/vendors/metro/src/DeltaBundler/mergeDeltas.js +52 -0
  282. package/dist/vendors/metro/src/DeltaBundler/types.flow.js +24 -0
  283. package/dist/vendors/metro/src/DeltaBundler.js +56 -0
  284. package/dist/vendors/metro/src/HmrServer.js +224 -0
  285. package/dist/vendors/metro/src/IncrementalBundler/GraphNotFoundError.js +9 -0
  286. package/dist/vendors/metro/src/IncrementalBundler/ResourceNotFoundError.js +9 -0
  287. package/dist/vendors/metro/src/IncrementalBundler/RevisionNotFoundError.js +9 -0
  288. package/dist/vendors/metro/src/IncrementalBundler.js +213 -0
  289. package/dist/vendors/metro/src/ModuleGraph/module.js +14 -0
  290. package/dist/vendors/metro/src/ModuleGraph/node-haste/HasteFS.js +66 -0
  291. package/dist/vendors/metro/src/ModuleGraph/node-haste/Module.js +22 -0
  292. package/dist/vendors/metro/src/ModuleGraph/node-haste/ModuleCache.js +43 -0
  293. package/dist/vendors/metro/src/ModuleGraph/node-haste/Package.js +81 -0
  294. package/dist/vendors/metro/src/ModuleGraph/node-haste/node-haste.flow.js +1 -0
  295. package/dist/vendors/metro/src/ModuleGraph/node-haste/node-haste.js +127 -0
  296. package/dist/vendors/metro/src/ModuleGraph/output/indexed-ram-bundle.js +71 -0
  297. package/dist/vendors/metro/src/ModuleGraph/output/multiple-files-ram-bundle.js +53 -0
  298. package/dist/vendors/metro/src/ModuleGraph/output/plain-bundle.js +36 -0
  299. package/dist/vendors/metro/src/ModuleGraph/output/reverse-dependency-map-references.js +53 -0
  300. package/dist/vendors/metro/src/ModuleGraph/output/util.js +168 -0
  301. package/dist/vendors/metro/src/ModuleGraph/silent-console.js +5 -0
  302. package/dist/vendors/metro/src/ModuleGraph/types.flow.js +1 -0
  303. package/dist/vendors/metro/src/ModuleGraph/worker/JsFileWrapping.js +87 -0
  304. package/dist/vendors/metro/src/ModuleGraph/worker/Platforms.js +3 -0
  305. package/dist/vendors/metro/src/ModuleGraph/worker/collectDependencies.js +440 -0
  306. package/dist/vendors/metro/src/ModuleGraph/worker/generate.js +21 -0
  307. package/dist/vendors/metro/src/ModuleGraph/worker/generateImportNames.js +19 -0
  308. package/dist/vendors/metro/src/ModuleGraph/worker/mergeSourceMaps.js +29 -0
  309. package/dist/vendors/metro/src/Server/MultipartResponse.js +57 -0
  310. package/dist/vendors/metro/src/Server/symbolicate.js +109 -0
  311. package/dist/vendors/metro/src/Server.js +855 -0
  312. package/dist/vendors/metro/src/cli-utils.js +14 -0
  313. package/dist/vendors/metro/src/cli.js +9 -0
  314. package/dist/vendors/metro/src/commands/build.js +67 -0
  315. package/dist/vendors/metro/src/commands/dependencies.js +75 -0
  316. package/dist/vendors/metro/src/commands/serve.js +56 -0
  317. package/dist/vendors/metro/src/index.d.ts +8 -0
  318. package/dist/vendors/metro/src/index.flow.js +279 -0
  319. package/dist/vendors/metro/src/index.js +6 -0
  320. package/dist/vendors/metro/src/isPnP.js +13 -0
  321. package/dist/vendors/metro/src/lib/BatchProcessor.js +69 -0
  322. package/dist/vendors/metro/src/lib/CountingSet.js +98 -0
  323. package/dist/vendors/metro/src/lib/JsonReporter.js +21 -0
  324. package/dist/vendors/metro/src/lib/RamBundleParser.js +36 -0
  325. package/dist/vendors/metro/src/lib/TerminalReporter.d.ts +18 -0
  326. package/dist/vendors/metro/src/lib/TerminalReporter.js +258 -0
  327. package/dist/vendors/metro/src/lib/bundleToBytecode.js +40 -0
  328. package/dist/vendors/metro/src/lib/bundleToString.js +22 -0
  329. package/dist/vendors/metro/src/lib/contextModule.js +73 -0
  330. package/dist/vendors/metro/src/lib/contextModuleTemplates.js +116 -0
  331. package/dist/vendors/metro/src/lib/countLines.js +4 -0
  332. package/dist/vendors/metro/src/lib/createModuleIdFactory.js +14 -0
  333. package/dist/vendors/metro/src/lib/createWebsocketServer.js +54 -0
  334. package/dist/vendors/metro/src/lib/debounceAsyncQueue.js +33 -0
  335. package/dist/vendors/metro/src/lib/formatBundlingError.js +76 -0
  336. package/dist/vendors/metro/src/lib/getAppendScripts.js +131 -0
  337. package/dist/vendors/metro/src/lib/getGraphId.js +27 -0
  338. package/dist/vendors/metro/src/lib/getMaxWorkers.js +6 -0
  339. package/dist/vendors/metro/src/lib/getPreludeCode.js +32 -0
  340. package/dist/vendors/metro/src/lib/getPrependedScripts.js +93 -0
  341. package/dist/vendors/metro/src/lib/logToConsole.js +46 -0
  342. package/dist/vendors/metro/src/lib/parseCustomResolverOptions.js +13 -0
  343. package/dist/vendors/metro/src/lib/parseCustomTransformOptions.js +13 -0
  344. package/dist/vendors/metro/src/lib/parseOptionsFromUrl.js +50 -0
  345. package/dist/vendors/metro/src/lib/relativizeSourceMap.js +14 -0
  346. package/dist/vendors/metro/src/lib/reporting.js +26 -0
  347. package/dist/vendors/metro/src/lib/splitBundleOptions.js +32 -0
  348. package/dist/vendors/metro/src/lib/transformHelpers.js +112 -0
  349. package/dist/vendors/metro/src/node-haste/DependencyGraph/ModuleResolution.js +221 -0
  350. package/dist/vendors/metro/src/node-haste/DependencyGraph/createHasteMap.js +71 -0
  351. package/dist/vendors/metro/src/node-haste/DependencyGraph.js +223 -0
  352. package/dist/vendors/metro/src/node-haste/Module.js +21 -0
  353. package/dist/vendors/metro/src/node-haste/ModuleCache.js +81 -0
  354. package/dist/vendors/metro/src/node-haste/Package.js +98 -0
  355. package/dist/vendors/metro/src/node-haste/lib/AssetPaths.js +41 -0
  356. package/dist/vendors/metro/src/node-haste/lib/parsePlatformFilePath.js +19 -0
  357. package/dist/vendors/metro/src/shared/output/RamBundle/as-assets.js +61 -0
  358. package/dist/vendors/metro/src/shared/output/RamBundle/as-indexed-file.js +115 -0
  359. package/dist/vendors/metro/src/shared/output/RamBundle/buildSourcemapWithMetadata.js +23 -0
  360. package/dist/vendors/metro/src/shared/output/RamBundle/magic-number.js +2 -0
  361. package/dist/vendors/metro/src/shared/output/RamBundle/util.js +94 -0
  362. package/dist/vendors/metro/src/shared/output/RamBundle/write-sourcemap.js +12 -0
  363. package/dist/vendors/metro/src/shared/output/RamBundle.js +18 -0
  364. package/dist/vendors/metro/src/shared/output/bundle.flow.js +42 -0
  365. package/dist/vendors/metro/src/shared/output/bundle.js +6 -0
  366. package/dist/vendors/metro/src/shared/output/meta.js +31 -0
  367. package/dist/vendors/metro/src/shared/output/unbundle.js +2 -0
  368. package/dist/vendors/metro/src/shared/output/writeFile.js +6 -0
  369. package/dist/vendors/metro/src/shared/types.flow.js +1 -0
  370. package/dist/vendors/metro-config/src/configTypes.flow.js +1 -0
  371. package/dist/vendors/metro-config/src/defaults/defaults.js +66 -0
  372. package/dist/vendors/metro-config/src/defaults/exclusionList.d.ts +3 -0
  373. package/dist/vendors/metro-config/src/defaults/exclusionList.js +17 -0
  374. package/dist/vendors/metro-config/src/defaults/index.d.ts +5 -0
  375. package/dist/vendors/metro-config/src/defaults/index.js +161 -0
  376. package/dist/vendors/metro-config/src/defaults/validConfig.js +28 -0
  377. package/dist/vendors/metro-config/src/index.js +9 -0
  378. package/dist/vendors/metro-config/src/loadConfig.d.ts +4 -0
  379. package/dist/vendors/metro-config/src/loadConfig.js +188 -0
  380. package/dist/vendors/metro-core/src/Logger.js +62 -0
  381. package/dist/vendors/metro-core/src/Terminal.d.ts +30 -0
  382. package/dist/vendors/metro-core/src/Terminal.js +100 -0
  383. package/dist/vendors/metro-core/src/canonicalize.js +17 -0
  384. package/dist/vendors/metro-core/src/errors/AmbiguousModuleResolutionError.js +11 -0
  385. package/dist/vendors/metro-core/src/errors/PackageResolutionError.js +18 -0
  386. package/dist/vendors/metro-core/src/errors.js +7 -0
  387. package/dist/vendors/metro-core/src/index.js +11 -0
  388. package/dist/vendors/metro-inspector-proxy/src/Device.js +398 -0
  389. package/dist/vendors/metro-inspector-proxy/src/InspectorProxy.d.ts +21 -0
  390. package/dist/vendors/metro-inspector-proxy/src/InspectorProxy.js +153 -0
  391. package/dist/vendors/metro-inspector-proxy/src/cli.js +15 -0
  392. package/dist/vendors/metro-inspector-proxy/src/index.js +23 -0
  393. package/dist/vendors/metro-inspector-proxy/src/types.js +1 -0
  394. package/dist/vendors/metro-transform-worker/src/index.js +430 -0
  395. package/dist/vendors/metro-transform-worker/src/utils/assetTransformer.js +20 -0
  396. package/dist/vendors/metro-transform-worker/src/utils/getMinifier.js +11 -0
  397. 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,6 @@
1
+ "use strict";
2
+ try {
3
+ require("metro-babel-register").unstable_registerForMetroMonorepo();
4
+ } catch {
5
+ }
6
+ module.exports = require("./Worker.flow");
@@ -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;