@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,14 @@
1
+ "use strict";
2
+ const fs = require("fs-extra");
3
+ exports.watchFile = async function(filename, callback) {
4
+ fs.watchFile(filename, () => {
5
+ callback();
6
+ });
7
+ await callback();
8
+ };
9
+ exports.makeAsyncCommand = (command) => (argv) => {
10
+ Promise.resolve(command(argv)).catch((error) => {
11
+ console.error(error.stack);
12
+ process.exitCode = 1;
13
+ });
14
+ };
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ try {
4
+ require("metro-babel-register").unstable_registerForMetroMonorepo();
5
+ } catch {
6
+ }
7
+ const { attachMetroCli } = require("./index");
8
+ const yargs = require("yargs");
9
+ attachMetroCli(yargs.demandCommand(1)).argv;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ const { makeAsyncCommand } = require("../cli-utils");
3
+ const TerminalReporter = require("../lib/TerminalReporter");
4
+ const { loadConfig } = require("../../../metro-config/src");
5
+ const { Terminal } = require("../../../metro-core/src");
6
+ const term = new Terminal(process.stdout);
7
+ const updateReporter = new TerminalReporter(term);
8
+ module.exports = () => ({
9
+ command: "build <entry>",
10
+ desc: "Generates a JavaScript bundle containing the specified entrypoint and its descendants",
11
+ builder: (yargs) => {
12
+ yargs.option("project-roots", {
13
+ alias: "P",
14
+ type: "string",
15
+ array: true
16
+ });
17
+ yargs.option("out", { alias: "O", type: "string", demandOption: true });
18
+ yargs.option("platform", { alias: "p", type: "string" });
19
+ yargs.option("output-type", { alias: "t", type: "string" });
20
+ yargs.option("max-workers", { alias: "j", type: "number" });
21
+ yargs.option("minify", { alias: "z", type: "boolean" });
22
+ yargs.option("dev", { alias: "g", type: "boolean" });
23
+ yargs.option("source-map", { type: "boolean" });
24
+ yargs.option("source-map-url", { type: "string" });
25
+ yargs.option("legacy-bundler", { type: "boolean" });
26
+ yargs.option("config", { alias: "c", type: "string" });
27
+ yargs.option("reset-cache", { type: "boolean" });
28
+ },
29
+ handler: makeAsyncCommand(async (argv) => {
30
+ const config = await loadConfig(argv);
31
+ const options = argv;
32
+ const MetroApi = require("../index");
33
+ await MetroApi.runBuild(config, {
34
+ ...options,
35
+ onBegin: () => {
36
+ updateReporter.update({
37
+ buildID: "$",
38
+ type: "bundle_build_started",
39
+ bundleDetails: {
40
+ bundleType: "Bundle",
41
+ dev: !!options.dev,
42
+ entryFile: options.entry,
43
+ minify: !!options.minify,
44
+ platform: options.platform,
45
+ // Bytecode bundles in Metro are not meant for production use. Instead,
46
+ // the Hermes Bytecode Compiler should be invoked on the resulting JS bundle from Metro.
47
+ runtimeBytecodeVersion: null
48
+ }
49
+ });
50
+ },
51
+ onProgress: (transformedFileCount, totalFileCount) => {
52
+ updateReporter.update({
53
+ buildID: "$",
54
+ type: "bundle_transform_progressed",
55
+ transformedFileCount,
56
+ totalFileCount
57
+ });
58
+ },
59
+ onComplete: () => {
60
+ updateReporter.update({
61
+ buildID: "$",
62
+ type: "bundle_build_done"
63
+ });
64
+ }
65
+ });
66
+ })
67
+ });
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ const { makeAsyncCommand } = require("../cli-utils");
3
+ const Server = require("../Server");
4
+ const denodeify = require("denodeify");
5
+ const fs = require("fs");
6
+ const { loadConfig } = require("../../../metro-config/src");
7
+ const path = require("path");
8
+ async function dependencies(args, config) {
9
+ const rootModuleAbsolutePath = args.entryFile;
10
+ if (!fs.existsSync(rootModuleAbsolutePath)) {
11
+ return Promise.reject(new Error(`File ${rootModuleAbsolutePath} does not exist`));
12
+ }
13
+ config.cacheStores = [];
14
+ const relativePath = path.relative(config.server.unstable_serverRoot ?? config.projectRoot, rootModuleAbsolutePath);
15
+ const options = {
16
+ platform: args.platform,
17
+ entryFile: relativePath,
18
+ dev: args.dev,
19
+ minify: false,
20
+ generateSourceMaps: !args.dev
21
+ };
22
+ const writeToFile = args.output;
23
+ const outStream = writeToFile ? fs.createWriteStream(args.output) : process.stdout;
24
+ const server = new Server(config);
25
+ const deps = await server.getOrderedDependencyPaths(options);
26
+ deps.forEach((modulePath) => {
27
+ const isInsideProjectRoots = config.watchFolders.filter((root) => modulePath.startsWith(root)).length > 0;
28
+ if (isInsideProjectRoots) {
29
+ outStream.write(modulePath + "\n");
30
+ }
31
+ });
32
+ server.end();
33
+ return writeToFile ? denodeify(outStream.end).bind(outStream)() : Promise.resolve();
34
+ }
35
+ module.exports = () => ({
36
+ command: "get-dependencies",
37
+ desc: "List dependencies",
38
+ builder: (yargs) => {
39
+ yargs.option("entry-file", {
40
+ type: "string",
41
+ demandOption: true,
42
+ describe: "Absolute path to the root JS file"
43
+ });
44
+ yargs.option("output", {
45
+ type: "string",
46
+ describe: "File name where to store the output, ex. /tmp/dependencies.txt"
47
+ });
48
+ yargs.option("platform", {
49
+ type: "string",
50
+ describe: "The platform extension used for selecting modules"
51
+ });
52
+ yargs.option("transformer", {
53
+ type: "string",
54
+ describe: "Specify a custom transformer to be used"
55
+ });
56
+ yargs.option("max-workers", {
57
+ type: "number",
58
+ describe: "Specifies the maximum number of workers the worker-pool will spawn for transforming files. This defaults to the number of the cores available on your machine."
59
+ });
60
+ yargs.option("dev", {
61
+ type: "boolean",
62
+ default: true,
63
+ describe: "If false, skip all dev-only code path"
64
+ });
65
+ yargs.option("verbose", {
66
+ type: "boolean",
67
+ default: false,
68
+ description: "Enables logging"
69
+ });
70
+ },
71
+ handler: makeAsyncCommand(async (argv) => {
72
+ const config = await loadConfig(argv);
73
+ await dependencies(argv, config);
74
+ })
75
+ });
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ const { makeAsyncCommand, watchFile } = require("../cli-utils");
3
+ const { loadConfig, resolveConfig } = require("../../../metro-config/src");
4
+ const { promisify } = require("util");
5
+ module.exports = () => ({
6
+ command: "serve",
7
+ aliases: ["start"],
8
+ desc: "Starts Metro on the given port, building bundles on the fly",
9
+ builder: (yargs) => {
10
+ yargs.option("project-roots", {
11
+ alias: "P",
12
+ type: "string",
13
+ array: true
14
+ });
15
+ yargs.option("host", { alias: "h", type: "string", default: "localhost" });
16
+ yargs.option("port", { alias: "p", type: "number", default: 8080 });
17
+ yargs.option("max-workers", { alias: "j", type: "number" });
18
+ yargs.option("secure", { type: "boolean", describe: "(deprecated)" });
19
+ yargs.option("secure-key", { type: "string", describe: "(deprecated)" });
20
+ yargs.option("secure-cert", { type: "string", describe: "(deprecated)" });
21
+ yargs.option("secure-server-options", {
22
+ alias: "s",
23
+ type: "string",
24
+ describe: "Use dot notation for object path"
25
+ });
26
+ yargs.option("hmr-enabled", { alias: "hmr", type: "boolean" });
27
+ yargs.option("config", { alias: "c", type: "string" });
28
+ yargs.option("reset-cache", { type: "boolean" });
29
+ yargs.example("secure-server-options", '-s.cert="$(cat path/to/cert)" -s.key="$(cat path/to/key")');
30
+ },
31
+ handler: makeAsyncCommand(async (argv) => {
32
+ let server = null;
33
+ let restarting = false;
34
+ async function restart() {
35
+ if (restarting) {
36
+ return;
37
+ } else {
38
+ restarting = true;
39
+ }
40
+ if (server) {
41
+ console.log("Configuration changed. Restarting the server...");
42
+ await promisify(server.close).call(server);
43
+ }
44
+ const config = await loadConfig(argv);
45
+ const MetroApi = require("../index");
46
+ server = await MetroApi.runServer(config, argv);
47
+ restarting = false;
48
+ }
49
+ const foundConfig = await resolveConfig(argv.config, argv.cwd);
50
+ if (foundConfig) {
51
+ await watchFile(foundConfig.filepath, restart);
52
+ } else {
53
+ await restart();
54
+ }
55
+ })
56
+ });
@@ -0,0 +1,8 @@
1
+ // MARK: - GRANITE
2
+
3
+ declare const Metro: {
4
+ runServer(config: any, options: any): Promise<any>;
5
+ runBuild(config: any, options: any): Promise<any>;
6
+ };
7
+
8
+ export default Metro;
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ const makeBuildCommand = require("./commands/build");
3
+ const makeDependenciesCommand = require("./commands/dependencies");
4
+ const makeServeCommand = require("./commands/serve");
5
+ const MetroHmrServer = require("./HmrServer");
6
+ const IncrementalBundler = require("./IncrementalBundler");
7
+ const createWebsocketServer = require("./lib/createWebsocketServer");
8
+ const MetroServer = require("./Server");
9
+ const outputBundle = require("./shared/output/bundle");
10
+ const chalk = require("chalk");
11
+ const fs = require("fs");
12
+ const http = require("http");
13
+ const https = require("https");
14
+ const { getDefaultConfig, loadConfig, mergeConfig } = require("../../metro-config/src");
15
+ const { InspectorProxy } = require("../../metro-inspector-proxy/src/index");
16
+ const net = require("net");
17
+ const { parse } = require("url");
18
+ const ws = require("ws");
19
+ async function getConfig(config) {
20
+ const defaultConfig = await getDefaultConfig(config.projectRoot);
21
+ return mergeConfig(defaultConfig, config);
22
+ }
23
+ async function runMetro(config, options) {
24
+ const mergedConfig = await getConfig(config);
25
+ const {
26
+ reporter,
27
+ server: { port }
28
+ } = mergedConfig;
29
+ reporter.update({
30
+ hasReducedPerformance: options ? Boolean(options.hasReducedPerformance) : false,
31
+ port,
32
+ type: "initialize_started"
33
+ });
34
+ const { waitForBundler = false, ...serverOptions } = options ?? {};
35
+ const server = new MetroServer(mergedConfig, serverOptions);
36
+ const readyPromise = server.ready().then(() => {
37
+ reporter.update({
38
+ type: "initialize_done",
39
+ port
40
+ });
41
+ }).catch((error) => {
42
+ reporter.update({
43
+ type: "initialize_failed",
44
+ port,
45
+ error
46
+ });
47
+ });
48
+ if (waitForBundler) {
49
+ await readyPromise;
50
+ }
51
+ return server;
52
+ }
53
+ exports.runMetro = runMetro;
54
+ exports.loadConfig = loadConfig;
55
+ const createConnectMiddleware = async function(config, options) {
56
+ const metroServer = await runMetro(config, options);
57
+ let enhancedMiddleware = metroServer.processRequest;
58
+ if (config.server.enhanceMiddleware) {
59
+ enhancedMiddleware = config.server.enhanceMiddleware(enhancedMiddleware, metroServer);
60
+ }
61
+ return {
62
+ attachHmrServer(httpServer) {
63
+ const wss = createWebsocketServer({
64
+ websocketServer: new MetroHmrServer(metroServer.getBundler(), metroServer.getCreateModuleId(), config)
65
+ });
66
+ httpServer.on("upgrade", (request, socket, head) => {
67
+ const { pathname } = parse(request.url);
68
+ if (pathname === "/hot") {
69
+ wss.handleUpgrade(request, socket, head, (ws2) => {
70
+ wss.emit("connection", ws2, request);
71
+ });
72
+ } else {
73
+ socket.destroy();
74
+ }
75
+ });
76
+ },
77
+ metroServer,
78
+ middleware: enhancedMiddleware,
79
+ end() {
80
+ metroServer.end();
81
+ }
82
+ };
83
+ };
84
+ exports.createConnectMiddleware = createConnectMiddleware;
85
+ exports.runServer = async (config, {
86
+ hasReducedPerformance = false,
87
+ host,
88
+ onError,
89
+ onReady,
90
+ secureServerOptions,
91
+ secure,
92
+ //deprecated
93
+ secureCert,
94
+ // deprecated
95
+ secureKey,
96
+ // deprecated
97
+ waitForBundler = false,
98
+ websocketEndpoints = {}
99
+ }) => {
100
+ await earlyPortCheck(host, config.server.port);
101
+ if (secure != null || secureCert != null || secureKey != null) {
102
+ console.warn(
103
+ chalk.inverse.yellow.bold(" DEPRECATED "),
104
+ "The `secure`, `secureCert`, and `secureKey` options are now deprecated. Please use the `secureServerOptions` object instead to pass options to Metro's https development server."
105
+ );
106
+ }
107
+ const connect = require("connect");
108
+ const serverApp = connect();
109
+ const { middleware, end, metroServer } = await createConnectMiddleware(config, {
110
+ hasReducedPerformance,
111
+ waitForBundler
112
+ });
113
+ serverApp.use(middleware);
114
+ let inspectorProxy = null;
115
+ if (config.server.runInspectorProxy) {
116
+ inspectorProxy = new InspectorProxy(config.projectRoot);
117
+ }
118
+ let httpServer;
119
+ if (secure || secureServerOptions != null) {
120
+ let options = secureServerOptions;
121
+ if (typeof secureKey === "string" && typeof secureCert === "string") {
122
+ options = {
123
+ key: fs.readFileSync(secureKey),
124
+ cert: fs.readFileSync(secureCert),
125
+ ...secureServerOptions
126
+ };
127
+ }
128
+ httpServer = https.createServer(options, serverApp);
129
+ } else {
130
+ httpServer = http.createServer(serverApp);
131
+ }
132
+ return new Promise((resolve, reject) => {
133
+ httpServer.on("error", (error) => {
134
+ if (onError) {
135
+ onError(error);
136
+ }
137
+ reject(error);
138
+ end();
139
+ });
140
+ httpServer.listen(config.server.port, host, () => {
141
+ if (onReady) {
142
+ onReady(httpServer);
143
+ }
144
+ Object.assign(websocketEndpoints, {
145
+ ...inspectorProxy ? { ...inspectorProxy.createWebSocketListeners(httpServer) } : {},
146
+ "/hot": createWebsocketServer({
147
+ websocketServer: new MetroHmrServer(metroServer.getBundler(), metroServer.getCreateModuleId(), config)
148
+ })
149
+ });
150
+ httpServer.on("upgrade", (request, socket, head) => {
151
+ const { pathname } = parse(request.url);
152
+ if (pathname != null && websocketEndpoints[pathname]) {
153
+ websocketEndpoints[pathname].handleUpgrade(request, socket, head, (ws2) => {
154
+ websocketEndpoints[pathname].emit("connection", ws2, request);
155
+ });
156
+ } else {
157
+ socket.destroy();
158
+ }
159
+ });
160
+ if (inspectorProxy) {
161
+ serverApp.use(inspectorProxy.processRequest.bind(inspectorProxy));
162
+ }
163
+ resolve(httpServer);
164
+ });
165
+ httpServer.timeout = 0;
166
+ httpServer.on("close", () => {
167
+ end();
168
+ });
169
+ });
170
+ };
171
+ exports.runBuild = async (config, {
172
+ dev = false,
173
+ entry,
174
+ onBegin,
175
+ onComplete,
176
+ onProgress,
177
+ minify = true,
178
+ output = outputBundle,
179
+ out,
180
+ platform = "web",
181
+ sourceMap = false,
182
+ sourceMapUrl
183
+ }) => {
184
+ const metroServer = await runMetro(config, {
185
+ watch: false
186
+ });
187
+ try {
188
+ const requestOptions = {
189
+ dev,
190
+ entryFile: entry,
191
+ inlineSourceMap: sourceMap && !sourceMapUrl,
192
+ minify,
193
+ platform,
194
+ sourceMapUrl: sourceMap === false ? void 0 : sourceMapUrl,
195
+ createModuleIdFactory: config.serializer.createModuleIdFactory,
196
+ onProgress
197
+ };
198
+ if (onBegin) {
199
+ onBegin();
200
+ }
201
+ const metroBundle = await output.build(metroServer, requestOptions);
202
+ if (onComplete) {
203
+ onComplete();
204
+ }
205
+ if (out) {
206
+ const bundleOutput = out.replace(/(\.js)?$/, ".js");
207
+ const sourcemapOutput = sourceMap === false ? void 0 : out.replace(/(\.js)?$/, ".map");
208
+ const outputOptions = {
209
+ bundleOutput,
210
+ sourcemapOutput,
211
+ dev,
212
+ platform
213
+ };
214
+ await output.save(metroBundle, outputOptions, console.log);
215
+ }
216
+ return metroBundle;
217
+ } finally {
218
+ await metroServer.end();
219
+ }
220
+ };
221
+ exports.buildGraph = async function(config, {
222
+ customTransformOptions = /* @__PURE__ */ Object.create(null),
223
+ dev = false,
224
+ entries,
225
+ minify = false,
226
+ onProgress,
227
+ platform = "web",
228
+ type = "module"
229
+ }) {
230
+ const mergedConfig = await getConfig(config);
231
+ const bundler = new IncrementalBundler(mergedConfig);
232
+ try {
233
+ const { customResolverOptions, ...defaultTransformInputOptions } = MetroServer.DEFAULT_GRAPH_OPTIONS;
234
+ return await bundler.buildGraphForEntries(
235
+ entries,
236
+ {
237
+ ...defaultTransformInputOptions,
238
+ customTransformOptions,
239
+ dev,
240
+ minify,
241
+ platform,
242
+ type
243
+ },
244
+ { customResolverOptions }
245
+ );
246
+ } finally {
247
+ bundler.end();
248
+ }
249
+ };
250
+ exports.attachMetroCli = function(yargs, {
251
+ build = {},
252
+ serve = {},
253
+ dependencies = {}
254
+ } = {}) {
255
+ yargs.strict();
256
+ if (build) {
257
+ yargs.command(makeBuildCommand());
258
+ }
259
+ if (serve) {
260
+ yargs.command(makeServeCommand());
261
+ }
262
+ if (dependencies) {
263
+ yargs.command(makeDependenciesCommand());
264
+ }
265
+ return yargs;
266
+ };
267
+ async function earlyPortCheck(host, port) {
268
+ const server = net.createServer((c) => c.end());
269
+ try {
270
+ await new Promise((resolve, reject) => {
271
+ server.on("error", (err) => {
272
+ reject(err);
273
+ });
274
+ server.listen(port, host, void 0, () => resolve());
275
+ });
276
+ } finally {
277
+ await new Promise((resolve) => server.close(() => resolve()));
278
+ }
279
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ try {
3
+ require("metro-babel-register").unstable_registerForMetroMonorepo();
4
+ } catch {
5
+ }
6
+ module.exports = require("./index.flow");
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ let cachedResult = null;
3
+ module.exports = function isPnP() {
4
+ if (cachedResult !== null) {
5
+ return cachedResult;
6
+ }
7
+ try {
8
+ require("pnpapi");
9
+ return cachedResult = true;
10
+ } catch {
11
+ return cachedResult = false;
12
+ }
13
+ };
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ const invariant = require("invariant");
3
+ class BatchProcessor {
4
+ _currentProcessCount;
5
+ _options;
6
+ _processBatch;
7
+ _queue;
8
+ _timeoutHandle;
9
+ constructor(options, processBatch) {
10
+ this._options = options;
11
+ this._processBatch = processBatch;
12
+ this._queue = [];
13
+ this._timeoutHandle = null;
14
+ this._currentProcessCount = 0;
15
+ this._processQueue = this._processQueue.bind(this);
16
+ }
17
+ _onBatchFinished() {
18
+ this._currentProcessCount--;
19
+ this._processQueueOnceReady();
20
+ }
21
+ _onBatchResults(jobs, results) {
22
+ invariant(results.length === jobs.length, "Not enough results returned.");
23
+ for (let i = 0; i < jobs.length; ++i) {
24
+ jobs[i].resolve(results[i]);
25
+ }
26
+ this._onBatchFinished();
27
+ }
28
+ _onBatchError(jobs, error) {
29
+ for (let i = 0; i < jobs.length; ++i) {
30
+ jobs[i].reject(error);
31
+ }
32
+ this._onBatchFinished();
33
+ }
34
+ _processQueue() {
35
+ this._timeoutHandle = null;
36
+ const { concurrency } = this._options;
37
+ while (this._queue.length > 0 && this._currentProcessCount < concurrency) {
38
+ this._currentProcessCount++;
39
+ const jobs = this._queue.splice(0, this._options.maximumItems);
40
+ this._processBatch(jobs.map((job) => job.item)).then(
41
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
42
+ this._onBatchResults.bind(this, jobs),
43
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
44
+ this._onBatchError.bind(this, jobs)
45
+ );
46
+ }
47
+ }
48
+ _processQueueOnceReady() {
49
+ if (this._queue.length >= this._options.maximumItems) {
50
+ clearTimeout(this._timeoutHandle);
51
+ process.nextTick(this._processQueue);
52
+ return;
53
+ }
54
+ if (this._timeoutHandle == null) {
55
+ this._timeoutHandle = setTimeout(
56
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
57
+ this._processQueue,
58
+ this._options.maximumDelayMs
59
+ );
60
+ }
61
+ }
62
+ queue(item) {
63
+ return new Promise((resolve, reject) => {
64
+ this._queue.push({ item, resolve, reject });
65
+ this._processQueueOnceReady();
66
+ });
67
+ }
68
+ }
69
+ module.exports = BatchProcessor;