@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,24 @@
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_CountingSet = __toESM(require("../lib/CountingSet"));
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ const DeltaCalculator = require("./DeltaBundler/DeltaCalculator");
3
+ class DeltaBundler {
4
+ _changeEventSource;
5
+ _deltaCalculators = /* @__PURE__ */ new Map();
6
+ constructor(changeEventSource) {
7
+ this._changeEventSource = changeEventSource;
8
+ }
9
+ end() {
10
+ this._deltaCalculators.forEach((deltaCalculator) => deltaCalculator.end());
11
+ this._deltaCalculators = /* @__PURE__ */ new Map();
12
+ }
13
+ async getDependencies(entryPoints, options) {
14
+ const deltaCalculator = new DeltaCalculator(new Set(entryPoints), this._changeEventSource, options);
15
+ await deltaCalculator.getDelta({ reset: true, shallow: options.shallow });
16
+ const graph = deltaCalculator.getGraph();
17
+ deltaCalculator.end();
18
+ return graph.dependencies;
19
+ }
20
+ // Note: the graph returned by this function needs to be ended when finished
21
+ // so that we don't leak graphs that are not reachable.
22
+ // To get just the dependencies, use getDependencies which will not leak graphs.
23
+ async buildGraph(entryPoints, options) {
24
+ const deltaCalculator = new DeltaCalculator(new Set(entryPoints), this._changeEventSource, options);
25
+ await deltaCalculator.getDelta({ reset: true, shallow: options.shallow });
26
+ const graph = deltaCalculator.getGraph();
27
+ this._deltaCalculators.set(graph, deltaCalculator);
28
+ return graph;
29
+ }
30
+ async getDelta(graph, { reset, shallow }) {
31
+ const deltaCalculator = this._deltaCalculators.get(graph);
32
+ if (!deltaCalculator) {
33
+ throw new Error("Graph not found");
34
+ }
35
+ return await deltaCalculator.getDelta({ reset, shallow });
36
+ }
37
+ listen(graph, callback) {
38
+ const deltaCalculator = this._deltaCalculators.get(graph);
39
+ if (!deltaCalculator) {
40
+ throw new Error("Graph not found");
41
+ }
42
+ deltaCalculator.on("change", callback);
43
+ return () => {
44
+ deltaCalculator.removeListener("change", callback);
45
+ };
46
+ }
47
+ endGraph(graph) {
48
+ const deltaCalculator = this._deltaCalculators.get(graph);
49
+ if (!deltaCalculator) {
50
+ throw new Error("Graph not found");
51
+ }
52
+ deltaCalculator.end();
53
+ this._deltaCalculators.delete(graph);
54
+ }
55
+ }
56
+ module.exports = DeltaBundler;
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ const hmrJSBundle = require("./DeltaBundler/Serializers/hmrJSBundle");
3
+ const GraphNotFoundError = require("./IncrementalBundler/GraphNotFoundError");
4
+ const RevisionNotFoundError = require("./IncrementalBundler/RevisionNotFoundError");
5
+ const debounceAsyncQueue = require("./lib/debounceAsyncQueue");
6
+ const formatBundlingError = require("./lib/formatBundlingError");
7
+ const getGraphId = require("./lib/getGraphId");
8
+ const parseOptionsFromUrl = require("./lib/parseOptionsFromUrl");
9
+ const splitBundleOptions = require("./lib/splitBundleOptions");
10
+ const transformHelpers = require("./lib/transformHelpers");
11
+ const {
12
+ Logger: { createActionStartEntry, createActionEndEntry, log }
13
+ } = require("../../metro-core/src");
14
+ const nullthrows = require("nullthrows");
15
+ const url = require("url");
16
+ function getBytecodeVersion() {
17
+ return require("metro-hermes-compiler").VERSION;
18
+ }
19
+ function send(sendFns, message) {
20
+ const strMessage = JSON.stringify(message);
21
+ sendFns.forEach((sendFn) => sendFn(strMessage));
22
+ }
23
+ class HmrServer {
24
+ _config;
25
+ _bundler;
26
+ _createModuleId;
27
+ _clientGroups;
28
+ constructor(bundler, createModuleId, config) {
29
+ this._config = config;
30
+ this._bundler = bundler;
31
+ this._createModuleId = createModuleId;
32
+ this._clientGroups = /* @__PURE__ */ new Map();
33
+ }
34
+ onClientConnect = async (requestUrl, sendFn) => {
35
+ return {
36
+ sendFn,
37
+ revisionIds: [],
38
+ optedIntoHMR: false
39
+ };
40
+ };
41
+ async _registerEntryPoint(client, requestUrl, sendFn) {
42
+ requestUrl = this._config.server.rewriteRequestUrl(requestUrl);
43
+ const clientUrl = nullthrows(url.parse(requestUrl, true));
44
+ const options = parseOptionsFromUrl(requestUrl, new Set(this._config.resolver.platforms), getBytecodeVersion());
45
+ const { entryFile, resolverOptions, transformOptions, graphOptions } = splitBundleOptions(options);
46
+ const resolutionFn = await transformHelpers.getResolveDependencyFn(
47
+ this._bundler.getBundler(),
48
+ transformOptions.platform,
49
+ resolverOptions
50
+ );
51
+ const resolvedEntryFilePath = resolutionFn(
52
+ (this._config.server.unstable_serverRoot ?? this._config.projectRoot) + "/.",
53
+ entryFile
54
+ );
55
+ const graphId = getGraphId(resolvedEntryFilePath, transformOptions, {
56
+ resolverOptions,
57
+ shallow: graphOptions.shallow,
58
+ experimentalImportBundleSupport: this._config.transformer.experimentalImportBundleSupport,
59
+ unstable_allowRequireContext: this._config.transformer.unstable_allowRequireContext
60
+ });
61
+ const revPromise = this._bundler.getRevisionByGraphId(graphId);
62
+ if (!revPromise) {
63
+ send([sendFn], {
64
+ type: "error",
65
+ body: formatBundlingError(new GraphNotFoundError(graphId))
66
+ });
67
+ return;
68
+ }
69
+ const { graph, id } = await revPromise;
70
+ client.revisionIds.push(id);
71
+ let clientGroup = this._clientGroups.get(id);
72
+ if (clientGroup != null) {
73
+ clientGroup.clients.add(client);
74
+ } else {
75
+ clientUrl.protocol = "http";
76
+ const { dev, minify, runModule, bundleEntry: _bundleEntry, ...query } = clientUrl.query || {};
77
+ clientUrl.query = {
78
+ ...query,
79
+ dev: dev || "true",
80
+ minify: minify || "false",
81
+ modulesOnly: "true",
82
+ runModule: runModule || "false",
83
+ shallow: "true"
84
+ };
85
+ clientUrl.search = "";
86
+ clientGroup = {
87
+ clients: /* @__PURE__ */ new Set([client]),
88
+ clientUrl,
89
+ revisionId: id,
90
+ unlisten: () => unlisten()
91
+ };
92
+ this._clientGroups.set(id, clientGroup);
93
+ const unlisten = this._bundler.getDeltaBundler().listen(
94
+ graph,
95
+ debounceAsyncQueue(
96
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
97
+ this._handleFileChange.bind(this, clientGroup, {
98
+ isInitialUpdate: false
99
+ }),
100
+ 50
101
+ )
102
+ );
103
+ }
104
+ await this._handleFileChange(clientGroup, { isInitialUpdate: true });
105
+ send([sendFn], { type: "bundle-registered" });
106
+ }
107
+ onClientMessage = async (client, message, sendFn) => {
108
+ let data;
109
+ try {
110
+ data = JSON.parse(message);
111
+ } catch (error) {
112
+ send([sendFn], {
113
+ type: "error",
114
+ body: formatBundlingError(error)
115
+ });
116
+ return Promise.resolve();
117
+ }
118
+ if (data && data.type) {
119
+ switch (data.type) {
120
+ case "register-entrypoints":
121
+ return Promise.all(
122
+ data.entryPoints.map((entryPoint) => this._registerEntryPoint(client, entryPoint, sendFn))
123
+ );
124
+ case "log":
125
+ this._config.reporter.update({
126
+ type: "client_log",
127
+ level: data.level,
128
+ data: data.data,
129
+ mode: data.mode
130
+ });
131
+ break;
132
+ case "log-opt-in":
133
+ client.optedIntoHMR = true;
134
+ break;
135
+ default:
136
+ break;
137
+ }
138
+ }
139
+ return Promise.resolve();
140
+ };
141
+ onClientError = (client, e) => {
142
+ this._config.reporter.update({
143
+ type: "hmr_client_error",
144
+ error: e.error
145
+ });
146
+ this.onClientDisconnect(client);
147
+ };
148
+ onClientDisconnect = (client) => {
149
+ client.revisionIds.forEach((revisionId) => {
150
+ const group = this._clientGroups.get(revisionId);
151
+ if (group != null) {
152
+ if (group.clients.size === 1) {
153
+ this._clientGroups.delete(revisionId);
154
+ group.unlisten();
155
+ } else {
156
+ group.clients.delete(client);
157
+ }
158
+ }
159
+ });
160
+ };
161
+ async _handleFileChange(group, options) {
162
+ const optedIntoHMR = [...group.clients].some((client) => client.optedIntoHMR);
163
+ const processingHmrChange = log(
164
+ createActionStartEntry({
165
+ // Even when HMR is disabled on the client, this function still
166
+ // runs so we can stash updates while it's off and apply them later.
167
+ // However, this would mess up our internal analytics because we track
168
+ // HMR as being used even for people who have it disabled.
169
+ // As a workaround, we use a different event name for clients
170
+ // that didn't explicitly opt into HMR.
171
+ action_name: optedIntoHMR ? "Processing HMR change" : "Processing HMR change (no client opt-in)"
172
+ })
173
+ );
174
+ const sendFns = [...group.clients].map((client) => client.sendFn);
175
+ send(sendFns, {
176
+ type: "update-start",
177
+ body: options
178
+ });
179
+ const message = await this._prepareMessage(group, options);
180
+ send(sendFns, message);
181
+ send(sendFns, { type: "update-done" });
182
+ log({
183
+ ...createActionEndEntry(processingHmrChange),
184
+ outdated_modules: message.type === "update" ? message.body.added.length + message.body.modified.length : void 0
185
+ });
186
+ }
187
+ async _prepareMessage(group, options) {
188
+ try {
189
+ const revPromise = this._bundler.getRevision(group.revisionId);
190
+ if (!revPromise) {
191
+ return {
192
+ type: "error",
193
+ body: formatBundlingError(new RevisionNotFoundError(group.revisionId))
194
+ };
195
+ }
196
+ const { revision, delta } = await this._bundler.updateGraph(await revPromise, false);
197
+ this._clientGroups.delete(group.revisionId);
198
+ group.revisionId = revision.id;
199
+ for (const client of group.clients) {
200
+ client.revisionIds = client.revisionIds.filter((revisionId) => revisionId !== group.revisionId);
201
+ client.revisionIds.push(revision.id);
202
+ }
203
+ this._clientGroups.set(group.revisionId, group);
204
+ const hmrUpdate = hmrJSBundle(delta, revision.graph, {
205
+ createModuleId: this._createModuleId,
206
+ projectRoot: this._config.server.unstable_serverRoot ?? this._config.projectRoot,
207
+ clientUrl: group.clientUrl
208
+ });
209
+ return {
210
+ type: "update",
211
+ body: {
212
+ revisionId: revision.id,
213
+ isInitialUpdate: options.isInitialUpdate,
214
+ ...hmrUpdate
215
+ }
216
+ };
217
+ } catch (error) {
218
+ const formattedError = formatBundlingError(error);
219
+ this._config.reporter.update({ type: "bundling_error", error });
220
+ return { type: "error", body: formattedError };
221
+ }
222
+ }
223
+ }
224
+ module.exports = HmrServer;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ class GraphNotFoundError extends Error {
3
+ graphId;
4
+ constructor(graphId) {
5
+ super(`The graph \`${graphId}\` was not found.`);
6
+ this.graphId = graphId;
7
+ }
8
+ }
9
+ module.exports = GraphNotFoundError;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ class ResourceNotFoundError extends Error {
3
+ resourcePath;
4
+ constructor(resourcePath) {
5
+ super(`The resource \`${resourcePath}\` was not found.`);
6
+ this.resourcePath = resourcePath;
7
+ }
8
+ }
9
+ module.exports = ResourceNotFoundError;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ class RevisionNotFoundError extends Error {
3
+ revisionId;
4
+ constructor(revisionId) {
5
+ super(`The revision \`${revisionId}\` was not found.`);
6
+ this.revisionId = revisionId;
7
+ }
8
+ }
9
+ module.exports = RevisionNotFoundError;
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ const Bundler = require("./Bundler");
3
+ const DeltaBundler = require("./DeltaBundler");
4
+ const ResourceNotFoundError = require("./IncrementalBundler/ResourceNotFoundError");
5
+ const getGraphId = require("./lib/getGraphId");
6
+ const getPrependedScripts = require("./lib/getPrependedScripts");
7
+ const transformHelpers = require("./lib/transformHelpers");
8
+ const crypto = require("crypto");
9
+ const fs = require("fs");
10
+ const path = require("path");
11
+ function createRevisionId() {
12
+ return crypto.randomBytes(8).toString("hex");
13
+ }
14
+ function revisionIdFromString(str) {
15
+ return str;
16
+ }
17
+ class IncrementalBundler {
18
+ _config;
19
+ _bundler;
20
+ _deltaBundler;
21
+ _revisionsById = /* @__PURE__ */ new Map();
22
+ _revisionsByGraphId = /* @__PURE__ */ new Map();
23
+ static revisionIdFromString = revisionIdFromString;
24
+ constructor(config, options) {
25
+ this._config = config;
26
+ this._bundler = new Bundler(config, options);
27
+ this._deltaBundler = new DeltaBundler(this._bundler.getWatcher());
28
+ }
29
+ end() {
30
+ this._deltaBundler.end();
31
+ this._bundler.end();
32
+ }
33
+ getBundler() {
34
+ return this._bundler;
35
+ }
36
+ getDeltaBundler() {
37
+ return this._deltaBundler;
38
+ }
39
+ getRevision(revisionId) {
40
+ return this._revisionsById.get(revisionId);
41
+ }
42
+ getRevisionByGraphId(graphId) {
43
+ return this._revisionsByGraphId.get(graphId);
44
+ }
45
+ async buildGraphForEntries(entryFiles, transformOptions, resolverOptions, otherOptions = {
46
+ onProgress: null,
47
+ shallow: false
48
+ }) {
49
+ const absoluteEntryFiles = await this._getAbsoluteEntryFiles(entryFiles);
50
+ const graph = await this._deltaBundler.buildGraph(absoluteEntryFiles, {
51
+ resolve: await transformHelpers.getResolveDependencyFn(this._bundler, transformOptions.platform, resolverOptions),
52
+ transform: await transformHelpers.getTransformFn(
53
+ absoluteEntryFiles,
54
+ this._bundler,
55
+ this._deltaBundler,
56
+ this._config,
57
+ transformOptions,
58
+ resolverOptions
59
+ ),
60
+ transformOptions,
61
+ onProgress: otherOptions.onProgress,
62
+ experimentalImportBundleSupport: this._config.transformer.experimentalImportBundleSupport,
63
+ unstable_allowRequireContext: this._config.transformer.unstable_allowRequireContext,
64
+ shallow: otherOptions.shallow
65
+ });
66
+ this._config.serializer.experimentalSerializerHook(graph, {
67
+ added: graph.dependencies,
68
+ modified: /* @__PURE__ */ new Map(),
69
+ deleted: /* @__PURE__ */ new Set(),
70
+ reset: true
71
+ });
72
+ return graph;
73
+ }
74
+ async getDependencies(entryFiles, transformOptions, resolverOptions, otherOptions = {
75
+ onProgress: null,
76
+ shallow: false
77
+ }) {
78
+ const absoluteEntryFiles = await this._getAbsoluteEntryFiles(entryFiles);
79
+ const dependencies = await this._deltaBundler.getDependencies(absoluteEntryFiles, {
80
+ resolve: await transformHelpers.getResolveDependencyFn(this._bundler, transformOptions.platform, resolverOptions),
81
+ transform: await transformHelpers.getTransformFn(
82
+ absoluteEntryFiles,
83
+ this._bundler,
84
+ this._deltaBundler,
85
+ this._config,
86
+ transformOptions,
87
+ resolverOptions
88
+ ),
89
+ transformOptions,
90
+ onProgress: otherOptions.onProgress,
91
+ experimentalImportBundleSupport: this._config.transformer.experimentalImportBundleSupport,
92
+ unstable_allowRequireContext: this._config.transformer.unstable_allowRequireContext,
93
+ shallow: otherOptions.shallow
94
+ });
95
+ return dependencies;
96
+ }
97
+ async buildGraph(entryFile, transformOptions, resolverOptions, otherOptions = {
98
+ onProgress: null,
99
+ shallow: false
100
+ }) {
101
+ const graph = await this.buildGraphForEntries([entryFile], transformOptions, resolverOptions, otherOptions);
102
+ const { type: _, ...transformOptionsWithoutType } = transformOptions;
103
+ const prepend = await getPrependedScripts(
104
+ this._config,
105
+ transformOptionsWithoutType,
106
+ resolverOptions,
107
+ this._bundler,
108
+ this._deltaBundler
109
+ );
110
+ return {
111
+ prepend,
112
+ graph
113
+ };
114
+ }
115
+ // TODO T34760750 (alexkirsz) Eventually, I'd like to get to a point where
116
+ // this class exposes only initializeGraph and updateGraph.
117
+ async initializeGraph(entryFile, transformOptions, resolverOptions, otherOptions = {
118
+ onProgress: null,
119
+ shallow: false
120
+ }) {
121
+ const graphId = getGraphId(entryFile, transformOptions, {
122
+ resolverOptions,
123
+ shallow: otherOptions.shallow,
124
+ experimentalImportBundleSupport: this._config.transformer.experimentalImportBundleSupport,
125
+ unstable_allowRequireContext: this._config.transformer.unstable_allowRequireContext
126
+ });
127
+ const revisionId = createRevisionId();
128
+ const revisionPromise = (async () => {
129
+ const { graph, prepend } = await this.buildGraph(entryFile, transformOptions, resolverOptions, otherOptions);
130
+ return {
131
+ id: revisionId,
132
+ date: /* @__PURE__ */ new Date(),
133
+ graphId,
134
+ graph,
135
+ prepend
136
+ };
137
+ })();
138
+ this._revisionsById.set(revisionId, revisionPromise);
139
+ this._revisionsByGraphId.set(graphId, revisionPromise);
140
+ try {
141
+ const revision = await revisionPromise;
142
+ const delta = {
143
+ added: revision.graph.dependencies,
144
+ modified: /* @__PURE__ */ new Map(),
145
+ deleted: /* @__PURE__ */ new Set(),
146
+ reset: true
147
+ };
148
+ return {
149
+ revision,
150
+ delta
151
+ };
152
+ } catch (err) {
153
+ this._revisionsById.delete(revisionId);
154
+ this._revisionsByGraphId.delete(graphId);
155
+ throw err;
156
+ }
157
+ }
158
+ async updateGraph(revision, reset) {
159
+ const delta = await this._deltaBundler.getDelta(revision.graph, {
160
+ reset,
161
+ shallow: false
162
+ });
163
+ this._config.serializer.experimentalSerializerHook(revision.graph, delta);
164
+ if (delta.added.size > 0 || delta.modified.size > 0 || delta.deleted.size > 0) {
165
+ this._revisionsById.delete(revision.id);
166
+ revision = {
167
+ ...revision,
168
+ // Generate a new revision id, to be used to verify the next incremental
169
+ // request.
170
+ id: crypto.randomBytes(8).toString("hex"),
171
+ date: /* @__PURE__ */ new Date()
172
+ };
173
+ const revisionPromise = Promise.resolve(revision);
174
+ this._revisionsById.set(revision.id, revisionPromise);
175
+ this._revisionsByGraphId.set(revision.graphId, revisionPromise);
176
+ }
177
+ return { revision, delta };
178
+ }
179
+ async endGraph(graphId) {
180
+ const revPromise = this._revisionsByGraphId.get(graphId);
181
+ if (!revPromise) {
182
+ return;
183
+ }
184
+ const revision = await revPromise;
185
+ this._deltaBundler.endGraph(revision.graph);
186
+ this._revisionsByGraphId.delete(graphId);
187
+ this._revisionsById.delete(revision.id);
188
+ }
189
+ async _getAbsoluteEntryFiles(entryFiles) {
190
+ const absoluteEntryFiles = entryFiles.map(
191
+ (entryFile) => path.resolve(this._config.server.unstable_serverRoot ?? this._config.projectRoot, entryFile)
192
+ );
193
+ await Promise.all(
194
+ absoluteEntryFiles.map(
195
+ (entryFile) => new Promise((resolve, reject) => {
196
+ fs.realpath(entryFile, (err) => {
197
+ if (err) {
198
+ reject(new ResourceNotFoundError(entryFile));
199
+ } else {
200
+ resolve();
201
+ }
202
+ });
203
+ })
204
+ )
205
+ );
206
+ return absoluteEntryFiles;
207
+ }
208
+ // Wait for the bundler to become ready.
209
+ async ready() {
210
+ await this._bundler.ready();
211
+ }
212
+ }
213
+ module.exports = IncrementalBundler;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ exports.empty = () => virtual("", "/<generated>/empty.js");
3
+ const virtual = (code, filePath) => ({
4
+ dependencies: [],
5
+ file: {
6
+ code,
7
+ map: null,
8
+ functionMap: null,
9
+ path: filePath,
10
+ type: "script",
11
+ libraryIdx: null
12
+ }
13
+ });
14
+ exports.virtual = virtual;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ const { dirname, join, parse } = require("path");
3
+ module.exports = class HasteFS {
4
+ directories;
5
+ directoryEntries;
6
+ files;
7
+ constructor(files) {
8
+ this.directories = buildDirectorySet(files);
9
+ this.directoryEntries = buildDirectoryEntries(files.map(parse));
10
+ this.files = new Set(files);
11
+ }
12
+ closest(path, fileName) {
13
+ const parsedPath = parse(path);
14
+ const root = parsedPath.root;
15
+ let dir = parsedPath.dir;
16
+ do {
17
+ const candidate = join(dir, fileName);
18
+ if (this.files.has(candidate)) {
19
+ return candidate;
20
+ }
21
+ dir = dirname(dir);
22
+ } while (dir !== "." && dir !== root);
23
+ return null;
24
+ }
25
+ dirExists(path) {
26
+ return this.directories.has(path);
27
+ }
28
+ exists(path) {
29
+ return this.files.has(path);
30
+ }
31
+ getAllFiles() {
32
+ return Array.from(this.files.keys());
33
+ }
34
+ matchFiles() {
35
+ throw new Error("HasteFS.matchFiles is not implemented yet.");
36
+ }
37
+ matches(directory, pattern) {
38
+ const entries = this.directoryEntries.get(directory);
39
+ return entries ? entries.filter(pattern.test, pattern) : [];
40
+ }
41
+ };
42
+ function buildDirectorySet(files) {
43
+ const directories = /* @__PURE__ */ new Set();
44
+ files.forEach((path) => {
45
+ const parsedPath = parse(path);
46
+ const root = parsedPath.root;
47
+ let dir = parsedPath.dir;
48
+ while (dir !== "." && dir !== root && !directories.has(dir)) {
49
+ directories.add(dir);
50
+ dir = dirname(dir);
51
+ }
52
+ });
53
+ return directories;
54
+ }
55
+ function buildDirectoryEntries(files) {
56
+ const directoryEntries = /* @__PURE__ */ new Map();
57
+ files.forEach(({ base, dir }) => {
58
+ const entries = directoryEntries.get(dir);
59
+ if (entries) {
60
+ entries.push(base);
61
+ } else {
62
+ directoryEntries.set(dir, [base]);
63
+ }
64
+ });
65
+ return directoryEntries;
66
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ module.exports = class Module {
3
+ hasteID;
4
+ moduleCache;
5
+ name;
6
+ path;
7
+ constructor(path, moduleCache, info) {
8
+ this.hasteID = info.hasteID;
9
+ this.moduleCache = moduleCache;
10
+ this.name = this.hasteID || getName(path);
11
+ this.path = path;
12
+ }
13
+ getPackage() {
14
+ return this.moduleCache.getPackageOf(this.path);
15
+ }
16
+ isHaste() {
17
+ return Boolean(this.hasteID);
18
+ }
19
+ };
20
+ function getName(path) {
21
+ return path.replace(/^.*[\/\\]node_modules[\///]/, "");
22
+ }