@granite-js/mpack 0.0.1

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