@granite-js/mpack 0.0.0-dev-20250725013859

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 (385) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +24 -0
  3. package/dist/bundler/Bundler.d.ts +24 -0
  4. package/dist/bundler/Bundler.js +180 -0
  5. package/dist/bundler/PluginDriver.d.ts +9 -0
  6. package/dist/bundler/PluginDriver.js +47 -0
  7. package/dist/bundler/index.d.ts +1 -0
  8. package/dist/bundler/index.js +22 -0
  9. package/dist/bundler/internal/presets.d.ts +18 -0
  10. package/dist/bundler/internal/presets.js +103 -0
  11. package/dist/bundler/plugins/buildStatusPlugin/buildStatusPlugin.d.ts +12 -0
  12. package/dist/bundler/plugins/buildStatusPlugin/buildStatusPlugin.js +74 -0
  13. package/dist/bundler/plugins/buildStatusPlugin/index.d.ts +1 -0
  14. package/dist/bundler/plugins/buildStatusPlugin/index.js +28 -0
  15. package/dist/bundler/plugins/dependencyAliasPlugin/aliasResolver.d.ts +3 -0
  16. package/dist/bundler/plugins/dependencyAliasPlugin/aliasResolver.js +89 -0
  17. package/dist/bundler/plugins/dependencyAliasPlugin/dependencyAliasPlugin.d.ts +3 -0
  18. package/dist/bundler/plugins/dependencyAliasPlugin/dependencyAliasPlugin.js +43 -0
  19. package/dist/bundler/plugins/dependencyAliasPlugin/index.d.ts +1 -0
  20. package/dist/bundler/plugins/dependencyAliasPlugin/index.js +28 -0
  21. package/dist/bundler/plugins/dependencyAliasPlugin/protocolResolver.d.ts +3 -0
  22. package/dist/bundler/plugins/dependencyAliasPlugin/protocolResolver.js +53 -0
  23. package/dist/bundler/plugins/index.d.ts +4 -0
  24. package/dist/bundler/plugins/index.js +28 -0
  25. package/dist/bundler/plugins/requireContextPlugin/index.d.ts +1 -0
  26. package/dist/bundler/plugins/requireContextPlugin/index.js +28 -0
  27. package/dist/bundler/plugins/requireContextPlugin/requireContextPlugin.d.ts +6 -0
  28. package/dist/bundler/plugins/requireContextPlugin/requireContextPlugin.js +101 -0
  29. package/dist/bundler/plugins/requireContextPlugin/scripts.d.ts +56 -0
  30. package/dist/bundler/plugins/requireContextPlugin/scripts.js +65 -0
  31. package/dist/bundler/plugins/shared/swc.d.ts +11 -0
  32. package/dist/bundler/plugins/shared/swc.js +70 -0
  33. package/dist/bundler/plugins/transformPlugin/helpers/preludeScript.d.ts +23 -0
  34. package/dist/bundler/plugins/transformPlugin/helpers/preludeScript.js +79 -0
  35. package/dist/bundler/plugins/transformPlugin/index.d.ts +1 -0
  36. package/dist/bundler/plugins/transformPlugin/index.js +28 -0
  37. package/dist/bundler/plugins/transformPlugin/steps/createCacheSteps.d.ts +10 -0
  38. package/dist/bundler/plugins/transformPlugin/steps/createCacheSteps.js +56 -0
  39. package/dist/bundler/plugins/transformPlugin/steps/createFullyTransformStep.d.ts +8 -0
  40. package/dist/bundler/plugins/transformPlugin/steps/createFullyTransformStep.js +120 -0
  41. package/dist/bundler/plugins/transformPlugin/steps/createStripFlowStep.d.ts +6 -0
  42. package/dist/bundler/plugins/transformPlugin/steps/createStripFlowStep.js +91 -0
  43. package/dist/bundler/plugins/transformPlugin/steps/createTransformToHermesSyntaxStep.d.ts +8 -0
  44. package/dist/bundler/plugins/transformPlugin/steps/createTransformToHermesSyntaxStep.js +100 -0
  45. package/dist/bundler/plugins/transformPlugin/transformPlugin.d.ts +8 -0
  46. package/dist/bundler/plugins/transformPlugin/transformPlugin.js +88 -0
  47. package/dist/bundler/plugins/types.d.ts +7 -0
  48. package/dist/bundler/plugins/types.js +16 -0
  49. package/dist/bundler/types.d.ts +16 -0
  50. package/dist/bundler/types.js +16 -0
  51. package/dist/cache/Cache.d.ts +25 -0
  52. package/dist/cache/Cache.js +87 -0
  53. package/dist/cache/index.d.ts +1 -0
  54. package/dist/cache/index.js +22 -0
  55. package/dist/constants/index.d.ts +20 -0
  56. package/dist/constants/index.js +91 -0
  57. package/dist/index.d.ts +10 -0
  58. package/dist/index.js +56 -0
  59. package/dist/logger/Logger.d.ts +17 -0
  60. package/dist/logger/Logger.js +115 -0
  61. package/dist/logger/clientLogger.d.ts +2 -0
  62. package/dist/logger/clientLogger.js +49 -0
  63. package/dist/logger/index.d.ts +3 -0
  64. package/dist/logger/index.js +31 -0
  65. package/dist/metro/assetRegistry.d.ts +12 -0
  66. package/dist/metro/assetRegistry.js +57 -0
  67. package/dist/metro/enhancedResolver.d.ts +7 -0
  68. package/dist/metro/enhancedResolver.js +127 -0
  69. package/dist/metro/getMetroConfig.d.ts +27 -0
  70. package/dist/metro/getMetroConfig.js +137 -0
  71. package/dist/metro/getMonorepoRoot.d.ts +4 -0
  72. package/dist/metro/getMonorepoRoot.js +80 -0
  73. package/dist/metro/index.d.ts +3 -0
  74. package/dist/metro/index.js +24 -0
  75. package/dist/metro/pnpapi.d.ts +6 -0
  76. package/dist/metro/pnpapi.js +32 -0
  77. package/dist/metro/runBuild.d.ts +10 -0
  78. package/dist/metro/runBuild.js +57 -0
  79. package/dist/metro/types.d.ts +92 -0
  80. package/dist/metro/types.js +16 -0
  81. package/dist/operations/constants.d.ts +3 -0
  82. package/dist/operations/constants.js +34 -0
  83. package/dist/operations/createDebuggerMiddleware.d.ts +11 -0
  84. package/dist/operations/createDebuggerMiddleware.js +128 -0
  85. package/dist/operations/experimental/StartMenuHandler.d.ts +13 -0
  86. package/dist/operations/experimental/StartMenuHandler.js +86 -0
  87. package/dist/operations/experimental/runServer.d.ts +13 -0
  88. package/dist/operations/experimental/runServer.js +130 -0
  89. package/dist/operations/index.d.ts +3 -0
  90. package/dist/operations/index.js +26 -0
  91. package/dist/operations/openDebugger.d.ts +1 -0
  92. package/dist/operations/openDebugger.js +73 -0
  93. package/dist/operations/runBundle.d.ts +6 -0
  94. package/dist/operations/runBundle.js +60 -0
  95. package/dist/operations/runServer.d.ts +13 -0
  96. package/dist/operations/runServer.js +131 -0
  97. package/dist/performance/Performance.d.ts +23 -0
  98. package/dist/performance/Performance.js +121 -0
  99. package/dist/performance/index.d.ts +2 -0
  100. package/dist/performance/index.js +31 -0
  101. package/dist/performance/printSummary.d.ts +5 -0
  102. package/dist/performance/printSummary.js +58 -0
  103. package/dist/plugins/index.d.ts +1 -0
  104. package/dist/plugins/index.js +22 -0
  105. package/dist/plugins/statusPlugin.d.ts +2 -0
  106. package/dist/plugins/statusPlugin.js +64 -0
  107. package/dist/server/DevServer.d.ts +26 -0
  108. package/dist/server/DevServer.js +215 -0
  109. package/dist/server/constants.d.ts +1 -0
  110. package/dist/server/constants.js +28 -0
  111. package/dist/server/debugger/DebuggerEventHandler.d.ts +41 -0
  112. package/dist/server/debugger/DebuggerEventHandler.js +169 -0
  113. package/dist/server/debugger/parseDomain.d.ts +1 -0
  114. package/dist/server/debugger/parseDomain.js +30 -0
  115. package/dist/server/helpers/createBundlerForDevServer.d.ts +8 -0
  116. package/dist/server/helpers/createBundlerForDevServer.js +48 -0
  117. package/dist/server/helpers/mergeBundles.d.ts +7 -0
  118. package/dist/server/helpers/mergeBundles.js +129 -0
  119. package/dist/server/index.d.ts +1 -0
  120. package/dist/server/index.js +22 -0
  121. package/dist/server/middlewares/createLiveReloadMiddleware.d.ts +10 -0
  122. package/dist/server/middlewares/createLiveReloadMiddleware.js +129 -0
  123. package/dist/server/middlewares/index.d.ts +1 -0
  124. package/dist/server/middlewares/index.js +22 -0
  125. package/dist/server/plugins/debuggerPlugin.d.ts +7 -0
  126. package/dist/server/plugins/debuggerPlugin.js +68 -0
  127. package/dist/server/plugins/index.d.ts +5 -0
  128. package/dist/server/plugins/index.js +30 -0
  129. package/dist/server/plugins/indexPagePlugin.d.ts +4 -0
  130. package/dist/server/plugins/indexPagePlugin.js +52 -0
  131. package/dist/server/plugins/reply.d.ts +3 -0
  132. package/dist/server/plugins/reply.js +38 -0
  133. package/dist/server/plugins/serveBundlePlugin.d.ts +8 -0
  134. package/dist/server/plugins/serveBundlePlugin.js +118 -0
  135. package/dist/server/plugins/statusPlugin.d.ts +7 -0
  136. package/dist/server/plugins/statusPlugin.js +50 -0
  137. package/dist/server/plugins/symbolicatePlugin/index.d.ts +1 -0
  138. package/dist/server/plugins/symbolicatePlugin/index.js +28 -0
  139. package/dist/server/plugins/symbolicatePlugin/parseStackFrame.d.ts +25 -0
  140. package/dist/server/plugins/symbolicatePlugin/parseStackFrame.js +51 -0
  141. package/dist/server/plugins/symbolicatePlugin/symbolicate.d.ts +25 -0
  142. package/dist/server/plugins/symbolicatePlugin/symbolicate.js +84 -0
  143. package/dist/server/plugins/symbolicatePlugin/symbolicatePlugin.d.ts +8 -0
  144. package/dist/server/plugins/symbolicatePlugin/symbolicatePlugin.js +77 -0
  145. package/dist/server/types.d.ts +92 -0
  146. package/dist/server/types.js +16 -0
  147. package/dist/server/wss/WebSocketServerDelegate.d.ts +23 -0
  148. package/dist/server/wss/WebSocketServerDelegate.js +50 -0
  149. package/dist/server/wss/WebSocketServerRouter.d.ts +8 -0
  150. package/dist/server/wss/WebSocketServerRouter.js +66 -0
  151. package/dist/server/wss/index.d.ts +2 -0
  152. package/dist/server/wss/index.js +24 -0
  153. package/dist/shared/PersistentStorage.d.ts +21 -0
  154. package/dist/shared/PersistentStorage.js +68 -0
  155. package/dist/transformer/AsyncTransformPipeline.d.ts +4 -0
  156. package/dist/transformer/AsyncTransformPipeline.js +58 -0
  157. package/dist/transformer/TransformPipeline.d.ts +37 -0
  158. package/dist/transformer/TransformPipeline.js +64 -0
  159. package/dist/transformer/index.d.ts +1 -0
  160. package/dist/transformer/index.js +28 -0
  161. package/dist/types/BuildConfig.d.ts +187 -0
  162. package/dist/types/BuildConfig.js +16 -0
  163. package/dist/types/BundlerConfig.d.ts +23 -0
  164. package/dist/types/BundlerConfig.js +16 -0
  165. package/dist/types/DevServer.d.ts +10 -0
  166. package/dist/types/DevServer.js +16 -0
  167. package/dist/types/Id.d.ts +3 -0
  168. package/dist/types/Id.js +16 -0
  169. package/dist/types/Plugin.d.ts +28 -0
  170. package/dist/types/Plugin.js +16 -0
  171. package/dist/types/index.d.ts +5 -0
  172. package/dist/types/index.js +30 -0
  173. package/dist/types/schemas/buildConfigSchema.d.ts +131 -0
  174. package/dist/types/schemas/buildConfigSchema.js +70 -0
  175. package/dist/types/schemas/index.d.ts +1 -0
  176. package/dist/types/schemas/index.js +22 -0
  177. package/dist/utils/cleanupOutputDirectory.d.ts +1 -0
  178. package/dist/utils/cleanupOutputDirectory.js +53 -0
  179. package/dist/utils/defineStepName.d.ts +2 -0
  180. package/dist/utils/defineStepName.js +30 -0
  181. package/dist/utils/esbuildUtils.d.ts +1 -0
  182. package/dist/utils/esbuildUtils.js +45 -0
  183. package/dist/utils/getBundleName.d.ts +1 -0
  184. package/dist/utils/getBundleName.js +30 -0
  185. package/dist/utils/getBundleOutputs.d.ts +5 -0
  186. package/dist/utils/getBundleOutputs.js +49 -0
  187. package/dist/utils/getId.d.ts +2 -0
  188. package/dist/utils/getId.js +34 -0
  189. package/dist/utils/getSourcemapName.d.ts +1 -0
  190. package/dist/utils/getSourcemapName.js +30 -0
  191. package/dist/utils/index.d.ts +7 -0
  192. package/dist/utils/index.js +34 -0
  193. package/dist/utils/isDebugMode.d.ts +1 -0
  194. package/dist/utils/isDebugMode.js +30 -0
  195. package/dist/utils/md5.d.ts +1 -0
  196. package/dist/utils/md5.js +41 -0
  197. package/dist/utils/mergeBabel.d.ts +2 -0
  198. package/dist/utils/mergeBabel.js +45 -0
  199. package/dist/utils/mergeBuildConfigs.d.ts +2 -0
  200. package/dist/utils/mergeBuildConfigs.js +50 -0
  201. package/dist/utils/mergeEsbuild.d.ts +2 -0
  202. package/dist/utils/mergeEsbuild.js +54 -0
  203. package/dist/utils/mergeExtra.d.ts +1 -0
  204. package/dist/utils/mergeExtra.js +39 -0
  205. package/dist/utils/mergeResolver.d.ts +2 -0
  206. package/dist/utils/mergeResolver.js +45 -0
  207. package/dist/utils/mergeSwc.d.ts +2 -0
  208. package/dist/utils/mergeSwc.js +43 -0
  209. package/dist/utils/mergeTransformer.d.ts +2 -0
  210. package/dist/utils/mergeTransformer.js +69 -0
  211. package/dist/utils/printLogo.d.ts +1 -0
  212. package/dist/utils/printLogo.js +56 -0
  213. package/dist/utils/printSummary.d.ts +7 -0
  214. package/dist/utils/printSummary.js +55 -0
  215. package/dist/utils/progressBar.d.ts +9 -0
  216. package/dist/utils/progressBar.js +97 -0
  217. package/dist/utils/promiseHandler.d.ts +12 -0
  218. package/dist/utils/promiseHandler.js +54 -0
  219. package/dist/utils/replaceModulePath.d.ts +1 -0
  220. package/dist/utils/replaceModulePath.js +31 -0
  221. package/dist/utils/replacePlaceholders.d.ts +1 -0
  222. package/dist/utils/replacePlaceholders.js +33 -0
  223. package/dist/utils/stripExtension.d.ts +1 -0
  224. package/dist/utils/stripExtension.js +41 -0
  225. package/dist/utils/writeBundle.d.ts +2 -0
  226. package/dist/utils/writeBundle.js +52 -0
  227. package/dist/vendors/@react-native/dev-middleware/Device.d.ts +5 -0
  228. package/dist/vendors/@react-native/dev-middleware/Device.js +33 -0
  229. package/dist/vendors/@react-native/dev-middleware/InspectorProxy.d.ts +31 -0
  230. package/dist/vendors/@react-native/dev-middleware/InspectorProxy.js +169 -0
  231. package/dist/vendors/@react-native/dev-middleware/index.d.ts +3 -0
  232. package/dist/vendors/@react-native/dev-middleware/index.js +26 -0
  233. package/dist/vendors/@react-native/dev-middleware/types.d.ts +54 -0
  234. package/dist/vendors/@react-native/dev-middleware/types.js +16 -0
  235. package/dist/vendors/@react-native-community/cli-server-api/createWebSocketEndpoints.d.ts +23 -0
  236. package/dist/vendors/@react-native-community/cli-server-api/createWebSocketEndpoints.js +47 -0
  237. package/dist/vendors/@react-native-community/cli-server-api/index.d.ts +1 -0
  238. package/dist/vendors/@react-native-community/cli-server-api/index.js +22 -0
  239. package/dist/vendors/index.d.ts +27 -0
  240. package/dist/vendors/index.js +63 -0
  241. package/dist/vendors/metro/src/Assets.js +159 -0
  242. package/dist/vendors/metro/src/Bundler/util.js +131 -0
  243. package/dist/vendors/metro/src/Bundler.js +43 -0
  244. package/dist/vendors/metro/src/DeltaBundler/DeltaCalculator.js +176 -0
  245. package/dist/vendors/metro/src/DeltaBundler/Serializers/baseBytecodeBundle.js +61 -0
  246. package/dist/vendors/metro/src/DeltaBundler/Serializers/baseJSBundle.js +45 -0
  247. package/dist/vendors/metro/src/DeltaBundler/Serializers/getAllFiles.js +30 -0
  248. package/dist/vendors/metro/src/DeltaBundler/Serializers/getAssets.js +23 -0
  249. package/dist/vendors/metro/src/DeltaBundler/Serializers/getExplodedSourceMap.js +17 -0
  250. package/dist/vendors/metro/src/DeltaBundler/Serializers/getRamBundleInfo.js +87 -0
  251. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/bytecode.js +51 -0
  252. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getInlineSourceMappingURL.js +6 -0
  253. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getSourceMapInfo.js +16 -0
  254. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/getTransitiveDependencies.js +21 -0
  255. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/js.js +43 -0
  256. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/processBytecodeModules.js +13 -0
  257. package/dist/vendors/metro/src/DeltaBundler/Serializers/helpers/processModules.js +13 -0
  258. package/dist/vendors/metro/src/DeltaBundler/Serializers/hmrJSBundle.js +66 -0
  259. package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapGenerator.js +63 -0
  260. package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapObject.js +18 -0
  261. package/dist/vendors/metro/src/DeltaBundler/Serializers/sourceMapString.js +8 -0
  262. package/dist/vendors/metro/src/DeltaBundler/Transformer.js +133 -0
  263. package/dist/vendors/metro/src/DeltaBundler/Worker.flow.js +64 -0
  264. package/dist/vendors/metro/src/DeltaBundler/Worker.js +6 -0
  265. package/dist/vendors/metro/src/DeltaBundler/WorkerFarm.js +128 -0
  266. package/dist/vendors/metro/src/DeltaBundler/getTransformCacheKey.js +20 -0
  267. package/dist/vendors/metro/src/DeltaBundler/graphOperations.js +420 -0
  268. package/dist/vendors/metro/src/DeltaBundler/mergeDeltas.js +52 -0
  269. package/dist/vendors/metro/src/DeltaBundler/types.flow.js +24 -0
  270. package/dist/vendors/metro/src/DeltaBundler.js +56 -0
  271. package/dist/vendors/metro/src/HmrServer.js +224 -0
  272. package/dist/vendors/metro/src/IncrementalBundler/GraphNotFoundError.js +9 -0
  273. package/dist/vendors/metro/src/IncrementalBundler/ResourceNotFoundError.js +9 -0
  274. package/dist/vendors/metro/src/IncrementalBundler/RevisionNotFoundError.js +9 -0
  275. package/dist/vendors/metro/src/IncrementalBundler.js +213 -0
  276. package/dist/vendors/metro/src/ModuleGraph/module.js +14 -0
  277. package/dist/vendors/metro/src/ModuleGraph/node-haste/HasteFS.js +66 -0
  278. package/dist/vendors/metro/src/ModuleGraph/node-haste/Module.js +22 -0
  279. package/dist/vendors/metro/src/ModuleGraph/node-haste/ModuleCache.js +43 -0
  280. package/dist/vendors/metro/src/ModuleGraph/node-haste/Package.js +81 -0
  281. package/dist/vendors/metro/src/ModuleGraph/node-haste/node-haste.flow.js +1 -0
  282. package/dist/vendors/metro/src/ModuleGraph/node-haste/node-haste.js +127 -0
  283. package/dist/vendors/metro/src/ModuleGraph/output/indexed-ram-bundle.js +71 -0
  284. package/dist/vendors/metro/src/ModuleGraph/output/multiple-files-ram-bundle.js +53 -0
  285. package/dist/vendors/metro/src/ModuleGraph/output/plain-bundle.js +36 -0
  286. package/dist/vendors/metro/src/ModuleGraph/output/reverse-dependency-map-references.js +53 -0
  287. package/dist/vendors/metro/src/ModuleGraph/output/util.js +168 -0
  288. package/dist/vendors/metro/src/ModuleGraph/silent-console.js +5 -0
  289. package/dist/vendors/metro/src/ModuleGraph/types.flow.js +1 -0
  290. package/dist/vendors/metro/src/ModuleGraph/worker/JsFileWrapping.js +87 -0
  291. package/dist/vendors/metro/src/ModuleGraph/worker/Platforms.js +3 -0
  292. package/dist/vendors/metro/src/ModuleGraph/worker/collectDependencies.js +440 -0
  293. package/dist/vendors/metro/src/ModuleGraph/worker/generate.js +21 -0
  294. package/dist/vendors/metro/src/ModuleGraph/worker/generateImportNames.js +19 -0
  295. package/dist/vendors/metro/src/ModuleGraph/worker/mergeSourceMaps.js +29 -0
  296. package/dist/vendors/metro/src/Server/MultipartResponse.js +57 -0
  297. package/dist/vendors/metro/src/Server/symbolicate.js +109 -0
  298. package/dist/vendors/metro/src/Server.js +855 -0
  299. package/dist/vendors/metro/src/cli-utils.js +14 -0
  300. package/dist/vendors/metro/src/cli.js +9 -0
  301. package/dist/vendors/metro/src/commands/build.js +67 -0
  302. package/dist/vendors/metro/src/commands/dependencies.js +75 -0
  303. package/dist/vendors/metro/src/commands/serve.js +56 -0
  304. package/dist/vendors/metro/src/index.d.ts +8 -0
  305. package/dist/vendors/metro/src/index.flow.js +279 -0
  306. package/dist/vendors/metro/src/index.js +6 -0
  307. package/dist/vendors/metro/src/isPnP.js +13 -0
  308. package/dist/vendors/metro/src/lib/BatchProcessor.js +69 -0
  309. package/dist/vendors/metro/src/lib/CountingSet.js +98 -0
  310. package/dist/vendors/metro/src/lib/JsonReporter.js +21 -0
  311. package/dist/vendors/metro/src/lib/RamBundleParser.js +36 -0
  312. package/dist/vendors/metro/src/lib/ReportableEvent.d.ts +152 -0
  313. package/dist/vendors/metro/src/lib/TerminalReporter.d.ts +18 -0
  314. package/dist/vendors/metro/src/lib/TerminalReporter.js +258 -0
  315. package/dist/vendors/metro/src/lib/bundleToBytecode.js +40 -0
  316. package/dist/vendors/metro/src/lib/bundleToString.js +22 -0
  317. package/dist/vendors/metro/src/lib/contextModule.js +73 -0
  318. package/dist/vendors/metro/src/lib/contextModuleTemplates.js +116 -0
  319. package/dist/vendors/metro/src/lib/countLines.js +4 -0
  320. package/dist/vendors/metro/src/lib/createModuleIdFactory.js +14 -0
  321. package/dist/vendors/metro/src/lib/createWebsocketServer.js +54 -0
  322. package/dist/vendors/metro/src/lib/debounceAsyncQueue.js +33 -0
  323. package/dist/vendors/metro/src/lib/formatBundlingError.js +76 -0
  324. package/dist/vendors/metro/src/lib/getAppendScripts.js +131 -0
  325. package/dist/vendors/metro/src/lib/getGraphId.js +27 -0
  326. package/dist/vendors/metro/src/lib/getMaxWorkers.js +6 -0
  327. package/dist/vendors/metro/src/lib/getPreludeCode.js +32 -0
  328. package/dist/vendors/metro/src/lib/getPrependedScripts.js +93 -0
  329. package/dist/vendors/metro/src/lib/logToConsole.js +46 -0
  330. package/dist/vendors/metro/src/lib/parseCustomResolverOptions.js +13 -0
  331. package/dist/vendors/metro/src/lib/parseCustomTransformOptions.js +13 -0
  332. package/dist/vendors/metro/src/lib/parseOptionsFromUrl.js +50 -0
  333. package/dist/vendors/metro/src/lib/relativizeSourceMap.js +14 -0
  334. package/dist/vendors/metro/src/lib/reporting.js +26 -0
  335. package/dist/vendors/metro/src/lib/splitBundleOptions.js +32 -0
  336. package/dist/vendors/metro/src/lib/transformHelpers.js +112 -0
  337. package/dist/vendors/metro/src/node-haste/DependencyGraph/ModuleResolution.js +221 -0
  338. package/dist/vendors/metro/src/node-haste/DependencyGraph/createHasteMap.js +71 -0
  339. package/dist/vendors/metro/src/node-haste/DependencyGraph.js +223 -0
  340. package/dist/vendors/metro/src/node-haste/Module.js +21 -0
  341. package/dist/vendors/metro/src/node-haste/ModuleCache.js +81 -0
  342. package/dist/vendors/metro/src/node-haste/Package.js +98 -0
  343. package/dist/vendors/metro/src/node-haste/lib/AssetPaths.js +41 -0
  344. package/dist/vendors/metro/src/node-haste/lib/parsePlatformFilePath.js +19 -0
  345. package/dist/vendors/metro/src/shared/output/RamBundle/as-assets.js +61 -0
  346. package/dist/vendors/metro/src/shared/output/RamBundle/as-indexed-file.js +115 -0
  347. package/dist/vendors/metro/src/shared/output/RamBundle/buildSourcemapWithMetadata.js +23 -0
  348. package/dist/vendors/metro/src/shared/output/RamBundle/magic-number.js +2 -0
  349. package/dist/vendors/metro/src/shared/output/RamBundle/util.js +94 -0
  350. package/dist/vendors/metro/src/shared/output/RamBundle/write-sourcemap.js +12 -0
  351. package/dist/vendors/metro/src/shared/output/RamBundle.js +18 -0
  352. package/dist/vendors/metro/src/shared/output/bundle.flow.js +42 -0
  353. package/dist/vendors/metro/src/shared/output/bundle.js +6 -0
  354. package/dist/vendors/metro/src/shared/output/meta.js +31 -0
  355. package/dist/vendors/metro/src/shared/output/unbundle.js +2 -0
  356. package/dist/vendors/metro/src/shared/output/writeFile.js +6 -0
  357. package/dist/vendors/metro/src/shared/types.flow.js +1 -0
  358. package/dist/vendors/metro-config/src/configTypes.flow.js +1 -0
  359. package/dist/vendors/metro-config/src/defaults/defaults.js +66 -0
  360. package/dist/vendors/metro-config/src/defaults/exclusionList.d.ts +3 -0
  361. package/dist/vendors/metro-config/src/defaults/exclusionList.js +17 -0
  362. package/dist/vendors/metro-config/src/defaults/index.d.ts +5 -0
  363. package/dist/vendors/metro-config/src/defaults/index.js +161 -0
  364. package/dist/vendors/metro-config/src/defaults/validConfig.js +28 -0
  365. package/dist/vendors/metro-config/src/index.js +9 -0
  366. package/dist/vendors/metro-config/src/loadConfig.d.ts +4 -0
  367. package/dist/vendors/metro-config/src/loadConfig.js +188 -0
  368. package/dist/vendors/metro-core/src/Logger.js +62 -0
  369. package/dist/vendors/metro-core/src/Terminal.d.ts +30 -0
  370. package/dist/vendors/metro-core/src/Terminal.js +100 -0
  371. package/dist/vendors/metro-core/src/canonicalize.js +17 -0
  372. package/dist/vendors/metro-core/src/errors/AmbiguousModuleResolutionError.js +11 -0
  373. package/dist/vendors/metro-core/src/errors/PackageResolutionError.js +18 -0
  374. package/dist/vendors/metro-core/src/errors.js +7 -0
  375. package/dist/vendors/metro-core/src/index.js +11 -0
  376. package/dist/vendors/metro-inspector-proxy/src/Device.js +398 -0
  377. package/dist/vendors/metro-inspector-proxy/src/InspectorProxy.d.ts +21 -0
  378. package/dist/vendors/metro-inspector-proxy/src/InspectorProxy.js +153 -0
  379. package/dist/vendors/metro-inspector-proxy/src/cli.js +15 -0
  380. package/dist/vendors/metro-inspector-proxy/src/index.js +23 -0
  381. package/dist/vendors/metro-inspector-proxy/src/types.js +1 -0
  382. package/dist/vendors/metro-transform-worker/src/index.js +429 -0
  383. package/dist/vendors/metro-transform-worker/src/utils/assetTransformer.js +20 -0
  384. package/dist/vendors/metro-transform-worker/src/utils/getMinifier.js +11 -0
  385. package/package.json +163 -0
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var cli_server_api_exports = {};
17
+ module.exports = __toCommonJS(cli_server_api_exports);
18
+ __reExport(cli_server_api_exports, require("./createWebSocketEndpoints"), module.exports);
19
+ // Annotate the CommonJS export names for ESM import in node:
20
+ 0 && (module.exports = {
21
+ ...require("./createWebSocketEndpoints")
22
+ });
@@ -0,0 +1,27 @@
1
+ import TerminalReporter from './metro/src/lib/TerminalReporter';
2
+ import { getDefaultValues } from './metro-config/src/defaults';
3
+ import { loadConfig, mergeConfig } from './metro-config/src/loadConfig';
4
+ import Terminal from './metro-core/src/Terminal';
5
+ import InspectorProxy from './metro-inspector-proxy/src/InspectorProxy';
6
+ declare const vendorModules: {
7
+ readonly metro: {
8
+ readonly Metro: {
9
+ runServer(config: any, options: any): Promise<any>;
10
+ runBuild(config: any, options: any): Promise<any>;
11
+ };
12
+ readonly TerminalReporter: typeof TerminalReporter;
13
+ };
14
+ readonly 'metro-config': {
15
+ readonly getDefaultValues: typeof getDefaultValues;
16
+ readonly loadConfig: typeof loadConfig;
17
+ readonly mergeConfig: typeof mergeConfig;
18
+ };
19
+ readonly 'metro-core': {
20
+ readonly Terminal: typeof Terminal;
21
+ };
22
+ readonly 'metro-inspector-proxy': {
23
+ readonly InspectorProxy: typeof InspectorProxy;
24
+ };
25
+ };
26
+ export declare function getModule<Source extends keyof typeof vendorModules>(source: Source): (typeof vendorModules)[Source];
27
+ export {};
@@ -0,0 +1,63 @@
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 __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var vendors_exports = {};
30
+ __export(vendors_exports, {
31
+ getModule: () => getModule
32
+ });
33
+ module.exports = __toCommonJS(vendors_exports);
34
+ var import_src = __toESM(require("./metro/src"));
35
+ var import_TerminalReporter = __toESM(require("./metro/src/lib/TerminalReporter"));
36
+ var import_defaults = require("./metro-config/src/defaults");
37
+ var import_loadConfig = require("./metro-config/src/loadConfig");
38
+ var import_Terminal = __toESM(require("./metro-core/src/Terminal"));
39
+ var import_InspectorProxy = __toESM(require("./metro-inspector-proxy/src/InspectorProxy"));
40
+ const vendorModules = {
41
+ metro: {
42
+ Metro: import_src.default,
43
+ TerminalReporter: import_TerminalReporter.default
44
+ },
45
+ "metro-config": {
46
+ getDefaultValues: import_defaults.getDefaultValues,
47
+ loadConfig: import_loadConfig.loadConfig,
48
+ mergeConfig: import_loadConfig.mergeConfig
49
+ },
50
+ "metro-core": {
51
+ Terminal: import_Terminal.default
52
+ },
53
+ "metro-inspector-proxy": {
54
+ InspectorProxy: import_InspectorProxy.default
55
+ }
56
+ };
57
+ function getModule(source) {
58
+ return vendorModules[source];
59
+ }
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {
62
+ getModule
63
+ });
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ const { isAssetTypeAnImage } = require("./Bundler/util");
3
+ const AssetPaths = require("./node-haste/lib/AssetPaths");
4
+ const crypto = require("crypto");
5
+ const denodeify = require("denodeify");
6
+ const fs = require("fs");
7
+ const imageSize = require("image-size");
8
+ const path = require("path");
9
+ const readDir = denodeify(fs.readdir);
10
+ const readFile = denodeify(fs.readFile);
11
+ const hashFiles = denodeify(function hashFilesCb(files, hash, callback) {
12
+ if (!files.length) {
13
+ callback(null);
14
+ return;
15
+ }
16
+ const file = files.shift();
17
+ fs.readFile(file, (err, data) => {
18
+ if (err) {
19
+ callback(err);
20
+ return;
21
+ } else {
22
+ hash.update(data);
23
+ hashFilesCb(files, hash, callback);
24
+ }
25
+ });
26
+ });
27
+ function buildAssetMap(dir, files, platform) {
28
+ const platforms = new Set(platform != null ? [platform] : []);
29
+ const assets = files.map((file) => AssetPaths.tryParse(file, platforms));
30
+ const map = /* @__PURE__ */ new Map();
31
+ assets.forEach(function(asset, i) {
32
+ if (asset == null) {
33
+ return;
34
+ }
35
+ const file = files[i];
36
+ const assetKey = getAssetKey(asset.assetName, asset.platform);
37
+ let record = map.get(assetKey);
38
+ if (!record) {
39
+ record = {
40
+ scales: [],
41
+ files: []
42
+ };
43
+ map.set(assetKey, record);
44
+ }
45
+ let insertIndex;
46
+ const length = record.scales.length;
47
+ for (insertIndex = 0; insertIndex < length; insertIndex++) {
48
+ if (asset.resolution < record.scales[insertIndex]) {
49
+ break;
50
+ }
51
+ }
52
+ record.scales.splice(insertIndex, 0, asset.resolution);
53
+ record.files.splice(insertIndex, 0, path.join(dir, file));
54
+ });
55
+ return map;
56
+ }
57
+ function getAssetKey(assetName, platform) {
58
+ if (platform != null) {
59
+ return `${assetName} : ${platform}`;
60
+ } else {
61
+ return assetName;
62
+ }
63
+ }
64
+ async function getAbsoluteAssetRecord(assetPath, platform = null) {
65
+ const filename = path.basename(assetPath);
66
+ const dir = path.dirname(assetPath);
67
+ const files = await readDir(dir);
68
+ const assetData = AssetPaths.parse(filename, new Set(platform != null ? [platform] : []));
69
+ const map = buildAssetMap(dir, files, platform);
70
+ let record;
71
+ if (platform != null) {
72
+ record = map.get(getAssetKey(assetData.assetName, platform)) || map.get(assetData.assetName);
73
+ } else {
74
+ record = map.get(assetData.assetName);
75
+ }
76
+ if (!record) {
77
+ throw new Error(`Asset not found: ${assetPath} for platform: ${platform ?? "(unspecified)"}`);
78
+ }
79
+ return record;
80
+ }
81
+ async function getAbsoluteAssetInfo(assetPath, platform = null) {
82
+ const nameData = AssetPaths.parse(assetPath, new Set(platform != null ? [platform] : []));
83
+ const { name, type } = nameData;
84
+ const { scales, files } = await getAbsoluteAssetRecord(assetPath, platform);
85
+ const hasher = crypto.createHash("md5");
86
+ if (files.length > 0) {
87
+ await hashFiles(Array.from(files), hasher);
88
+ }
89
+ return { files, hash: hasher.digest("hex"), name, scales, type };
90
+ }
91
+ async function getAssetData(assetPath, localPath, assetDataPlugins, platform = null, publicPath) {
92
+ let assetUrlPath = localPath.startsWith("..") ? publicPath.replace(/\/$/, "") + "/" + path.dirname(localPath) : path.join(publicPath, path.dirname(localPath));
93
+ if (path.sep === "\\") {
94
+ assetUrlPath = assetUrlPath.replace(/\\/g, "/");
95
+ }
96
+ const isImage = isAssetTypeAnImage(path.extname(assetPath).slice(1));
97
+ const assetInfo = await getAbsoluteAssetInfo(assetPath, platform);
98
+ const isImageInput = assetInfo.files[0].includes(".zip/") ? fs.readFileSync(assetInfo.files[0]) : assetInfo.files[0];
99
+ const dimensions = isImage ? imageSize(isImageInput) : null;
100
+ const scale = assetInfo.scales[0];
101
+ const assetData = {
102
+ __packager_asset: true,
103
+ fileSystemLocation: path.dirname(assetPath),
104
+ httpServerLocation: assetUrlPath,
105
+ width: dimensions ? dimensions.width / scale : void 0,
106
+ height: dimensions ? dimensions.height / scale : void 0,
107
+ scales: assetInfo.scales,
108
+ files: assetInfo.files,
109
+ hash: assetInfo.hash,
110
+ name: assetInfo.name,
111
+ type: assetInfo.type
112
+ };
113
+ return await applyAssetDataPlugins(assetDataPlugins, assetData);
114
+ }
115
+ async function applyAssetDataPlugins(assetDataPlugins, assetData) {
116
+ if (!assetDataPlugins.length) {
117
+ return assetData;
118
+ }
119
+ const [currentAssetPlugin, ...remainingAssetPlugins] = assetDataPlugins;
120
+ const assetPluginFunction = require(currentAssetPlugin);
121
+ const resultAssetData = await assetPluginFunction(assetData);
122
+ return await applyAssetDataPlugins(remainingAssetPlugins, resultAssetData);
123
+ }
124
+ async function getAssetFiles(assetPath, platform = null) {
125
+ const assetData = await getAbsoluteAssetRecord(assetPath, platform);
126
+ return assetData.files;
127
+ }
128
+ async function getAsset(relativePath, projectRoot, watchFolders, platform = null, assetExts) {
129
+ const assetData = AssetPaths.parse(relativePath, new Set(platform != null ? [platform] : []));
130
+ const absolutePath = path.resolve(projectRoot, relativePath);
131
+ if (!assetExts.includes(assetData.type)) {
132
+ throw new Error(`'${relativePath}' cannot be loaded as its extension is not registered in assetExts`);
133
+ }
134
+ if (!pathBelongsToRoots(absolutePath, [projectRoot, ...watchFolders])) {
135
+ throw new Error(
136
+ `'${relativePath}' could not be found, because it cannot be found in the project root or any watch folder`
137
+ );
138
+ }
139
+ const record = await getAbsoluteAssetRecord(absolutePath, platform);
140
+ for (let i = 0; i < record.scales.length; i++) {
141
+ if (record.scales[i] >= assetData.resolution) {
142
+ return readFile(record.files[i]);
143
+ }
144
+ }
145
+ return readFile(record.files[record.files.length - 1]);
146
+ }
147
+ function pathBelongsToRoots(pathToCheck, roots) {
148
+ for (const rootFolder of roots) {
149
+ if (pathToCheck.startsWith(path.resolve(rootFolder))) {
150
+ return true;
151
+ }
152
+ }
153
+ return false;
154
+ }
155
+ module.exports = {
156
+ getAsset,
157
+ getAssetData,
158
+ getAssetFiles
159
+ };
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ const babylon = require("@babel/parser");
3
+ const template = require("@babel/template").default;
4
+ const babelTypes = require("@babel/types");
5
+ const nullthrows = require("nullthrows");
6
+ const assetPropertyBlockList = /* @__PURE__ */ new Set(["files", "fileSystemLocation", "path"]);
7
+ function generateAssetCodeFileAst(assetRegistryPath, assetDescriptor) {
8
+ const properDescriptor = filterObject(assetDescriptor, assetPropertyBlockList);
9
+ const descriptorAst = babylon.parseExpression(JSON.stringify(properDescriptor));
10
+ const t = babelTypes;
11
+ const buildRequire = template.statement(`
12
+ module.exports = require(ASSET_REGISTRY_PATH).registerAsset(DESCRIPTOR_AST)
13
+ `);
14
+ return t.file(
15
+ t.program([
16
+ buildRequire({
17
+ ASSET_REGISTRY_PATH: t.stringLiteral(assetRegistryPath),
18
+ DESCRIPTOR_AST: descriptorAst
19
+ })
20
+ ])
21
+ );
22
+ }
23
+ function generateRemoteAssetCodeFileAst(assetUtilsPath, assetDescriptor, remoteServer, remoteFileMap) {
24
+ const t = babelTypes;
25
+ const file = remoteFileMap[assetDescriptor.fileSystemLocation];
26
+ const descriptor = file && file[assetDescriptor.name];
27
+ const data = {};
28
+ if (!descriptor) {
29
+ return null;
30
+ }
31
+ for (const scale in descriptor) {
32
+ data[+scale] = descriptor[+scale].handle;
33
+ }
34
+ const astData = babylon.parseExpression(JSON.stringify(data));
35
+ const URI = t.stringLiteral(remoteServer);
36
+ const WIDTH = t.numericLiteral(nullthrows(assetDescriptor.width));
37
+ const HEIGHT = t.numericLiteral(nullthrows(assetDescriptor.height));
38
+ const buildRequire = template.program(`
39
+ const {pickScale, getUrlCacheBreaker}= require(ASSET_UTILS_PATH);
40
+ module.exports = {
41
+ "width": WIDTH,
42
+ "height": HEIGHT,
43
+ "uri": URI + OBJECT_AST[pickScale(SCALE_ARRAY)] + getUrlCacheBreaker()
44
+ };
45
+ `);
46
+ return t.file(
47
+ buildRequire({
48
+ WIDTH,
49
+ HEIGHT,
50
+ URI,
51
+ OBJECT_AST: astData,
52
+ ASSET_UTILS_PATH: t.stringLiteral(assetUtilsPath),
53
+ SCALE_ARRAY: t.arrayExpression(
54
+ Object.keys(descriptor).map(Number).sort((a, b) => a - b).map((scale) => t.numericLiteral(scale))
55
+ )
56
+ })
57
+ );
58
+ }
59
+ function isAssetTypeAnImage(type) {
60
+ return ["png", "jpg", "jpeg", "bmp", "gif", "webp", "psd", "svg", "tiff"].indexOf(type) !== -1;
61
+ }
62
+ function filterObject(object, blockList) {
63
+ const copied = { ...object };
64
+ for (const key of blockList) {
65
+ delete copied[key];
66
+ }
67
+ return copied;
68
+ }
69
+ function createRamBundleGroups(ramGroups, groupableModules, subtree) {
70
+ const byPath = /* @__PURE__ */ new Map();
71
+ const byId = /* @__PURE__ */ new Map();
72
+ groupableModules.forEach((m) => {
73
+ byPath.set(m.sourcePath, m);
74
+ byId.set(m.id, m.sourcePath);
75
+ });
76
+ const result = new Map(
77
+ ramGroups.map((modulePath) => {
78
+ const root = byPath.get(modulePath);
79
+ if (root == null) {
80
+ throw Error(`Group root ${modulePath} is not part of the bundle`);
81
+ }
82
+ return [
83
+ root.id,
84
+ // `subtree` yields the IDs of all transitive dependencies of a module
85
+ new Set(subtree(root, byPath))
86
+ ];
87
+ })
88
+ );
89
+ if (ramGroups.length > 1) {
90
+ const all = new ArrayMap();
91
+ for (const [parent, children] of result) {
92
+ for (const module2 of children) {
93
+ all.get(module2).push(parent);
94
+ }
95
+ }
96
+ const doubles = filter(all, ([, parents]) => parents.length > 1);
97
+ for (const [moduleId, parents] of doubles) {
98
+ const parentNames = parents.map(byId.get, byId);
99
+ const lastName = parentNames.pop();
100
+ throw new Error(
101
+ `Module ${byId.get(moduleId) || moduleId} belongs to groups ${parentNames.join(", ")}, and ${String(
102
+ lastName
103
+ )}. Ensure that each module is only part of one group.`
104
+ );
105
+ }
106
+ }
107
+ return result;
108
+ }
109
+ function* filter(iterator, predicate) {
110
+ for (const value of iterator) {
111
+ if (predicate(value)) {
112
+ yield value;
113
+ }
114
+ }
115
+ }
116
+ class ArrayMap extends Map {
117
+ get(key) {
118
+ let array = super.get(key);
119
+ if (!array) {
120
+ array = [];
121
+ this.set(key, array);
122
+ }
123
+ return array;
124
+ }
125
+ }
126
+ module.exports = {
127
+ createRamBundleGroups,
128
+ generateAssetCodeFileAst,
129
+ generateRemoteAssetCodeFileAst,
130
+ isAssetTypeAnImage
131
+ };
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ const Transformer = require("./DeltaBundler/Transformer");
3
+ const DependencyGraph = require("./node-haste/DependencyGraph");
4
+ class Bundler {
5
+ _depGraph;
6
+ _readyPromise;
7
+ _transformer;
8
+ constructor(config, options) {
9
+ this._depGraph = new DependencyGraph(config, options);
10
+ this._readyPromise = this._depGraph.ready().then(() => {
11
+ config.reporter.update({ type: "transformer_load_started" });
12
+ this._transformer = new Transformer(config, (...args) => this._depGraph.getSha1(...args));
13
+ config.reporter.update({ type: "transformer_load_done" });
14
+ }).catch((error) => {
15
+ console.error("Failed to construct transformer: ", error);
16
+ config.reporter.update({
17
+ type: "transformer_load_failed",
18
+ error
19
+ });
20
+ });
21
+ }
22
+ getWatcher() {
23
+ return this._depGraph.getWatcher();
24
+ }
25
+ async end() {
26
+ await this._depGraph.ready();
27
+ this._transformer.end();
28
+ this._depGraph.end();
29
+ }
30
+ async getDependencyGraph() {
31
+ await this._depGraph.ready();
32
+ return this._depGraph;
33
+ }
34
+ async transformFile(filePath, transformOptions, fileBuffer) {
35
+ await this._depGraph.ready();
36
+ return this._transformer.transformFile(filePath, transformOptions, fileBuffer);
37
+ }
38
+ // Waits for the bundler to become ready.
39
+ async ready() {
40
+ await this._readyPromise;
41
+ }
42
+ }
43
+ module.exports = Bundler;
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ var import_graphOperations = require("./graphOperations");
3
+ const { EventEmitter } = require("events");
4
+ class DeltaCalculator extends EventEmitter {
5
+ _changeEventSource;
6
+ _options;
7
+ _currentBuildPromise;
8
+ _deletedFiles = /* @__PURE__ */ new Set();
9
+ _modifiedFiles = /* @__PURE__ */ new Set();
10
+ _addedFiles = /* @__PURE__ */ new Set();
11
+ _graph;
12
+ constructor(entryPoints, changeEventSource, options) {
13
+ super();
14
+ this._options = options;
15
+ this._changeEventSource = changeEventSource;
16
+ this._graph = (0, import_graphOperations.createGraph)({
17
+ entryPoints,
18
+ transformOptions: this._options.transformOptions
19
+ });
20
+ this._changeEventSource.on("change", this._handleMultipleFileChanges);
21
+ }
22
+ /**
23
+ * Stops listening for file changes and clears all the caches.
24
+ */
25
+ end() {
26
+ this._changeEventSource.removeListener("change", this._handleMultipleFileChanges);
27
+ this.removeAllListeners();
28
+ this._graph = (0, import_graphOperations.createGraph)({
29
+ entryPoints: this._graph.entryPoints,
30
+ transformOptions: this._options.transformOptions
31
+ });
32
+ this._modifiedFiles = /* @__PURE__ */ new Set();
33
+ this._deletedFiles = /* @__PURE__ */ new Set();
34
+ this._addedFiles = /* @__PURE__ */ new Set();
35
+ }
36
+ /**
37
+ * Main method to calculate the delta of modules. It returns a DeltaResult,
38
+ * which contain the modified/added modules and the removed modules.
39
+ */
40
+ async getDelta({ reset, shallow }) {
41
+ if (this._currentBuildPromise) {
42
+ await this._currentBuildPromise;
43
+ }
44
+ const modifiedFiles = this._modifiedFiles;
45
+ this._modifiedFiles = /* @__PURE__ */ new Set();
46
+ const deletedFiles = this._deletedFiles;
47
+ this._deletedFiles = /* @__PURE__ */ new Set();
48
+ const addedFiles = this._addedFiles;
49
+ this._addedFiles = /* @__PURE__ */ new Set();
50
+ this._currentBuildPromise = this._getChangedDependencies(modifiedFiles, deletedFiles, addedFiles);
51
+ let result;
52
+ const numDependencies = this._graph.dependencies.size;
53
+ try {
54
+ result = await this._currentBuildPromise;
55
+ } catch (error) {
56
+ modifiedFiles.forEach((file) => this._modifiedFiles.add(file));
57
+ deletedFiles.forEach((file) => this._deletedFiles.add(file));
58
+ addedFiles.forEach((file) => this._addedFiles.add(file));
59
+ if (this._graph.dependencies.size !== numDependencies) {
60
+ this._graph.dependencies = /* @__PURE__ */ new Map();
61
+ }
62
+ throw error;
63
+ } finally {
64
+ this._currentBuildPromise = null;
65
+ }
66
+ if (reset) {
67
+ (0, import_graphOperations.reorderGraph)(this._graph, { shallow });
68
+ return {
69
+ added: this._graph.dependencies,
70
+ modified: /* @__PURE__ */ new Map(),
71
+ deleted: /* @__PURE__ */ new Set(),
72
+ reset: true
73
+ };
74
+ }
75
+ return result;
76
+ }
77
+ /**
78
+ * Returns the graph with all the dependencies. Each module contains the
79
+ * needed information to do the traversing (dependencies, inverseDependencies)
80
+ * plus some metadata.
81
+ */
82
+ getGraph() {
83
+ return this._graph;
84
+ }
85
+ /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
86
+ * LTI update could not be added via codemod */
87
+ _handleMultipleFileChanges = ({ eventsQueue }) => {
88
+ eventsQueue.forEach(this._handleFileChange);
89
+ };
90
+ /**
91
+ * Handles a single file change. To avoid doing any work before it's needed,
92
+ * the listener only stores the modified file, which will then be used later
93
+ * when the delta needs to be calculated.
94
+ */
95
+ _handleFileChange = ({ type, filePath }) => {
96
+ let state;
97
+ if (this._deletedFiles.has(filePath)) {
98
+ state = "deleted";
99
+ } else if (this._modifiedFiles.has(filePath)) {
100
+ state = "modified";
101
+ } else if (this._addedFiles.has(filePath)) {
102
+ state = "added";
103
+ }
104
+ let nextState;
105
+ if (type === "delete") {
106
+ nextState = "deleted";
107
+ } else if (type === "add") {
108
+ nextState = state === "deleted" ? "modified" : "added";
109
+ } else {
110
+ nextState = state === "added" ? "added" : "modified";
111
+ }
112
+ switch (nextState) {
113
+ case "deleted":
114
+ this._deletedFiles.add(filePath);
115
+ this._modifiedFiles.delete(filePath);
116
+ this._addedFiles.delete(filePath);
117
+ break;
118
+ case "added":
119
+ this._addedFiles.add(filePath);
120
+ this._deletedFiles.delete(filePath);
121
+ this._modifiedFiles.delete(filePath);
122
+ break;
123
+ case "modified":
124
+ this._modifiedFiles.add(filePath);
125
+ this._deletedFiles.delete(filePath);
126
+ this._addedFiles.delete(filePath);
127
+ break;
128
+ default:
129
+ nextState;
130
+ }
131
+ this.emit("change");
132
+ };
133
+ async _getChangedDependencies(modifiedFiles, deletedFiles, addedFiles) {
134
+ if (!this._graph.dependencies.size) {
135
+ const { added: added2 } = await (0, import_graphOperations.initialTraverseDependencies)(this._graph, this._options);
136
+ return {
137
+ added: added2,
138
+ modified: /* @__PURE__ */ new Map(),
139
+ deleted: /* @__PURE__ */ new Set(),
140
+ reset: true
141
+ };
142
+ }
143
+ deletedFiles.forEach((filePath) => {
144
+ const module2 = this._graph.dependencies.get(filePath);
145
+ if (module2) {
146
+ module2.inverseDependencies.forEach((path) => {
147
+ if (!deletedFiles.has(path)) {
148
+ modifiedFiles.add(path);
149
+ }
150
+ });
151
+ }
152
+ });
153
+ if (this._options.unstable_allowRequireContext) {
154
+ addedFiles.forEach((filePath) => {
155
+ (0, import_graphOperations.markModifiedContextModules)(this._graph, filePath, modifiedFiles);
156
+ });
157
+ }
158
+ const modifiedDependencies = Array.from(modifiedFiles).filter((filePath) => this._graph.dependencies.has(filePath));
159
+ if (modifiedDependencies.length === 0) {
160
+ return {
161
+ added: /* @__PURE__ */ new Map(),
162
+ modified: /* @__PURE__ */ new Map(),
163
+ deleted: /* @__PURE__ */ new Set(),
164
+ reset: false
165
+ };
166
+ }
167
+ const { added, modified, deleted } = await (0, import_graphOperations.traverseDependencies)(modifiedDependencies, this._graph, this._options);
168
+ return {
169
+ added,
170
+ modified,
171
+ deleted,
172
+ reset: false
173
+ };
174
+ }
175
+ }
176
+ module.exports = DeltaCalculator;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ const getAppendScripts = require("../../lib/getAppendScripts");
3
+ const { getJsOutput } = require("./helpers/js");
4
+ const processBytecodeModules = require("./helpers/processBytecodeModules");
5
+ function baseBytecodeBundle(entryPoint, preModules, graph, options) {
6
+ for (const module2 of graph.dependencies.values()) {
7
+ options.createModuleId(module2.path);
8
+ }
9
+ const processModulesOptions = {
10
+ filter: options.processModuleFilter,
11
+ createModuleId: options.createModuleId,
12
+ dev: options.dev,
13
+ projectRoot: options.projectRoot
14
+ };
15
+ if (options.modulesOnly) {
16
+ preModules = [];
17
+ }
18
+ const modules = [...graph.dependencies.values()].sort(
19
+ (a, b) => options.createModuleId(a.path) - options.createModuleId(b.path)
20
+ );
21
+ const { compile } = require("metro-hermes-compiler");
22
+ const post = processBytecodeModules(
23
+ getAppendScripts(entryPoint, [...preModules, ...modules], graph.importBundleNames, {
24
+ asyncRequireModulePath: options.asyncRequireModulePath,
25
+ createModuleId: options.createModuleId,
26
+ getRunModuleStatement: options.getRunModuleStatement,
27
+ inlineSourceMap: options.inlineSourceMap,
28
+ projectRoot: options.projectRoot,
29
+ runBeforeMainModule: options.runBeforeMainModule,
30
+ runModule: options.runModule,
31
+ serverRoot: options.serverRoot,
32
+ sourceMapUrl: options.sourceMapUrl,
33
+ sourceUrl: options.sourceUrl
34
+ }).map((module2) => {
35
+ return {
36
+ ...module2,
37
+ output: [
38
+ ...module2.output,
39
+ {
40
+ type: "bytecode/script/virtual",
41
+ data: {
42
+ bytecode: compile(getJsOutput(module2).data.code, {
43
+ sourceURL: module2.path
44
+ }).bytecode
45
+ }
46
+ }
47
+ ]
48
+ };
49
+ }),
50
+ processModulesOptions
51
+ ).flatMap(([module2, bytecodeBundle]) => bytecodeBundle);
52
+ const processedModules = processBytecodeModules([...graph.dependencies.values()], processModulesOptions).map(
53
+ ([module2, bytecodeBundle]) => [options.createModuleId(module2.path), bytecodeBundle]
54
+ );
55
+ return {
56
+ pre: processBytecodeModules(preModules, processModulesOptions).flatMap(([_, bytecodeBundle]) => bytecodeBundle),
57
+ post,
58
+ modules: processedModules
59
+ };
60
+ }
61
+ module.exports = baseBytecodeBundle;