@joystick.js/cli-canary 0.0.0-canary.172 → 0.0.0-canary.1721

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 (763) hide show
  1. package/.build/getFilesToBuild.js +1 -1
  2. package/.build/index.js +5 -3
  3. package/LICENSE.md +59 -0
  4. package/README.md +45 -4
  5. package/dist/cli.js +2 -76
  6. package/dist/cli.js.map +7 -0
  7. package/dist/commands/build/definition.js +2 -0
  8. package/dist/commands/build/definition.js.map +7 -0
  9. package/dist/commands/build/index.js +2 -0
  10. package/dist/commands/build/index.js.map +7 -0
  11. package/dist/commands/create/build_package_json.js +2 -0
  12. package/dist/commands/create/build_package_json.js.map +7 -0
  13. package/dist/commands/create/definition.js +2 -0
  14. package/dist/commands/create/definition.js.map +7 -0
  15. package/dist/commands/create/index.js +3 -0
  16. package/dist/commands/create/index.js.map +7 -0
  17. package/dist/commands/create/template/api/index.js +6 -0
  18. package/dist/commands/create/template/email/base.css +9 -0
  19. package/dist/commands/create/template/email/base.html +10 -0
  20. package/dist/commands/create/template/email/reset_password.js +20 -0
  21. package/dist/commands/create/template/i18n/en-US.js +14 -0
  22. package/dist/commands/create/template/index.client.js +1 -0
  23. package/dist/commands/create/template/index.css +34 -0
  24. package/dist/{functions/create/templates → commands/create/template}/index.html +2 -3
  25. package/dist/{functions/create/templates → commands/create/template}/index.server.js +6 -6
  26. package/dist/commands/create/template/public/apple-touch-icon-152x152.png +0 -0
  27. package/dist/commands/create/template/public/favicon.ico +0 -0
  28. package/dist/commands/create/template/public/joystick_logo.webp +0 -0
  29. package/dist/{functions/create/templates → commands/create/template}/public/manifest.json +4 -4
  30. package/dist/commands/create/template/public/splash-screen-1024x1024.png +0 -0
  31. package/{src/functions/create/templates → dist/commands/create/template}/ui/components/button/index.js +14 -6
  32. package/{src/functions/create/templates → dist/commands/create/template}/ui/layouts/app/index.js +2 -2
  33. package/dist/commands/create/template/ui/pages/error/index.js +50 -0
  34. package/dist/commands/create/template/ui/pages/index/index.js +121 -0
  35. package/dist/commands/help/definition.js +2 -0
  36. package/dist/commands/help/definition.js.map +7 -0
  37. package/dist/commands/help/index.js +20 -0
  38. package/dist/commands/help/index.js.map +7 -0
  39. package/dist/commands/index.js +2 -0
  40. package/dist/commands/index.js.map +7 -0
  41. package/dist/commands/logout/definition.js +2 -0
  42. package/dist/commands/logout/definition.js.map +7 -0
  43. package/dist/commands/logout/index.js +4 -0
  44. package/dist/commands/logout/index.js.map +7 -0
  45. package/dist/commands/push/cdn_mirrors.js +2 -0
  46. package/dist/commands/push/cdn_mirrors.js.map +7 -0
  47. package/dist/commands/push/check_if_settings_valid.js +2 -0
  48. package/dist/commands/push/check_if_settings_valid.js.map +7 -0
  49. package/dist/commands/push/create_version.js +2 -0
  50. package/dist/commands/push/create_version.js.map +7 -0
  51. package/dist/commands/push/definition.js +2 -0
  52. package/dist/commands/push/definition.js.map +7 -0
  53. package/dist/commands/push/get_app_domain.js +2 -0
  54. package/dist/commands/push/get_app_domain.js.map +7 -0
  55. package/dist/commands/push/get_deployment.js +2 -0
  56. package/dist/commands/push/get_deployment.js.map +7 -0
  57. package/dist/commands/push/get_provision_domain.js +2 -0
  58. package/dist/commands/push/get_provision_domain.js.map +7 -0
  59. package/dist/commands/push/get_session_token.js +2 -0
  60. package/dist/commands/push/get_session_token.js.map +7 -0
  61. package/dist/commands/push/get_settings_file.js +2 -0
  62. package/dist/commands/push/get_settings_file.js.map +7 -0
  63. package/dist/commands/push/handle_initial_deployment.js +2 -0
  64. package/dist/commands/push/handle_initial_deployment.js.map +7 -0
  65. package/dist/commands/push/handle_version_deployment.js +2 -0
  66. package/dist/commands/push/handle_version_deployment.js.map +7 -0
  67. package/dist/commands/push/index.js +9 -0
  68. package/dist/commands/push/index.js.map +7 -0
  69. package/dist/commands/push/prompts/confirm_deployment.js +18 -0
  70. package/dist/commands/push/prompts/confirm_deployment.js.map +7 -0
  71. package/dist/commands/push/prompts/session_token.js +6 -0
  72. package/dist/commands/push/prompts/session_token.js.map +7 -0
  73. package/dist/commands/push/upload_build_to_cdn.js +2 -0
  74. package/dist/commands/push/upload_build_to_cdn.js.map +7 -0
  75. package/dist/commands/push/validate_deployment.js +2 -0
  76. package/dist/commands/push/validate_deployment.js.map +7 -0
  77. package/dist/commands/push/validate_push_config.js +2 -0
  78. package/dist/commands/push/validate_push_config.js.map +7 -0
  79. package/dist/commands/push_v2/Dockerfile +47 -0
  80. package/dist/commands/push_v2/build_docker_image.js +2 -0
  81. package/dist/commands/push_v2/build_docker_image.js.map +7 -0
  82. package/dist/commands/push_v2/cdn_mirrors.js +2 -0
  83. package/dist/commands/push_v2/cdn_mirrors.js.map +7 -0
  84. package/dist/commands/push_v2/check_if_settings_valid.js +2 -0
  85. package/dist/commands/push_v2/check_if_settings_valid.js.map +7 -0
  86. package/dist/commands/push_v2/create_version.js +2 -0
  87. package/dist/commands/push_v2/create_version.js.map +7 -0
  88. package/dist/commands/push_v2/definition.js +2 -0
  89. package/dist/commands/push_v2/definition.js.map +7 -0
  90. package/dist/commands/push_v2/get_app_domain.js +2 -0
  91. package/dist/commands/push_v2/get_app_domain.js.map +7 -0
  92. package/dist/commands/push_v2/get_deployment.js +2 -0
  93. package/dist/commands/push_v2/get_deployment.js.map +7 -0
  94. package/dist/commands/push_v2/get_deployment_token.js +2 -0
  95. package/dist/commands/push_v2/get_deployment_token.js.map +7 -0
  96. package/dist/commands/push_v2/get_push_domain.js +2 -0
  97. package/dist/commands/push_v2/get_push_domain.js.map +7 -0
  98. package/dist/commands/push_v2/get_settings_file.js +2 -0
  99. package/dist/commands/push_v2/get_settings_file.js.map +7 -0
  100. package/dist/commands/push_v2/handle_initial_deployment.js +2 -0
  101. package/dist/commands/push_v2/handle_initial_deployment.js.map +7 -0
  102. package/dist/commands/push_v2/handle_version_deployment.js +2 -0
  103. package/dist/commands/push_v2/handle_version_deployment.js.map +7 -0
  104. package/dist/commands/push_v2/index.js +6 -0
  105. package/dist/commands/push_v2/index.js.map +7 -0
  106. package/dist/commands/push_v2/prompts/confirm_deployment.js +18 -0
  107. package/dist/commands/push_v2/prompts/confirm_deployment.js.map +7 -0
  108. package/dist/commands/push_v2/prompts/session_token.js +6 -0
  109. package/dist/commands/push_v2/prompts/session_token.js.map +7 -0
  110. package/dist/commands/push_v2/upload_build_to_push.js +2 -0
  111. package/dist/commands/push_v2/upload_build_to_push.js.map +7 -0
  112. package/dist/commands/push_v2/validate_deployment.js +2 -0
  113. package/dist/commands/push_v2/validate_deployment.js.map +7 -0
  114. package/dist/commands/push_v2/validate_push_config.js +2 -0
  115. package/dist/commands/push_v2/validate_push_config.js.map +7 -0
  116. package/dist/commands/start/definition.js +2 -0
  117. package/dist/commands/start/definition.js.map +7 -0
  118. package/dist/commands/start/index.js +2 -0
  119. package/dist/commands/start/index.js.map +7 -0
  120. package/dist/commands/test/definition.js +2 -0
  121. package/dist/commands/test/definition.js.map +7 -0
  122. package/dist/commands/test/index.js +2 -0
  123. package/dist/commands/test/index.js.map +7 -0
  124. package/dist/commands/update/definition.js +2 -0
  125. package/dist/commands/update/definition.js.map +7 -0
  126. package/dist/commands/update/index.js +2 -0
  127. package/dist/commands/update/index.js.map +7 -0
  128. package/dist/commands/use/definition.js +2 -0
  129. package/dist/commands/use/definition.js.map +7 -0
  130. package/dist/commands/use/index.js +2 -0
  131. package/dist/commands/use/index.js.map +7 -0
  132. package/dist/index.js +2 -7
  133. package/dist/index.js.map +7 -0
  134. package/dist/lib/build/browser_path_exclusions.js +2 -0
  135. package/dist/lib/build/browser_path_exclusions.js.map +7 -0
  136. package/dist/lib/build/browser_paths.js +2 -0
  137. package/dist/lib/build/browser_paths.js.map +7 -0
  138. package/dist/lib/build/build_files.js +4 -0
  139. package/dist/lib/build/build_files.js.map +7 -0
  140. package/dist/lib/build/copy_paths.js +2 -0
  141. package/dist/lib/build/copy_paths.js.map +7 -0
  142. package/dist/lib/build/get_code_frame.js +2 -0
  143. package/dist/lib/build/get_code_frame.js.map +7 -0
  144. package/dist/lib/build/get_file_operation.js +2 -0
  145. package/dist/lib/build/get_file_operation.js.map +7 -0
  146. package/dist/lib/build/get_files_to_build.js +2 -0
  147. package/dist/lib/build/get_files_to_build.js.map +7 -0
  148. package/dist/lib/build/get_path_platform.js +2 -0
  149. package/dist/lib/build/get_path_platform.js.map +7 -0
  150. package/dist/lib/build/get_platform_safe_path.js +2 -0
  151. package/dist/lib/build/get_platform_safe_path.js.map +7 -0
  152. package/dist/lib/build/get_tar_ignore_list.js +3 -0
  153. package/dist/lib/build/get_tar_ignore_list.js.map +7 -0
  154. package/dist/lib/build/index.js +4 -0
  155. package/dist/lib/build/index.js.map +7 -0
  156. package/dist/lib/build/master_ignore_list.js +2 -0
  157. package/dist/lib/build/master_ignore_list.js.map +7 -0
  158. package/dist/lib/build/minify_file.js +2 -0
  159. package/dist/lib/build/minify_file.js.map +7 -0
  160. package/dist/lib/build/node_paths.js +2 -0
  161. package/dist/lib/build/node_paths.js.map +7 -0
  162. package/dist/lib/build/on_warn.js +11 -0
  163. package/dist/lib/build/on_warn.js.map +7 -0
  164. package/dist/lib/build/plugins/bootstrap_component.js +34 -0
  165. package/dist/lib/build/plugins/bootstrap_component.js.map +7 -0
  166. package/dist/lib/build/plugins/generate_file_dependency_map.js +2 -0
  167. package/dist/lib/build/plugins/generate_file_dependency_map.js.map +7 -0
  168. package/dist/lib/build/plugins/index.js +2 -0
  169. package/dist/lib/build/plugins/index.js.map +7 -0
  170. package/dist/lib/build/plugins/set_component_id.js +3 -0
  171. package/dist/lib/build/plugins/set_component_id.js.map +7 -0
  172. package/dist/lib/build/plugins/update_file_map.js +2 -0
  173. package/dist/lib/build/plugins/update_file_map.js.map +7 -0
  174. package/dist/lib/build/plugins/warn_node_environment.js +4 -0
  175. package/dist/lib/build/plugins/warn_node_environment.js.map +7 -0
  176. package/dist/lib/cli_log.js +14 -0
  177. package/dist/lib/cli_log.js.map +7 -0
  178. package/dist/lib/color_log.js +2 -0
  179. package/dist/lib/color_log.js.map +7 -0
  180. package/dist/lib/command_exists.js +2 -0
  181. package/dist/lib/command_exists.js.map +7 -0
  182. package/dist/lib/constants.js +2 -4
  183. package/dist/lib/constants.js.map +7 -0
  184. package/dist/lib/debounce.js +2 -0
  185. package/dist/lib/debounce.js.map +7 -0
  186. package/dist/lib/decrypt_buffer.js +2 -0
  187. package/dist/lib/decrypt_buffer.js.map +7 -0
  188. package/dist/lib/development_server/ava_config.js +2 -0
  189. package/dist/lib/development_server/ava_config.js.map +7 -0
  190. package/dist/lib/development_server/check_if_port_occupied.js +2 -0
  191. package/dist/lib/development_server/check_if_port_occupied.js.map +7 -0
  192. package/dist/lib/development_server/cleanup.js +2 -0
  193. package/dist/lib/development_server/cleanup.js.map +7 -0
  194. package/dist/lib/development_server/databases/download_database_binary.js +2 -0
  195. package/dist/lib/development_server/databases/download_database_binary.js.map +7 -0
  196. package/dist/lib/development_server/databases/mongodb/available_query_parameters.js +2 -0
  197. package/dist/lib/development_server/databases/mongodb/available_query_parameters.js.map +7 -0
  198. package/dist/lib/development_server/databases/mongodb/build_connection_string.js +2 -0
  199. package/dist/lib/development_server/databases/mongodb/build_connection_string.js.map +7 -0
  200. package/dist/lib/development_server/databases/mongodb/build_query_parameters.js +2 -0
  201. package/dist/lib/development_server/databases/mongodb/build_query_parameters.js.map +7 -0
  202. package/dist/lib/development_server/databases/mongodb/check_connection.js +3 -0
  203. package/dist/lib/development_server/databases/mongodb/check_connection.js.map +7 -0
  204. package/dist/lib/development_server/databases/mongodb/connect.js +2 -0
  205. package/dist/lib/development_server/databases/mongodb/connect.js.map +7 -0
  206. package/dist/lib/development_server/databases/mongodb/index.js +2 -0
  207. package/dist/lib/development_server/databases/mongodb/index.js.map +7 -0
  208. package/dist/lib/development_server/databases/mongodb/installers/linux.js +2 -0
  209. package/dist/lib/development_server/databases/mongodb/installers/linux.js.map +7 -0
  210. package/dist/lib/development_server/databases/mongodb/installers/macos.js +2 -0
  211. package/dist/lib/development_server/databases/mongodb/installers/macos.js.map +7 -0
  212. package/dist/lib/development_server/databases/mongodb/installers/windows.js +2 -0
  213. package/dist/lib/development_server/databases/mongodb/installers/windows.js.map +7 -0
  214. package/dist/lib/development_server/databases/postgresql/check_connection.js +3 -0
  215. package/dist/lib/development_server/databases/postgresql/check_connection.js.map +7 -0
  216. package/dist/lib/development_server/databases/postgresql/connect.js +2 -0
  217. package/dist/lib/development_server/databases/postgresql/connect.js.map +7 -0
  218. package/dist/lib/development_server/databases/postgresql/index.js +3 -0
  219. package/dist/lib/development_server/databases/postgresql/index.js.map +7 -0
  220. package/dist/lib/development_server/databases/postgresql/installers/linux.js +2 -0
  221. package/dist/lib/development_server/databases/postgresql/installers/linux.js.map +7 -0
  222. package/dist/lib/development_server/databases/postgresql/installers/macos.js +2 -0
  223. package/dist/lib/development_server/databases/postgresql/installers/macos.js.map +7 -0
  224. package/dist/lib/development_server/databases/postgresql/installers/windows.js +2 -0
  225. package/dist/lib/development_server/databases/postgresql/installers/windows.js.map +7 -0
  226. package/dist/lib/development_server/databases/provider_map.js +2 -0
  227. package/dist/lib/development_server/databases/provider_map.js.map +7 -0
  228. package/dist/lib/development_server/get_database_process_ids.js +2 -0
  229. package/dist/lib/development_server/get_database_process_ids.js.map +7 -0
  230. package/dist/lib/development_server/get_translations.js +2 -0
  231. package/dist/lib/development_server/get_translations.js.map +7 -0
  232. package/dist/lib/development_server/hmr_server.js +2 -0
  233. package/dist/lib/development_server/hmr_server.js.map +7 -0
  234. package/dist/lib/development_server/index.js +11 -0
  235. package/dist/lib/development_server/index.js.map +7 -0
  236. package/dist/lib/development_server/kill_process_ids.js +2 -0
  237. package/dist/lib/development_server/kill_process_ids.js.map +7 -0
  238. package/dist/lib/development_server/run_tests.js +3 -0
  239. package/dist/lib/development_server/run_tests.js.map +7 -0
  240. package/dist/lib/development_server/start_app_server.js +2 -0
  241. package/dist/lib/development_server/start_app_server.js.map +7 -0
  242. package/dist/lib/development_server/start_databases.js +2 -0
  243. package/dist/lib/development_server/start_databases.js.map +7 -0
  244. package/dist/lib/development_server/start_hmr_server.js +2 -0
  245. package/dist/lib/development_server/start_hmr_server.js.map +7 -0
  246. package/dist/lib/development_server/watch_for_changes/browser_path_exclusions.js +2 -0
  247. package/dist/lib/development_server/watch_for_changes/browser_path_exclusions.js.map +7 -0
  248. package/dist/lib/development_server/watch_for_changes/browser_paths.js +2 -0
  249. package/dist/lib/development_server/watch_for_changes/browser_paths.js.map +7 -0
  250. package/dist/lib/development_server/watch_for_changes/get_after_run_tasks.js +2 -0
  251. package/dist/lib/development_server/watch_for_changes/get_after_run_tasks.js.map +7 -0
  252. package/dist/lib/development_server/watch_for_changes/get_file_codependencies.js +2 -0
  253. package/dist/lib/development_server/watch_for_changes/get_file_codependencies.js.map +7 -0
  254. package/dist/lib/development_server/watch_for_changes/get_platform_safe_path.js +2 -0
  255. package/dist/lib/development_server/watch_for_changes/get_platform_safe_path.js.map +7 -0
  256. package/dist/lib/development_server/watch_for_changes/index.js +2 -0
  257. package/dist/lib/development_server/watch_for_changes/index.js.map +7 -0
  258. package/dist/lib/development_server/watch_for_changes/node_paths.js +2 -0
  259. package/dist/lib/development_server/watch_for_changes/node_paths.js.map +7 -0
  260. package/dist/lib/development_server/watch_for_changes/read_file_dependency_map.js +2 -0
  261. package/dist/lib/development_server/watch_for_changes/read_file_dependency_map.js.map +7 -0
  262. package/dist/lib/development_server/watch_for_changes/watch_paths.js +2 -0
  263. package/dist/lib/development_server/watch_for_changes/watch_paths.js.map +7 -0
  264. package/dist/lib/dynamic_import.js +2 -0
  265. package/dist/lib/dynamic_import.js.map +7 -0
  266. package/dist/lib/encrypt_buffer.js +2 -0
  267. package/dist/lib/encrypt_buffer.js.map +7 -0
  268. package/dist/lib/generate_id.js +2 -0
  269. package/dist/lib/generate_id.js.map +7 -0
  270. package/dist/lib/get_files_in_path.js +2 -0
  271. package/dist/lib/get_files_in_path.js.map +7 -0
  272. package/dist/lib/get_platform_safe_path.js +2 -0
  273. package/dist/lib/get_platform_safe_path.js.map +7 -0
  274. package/dist/lib/get_process_id_from_port.js +3 -0
  275. package/dist/lib/get_process_id_from_port.js.map +7 -0
  276. package/dist/lib/is_valid_json_string.js +2 -0
  277. package/dist/lib/is_valid_json_string.js.map +7 -0
  278. package/dist/lib/kill_port_process.js +2 -0
  279. package/dist/lib/kill_port_process.js.map +7 -0
  280. package/dist/lib/kill_process_id.js +2 -0
  281. package/dist/lib/kill_process_id.js.map +7 -0
  282. package/dist/lib/load_settings.js +2 -0
  283. package/dist/lib/load_settings.js.map +7 -0
  284. package/dist/lib/loader.js +3 -82
  285. package/dist/lib/loader.js.map +7 -0
  286. package/dist/lib/log_bars.js +2 -0
  287. package/dist/lib/log_bars.js.map +7 -0
  288. package/dist/lib/node_path_polyfills.js +2 -0
  289. package/dist/lib/node_path_polyfills.js.map +7 -0
  290. package/dist/lib/parse_args.js +2 -0
  291. package/dist/lib/parse_args.js.map +7 -0
  292. package/dist/lib/parse_options.js +2 -0
  293. package/dist/lib/parse_options.js.map +7 -0
  294. package/dist/lib/path_exists.js +2 -0
  295. package/dist/lib/path_exists.js.map +7 -0
  296. package/dist/lib/rainbow_road.js +2 -0
  297. package/dist/lib/rainbow_road.js.map +7 -0
  298. package/dist/lib/replace_in_files.js +2 -0
  299. package/dist/lib/replace_in_files.js.map +7 -0
  300. package/dist/lib/required_files.js +2 -0
  301. package/dist/lib/required_files.js.map +7 -0
  302. package/dist/lib/serialize_query_parameters.js +2 -0
  303. package/dist/lib/serialize_query_parameters.js.map +7 -0
  304. package/dist/lib/types.js +2 -6
  305. package/dist/lib/types.js.map +7 -0
  306. package/dist/lib/unique_array.js +2 -0
  307. package/dist/lib/unique_array.js.map +7 -0
  308. package/increment_version.js +3 -0
  309. package/package.json +19 -38
  310. package/src/cli.js +69 -51
  311. package/src/commands/build/definition.js +58 -0
  312. package/src/commands/build/index.js +7 -0
  313. package/src/commands/create/build_package_json.js +20 -0
  314. package/src/commands/create/definition.js +35 -0
  315. package/src/commands/create/index.js +71 -0
  316. package/src/commands/create/template/api/index.js +6 -0
  317. package/src/commands/create/template/email/base.css +9 -0
  318. package/src/commands/create/template/email/base.html +10 -0
  319. package/src/commands/create/template/email/reset_password.js +20 -0
  320. package/src/commands/create/template/i18n/en-US.js +14 -0
  321. package/src/commands/create/template/index.client.js +1 -0
  322. package/src/commands/create/template/index.css +34 -0
  323. package/src/{functions/create/templates → commands/create/template}/index.html +2 -3
  324. package/src/{functions/create/templates → commands/create/template}/index.server.js +6 -6
  325. package/src/commands/create/template/public/apple-touch-icon-152x152.png +0 -0
  326. package/src/commands/create/template/public/favicon.ico +0 -0
  327. package/src/commands/create/template/public/joystick_logo.webp +0 -0
  328. package/src/{functions/create/templates → commands/create/template}/public/manifest.json +4 -4
  329. package/src/commands/create/template/public/splash-screen-1024x1024.png +0 -0
  330. package/{dist/functions/create/templates → src/commands/create/template}/ui/components/button/index.js +14 -6
  331. package/{dist/functions/create/templates → src/commands/create/template}/ui/layouts/app/index.js +2 -2
  332. package/src/commands/create/template/ui/pages/error/index.js +50 -0
  333. package/src/commands/create/template/ui/pages/index/index.js +121 -0
  334. package/src/commands/help/definition.js +12 -0
  335. package/src/commands/help/index.js +48 -0
  336. package/src/commands/index.js +25 -0
  337. package/src/commands/logout/definition.js +10 -0
  338. package/src/commands/logout/index.js +20 -0
  339. package/src/commands/push/cdn_mirrors.js +7 -0
  340. package/src/commands/push/check_if_settings_valid.js +10 -0
  341. package/src/commands/push/create_version.js +20 -0
  342. package/src/commands/push/definition.js +43 -0
  343. package/src/commands/push/get_app_domain.js +11 -0
  344. package/src/commands/push/get_deployment.js +19 -0
  345. package/src/commands/push/get_provision_domain.js +9 -0
  346. package/src/commands/push/get_session_token.js +31 -0
  347. package/src/commands/push/get_settings_file.js +47 -0
  348. package/src/commands/push/handle_initial_deployment.js +24 -0
  349. package/src/commands/push/handle_version_deployment.js +23 -0
  350. package/src/commands/push/index.js +190 -0
  351. package/src/commands/push/prompts/confirm_deployment.js +73 -0
  352. package/src/commands/push/prompts/session_token.js +11 -0
  353. package/src/commands/push/upload_build_to_cdn.js +59 -0
  354. package/src/commands/push/validate_deployment.js +19 -0
  355. package/src/commands/push/validate_push_config.js +18 -0
  356. package/src/commands/push_v2/Dockerfile +47 -0
  357. package/src/commands/push_v2/build_docker_image.js +78 -0
  358. package/src/commands/push_v2/cdn_mirrors.js +7 -0
  359. package/src/commands/push_v2/check_if_settings_valid.js +10 -0
  360. package/src/commands/push_v2/create_version.js +20 -0
  361. package/src/commands/push_v2/definition.js +58 -0
  362. package/src/commands/push_v2/get_app_domain.js +11 -0
  363. package/src/commands/push_v2/get_deployment.js +19 -0
  364. package/src/commands/push_v2/get_deployment_token.js +30 -0
  365. package/src/commands/push_v2/get_push_domain.js +8 -0
  366. package/src/commands/push_v2/get_settings_file.js +47 -0
  367. package/src/commands/push_v2/handle_initial_deployment.js +24 -0
  368. package/src/commands/push_v2/handle_version_deployment.js +23 -0
  369. package/src/commands/push_v2/index.js +90 -0
  370. package/src/commands/push_v2/prompts/confirm_deployment.js +73 -0
  371. package/src/commands/push_v2/prompts/session_token.js +11 -0
  372. package/src/commands/push_v2/upload_build_to_push.js +37 -0
  373. package/src/commands/push_v2/validate_deployment.js +19 -0
  374. package/src/commands/push_v2/validate_push_config.js +18 -0
  375. package/src/commands/start/definition.js +58 -0
  376. package/src/commands/start/index.js +11 -0
  377. package/src/commands/test/definition.js +28 -0
  378. package/src/commands/test/index.js +12 -0
  379. package/src/commands/update/definition.js +28 -0
  380. package/src/commands/update/index.js +29 -0
  381. package/src/commands/use/definition.js +19 -0
  382. package/src/commands/use/index.js +54 -0
  383. package/src/index.js +0 -0
  384. package/src/lib/build/browser_path_exclusions.js +8 -0
  385. package/src/lib/build/browser_paths.js +11 -0
  386. package/src/lib/build/build_files.js +167 -0
  387. package/src/{functions/start/filesToCopy.js → lib/build/copy_paths.js} +7 -5
  388. package/src/lib/build/get_code_frame.js +11 -0
  389. package/src/lib/build/get_file_operation.js +25 -0
  390. package/src/lib/build/get_files_to_build.js +41 -0
  391. package/src/lib/build/get_path_platform.js +32 -0
  392. package/src/lib/build/get_platform_safe_path.js +6 -0
  393. package/src/lib/build/get_tar_ignore_list.js +41 -0
  394. package/src/lib/build/index.js +137 -0
  395. package/src/lib/build/master_ignore_list.js +14 -0
  396. package/src/lib/build/minify_file.js +22 -0
  397. package/src/lib/build/node_paths.js +19 -0
  398. package/src/lib/build/on_warn.js +70 -0
  399. package/src/lib/build/plugins/bootstrap_component.js +191 -0
  400. package/src/lib/build/plugins/generate_file_dependency_map.js +20 -0
  401. package/src/lib/build/plugins/index.js +26 -0
  402. package/src/lib/build/plugins/set_component_id.js +89 -0
  403. package/src/lib/build/plugins/update_file_map.js +98 -0
  404. package/src/lib/build/plugins/warn_node_environment.js +20 -0
  405. package/src/lib/{CLILog.js → cli_log.js} +12 -8
  406. package/src/lib/color_log.js +7 -0
  407. package/src/lib/command_exists.js +16 -0
  408. package/src/lib/constants.js +11 -1
  409. package/src/lib/debounce.js +9 -0
  410. package/src/lib/decrypt_buffer.js +12 -0
  411. package/src/lib/development_server/ava_config.js +14 -0
  412. package/src/lib/development_server/check_if_port_occupied.js +31 -0
  413. package/src/lib/development_server/cleanup.js +15 -0
  414. package/src/lib/development_server/databases/download_database_binary.js +35 -0
  415. package/src/lib/{dev/databases/mongodb/availableQueryParameters.js → development_server/databases/mongodb/available_query_parameters.js} +3 -1
  416. package/src/lib/development_server/databases/mongodb/build_connection_string.js +36 -0
  417. package/src/lib/development_server/databases/mongodb/build_query_parameters.js +17 -0
  418. package/src/lib/development_server/databases/mongodb/check_connection.js +41 -0
  419. package/src/lib/development_server/databases/mongodb/connect.js +27 -0
  420. package/src/lib/development_server/databases/mongodb/index.js +102 -0
  421. package/src/lib/development_server/databases/mongodb/installers/linux.js +107 -0
  422. package/src/lib/development_server/databases/mongodb/installers/macos.js +109 -0
  423. package/src/lib/development_server/databases/mongodb/installers/windows.js +90 -0
  424. package/src/lib/development_server/databases/postgresql/check_connection.js +56 -0
  425. package/src/lib/development_server/databases/postgresql/connect.js +33 -0
  426. package/src/lib/development_server/databases/postgresql/index.js +157 -0
  427. package/src/lib/development_server/databases/postgresql/installers/linux.js +80 -0
  428. package/src/lib/development_server/databases/postgresql/installers/macos.js +91 -0
  429. package/src/lib/development_server/databases/postgresql/installers/windows.js +83 -0
  430. package/src/lib/development_server/databases/provider_map.js +15 -0
  431. package/src/lib/development_server/get_database_process_ids.js +28 -0
  432. package/src/lib/development_server/get_translations.js +85 -0
  433. package/src/lib/development_server/hmr_server.js +94 -0
  434. package/src/lib/development_server/index.js +436 -0
  435. package/src/lib/development_server/kill_process_ids.js +8 -0
  436. package/src/lib/development_server/run_tests.js +84 -0
  437. package/src/lib/development_server/start_app_server.js +55 -0
  438. package/src/lib/development_server/start_databases.js +108 -0
  439. package/src/lib/development_server/start_hmr_server.js +36 -0
  440. package/src/lib/development_server/watch_for_changes/browser_path_exclusions.js +8 -0
  441. package/src/lib/development_server/watch_for_changes/browser_paths.js +11 -0
  442. package/src/lib/development_server/watch_for_changes/get_after_run_tasks.js +36 -0
  443. package/src/lib/development_server/watch_for_changes/get_file_codependencies.js +53 -0
  444. package/src/lib/development_server/watch_for_changes/get_platform_safe_path.js +6 -0
  445. package/src/lib/development_server/watch_for_changes/index.js +222 -0
  446. package/src/lib/development_server/watch_for_changes/node_paths.js +17 -0
  447. package/src/lib/development_server/watch_for_changes/read_file_dependency_map.js +18 -0
  448. package/src/lib/development_server/watch_for_changes/watch_paths.js +22 -0
  449. package/src/lib/dynamic_import.js +6 -0
  450. package/src/lib/encrypt_buffer.js +10 -0
  451. package/src/lib/generate_id.js +15 -0
  452. package/src/lib/get_files_in_path.js +25 -0
  453. package/src/lib/get_platform_safe_path.js +8 -0
  454. package/src/lib/get_process_id_from_port.js +26 -0
  455. package/src/lib/is_valid_json_string.js +10 -0
  456. package/src/lib/kill_port_process.js +12 -0
  457. package/src/lib/kill_process_id.js +19 -0
  458. package/src/lib/load_settings.js +43 -0
  459. package/src/lib/loader.js +4 -77
  460. package/src/lib/log_bars.js +7 -0
  461. package/src/lib/node_path_polyfills.js +23 -0
  462. package/src/lib/parse_args.js +16 -0
  463. package/src/lib/parse_options.js +16 -0
  464. package/src/lib/path_exists.js +11 -0
  465. package/src/lib/{rainbowRoad.js → rainbow_road.js} +4 -2
  466. package/src/lib/replace_in_files.js +40 -0
  467. package/src/lib/{dev/requiredFiles.js → required_files.js} +3 -1
  468. package/src/lib/serialize_query_parameters.js +7 -0
  469. package/src/lib/types.js +59 -2
  470. package/src/lib/unique_array.js +24 -0
  471. package/HMRNOTES.txt +0 -23
  472. package/_package.json +0 -56
  473. package/canary.js +0 -12
  474. package/dist/functions/build/getTarIgnoreList.js +0 -25
  475. package/dist/functions/build/index.js +0 -54
  476. package/dist/functions/create/buildPackageJSON.js +0 -20
  477. package/dist/functions/create/index.js +0 -193
  478. package/dist/functions/create/templates/api/index.js +0 -4
  479. package/dist/functions/create/templates/i18n/en-US.js +0 -4
  480. package/dist/functions/create/templates/index.client.js +0 -7
  481. package/dist/functions/create/templates/index.css +0 -20
  482. package/dist/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
  483. package/dist/functions/create/templates/public/favicon.ico +0 -0
  484. package/dist/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
  485. package/dist/functions/create/templates/ui/pages/error/index.js +0 -31
  486. package/dist/functions/create/templates/ui/pages/index/index.js +0 -94
  487. package/dist/functions/index.js +0 -269
  488. package/dist/functions/logout/index.js +0 -20
  489. package/dist/functions/push/checkIfProvisionAvailable.js +0 -19
  490. package/dist/functions/push/deploy/index.js +0 -173
  491. package/dist/functions/push/deploy/initial.js +0 -100
  492. package/dist/functions/push/deploy/version.js +0 -100
  493. package/dist/functions/push/domains.js +0 -23
  494. package/dist/functions/push/getAvailableCDN.js +0 -23
  495. package/dist/functions/push/getDeployment.js +0 -41
  496. package/dist/functions/push/getDeploymentSummary.js +0 -38
  497. package/dist/functions/push/getInstanceSizeRegions.js +0 -37
  498. package/dist/functions/push/getInstanceSizesForRegion.js +0 -34
  499. package/dist/functions/push/getProviderInstanceSizes.js +0 -34
  500. package/dist/functions/push/getProviderRegions.js +0 -36
  501. package/dist/functions/push/getProvidersWithConnectionStatus.js +0 -20
  502. package/dist/functions/push/getSessionToken.js +0 -23
  503. package/dist/functions/push/getUserFromSessionToken.js +0 -37
  504. package/dist/functions/push/index.js +0 -210
  505. package/dist/functions/push/loginToCheatCode.js +0 -33
  506. package/dist/functions/push/pingProvisionAPI.js +0 -31
  507. package/dist/functions/push/prompts.js +0 -332
  508. package/dist/functions/push/providerMap.js +0 -11
  509. package/dist/functions/push/providers.js +0 -9
  510. package/dist/functions/reset/index.js +0 -0
  511. package/dist/functions/reset/reset.js +0 -127
  512. package/dist/functions/start/bootstrapLayoutComponent.js +0 -54
  513. package/dist/functions/start/bootstrapPageComponent.js +0 -51
  514. package/dist/functions/start/buildFile.js +0 -85
  515. package/dist/functions/start/buildFiles.js +0 -76
  516. package/dist/functions/start/buildPlugins.js +0 -183
  517. package/dist/functions/start/checkIfPortAvailable.js +0 -18
  518. package/dist/functions/start/cleanup/index.js +0 -18
  519. package/dist/functions/start/databases/mongodb/availableQueryParameters.js +0 -42
  520. package/dist/functions/start/databases/mongodb/buildConnectionString.js +0 -22
  521. package/dist/functions/start/databases/mongodb/buildQueryParameters.js +0 -14
  522. package/dist/functions/start/databases/mongodb/checkConnection.js +0 -35
  523. package/dist/functions/start/databases/mongodb/connect.js +0 -25
  524. package/dist/functions/start/databases/mongodb/index.js +0 -93
  525. package/dist/functions/start/databases/postgresql/checkConnection.js +0 -41
  526. package/dist/functions/start/databases/postgresql/connect.js +0 -27
  527. package/dist/functions/start/databases/postgresql/index.js +0 -106
  528. package/dist/functions/start/databases/redis.js +0 -0
  529. package/dist/functions/start/databases/startProvider.js +0 -16
  530. package/dist/functions/start/fileDependencyMapper.js +0 -22
  531. package/dist/functions/start/filesToCopy.js +0 -18
  532. package/dist/functions/start/generateId.js +0 -74
  533. package/dist/functions/start/getCodependenciesForFile.js +0 -64
  534. package/dist/functions/start/getFilesToBuild.js +0 -39
  535. package/dist/functions/start/getProcessIdFromPort.js +0 -60
  536. package/dist/functions/start/hmrServer.js +0 -66
  537. package/dist/functions/start/index.js +0 -11
  538. package/dist/functions/start/isWindows.js +0 -5
  539. package/dist/functions/start/minifyFile.js +0 -12
  540. package/dist/functions/start/onWarn.js +0 -63
  541. package/dist/functions/start/readFileDependencyMap.js +0 -16
  542. package/dist/functions/start/removeDeletedDependenciesFromMap.js +0 -18
  543. package/dist/functions/start/setComponentId.js +0 -46
  544. package/dist/functions/start/updateFileMap.js +0 -67
  545. package/dist/functions/test/index.js +0 -12
  546. package/dist/functions/update/index.js +0 -21
  547. package/dist/functions/use/index.js +0 -61
  548. package/dist/lib/CLILog.js +0 -49
  549. package/dist/lib/build/browserPathExclusions.js +0 -8
  550. package/dist/lib/build/browserPaths.js +0 -11
  551. package/dist/lib/build/buildFile.js +0 -84
  552. package/dist/lib/build/buildFiles.js +0 -242
  553. package/dist/lib/build/buildPlugins.js +0 -186
  554. package/dist/lib/build/getCodeFrame.js +0 -9
  555. package/dist/lib/build/minifyFile.js +0 -12
  556. package/dist/lib/build/nodePathExclusions.js +0 -7
  557. package/dist/lib/build/nodePaths.js +0 -12
  558. package/dist/lib/build/onWarn.js +0 -63
  559. package/dist/lib/build/removeDeletedDependenciesFromMap.js +0 -18
  560. package/dist/lib/build/setComponentId.js +0 -46
  561. package/dist/lib/build/updateFileMap.js +0 -67
  562. package/dist/lib/buildResolvePlugin.js +0 -21
  563. package/dist/lib/checkIfValidJSON.js +0 -11
  564. package/dist/lib/colorLog.js +0 -7
  565. package/dist/lib/dev/cleanup.js +0 -18
  566. package/dist/lib/dev/databases/mongodb/availableQueryParameters.js +0 -42
  567. package/dist/lib/dev/databases/mongodb/buildConnectionString.js +0 -22
  568. package/dist/lib/dev/databases/mongodb/buildQueryParameters.js +0 -14
  569. package/dist/lib/dev/databases/mongodb/checkConnection.js +0 -38
  570. package/dist/lib/dev/databases/mongodb/connect.js +0 -25
  571. package/dist/lib/dev/databases/mongodb/index.js +0 -93
  572. package/dist/lib/dev/databases/postgresql/checkConnection.js +0 -41
  573. package/dist/lib/dev/databases/postgresql/connect.js +0 -27
  574. package/dist/lib/dev/databases/postgresql/index.js +0 -106
  575. package/dist/lib/dev/databases/providerMap.js +0 -15
  576. package/dist/lib/dev/getCodependenciesForFile.js +0 -64
  577. package/dist/lib/dev/getFilesToBuild.js +0 -38
  578. package/dist/lib/dev/hmrServer.js +0 -66
  579. package/dist/lib/dev/index.js +0 -561
  580. package/dist/lib/dev/isWindows.js +0 -5
  581. package/dist/lib/dev/loadSettings.js +0 -79
  582. package/dist/lib/dev/readFileDependencyMap.js +0 -16
  583. package/dist/lib/dev/requiredFiles.js +0 -18
  584. package/dist/lib/dev/runBuild.js +0 -30
  585. package/dist/lib/dev/runTests.js +0 -96
  586. package/dist/lib/dev/startDatabases.js +0 -109
  587. package/dist/lib/dev/startHMR.js +0 -55
  588. package/dist/lib/dev/tests.config.js +0 -6
  589. package/dist/lib/dev/updateFileMap.js +0 -67
  590. package/dist/lib/dev/validateProject.js +0 -0
  591. package/dist/lib/dev/watchlist.js +0 -15
  592. package/dist/lib/filesToCopy.js +0 -18
  593. package/dist/lib/generateId.js +0 -74
  594. package/dist/lib/getArgs.js +0 -14
  595. package/dist/lib/getOptions.js +0 -15
  596. package/dist/lib/getPlatformSafePath.js +0 -7
  597. package/dist/lib/getProcessIdFromPort.js +0 -60
  598. package/dist/lib/getProvider.js +0 -8
  599. package/dist/lib/help.js +0 -56
  600. package/dist/lib/isObject.js +0 -6
  601. package/dist/lib/isValidJSONString.js +0 -11
  602. package/dist/lib/isWindows.js +0 -5
  603. package/dist/lib/killProcesses.js +0 -0
  604. package/dist/lib/loadSettings.js +0 -33
  605. package/dist/lib/masterIgnoreList.js +0 -16
  606. package/dist/lib/nodeEnvironment.js +0 -9
  607. package/dist/lib/nodeEnvironments.js +0 -8
  608. package/dist/lib/parseCookiesFromLogin.js +0 -18
  609. package/dist/lib/rainbowRoad.js +0 -7
  610. package/dist/lib/readDirectorySync.js +0 -14
  611. package/dist/lib/regexes.js +0 -14
  612. package/dist/lib/replaceBackslashesWithForwardSlashes.js +0 -8
  613. package/dist/lib/replaceFileProtocol.js +0 -8
  614. package/dist/lib/serializeQueryParameters.js +0 -8
  615. package/dist/lib/settings.js +0 -4
  616. package/dist/lib/validateDatabasesFromSettings.js +0 -34
  617. package/dist/lib/wait.js +0 -8
  618. package/release.js +0 -40
  619. package/src/functions/build/getTarIgnoreList.js +0 -30
  620. package/src/functions/build/index.js +0 -63
  621. package/src/functions/create/buildPackageJSON.js +0 -18
  622. package/src/functions/create/index.js +0 -209
  623. package/src/functions/create/templates/api/index.js +0 -4
  624. package/src/functions/create/templates/i18n/en-US.js +0 -4
  625. package/src/functions/create/templates/index.client.js +0 -7
  626. package/src/functions/create/templates/index.css +0 -20
  627. package/src/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
  628. package/src/functions/create/templates/public/favicon.ico +0 -0
  629. package/src/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
  630. package/src/functions/create/templates/ui/pages/error/index.js +0 -31
  631. package/src/functions/create/templates/ui/pages/index/index.js +0 -94
  632. package/src/functions/index.js +0 -269
  633. package/src/functions/logout/index.js +0 -20
  634. package/src/functions/push/checkIfProvisionAvailable.js +0 -20
  635. package/src/functions/push/deploy/index.js +0 -199
  636. package/src/functions/push/deploy/initial.js +0 -108
  637. package/src/functions/push/deploy/version.js +0 -108
  638. package/src/functions/push/domains.js +0 -23
  639. package/src/functions/push/getAvailableCDN.js +0 -27
  640. package/src/functions/push/getDeployment.js +0 -43
  641. package/src/functions/push/getDeploymentSummary.js +0 -39
  642. package/src/functions/push/getInstanceSizeRegions.js +0 -40
  643. package/src/functions/push/getInstanceSizesForRegion.js +0 -35
  644. package/src/functions/push/getProviderInstanceSizes.js +0 -35
  645. package/src/functions/push/getProviderRegions.js +0 -39
  646. package/src/functions/push/getProvidersWithConnectionStatus.js +0 -25
  647. package/src/functions/push/getSessionToken.js +0 -26
  648. package/src/functions/push/getUserFromSessionToken.js +0 -39
  649. package/src/functions/push/index.js +0 -245
  650. package/src/functions/push/loginToCheatCode.js +0 -34
  651. package/src/functions/push/pingProvisionAPI.js +0 -33
  652. package/src/functions/push/prompts.js +0 -276
  653. package/src/functions/push/providerMap.js +0 -8
  654. package/src/functions/push/providers.js +0 -6
  655. package/src/functions/reset/index.js +0 -0
  656. package/src/functions/reset/reset.js +0 -163
  657. package/src/functions/start/bootstrapLayoutComponent.js +0 -57
  658. package/src/functions/start/bootstrapPageComponent.js +0 -54
  659. package/src/functions/start/buildFile.js +0 -97
  660. package/src/functions/start/buildFiles.js +0 -101
  661. package/src/functions/start/buildPlugins.js +0 -215
  662. package/src/functions/start/checkIfPortAvailable.js +0 -21
  663. package/src/functions/start/cleanup/index.js +0 -23
  664. package/src/functions/start/databases/mongodb/availableQueryParameters.js +0 -39
  665. package/src/functions/start/databases/mongodb/buildConnectionString.js +0 -28
  666. package/src/functions/start/databases/mongodb/buildQueryParameters.js +0 -15
  667. package/src/functions/start/databases/mongodb/checkConnection.js +0 -36
  668. package/src/functions/start/databases/mongodb/connect.js +0 -25
  669. package/src/functions/start/databases/mongodb/index.js +0 -108
  670. package/src/functions/start/databases/postgresql/checkConnection.js +0 -43
  671. package/src/functions/start/databases/postgresql/connect.js +0 -27
  672. package/src/functions/start/databases/postgresql/index.js +0 -127
  673. package/src/functions/start/databases/redis.js +0 -0
  674. package/src/functions/start/databases/startProvider.js +0 -15
  675. package/src/functions/start/fileDependencyMapper.js +0 -24
  676. package/src/functions/start/generateId.js +0 -73
  677. package/src/functions/start/getCodependenciesForFile.js +0 -84
  678. package/src/functions/start/getFilesToBuild.js +0 -49
  679. package/src/functions/start/getProcessIdFromPort.js +0 -92
  680. package/src/functions/start/hmrServer.js +0 -78
  681. package/src/functions/start/index.js +0 -9
  682. package/src/functions/start/isWindows.js +0 -3
  683. package/src/functions/start/minifyFile.js +0 -10
  684. package/src/functions/start/onWarn.js +0 -68
  685. package/src/functions/start/readFileDependencyMap.js +0 -19
  686. package/src/functions/start/removeDeletedDependenciesFromMap.js +0 -19
  687. package/src/functions/start/setComponentId.js +0 -58
  688. package/src/functions/start/updateFileMap.js +0 -100
  689. package/src/functions/test/index.js +0 -10
  690. package/src/functions/update/index.js +0 -20
  691. package/src/functions/use/index.js +0 -62
  692. package/src/lib/build/browserPathExclusions.js +0 -6
  693. package/src/lib/build/browserPaths.js +0 -9
  694. package/src/lib/build/buildFile.js +0 -91
  695. package/src/lib/build/buildFiles.js +0 -274
  696. package/src/lib/build/buildPlugins.js +0 -222
  697. package/src/lib/build/getCodeFrame.js +0 -7
  698. package/src/lib/build/minifyFile.js +0 -10
  699. package/src/lib/build/nodePathExclusions.js +0 -5
  700. package/src/lib/build/nodePaths.js +0 -10
  701. package/src/lib/build/onWarn.js +0 -68
  702. package/src/lib/build/removeDeletedDependenciesFromMap.js +0 -19
  703. package/src/lib/build/setComponentId.js +0 -58
  704. package/src/lib/build/updateFileMap.js +0 -100
  705. package/src/lib/buildResolvePlugin.js +0 -32
  706. package/src/lib/checkIfValidJSON.js +0 -8
  707. package/src/lib/colorLog.js +0 -5
  708. package/src/lib/dev/cleanup.js +0 -26
  709. package/src/lib/dev/databases/mongodb/buildConnectionString.js +0 -28
  710. package/src/lib/dev/databases/mongodb/buildQueryParameters.js +0 -15
  711. package/src/lib/dev/databases/mongodb/checkConnection.js +0 -40
  712. package/src/lib/dev/databases/mongodb/connect.js +0 -25
  713. package/src/lib/dev/databases/mongodb/index.js +0 -108
  714. package/src/lib/dev/databases/postgresql/checkConnection.js +0 -43
  715. package/src/lib/dev/databases/postgresql/connect.js +0 -27
  716. package/src/lib/dev/databases/postgresql/index.js +0 -127
  717. package/src/lib/dev/databases/providerMap.js +0 -13
  718. package/src/lib/dev/getCodependenciesForFile.js +0 -84
  719. package/src/lib/dev/getFilesToBuild.js +0 -47
  720. package/src/lib/dev/hmrServer.js +0 -78
  721. package/src/lib/dev/index.js +0 -686
  722. package/src/lib/dev/isWindows.js +0 -3
  723. package/src/lib/dev/loadSettings.js +0 -90
  724. package/src/lib/dev/readFileDependencyMap.js +0 -19
  725. package/src/lib/dev/runBuild.js +0 -33
  726. package/src/lib/dev/runTests.js +0 -122
  727. package/src/lib/dev/startApp.js +0 -81
  728. package/src/lib/dev/startDatabases.js +0 -131
  729. package/src/lib/dev/startHMR.js +0 -62
  730. package/src/lib/dev/tests.config.js +0 -3
  731. package/src/lib/dev/updateFileMap.js +0 -100
  732. package/src/lib/dev/validateProject.js +0 -0
  733. package/src/lib/dev/watchlist.js +0 -13
  734. package/src/lib/filesToCopy.js +0 -15
  735. package/src/lib/generateId.js +0 -73
  736. package/src/lib/getArgs.js +0 -14
  737. package/src/lib/getOptions.js +0 -12
  738. package/src/lib/getProcessIdFromPort.js +0 -92
  739. package/src/lib/getProvider.js +0 -5
  740. package/src/lib/help.js +0 -56
  741. package/src/lib/isObject.js +0 -3
  742. package/src/lib/isValidJSONString.js +0 -8
  743. package/src/lib/killProcesses.js +0 -5
  744. package/src/lib/loadSettings.js +0 -40
  745. package/src/lib/masterIgnoreList.js +0 -13
  746. package/src/lib/nodeEnvironment.js +0 -6
  747. package/src/lib/nodeEnvironments.js +0 -8
  748. package/src/lib/parseCookiesFromLogin.js +0 -21
  749. package/src/lib/readDirectorySync.js +0 -13
  750. package/src/lib/regexes.js +0 -7
  751. package/src/lib/replaceBackslashesWithForwardSlashes.js +0 -8
  752. package/src/lib/replaceFileProtocol.js +0 -8
  753. package/src/lib/serializeQueryParameters.js +0 -5
  754. package/src/lib/settings.js +0 -1
  755. package/src/lib/validateDatabasesFromSettings.js +0 -37
  756. package/src/lib/wait.js +0 -5
  757. package/storage/.verdaccio-db.json +0 -1
  758. /package/{src/lib → .build}/getPlatformSafePath.js +0 -0
  759. /package/{src/lib → .build}/isWindows.js +0 -0
  760. /package/dist/{functions/create/templates → commands/create/template}/public/service-worker.js +0 -0
  761. /package/dist/{functions/create/templates → commands/create/template}/settings.development.json +0 -0
  762. /package/src/{functions/create/templates → commands/create/template}/public/service-worker.js +0 -0
  763. /package/src/{functions/create/templates → commands/create/template}/settings.development.json +0 -0
@@ -0,0 +1,2 @@
1
+ import c from"net";const t=(e={})=>{e.end(),e.destroy(),e.unref()},r=(e=2600)=>new Promise(o=>{const n=new c.Socket;n.once("connect",()=>{t(n),o(!0)}),n.once("error",()=>{t(n),o(!1)}),n.connect({port:e,host:"127.0.0.1"},function(){})});var f=r;export{f as default};
2
+ //# sourceMappingURL=check_if_port_occupied.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/development_server/check_if_port_occupied.js"],
4
+ "sourcesContent": ["import net from 'net';\n\nconst reset_client = (client = {}) => {\n client.end();\n client.destroy();\n client.unref(); \n};\n\nconst check_if_port_occupied = (port = 2600) => {\n return new Promise((resolve) => {\n const client = new net.Socket();\n\n // NOTE: This is inverted. If we can connect, the port is occupied. If we can't, the port is free.\n client.once('connect', () => {\n reset_client(client);\n resolve(true);\n });\n\n client.once('error', () => {\n reset_client(client);\n resolve(false);\n });\n\n client.connect({\n port,\n host: '127.0.0.1',\n }, function() {});\n });\n};\n\nexport default check_if_port_occupied;\n"],
5
+ "mappings": "AAAA,OAAOA,MAAS,MAEhB,MAAMC,EAAe,CAACC,EAAS,CAAC,IAAM,CACpCA,EAAO,IAAI,EACXA,EAAO,QAAQ,EACfA,EAAO,MAAM,CACf,EAEMC,EAAyB,CAACC,EAAO,OAC9B,IAAI,QAASC,GAAY,CAC9B,MAAMH,EAAS,IAAIF,EAAI,OAGvBE,EAAO,KAAK,UAAW,IAAM,CAC3BD,EAAaC,CAAM,EACnBG,EAAQ,EAAI,CACd,CAAC,EAEDH,EAAO,KAAK,QAAS,IAAM,CACzBD,EAAaC,CAAM,EACnBG,EAAQ,EAAK,CACf,CAAC,EAEDH,EAAO,QAAQ,CACb,KAAAE,EACA,KAAM,WACR,EAAG,UAAW,CAAC,CAAC,CAClB,CAAC,EAGH,IAAOE,EAAQH",
6
+ "names": ["net", "reset_client", "client", "check_if_port_occupied", "port", "resolve", "check_if_port_occupied_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import o from"./kill_process_ids.js";process.title="joystick_cleanup",process.on("message",async s=>{const e=JSON.parse(s)?.process_ids;o(e),process.exit()});
2
+ //# sourceMappingURL=cleanup.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/development_server/cleanup.js"],
4
+ "sourcesContent": ["// NOTE: This module is intended to be run as a child_process as part of\n// a SIGINT or SIGTERM event.\n\nimport kill_process_ids from \"./kill_process_ids.js\";\n\nprocess.title = \"joystick_cleanup\";\n\nprocess.on('message', async (message) => {\n const parsed_message = JSON.parse(message);\n const process_ids = parsed_message?.process_ids;\n\n kill_process_ids(process_ids);\n\n process.exit();\n});"],
5
+ "mappings": "AAGA,OAAOA,MAAsB,wBAE7B,QAAQ,MAAQ,mBAEhB,QAAQ,GAAG,UAAW,MAAOC,GAAY,CAEvC,MAAMC,EADiB,KAAK,MAAMD,CAAO,GACL,YAEpCD,EAAiBE,CAAW,EAE5B,QAAQ,KAAK,CACf,CAAC",
6
+ "names": ["kill_process_ids", "message", "process_ids"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import n from"os";import m from"./mongodb/installers/macos.js";import i from"./mongodb/installers/windows.js";import l from"./mongodb/installers/linux.js";import p from"./postgresql/installers/macos.js";import e from"./postgresql/installers/windows.js";import a from"./postgresql/installers/linux.js";const t={darwin:{mongodb:m,postgresql:p},win32:{mongodb:i,postgresql:e},linux:{mongodb:l,postgresql:a}},d=async(r="")=>{const o=n.platform(),s=t[o]&&t[o][r];typeof s=="function"?await s():console.warn(`${r} not supported on ${o}`)};var u=d;export{u as default};
2
+ //# sourceMappingURL=download_database_binary.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/lib/development_server/databases/download_database_binary.js"],
4
+ "sourcesContent": ["import os from 'os';\nimport mongodb_macos from './mongodb/installers/macos.js';\nimport mongodb_windows from './mongodb/installers/windows.js';\nimport mongodb_linux from './mongodb/installers/linux.js';\nimport postgresql_macos from './postgresql/installers/macos.js';\nimport postgresql_windows from './postgresql/installers/windows.js';\nimport postgresql_linux from './postgresql/installers/linux.js';\n\nconst installers = {\n darwin: {\n mongodb: mongodb_macos,\n postgresql: postgresql_macos,\n },\n win32: {\n mongodb: mongodb_windows,\n postgresql: postgresql_windows,\n },\n linux: {\n mongodb: mongodb_linux,\n postgresql: postgresql_linux,\n },\n};\n\nconst download_database_binary = async (database_name = '') => {\n const platform = os.platform();\n const installer = installers[platform] && installers[platform][database_name];\n\n if (typeof installer === 'function') {\n await installer();\n } else {\n console.warn(`${database_name} not supported on ${platform}`);\n }\n};\n\nexport default download_database_binary;"],
5
+ "mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAmB,gCAC1B,OAAOC,MAAqB,kCAC5B,OAAOC,MAAmB,gCAC1B,OAAOC,MAAsB,mCAC7B,OAAOC,MAAwB,qCAC/B,OAAOC,MAAsB,mCAE7B,MAAMC,EAAa,CACjB,OAAQ,CACN,QAASN,EACT,WAAYG,CACd,EACA,MAAO,CACL,QAASF,EACT,WAAYG,CACd,EACA,MAAO,CACL,QAASF,EACT,WAAYG,CACd,CACF,EAEME,EAA2B,MAAOC,EAAgB,KAAO,CAC7D,MAAMC,EAAWV,EAAG,SAAS,EACvBW,EAAYJ,EAAWG,CAAQ,GAAKH,EAAWG,CAAQ,EAAED,CAAa,EAExE,OAAOE,GAAc,WACvB,MAAMA,EAAU,EAEhB,QAAQ,KAAK,GAAGF,CAAa,qBAAqBC,CAAQ,EAAE,CAEhE,EAEA,IAAOE,EAAQJ",
6
+ "names": ["os", "mongodb_macos", "mongodb_windows", "mongodb_linux", "postgresql_macos", "postgresql_windows", "postgresql_linux", "installers", "download_database_binary", "database_name", "platform", "installer", "download_database_binary_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ const e=["replicaSet","tls","ssl","tlsCertificateKeyFile","tlsCertificateKeyFilePassword","tlsCAFile","tlsAllowInvalidCertificates","tlsAllowInvalidHostnames","tlsInsecure","connectTimeoutMS","socketTimeoutMS","compressors","zlibCompressionLevel","maxPoolSize","minPoolSize","maxIdleTimeMS","waitQueueMultiple","waitQueueTimeoutMS","w","wtimeoutMS","journal","readConcernLevel","readPreference","maxStalenessSeconds","readPreferenceTags","authSource","authMechanism","authMechanismProperties","gssapiServiceName","localThresholdMS","serverSelectionTimeoutMS","serverSelectionTryOnce","heartbeatFrequencyMS","appName","retryReads","retryWrites","uuidRepresentation"];var t=e;export{t as default};
2
+ //# sourceMappingURL=available_query_parameters.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/lib/development_server/databases/mongodb/available_query_parameters.js"],
4
+ "sourcesContent": ["const available_query_parameters = [\n \"replicaSet\",\n \"tls\",\n \"ssl\",\n \"tlsCertificateKeyFile\",\n \"tlsCertificateKeyFilePassword\",\n \"tlsCAFile\",\n \"tlsAllowInvalidCertificates\",\n \"tlsAllowInvalidHostnames\",\n \"tlsInsecure\",\n \"connectTimeoutMS\",\n \"socketTimeoutMS\",\n \"compressors\",\n \"zlibCompressionLevel\",\n \"maxPoolSize\",\n \"minPoolSize\",\n \"maxIdleTimeMS\",\n \"waitQueueMultiple\",\n \"waitQueueTimeoutMS\",\n \"w\",\n \"wtimeoutMS\",\n \"journal\",\n \"readConcernLevel\",\n \"readPreference\",\n \"maxStalenessSeconds\",\n \"readPreferenceTags\",\n \"authSource\",\n \"authMechanism\",\n \"authMechanismProperties\",\n \"gssapiServiceName\",\n \"localThresholdMS\",\n \"serverSelectionTimeoutMS\",\n \"serverSelectionTryOnce\",\n \"heartbeatFrequencyMS\",\n \"appName\",\n \"retryReads\",\n \"retryWrites\",\n \"uuidRepresentation\"\n];\n\nexport default available_query_parameters;\n"],
5
+ "mappings": "AAAA,MAAMA,EAA6B,CACjC,aACA,MACA,MACA,wBACA,gCACA,YACA,8BACA,2BACA,cACA,mBACA,kBACA,cACA,uBACA,cACA,cACA,gBACA,oBACA,qBACA,IACA,aACA,UACA,mBACA,iBACA,sBACA,qBACA,aACA,gBACA,0BACA,oBACA,mBACA,2BACA,yBACA,uBACA,UACA,aACA,cACA,oBACF,EAEA,IAAOC,EAAQD",
6
+ "names": ["available_query_parameters", "available_query_parameters_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import e from"./build_query_parameters.js";import p from"../../../serialize_query_parameters.js";import $ from"../../../types.js";const d=(r={})=>{let s="mongodb://";r?.srv&&(s="mongodb+srv://"),r&&(r.username||r.password)&&(s=`${s}${r.username||r.password?`${r.username||""}${r.username&&r.password?":":""}${r.password||""}@`:""}`),r&&r.hosts&&$.is_array(r.hosts)&&(s=`${s}${r.hosts.map(a=>r?.srv?a.hostname:`${a.hostname}:${a.port}`).join(",")}`),r&&r.database&&(s=`${s}/${r.database}`);const m=e(r);return Object.keys(m)?.length>0&&(s=`${s}?${p(m)}`),s};var b=d;export{b as default};
2
+ //# sourceMappingURL=build_connection_string.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/lib/development_server/databases/mongodb/build_connection_string.js"],
4
+ "sourcesContent": ["import build_query_parameters from \"./build_query_parameters.js\";\nimport serialize_query_parameters from \"../../../serialize_query_parameters.js\";\nimport types from \"../../../types.js\";\n\nconst build_connection_string = (connection = {}) => {\n let connection_string = \"mongodb://\";\n\n // NOTE: Swap protocols if we're using a DNS Seedlist URL (mongodb+srv://).\n if (connection?.srv) {\n connection_string = \"mongodb+srv://\";\n }\n\n if (connection && (connection.username || connection.password)) {\n connection_string = `${connection_string}${connection.username || connection.password ? `${connection.username || \"\"}${!!connection.username && !!connection.password ? ':' : ''}${connection.password || \"\"}@` : ''}`;\n }\n\n if (connection && connection.hosts && types.is_array(connection.hosts)) {\n connection_string = `${connection_string}${connection.hosts\n .map((host) => connection?.srv ? host.hostname : `${host.hostname}:${host.port}`)\n .join(\",\")}`;\n }\n\n if (connection && connection.database) {\n connection_string = `${connection_string}/${connection.database}`;\n }\n\n const query_parameters = build_query_parameters(connection);\n\n if (Object.keys(query_parameters)?.length > 0 ) {\n connection_string = `${connection_string}?${serialize_query_parameters(query_parameters)}`;\n }\n\n return connection_string;\n};\n\nexport default build_connection_string;\n"],
5
+ "mappings": "AAAA,OAAOA,MAA4B,8BACnC,OAAOC,MAAgC,yCACvC,OAAOC,MAAW,oBAElB,MAAMC,EAA0B,CAACC,EAAa,CAAC,IAAM,CACnD,IAAIC,EAAoB,aAGpBD,GAAY,MACdC,EAAoB,kBAGlBD,IAAeA,EAAW,UAAYA,EAAW,YACnDC,EAAoB,GAAGA,CAAiB,GAAGD,EAAW,UAAYA,EAAW,SAAW,GAAGA,EAAW,UAAY,EAAE,GAAKA,EAAW,UAAcA,EAAW,SAAW,IAAM,EAAE,GAAGA,EAAW,UAAY,EAAE,IAAM,EAAE,IAGlNA,GAAcA,EAAW,OAASF,EAAM,SAASE,EAAW,KAAK,IACnEC,EAAoB,GAAGA,CAAiB,GAAGD,EAAW,MACnD,IAAKE,GAASF,GAAY,IAAME,EAAK,SAAW,GAAGA,EAAK,QAAQ,IAAIA,EAAK,IAAI,EAAE,EAC/E,KAAK,GAAG,CAAC,IAGVF,GAAcA,EAAW,WAC3BC,EAAoB,GAAGA,CAAiB,IAAID,EAAW,QAAQ,IAGjE,MAAMG,EAAmBP,EAAuBI,CAAU,EAE1D,OAAI,OAAO,KAAKG,CAAgB,GAAG,OAAS,IAC1CF,EAAoB,GAAGA,CAAiB,IAAIJ,EAA2BM,CAAgB,CAAC,IAGnFF,CACT,EAEA,IAAOG,EAAQL",
6
+ "names": ["build_query_parameters", "serialize_query_parameters", "types", "build_connection_string", "connection", "connection_string", "host", "query_parameters", "build_connection_string_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import l from"./available_query_parameters.js";const u=(r={})=>{const t={};for(let e=0;e<l.length;e+=1){const a=l[e];r&&r[a]&&(t[a]=r[a])}return t};var m=u;export{m as default};
2
+ //# sourceMappingURL=build_query_parameters.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/lib/development_server/databases/mongodb/build_query_parameters.js"],
4
+ "sourcesContent": ["import available_query_parameters from \"./available_query_parameters.js\";\n\nconst build_query_parameters = (connection = {}) => {\n const query_parameters = {};\n\n for (let i = 0; i < available_query_parameters.length; i += 1) {\n const available_query_parameter = available_query_parameters[i];\n\n if (connection && connection[available_query_parameter]) {\n query_parameters[available_query_parameter] = connection[available_query_parameter];\n }\n }\n\n return query_parameters;\n};\n\nexport default build_query_parameters;\n"],
5
+ "mappings": "AAAA,OAAOA,MAAgC,kCAEvC,MAAMC,EAAyB,CAACC,EAAa,CAAC,IAAM,CAClD,MAAMC,EAAmB,CAAC,EAE1B,QAASC,EAAI,EAAGA,EAAIJ,EAA2B,OAAQI,GAAK,EAAG,CAC7D,MAAMC,EAA4BL,EAA2BI,CAAC,EAE1DF,GAAcA,EAAWG,CAAyB,IACpDF,EAAiBE,CAAyB,EAAIH,EAAWG,CAAyB,EAEtF,CAEA,OAAOF,CACT,EAEA,IAAOG,EAAQL",
6
+ "names": ["available_query_parameters", "build_query_parameters", "connection", "query_parameters", "i", "available_query_parameter", "build_query_parameters_default"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import{MongoClient as t}from"mongodb";import i from"fs";import r from"./build_connection_string.js";import s from"../../../color_log.js";const{readFile:a}=i.promises,l=async(e={},n={})=>{const c=r(e);try{const o={connectTimeoutMS:3e3,socketTimeoutMS:3e3,useNewUrlParser:!0,useUnifiedTopology:!0,ssl:!1,...n||{}};return n?.ca&&(o.ca=await a(n?.ca)),(await t.connect(c,o)).close(),!0}catch(o){console.warn(o),s(`
2
+ \u2716 Failed to connect to MongoDB. Please double-check connection settings and try again.`,"yellow"),process.exit(1)}};var d=l;export{d as default};
3
+ //# sourceMappingURL=check_connection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/lib/development_server/databases/mongodb/check_connection.js"],
4
+ "sourcesContent": ["import { MongoClient } from \"mongodb\";\nimport fs from 'fs';\nimport build_connection_string from \"./build_connection_string.js\";\nimport color_log from '../../../color_log.js';\n\nconst { readFile } = fs.promises;\n\nconst check_connection = async (connection = {}, mongodb_options = {}) => {\n const connection_string = build_connection_string(connection);\n \n try {\n const connectionOptions = {\n connectTimeoutMS: 3000,\n socketTimeoutMS: 3000,\n useNewUrlParser: true,\n useUnifiedTopology: true,\n ssl: false,\n ...(mongodb_options || {}),\n };\n\n if (mongodb_options?.ca) {\n connectionOptions.ca = await readFile(mongodb_options?.ca);\n }\n\n const connection = await MongoClient.connect(connection_string, connectionOptions);\n connection.close();\n\n return true;\n } catch (exception) {\n console.warn(exception);\n\n color_log(\n \t`\\n\u2716 Failed to connect to MongoDB. Please double-check connection settings and try again.`,\n \t'yellow'\n );\n\n process.exit(1);\n }\n};\n\nexport default check_connection;\n"],
5
+ "mappings": "AAAA,OAAS,eAAAA,MAAmB,UAC5B,OAAOC,MAAQ,KACf,OAAOC,MAA6B,+BACpC,OAAOC,MAAe,wBAEtB,KAAM,CAAE,SAAAC,CAAS,EAAIH,EAAG,SAElBI,EAAmB,MAAOC,EAAa,CAAC,EAAGC,EAAkB,CAAC,IAAM,CACxE,MAAMC,EAAoBN,EAAwBI,CAAU,EAE5D,GAAI,CACF,MAAMG,EAAoB,CACxB,iBAAkB,IAClB,gBAAiB,IACjB,gBAAiB,GACjB,mBAAoB,GACpB,IAAK,GACL,GAAIF,GAAmB,CAAC,CAC1B,EAEA,OAAIA,GAAiB,KACnBE,EAAkB,GAAK,MAAML,EAASG,GAAiB,EAAE,IAGxC,MAAMP,EAAY,QAAQQ,EAAmBC,CAAiB,GACtE,MAAM,EAEV,EACT,OAASC,EAAW,CAClB,QAAQ,KAAKA,CAAS,EAEtBP,EACC;AAAA,6FACA,QACD,EAEA,QAAQ,KAAK,CAAC,CAChB,CACF,EAEA,IAAOQ,EAAQN",
6
+ "names": ["MongoClient", "fs", "build_connection_string", "color_log", "readFile", "check_connection", "connection", "mongodb_options", "connection_string", "connectionOptions", "exception", "check_connection_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import e from"./check_connection.js";import a from"./index.js";const t=async(n={},c=2610)=>{const o=n.connection&&Object.keys(n.connection).length>0;return o&&await e(n.connection,n.options),{pid:o?null:await a(c),connection:o?n.connection:{hosts:[{hostname:"127.0.0.1",port:c}],database:"app",username:"",password:""}}};var m=t;export{m as default};
2
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/lib/development_server/databases/mongodb/connect.js"],
4
+ "sourcesContent": ["import check_connection from \"./check_connection.js\";\nimport mongodb from \"./index.js\";\n\nconst connect = async (settings = {}, port = 2610) => {\n const has_connection = settings.connection && Object.keys(settings.connection).length > 0;\n\n if (has_connection) {\n await check_connection(settings.connection, settings.options);\n }\n\n return {\n pid: !has_connection ? await mongodb(port) : null,\n connection: has_connection ? settings.connection : {\n hosts: [\n {\n hostname: \"127.0.0.1\",\n port,\n },\n ],\n database: \"app\",\n username: \"\",\n password: \"\",\n },\n };\n};\n\nexport default connect;\n"],
5
+ "mappings": "AAAA,OAAOA,MAAsB,wBAC7B,OAAOC,MAAa,aAEpB,MAAMC,EAAU,MAAOC,EAAW,CAAC,EAAGC,EAAO,OAAS,CACpD,MAAMC,EAAiBF,EAAS,YAAc,OAAO,KAAKA,EAAS,UAAU,EAAE,OAAS,EAExF,OAAIE,GACF,MAAML,EAAiBG,EAAS,WAAYA,EAAS,OAAO,EAGvD,CACL,IAAME,EAAuC,KAAtB,MAAMJ,EAAQG,CAAI,EACzC,WAAYC,EAAiBF,EAAS,WAAa,CACjD,MAAO,CACL,CACE,SAAU,YACV,KAAAC,CACF,CACF,EACA,SAAU,MACV,SAAU,GACV,SAAU,EACZ,CACF,CACF,EAEA,IAAOE,EAAQJ",
6
+ "names": ["check_connection", "mongodb", "connect", "settings", "port", "has_connection", "connect_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import i from"child_process";import f from"fs";import c from"os";import y from"../../../get_platform_safe_path.js";import u from"../../../get_process_id_from_port.js";import h from"../../../kill_port_process.js";import d from"../../../path_exists.js";const{rename:k,mkdir:w}=f.promises,b=()=>process.platform==="win32"?"mongosh.exe":"mongosh",j=()=>process.platform==="win32"?"mongod.exe":"mongod",$=(t=2610)=>new Promise(o=>{const s=j(),m=`${c.homedir()}/.joystick/databases/mongodb/bin/bin/${s}`,_=["--port",t,"--dbpath",y(`./.joystick/data/mongodb_${t}`),"--quiet","--replSet",`joystick_${t}`],n=i.spawn(m,_.filter(a=>!!a));n.stdout.on("data",async a=>{if((a?.toString()).includes("Waiting for connections")){const p=b(),l=`${c.homedir()}/.joystick/databases/mongodb/bin/bin/${p}`;i.exec(`${l} --eval "rs.initiate()" --verbose --port ${t}`,async(e,S,q)=>{e&&!e?.message?.includes("already initialized")&&console.log(e);const g=await u(t);return o(parseInt(g,10))})}}),n.stderr.on("data",async a=>{const r=a.toString();console.log(r)})}),x=async(t=2610)=>{const o=await d(".joystick/data/mongodb"),s=await d(`.joystick/data/mongodb_${t}`);return o&&!s&&await k(".joystick/data/mongodb",`.joystick/data/mongodb_${t}`),s||await w(`.joystick/data/mongodb_${t}`,{recursive:!0}),s},v=async(t=2610)=>{await x(t);try{return await h(t),await $(t)}catch(o){console.warn(o),process.exit(1)}};var D=v;export{D as default};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/lib/development_server/databases/mongodb/index.js"],
4
+ "sourcesContent": ["import child_process from \"child_process\";\nimport fs from \"fs\";\nimport os from \"os\";\nimport get_platform_safe_path from '../../../get_platform_safe_path.js';\nimport get_process_id_from_port from \"../../../get_process_id_from_port.js\";\nimport kill_port_process from \"../../../kill_port_process.js\";\nimport path_exists from \"../../../path_exists.js\";\n\nconst { rename, mkdir } = fs.promises;\n\nconst get_mongo_shell_command = () => {\n if (process.platform === 'win32') {\n return 'mongosh.exe';\n }\n\n return 'mongosh';\n};\n\nconst get_mongo_server_command = () => {\n if (process.platform === 'win32') {\n return 'mongod.exe';\n }\n\n return 'mongod';\n};\n\nconst start_mongodb_process = (mongodb_port = 2610) => {\n return new Promise((resolve) => {\n // TODO: Does this hold up on Linux?\n const mongo_server_command = get_mongo_server_command();\n const joystick_mongod_path = `${os.homedir()}/.joystick/databases/mongodb/bin/bin/${mongo_server_command}`;\n const database_process_flags = [\n '--port',\n mongodb_port,\n '--dbpath',\n get_platform_safe_path(`./.joystick/data/mongodb_${mongodb_port}`),\n '--quiet',\n '--replSet',\n `joystick_${mongodb_port}`,\n ];\n\n const database_process = child_process.spawn(\n joystick_mongod_path,\n database_process_flags.filter((command) => !!command),\n );\n\n database_process.stdout.on('data', async (data) => {\n const stdout = data?.toString();\n\n if (stdout.includes('Waiting for connections')) {\n const mongo_shell_command = get_mongo_shell_command();\n const joystick_mongo_shell_path = `${os.homedir()}/.joystick/databases/mongodb/bin/bin/${mongo_shell_command}`;\n child_process.exec(`${joystick_mongo_shell_path} --eval \"rs.initiate()\" --verbose --port ${mongodb_port}`, async (error, _stdout, _stderr) => {\n if (error && !error?.message?.includes('already initialized')) {\n console.log(error);\n }\n\n const process_id = await get_process_id_from_port(mongodb_port);\n return resolve(parseInt(process_id, 10));\n });\n }\n });\n\n database_process.stderr.on('data', async (data) => {\n const stderr = data.toString();\n console.log(stderr);\n });\n });\n};\n\nconst setup_data_directory = async (mongodb_port = 2610) => {\n // NOTE: MongoDB was originally started as a standalone server. To enable additional functionality,\n // we moved to a replica set config which necessitated multiple data directories in order to support\n // running the same app on multiple ports (a limitation of MongoDB).\n const legacy_data_directory_exists = await path_exists(\".joystick/data/mongodb\");\n const data_directory_exists = await path_exists(`.joystick/data/mongodb_${mongodb_port}`);\n\n if (legacy_data_directory_exists && !data_directory_exists) {\n await rename('.joystick/data/mongodb', `.joystick/data/mongodb_${mongodb_port}`);\n }\n\n if (!data_directory_exists) {\n await mkdir(`.joystick/data/mongodb_${mongodb_port}`, { recursive: true });\n }\n\n return data_directory_exists;\n};\n\nconst start_mongodb = async (mongodb_port = 2610) => {\n await setup_data_directory(mongodb_port);\n\n try {\n await kill_port_process(mongodb_port);\n const mongo_process_id = await start_mongodb_process(mongodb_port);\n return mongo_process_id;\n } catch (exception) {\n console.warn(exception);\n process.exit(1);\n }\n};\n\nexport default start_mongodb;\n"],
5
+ "mappings": "AAAA,OAAOA,MAAmB,gBAC1B,OAAOC,MAAQ,KACf,OAAOC,MAAQ,KACf,OAAOC,MAA4B,qCACnC,OAAOC,MAA8B,uCACrC,OAAOC,MAAuB,gCAC9B,OAAOC,MAAiB,0BAExB,KAAM,CAAE,OAAAC,EAAQ,MAAAC,CAAM,EAAIP,EAAG,SAEvBQ,EAA0B,IAC1B,QAAQ,WAAa,QAChB,cAGF,UAGHC,EAA2B,IAC3B,QAAQ,WAAa,QAChB,aAGF,SAGHC,EAAwB,CAACC,EAAe,OACrC,IAAI,QAASC,GAAY,CAE9B,MAAMC,EAAuBJ,EAAyB,EAChDK,EAAuB,GAAGb,EAAG,QAAQ,CAAC,wCAAwCY,CAAoB,GAClGE,EAAyB,CAC7B,SACAJ,EACA,WACAT,EAAuB,4BAA4BS,CAAY,EAAE,EACjE,UACA,YACA,YAAYA,CAAY,EAC1B,EAEMK,EAAmBjB,EAAc,MACrCe,EACAC,EAAuB,OAAQE,GAAY,CAAC,CAACA,CAAO,CACtD,EAEAD,EAAiB,OAAO,GAAG,OAAQ,MAAOE,GAAS,CAGjD,IAFeA,GAAM,SAAS,GAEnB,SAAS,yBAAyB,EAAG,CAC9C,MAAMC,EAAsBX,EAAwB,EAC9CY,EAA4B,GAAGnB,EAAG,QAAQ,CAAC,wCAAwCkB,CAAmB,GAC5GpB,EAAc,KAAK,GAAGqB,CAAyB,4CAA4CT,CAAY,GAAI,MAAOU,EAAOC,EAASC,IAAY,CACxIF,GAAS,CAACA,GAAO,SAAS,SAAS,qBAAqB,GAC1D,QAAQ,IAAIA,CAAK,EAGnB,MAAMG,EAAa,MAAMrB,EAAyBQ,CAAY,EAC9D,OAAOC,EAAQ,SAASY,EAAY,EAAE,CAAC,CACzC,CAAC,CACH,CACF,CAAC,EAEDR,EAAiB,OAAO,GAAG,OAAQ,MAAOE,GAAS,CACjD,MAAMO,EAASP,EAAK,SAAS,EAC7B,QAAQ,IAAIO,CAAM,CACpB,CAAC,CACH,CAAC,EAGGC,EAAuB,MAAOf,EAAe,OAAS,CAI1D,MAAMgB,EAA+B,MAAMtB,EAAY,wBAAwB,EACzEuB,EAAwB,MAAMvB,EAAY,0BAA0BM,CAAY,EAAE,EAExF,OAAIgB,GAAgC,CAACC,GACnC,MAAMtB,EAAO,yBAA0B,0BAA0BK,CAAY,EAAE,EAG5EiB,GACH,MAAMrB,EAAM,0BAA0BI,CAAY,GAAI,CAAE,UAAW,EAAK,CAAC,EAGpEiB,CACT,EAEMC,EAAgB,MAAOlB,EAAe,OAAS,CACnD,MAAMe,EAAqBf,CAAY,EAEvC,GAAI,CACF,aAAMP,EAAkBO,CAAY,EACX,MAAMD,EAAsBC,CAAY,CAEnE,OAASmB,EAAW,CAClB,QAAQ,KAAKA,CAAS,EACtB,QAAQ,KAAK,CAAC,CAChB,CACF,EAEA,IAAOC,EAAQF",
6
+ "names": ["child_process", "fs", "os", "get_platform_safe_path", "get_process_id_from_port", "kill_port_process", "path_exists", "rename", "mkdir", "get_mongo_shell_command", "get_mongo_server_command", "start_mongodb_process", "mongodb_port", "resolve", "mongo_server_command", "joystick_mongod_path", "database_process_flags", "database_process", "command", "data", "mongo_shell_command", "joystick_mongo_shell_path", "error", "_stdout", "_stderr", "process_id", "stderr", "setup_data_directory", "legacy_data_directory_exists", "data_directory_exists", "start_mongodb", "exception", "mongodb_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import o from"fs";import n from"path";import k from"os";import{promisify as w}from"util";import{pipeline as v}from"stream";import{execFile as D}from"child_process";const z=w(v),h=w(D),B=async(e=null)=>{const t=n.join(k.homedir(),".joystick","databases","mongodb"),i=n.join(t,"bin"),a=n.join(i,"bin");if(await C(t))return;await F(t,i,a);const p="https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-7.0.2.tgz",l="https://downloads.mongodb.com/compass/mongosh-2.2.12-linux-x64.tgz",g=n.basename(new URL(p).pathname),m=n.join(t,g),b=n.basename(new URL(l).pathname),c=n.join(t,b);process.loader.print("MongoDB not found. Downloading... (this may take a few minutes)"),await u(p,m),await u(l,c),process.loader.print("Installing MongoDB..."),await h("tar",["-xzf",m,"-C",t]);const d=(await o.promises.readdir(t)).find(s=>s.startsWith("mongodb-"));if(!d)throw new Error("Could not find extracted MongoDB directory");const f=n.join(t,d,"bin"),y=await o.promises.readdir(f);for(const s of y)await o.promises.rename(n.join(f,s),n.join(a,s));const r=n.join(t,"mongosh_temp");await o.promises.mkdir(r,{recursive:!0}),await h("tar",["-xzf",c,"-C",r]);const _=(await o.promises.readdir(r)).find(s=>s.startsWith("mongosh-"));if(!_)throw new Error("Could not find mongosh directory in extracted contents");const x=n.join(r,_,"bin","mongosh"),j=n.join(a,"mongosh");await o.promises.copyFile(x,j),await o.promises.unlink(m),await o.promises.unlink(c),await o.promises.rm(r,{recursive:!0,force:!0}),await o.promises.rm(n.join(t,d),{recursive:!0,force:!0}),await M(a),process.loader.print("MongoDB installed!")},u=async(e,t)=>{const i=await fetch(e);if(!i.ok)throw new Error(`Failed to download: ${i.statusText}`);await z(i.body,o.createWriteStream(t))},C=async e=>{try{return await o.promises.access(e),!0}catch{return!1}},F=async(e,t,i)=>{await o.promises.mkdir(e,{recursive:!0}),await o.promises.mkdir(t,{recursive:!0}),await o.promises.mkdir(i,{recursive:!0})},M=async e=>{const t=await o.promises.readdir(e);for(const i of t)await o.promises.chmod(n.join(e,i),"755")};var P=B;export{P as default};
2
+ //# sourceMappingURL=linux.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/lib/development_server/databases/mongodb/installers/linux.js"],
4
+ "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { promisify } from 'util';\nimport { pipeline } from 'stream';\nimport { execFile } from 'child_process';\n\nconst streamPipeline = promisify(pipeline);\nconst execFileAsync = promisify(execFile);\n\nconst download_mongodb_linux = async (version_path = null) => {\n const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'mongodb');\n const bin_directory = path.join(base_directory, 'bin');\n const bin_bin_directory = path.join(bin_directory, 'bin');\n\n if (await check_if_file_exists(base_directory)) {\n return;\n }\n\n await create_directories(base_directory, bin_directory, bin_bin_directory);\n\n const mongodb_url = 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-7.0.2.tgz';\n const mongosh_url = 'https://downloads.mongodb.com/compass/mongosh-2.2.12-linux-x64.tgz';\n\n const mongodb_file_name = path.basename(new URL(mongodb_url).pathname);\n const mongodb_file_path = path.join(base_directory, mongodb_file_name);\n\n const mongosh_file_name = path.basename(new URL(mongosh_url).pathname);\n const mongosh_file_path = path.join(base_directory, mongosh_file_name);\n\n process.loader.print('MongoDB not found. Downloading... (this may take a few minutes)');\n await download_file(mongodb_url, mongodb_file_path);\n await download_file(mongosh_url, mongosh_file_path);\n\n process.loader.print('Installing MongoDB...');\n \n // Extract MongoDB\n await execFileAsync('tar', ['-xzf', mongodb_file_path, '-C', base_directory]);\n const mongodb_extracted_dir = (await fs.promises.readdir(base_directory)).find(dir => dir.startsWith('mongodb-'));\n if (!mongodb_extracted_dir) {\n throw new Error('Could not find extracted MongoDB directory');\n }\n const mongodb_bin_path = path.join(base_directory, mongodb_extracted_dir, 'bin');\n \n // Move MongoDB binaries to bin/bin\n const mongodb_binaries = await fs.promises.readdir(mongodb_bin_path);\n for (const binary of mongodb_binaries) {\n await fs.promises.rename(path.join(mongodb_bin_path, binary), path.join(bin_bin_directory, binary));\n }\n \n // Extract mongosh\n const mongosh_temp_directory = path.join(base_directory, 'mongosh_temp');\n await fs.promises.mkdir(mongosh_temp_directory, { recursive: true });\n await execFileAsync('tar', ['-xzf', mongosh_file_path, '-C', mongosh_temp_directory]);\n \n // Find and copy mongosh executable\n const mongosh_contents = await fs.promises.readdir(mongosh_temp_directory);\n const mongosh_dir = mongosh_contents.find(item => item.startsWith('mongosh-'));\n if (!mongosh_dir) {\n throw new Error('Could not find mongosh directory in extracted contents');\n }\n \n const mongosh_bin_path = path.join(mongosh_temp_directory, mongosh_dir, 'bin', 'mongosh');\n const final_mongosh_path = path.join(bin_bin_directory, 'mongosh');\n await fs.promises.copyFile(mongosh_bin_path, final_mongosh_path);\n\n // Clean up\n await fs.promises.unlink(mongodb_file_path);\n await fs.promises.unlink(mongosh_file_path);\n await fs.promises.rm(mongosh_temp_directory, { recursive: true, force: true });\n await fs.promises.rm(path.join(base_directory, mongodb_extracted_dir), { recursive: true, force: true });\n\n await make_file_executable(bin_bin_directory);\n process.loader.print('MongoDB installed!');\n};\n\nconst download_file = async (url, file_path) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.statusText}`);\n }\n await streamPipeline(response.body, fs.createWriteStream(file_path));\n};\n\nconst check_if_file_exists = async (file_path) => {\n try {\n await fs.promises.access(file_path);\n return true;\n } catch {\n return false;\n }\n};\n\nconst create_directories = async (base_directory, bin_directory, bin_bin_directory) => {\n await fs.promises.mkdir(base_directory, { recursive: true });\n await fs.promises.mkdir(bin_directory, { recursive: true });\n await fs.promises.mkdir(bin_bin_directory, { recursive: true });\n};\n\nconst make_file_executable = async (directory) => {\n const files = await fs.promises.readdir(directory);\n for (const file of files) {\n await fs.promises.chmod(path.join(directory, file), '755');\n }\n};\n\nexport default download_mongodb_linux;"],
5
+ "mappings": "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",
6
+ "names": ["fs", "path", "os", "promisify", "pipeline", "execFile", "streamPipeline", "execFileAsync", "download_mongodb_linux", "version_path", "base_directory", "bin_directory", "bin_bin_directory", "check_if_file_exists", "create_directories", "mongodb_url", "mongosh_url", "mongodb_file_name", "mongodb_file_path", "mongosh_file_name", "mongosh_file_path", "download_file", "mongodb_extracted_dir", "dir", "mongodb_bin_path", "mongodb_binaries", "binary", "mongosh_temp_directory", "mongosh_dir", "item", "mongosh_bin_path", "final_mongosh_path", "make_file_executable", "url", "file_path", "response", "directory", "files", "file", "linux_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import o from"fs";import i from"path";import k from"os";import{promisify as w}from"util";import{pipeline as j}from"stream";import{execFile as v}from"child_process";const z=w(j),c=w(v),D=async(s=null)=>{const t=i.join(k.homedir(),".joystick","databases","mongodb"),n=i.join(t,"bin"),a=i.join(n,"bin");if(await F(t))return;await B(t,n,a);const d=(await M()).includes("ARM"),p=d?"https://fastdl.mongodb.org/osx/mongodb-macos-arm64-7.0.2.tgz":"https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.2.tgz",l=d?"https://downloads.mongodb.com/compass/mongosh-2.2.12-darwin-arm64.zip":"https://downloads.mongodb.com/compass/mongosh-2.2.12-darwin-x64.zip",h=i.basename(new URL(p).pathname),r=i.join(t,h),u=i.basename(new URL(l).pathname),m=i.join(t,u);process.loader.print("MongoDB not found. Downloading... (this may take a few minutes)"),await f(p,r),await f(l,m),process.loader.print("Installing MongoDB..."),await c("tar",["-xzf",r,"-C",n,"--strip-components=1"]);const e=i.join(t,"mongosh_temp");await o.promises.mkdir(e,{recursive:!0}),await c("unzip",["-q",m,"-d",e]);const _=(await o.promises.readdir(e)).find(x=>x.startsWith("mongosh-"));if(!_)throw new Error("Could not find mongosh directory in extracted contents");const b=i.join(e,_,"bin","mongosh"),y=i.join(a,"mongosh");await o.promises.copyFile(b,y),await o.promises.unlink(r),await o.promises.unlink(m),await o.promises.rm(e,{recursive:!0,force:!0}),await g(n),await g(a),process.loader.print("MongoDB installed!")},f=async(s,t)=>{const n=await fetch(s);if(!n.ok)throw new Error(`Failed to download: ${n.statusText}`);await z(n.body,o.createWriteStream(t))},F=async s=>{try{return await o.promises.access(s),!0}catch{return!1}},M=async()=>{const{stdout:s}=await c("sysctl",["-n","machdep.cpu.brand_string"]);return s.trim()},B=async(s,t,n)=>{await o.promises.mkdir(s,{recursive:!0}),await o.promises.mkdir(t,{recursive:!0}),await o.promises.mkdir(n,{recursive:!0})},g=async s=>{const t=await o.promises.readdir(s);for(const n of t)await o.promises.chmod(i.join(s,n),"755")};var I=D;export{I as default};
2
+ //# sourceMappingURL=macos.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/lib/development_server/databases/mongodb/installers/macos.js"],
4
+ "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { promisify } from 'util';\nimport { pipeline } from 'stream';\nimport { execFile } from 'child_process';\n\nconst streamPipeline = promisify(pipeline);\nconst execFileAsync = promisify(execFile);\n\nconst download_mongodb_macos = async (version_path = null) => {\n const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'mongodb');\n const bin_directory = path.join(base_directory, 'bin');\n const bin_bin_directory = path.join(bin_directory, 'bin');\n\n if (await check_if_file_exists(base_directory)) {\n return;\n }\n\n await create_directories(base_directory, bin_directory, bin_bin_directory);\n\n const cpu_info = await get_cpu_info();\n const is_arm = cpu_info.includes('ARM');\n \n const mongodb_url = is_arm\n ? 'https://fastdl.mongodb.org/osx/mongodb-macos-arm64-7.0.2.tgz'\n : 'https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.2.tgz';\n\n const mongosh_url = is_arm\n ? 'https://downloads.mongodb.com/compass/mongosh-2.2.12-darwin-arm64.zip'\n : 'https://downloads.mongodb.com/compass/mongosh-2.2.12-darwin-x64.zip';\n\n const mongodb_file_name = path.basename(new URL(mongodb_url).pathname);\n const mongodb_file_path = path.join(base_directory, mongodb_file_name);\n\n const mongosh_file_name = path.basename(new URL(mongosh_url).pathname);\n const mongosh_file_path = path.join(base_directory, mongosh_file_name);\n\n process.loader.print('MongoDB not found. Downloading... (this may take a few minutes)');\n await download_file(mongodb_url, mongodb_file_path);\n await download_file(mongosh_url, mongosh_file_path);\n\n process.loader.print('Installing MongoDB...');\n \n // Extract MongoDB\n await execFileAsync('tar', ['-xzf', mongodb_file_path, '-C', bin_directory, '--strip-components=1']);\n \n // Extract mongosh\n const mongosh_temp_directory = path.join(base_directory, 'mongosh_temp');\n await fs.promises.mkdir(mongosh_temp_directory, { recursive: true });\n await execFileAsync('unzip', ['-q', mongosh_file_path, '-d', mongosh_temp_directory]);\n \n // Find and copy mongosh executable\n const mongosh_contents = await fs.promises.readdir(mongosh_temp_directory);\n const mongosh_dir = mongosh_contents.find(item => item.startsWith('mongosh-'));\n if (!mongosh_dir) {\n throw new Error('Could not find mongosh directory in extracted contents');\n }\n \n const mongosh_bin_path = path.join(mongosh_temp_directory, mongosh_dir, 'bin', 'mongosh');\n const final_mongosh_path = path.join(bin_bin_directory, 'mongosh');\n await fs.promises.copyFile(mongosh_bin_path, final_mongosh_path);\n\n // Clean up\n await fs.promises.unlink(mongodb_file_path);\n await fs.promises.unlink(mongosh_file_path);\n await fs.promises.rm(mongosh_temp_directory, { recursive: true, force: true });\n\n await make_file_executable(bin_directory);\n await make_file_executable(bin_bin_directory);\n process.loader.print('MongoDB installed!');\n};\n\nconst download_file = async (url, file_path) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.statusText}`);\n }\n await streamPipeline(response.body, fs.createWriteStream(file_path));\n};\n\nconst check_if_file_exists = async (file_path) => {\n try {\n await fs.promises.access(file_path);\n return true;\n } catch {\n return false;\n }\n};\n\nconst get_cpu_info = async () => {\n const { stdout } = await execFileAsync('sysctl', ['-n', 'machdep.cpu.brand_string']);\n return stdout.trim();\n};\n\nconst create_directories = async (base_directory, bin_directory, bin_bin_directory) => {\n await fs.promises.mkdir(base_directory, { recursive: true });\n await fs.promises.mkdir(bin_directory, { recursive: true });\n await fs.promises.mkdir(bin_bin_directory, { recursive: true });\n};\n\nconst make_file_executable = async (directory) => {\n const files = await fs.promises.readdir(directory);\n for (const file of files) {\n await fs.promises.chmod(path.join(directory, file), '755');\n }\n};\n\nexport default download_mongodb_macos;"],
5
+ "mappings": "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",
6
+ "names": ["fs", "path", "os", "promisify", "pipeline", "execFile", "streamPipeline", "execFileAsync", "download_mongodb_macos", "version_path", "base_directory", "bin_directory", "bin_bin_directory", "check_if_file_exists", "create_directories", "is_arm", "get_cpu_info", "mongodb_url", "mongosh_url", "mongodb_file_name", "mongodb_file_path", "mongosh_file_name", "mongosh_file_path", "download_file", "mongosh_temp_directory", "mongosh_dir", "item", "mongosh_bin_path", "final_mongosh_path", "make_file_executable", "url", "file_path", "response", "stdout", "directory", "files", "file", "macos_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import e from"fs";import t from"path";import y from"os";import{promisify as p}from"util";import{pipeline as b}from"stream";import{execFile as x}from"child_process";const j=p(b),d=p(x),k=async()=>{const o=t.join(y.homedir(),".joystick","databases","mongodb"),i=t.join(o,"bin");if(await m(o))return;await v(o,i);const r="https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-7.0.2.zip",l=t.basename(new URL(r).pathname),s=t.join(o,l);if(await m(s))return;process.loader.print("MongoDB not found. Downloading... (this may take a few minutes)"),await w(r,s),process.loader.print("Installing MongoDB...");const a=t.join(o,"temp");await d("powershell",["Expand-Archive","-Path",s,"-DestinationPath",a]);const h=(await e.promises.readdir(a))[0],f=t.join(a,h);await m(i)&&await e.promises.rm(i,{recursive:!0,force:!0}),await e.promises.cp(f,i,{recursive:!0});const _="https://downloads.mongodb.com/compass/mongosh-2.2.12-win32-x64.zip",c=t.join(o,"mongosh.zip");await w(_,c);const n=t.join(o,"mongosh_temp");await d("powershell",["Expand-Archive","-Path",c,"-DestinationPath",n]);const u=(await e.promises.readdir(n))[0],g=t.join(n,u,"bin","mongosh.exe");await e.promises.copyFile(g,t.join(i,"bin","mongosh.exe")),await e.promises.unlink(s),await e.promises.unlink(c),await e.promises.rm(a,{recursive:!0,force:!0}),await e.promises.rm(n,{recursive:!0,force:!0}),process.loader.print("MongoDB installed!")},w=async(o,i)=>{const r=await fetch(o);if(!r.ok)throw new Error(`Failed to download: ${r.statusText}`);await j(r.body,e.createWriteStream(i))},m=async o=>{try{return await e.promises.access(o),!0}catch{return!1}},v=async(o,i)=>{await e.promises.mkdir(o,{recursive:!0}),await e.promises.mkdir(i,{recursive:!0})};var M=k;export{M as default};
2
+ //# sourceMappingURL=windows.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/lib/development_server/databases/mongodb/installers/windows.js"],
4
+ "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { promisify } from 'util';\nimport { pipeline } from 'stream';\nimport { execFile } from 'child_process';\n\nconst stream_pipeline = promisify(pipeline);\nconst exec_file_async = promisify(execFile);\n\nconst download_mongodb_windows = async () => {\n const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'mongodb');\n const bin_directory = path.join(base_directory, 'bin');\n\n if (await check_if_file_exists(base_directory)) {\n return;\n }\n\n await create_directories(base_directory, bin_directory);\n\n const download_url = 'https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-7.0.2.zip';\n const file_name = path.basename(new URL(download_url).pathname);\n const file_path = path.join(base_directory, file_name);\n\n if (await check_if_file_exists(file_path)) {\n return;\n }\n\n process.loader.print('MongoDB not found. Downloading... (this may take a few minutes)');\n await download_file(download_url, file_path);\n process.loader.print('Installing MongoDB...');\n \n const temp_directory = path.join(base_directory, 'temp');\n await exec_file_async('powershell', ['Expand-Archive', '-Path', file_path, '-DestinationPath', temp_directory]);\n const extracted_folder = (await fs.promises.readdir(temp_directory))[0];\n const extracted_path = path.join(temp_directory, extracted_folder);\n \n // Remove existing bin directory if it exists\n if (await check_if_file_exists(bin_directory)) {\n await fs.promises.rm(bin_directory, { recursive: true, force: true });\n }\n \n // Copy the entire contents of the extracted folder to the bin directory\n await fs.promises.cp(extracted_path, bin_directory, { recursive: true });\n\n // Download and install mongosh\n const mongosh_url = 'https://downloads.mongodb.com/compass/mongosh-2.2.12-win32-x64.zip';\n const mongosh_file_path = path.join(base_directory, 'mongosh.zip');\n await download_file(mongosh_url, mongosh_file_path);\n \n const mongosh_temp_directory = path.join(base_directory, 'mongosh_temp');\n await exec_file_async('powershell', ['Expand-Archive', '-Path', mongosh_file_path, '-DestinationPath', mongosh_temp_directory]);\n \n const mongosh_extracted_folder = (await fs.promises.readdir(mongosh_temp_directory))[0];\n const mongosh_bin_path = path.join(mongosh_temp_directory, mongosh_extracted_folder, 'bin', 'mongosh.exe');\n \n await fs.promises.copyFile(mongosh_bin_path, path.join(bin_directory, 'bin', 'mongosh.exe'));\n \n // Clean up temporary files\n await fs.promises.unlink(file_path);\n await fs.promises.unlink(mongosh_file_path);\n await fs.promises.rm(temp_directory, { recursive: true, force: true });\n await fs.promises.rm(mongosh_temp_directory, { recursive: true, force: true });\n\n process.loader.print('MongoDB installed!');\n};\n\nconst download_file = async (url, file_path) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.statusText}`);\n }\n await stream_pipeline(response.body, fs.createWriteStream(file_path));\n};\n\nconst check_if_file_exists = async (file_path) => {\n try {\n await fs.promises.access(file_path);\n return true;\n } catch {\n return false;\n }\n};\n\nconst create_directories = async (base_directory, bin_directory) => {\n await fs.promises.mkdir(base_directory, { recursive: true });\n await fs.promises.mkdir(bin_directory, { recursive: true });\n};\n\nexport default download_mongodb_windows;"],
5
+ "mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAU,OACjB,OAAOC,MAAQ,KACf,OAAS,aAAAC,MAAiB,OAC1B,OAAS,YAAAC,MAAgB,SACzB,OAAS,YAAAC,MAAgB,gBAEzB,MAAMC,EAAkBH,EAAUC,CAAQ,EACpCG,EAAkBJ,EAAUE,CAAQ,EAEpCG,EAA2B,SAAY,CAC3C,MAAMC,EAAiBR,EAAK,KAAKC,EAAG,QAAQ,EAAG,YAAa,YAAa,SAAS,EAC5EQ,EAAgBT,EAAK,KAAKQ,EAAgB,KAAK,EAErD,GAAI,MAAME,EAAqBF,CAAc,EAC3C,OAGF,MAAMG,EAAmBH,EAAgBC,CAAa,EAEtD,MAAMG,EAAe,sEACfC,EAAYb,EAAK,SAAS,IAAI,IAAIY,CAAY,EAAE,QAAQ,EACxDE,EAAYd,EAAK,KAAKQ,EAAgBK,CAAS,EAErD,GAAI,MAAMH,EAAqBI,CAAS,EACtC,OAGF,QAAQ,OAAO,MAAM,iEAAiE,EACtF,MAAMC,EAAcH,EAAcE,CAAS,EAC3C,QAAQ,OAAO,MAAM,uBAAuB,EAE5C,MAAME,EAAiBhB,EAAK,KAAKQ,EAAgB,MAAM,EACvD,MAAMF,EAAgB,aAAc,CAAC,iBAAkB,QAASQ,EAAW,mBAAoBE,CAAc,CAAC,EAC9G,MAAMC,GAAoB,MAAMlB,EAAG,SAAS,QAAQiB,CAAc,GAAG,CAAC,EAChEE,EAAiBlB,EAAK,KAAKgB,EAAgBC,CAAgB,EAG7D,MAAMP,EAAqBD,CAAa,GAC1C,MAAMV,EAAG,SAAS,GAAGU,EAAe,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAItE,MAAMV,EAAG,SAAS,GAAGmB,EAAgBT,EAAe,CAAE,UAAW,EAAK,CAAC,EAGvE,MAAMU,EAAc,qEACdC,EAAoBpB,EAAK,KAAKQ,EAAgB,aAAa,EACjE,MAAMO,EAAcI,EAAaC,CAAiB,EAElD,MAAMC,EAAyBrB,EAAK,KAAKQ,EAAgB,cAAc,EACvE,MAAMF,EAAgB,aAAc,CAAC,iBAAkB,QAASc,EAAmB,mBAAoBC,CAAsB,CAAC,EAE9H,MAAMC,GAA4B,MAAMvB,EAAG,SAAS,QAAQsB,CAAsB,GAAG,CAAC,EAChFE,EAAmBvB,EAAK,KAAKqB,EAAwBC,EAA0B,MAAO,aAAa,EAEzG,MAAMvB,EAAG,SAAS,SAASwB,EAAkBvB,EAAK,KAAKS,EAAe,MAAO,aAAa,CAAC,EAG3F,MAAMV,EAAG,SAAS,OAAOe,CAAS,EAClC,MAAMf,EAAG,SAAS,OAAOqB,CAAiB,EAC1C,MAAMrB,EAAG,SAAS,GAAGiB,EAAgB,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EACrE,MAAMjB,EAAG,SAAS,GAAGsB,EAAwB,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAE7E,QAAQ,OAAO,MAAM,oBAAoB,CAC3C,EAEMN,EAAgB,MAAOS,EAAKV,IAAc,CAC9C,MAAMW,EAAW,MAAM,MAAMD,CAAG,EAChC,GAAI,CAACC,EAAS,GACZ,MAAM,IAAI,MAAM,uBAAuBA,EAAS,UAAU,EAAE,EAE9D,MAAMpB,EAAgBoB,EAAS,KAAM1B,EAAG,kBAAkBe,CAAS,CAAC,CACtE,EAEMJ,EAAuB,MAAOI,GAAc,CAChD,GAAI,CACF,aAAMf,EAAG,SAAS,OAAOe,CAAS,EAC3B,EACT,MAAQ,CACN,MAAO,EACT,CACF,EAEMH,EAAqB,MAAOH,EAAgBC,IAAkB,CAClE,MAAMV,EAAG,SAAS,MAAMS,EAAgB,CAAE,UAAW,EAAK,CAAC,EAC3D,MAAMT,EAAG,SAAS,MAAMU,EAAe,CAAE,UAAW,EAAK,CAAC,CAC5D,EAEA,IAAOiB,EAAQnB",
6
+ "names": ["fs", "path", "os", "promisify", "pipeline", "execFile", "stream_pipeline", "exec_file_async", "download_mongodb_windows", "base_directory", "bin_directory", "check_if_file_exists", "create_directories", "download_url", "file_name", "file_path", "download_file", "temp_directory", "extracted_folder", "extracted_path", "mongosh_url", "mongosh_file_path", "mongosh_temp_directory", "mongosh_extracted_folder", "mongosh_bin_path", "url", "response", "windows_default"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import a from"fs";import c from"pg";import n from"../../../color_log.js";const{Client:l}=c,{readFile:i}=a.promises,p=(s={})=>new Promise((t,e)=>{s.query("SELECT NOW()",o=>{o?e():t(),s.end()})}),d=async(s={},t={})=>{try{const e=s?.hosts&&s?.hosts[0],o={user:s?.username,host:e?.hostname,database:s?.database,password:s?.password,port:e?.port};t?.ssl?.ca&&(o.ssl={ca:await i(t?.ssl?.ca)});const r=new l(o);return r.connect(),await p(r),!0}catch(e){console.warn(e),n(`
2
+ \u2716 Failed to connect to PostgreSQL. Please double-check connection settings and try again.`,"yellow"),process.exit(1)}};var h=d;export{h as default};
3
+ //# sourceMappingURL=check_connection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/lib/development_server/databases/postgresql/check_connection.js"],
4
+ "sourcesContent": ["import fs from 'fs';\nimport postgresql from \"pg\";\nimport color_log from \"../../../color_log.js\";\n\nconst { Client } = postgresql;\nconst { readFile } = fs.promises;\n\nconst test_query = (client = {}) => {\n return new Promise((resolve, reject) => {\n client.query('SELECT NOW()', (error) => {\n if (error) {\n reject();\n } else {\n resolve();\n }\n\n client.end();\n });\n });\n};\n\nconst check_connection = async (connection = {}, options = {}) => {\n try {\n const host = connection?.hosts && connection?.hosts[0];\n const connection_config = {\n user: connection?.username,\n host: host?.hostname,\n database: connection?.database,\n password: connection?.password,\n port: host?.port,\n };\n\n if (options?.ssl?.ca) {\n connection_config.ssl = {\n ca: await readFile(options?.ssl?.ca)\n };\n }\n\n const client = new Client(connection_config);\n\n client.connect();\n await test_query(client);\n\n return true;\n } catch (exception) {\n console.warn(exception);\n \tcolor_log(\n \t\t`\\n\u2716 Failed to connect to PostgreSQL. Please double-check connection settings and try again.`,\n \t\t'yellow'\n \t);\n\n process.exit(1);\n }\n};\n\nexport default check_connection;\n"],
5
+ "mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAgB,KACvB,OAAOC,MAAe,wBAEtB,KAAM,CAAE,OAAAC,CAAO,EAAIF,EACb,CAAE,SAAAG,CAAS,EAAIJ,EAAG,SAElBK,EAAa,CAACC,EAAS,CAAC,IACrB,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCF,EAAO,MAAM,eAAiBG,GAAU,CAClCA,EACFD,EAAO,EAEPD,EAAQ,EAGVD,EAAO,IAAI,CACb,CAAC,CACH,CAAC,EAGGI,EAAmB,MAAOC,EAAa,CAAC,EAAGC,EAAU,CAAC,IAAM,CAChE,GAAI,CACF,MAAMC,EAAOF,GAAY,OAASA,GAAY,MAAM,CAAC,EAC/CG,EAAoB,CACxB,KAAMH,GAAY,SAClB,KAAME,GAAM,SACZ,SAAUF,GAAY,SACtB,SAAUA,GAAY,SACtB,KAAME,GAAM,IACd,EAEID,GAAS,KAAK,KAChBE,EAAkB,IAAM,CACtB,GAAI,MAAMV,EAASQ,GAAS,KAAK,EAAE,CACrC,GAGF,MAAMN,EAAS,IAAIH,EAAOW,CAAiB,EAE3C,OAAAR,EAAO,QAAQ,EACf,MAAMD,EAAWC,CAAM,EAEhB,EACT,OAASS,EAAW,CAClB,QAAQ,KAAKA,CAAS,EACvBb,EACC;AAAA,gGACA,QACD,EAEC,QAAQ,KAAK,CAAC,CAChB,CACF,EAEA,IAAOc,EAAQN",
6
+ "names": ["fs", "postgresql", "color_log", "Client", "readFile", "test_query", "client", "resolve", "reject", "error", "check_connection", "connection", "options", "host", "connection_config", "exception", "check_connection_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import e from"os";import t from"./check_connection.js";import a from"./index.js";const r=async(o={},c=2610)=>{try{const n=o.connection&&Object.keys(o.connection).length>0;return n&&await t(o.connection,o.options),{pid:n?null:await a(c),connection:n?o.connection:{hosts:[{hostname:"127.0.0.1",port:c}],database:"app",username:(e.userInfo()||{}).username||"",password:""}}}catch(n){console.warn(n)}};var m=r;export{m as default};
2
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/lib/development_server/databases/postgresql/connect.js"],
4
+ "sourcesContent": ["import os from 'os';\nimport check_connection from \"./check_connection.js\";\nimport postgresql from \"./index.js\";\n\nconst connect = async (settings = {}, port = 2610) => {\n try {\n const has_connection = settings.connection && Object.keys(settings.connection).length > 0;\n\n if (has_connection) {\n await check_connection(settings.connection, settings.options);\n }\n\n return {\n pid: !has_connection ? await postgresql(port) : null,\n connection: has_connection ? settings.connection : {\n hosts: [\n {\n hostname: \"127.0.0.1\",\n port,\n },\n ],\n database: \"app\",\n // NOTE: PostgreSQL creates a default superuser based on the OS username.\n username: (os.userInfo() || {}).username || \"\",\n password: \"\",\n },\n };\n } catch (exception) {\n console.warn(exception);\n }\n};\n\nexport default connect;\n"],
5
+ "mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAsB,wBAC7B,OAAOC,MAAgB,aAEvB,MAAMC,EAAU,MAAOC,EAAW,CAAC,EAAGC,EAAO,OAAS,CACpD,GAAI,CACF,MAAMC,EAAiBF,EAAS,YAAc,OAAO,KAAKA,EAAS,UAAU,EAAE,OAAS,EAExF,OAAIE,GACF,MAAML,EAAiBG,EAAS,WAAYA,EAAS,OAAO,EAGvD,CACL,IAAME,EAA0C,KAAzB,MAAMJ,EAAWG,CAAI,EAC5C,WAAYC,EAAiBF,EAAS,WAAa,CACjD,MAAO,CACL,CACE,SAAU,YACV,KAAAC,CACF,CACF,EACA,SAAU,MAEV,UAAWL,EAAG,SAAS,GAAK,CAAC,GAAG,UAAY,GAC5C,SAAU,EACZ,CACF,CACF,OAASO,EAAW,CAClB,QAAQ,KAAKA,CAAS,CACxB,CACF,EAEA,IAAOC,EAAQL",
6
+ "names": ["os", "check_connection", "postgresql", "connect", "settings", "port", "has_connection", "exception", "connect_default"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import i from"child_process";import x from"fs";import q from"util";import I from"os";import g from"../../../get_platform_safe_path.js";import f from"../../../get_process_id_from_port.js";import y from"../../../path_exists.js";const o=q.promisify(i.exec),{rename:D}=x.promises,L=async(e=2610)=>{const t=await y(".joystick/data/postgresql");let s=await y(`.joystick/data/postgresql_${e}`);return t&&!s&&(await D(".joystick/data/postgresql",`.joystick/data/postgresql_${e}`),s=!0),s},K=()=>process.platform==="win32"?"createdb.exe":"createdb",N=()=>process.platform==="win32"?"postgres.exe":"postgres",R=()=>process.platform==="win32"?"initdb.exe":"initdb",S=()=>process.platform==="win32"?"pgctl.exe":"pgctl",A=async(e=2610)=>{try{const t=e,s=`${I.homedir()}/.joystick/databases/postgresql/bin/bin`,$=S(),u=R(),w=N(),j=K(),n=`${s}/${$}`,k=`${s}/${u}`,b=`${s}/${w}`,p=`${s}/${j}`;await L(e)||(process.platform==="linux"?(await o(`sudo -u postgres ./initdb -D ${process.cwd()}/.joystick/data/postgresql_${e} --no-locale`,{cwd:s}),await o("sudo chmod 755 /root"),await o(`sudo chmod 755 /root/${process.project_folder}`),await o(`sudo chmod 755 /root/${process.project_folder}/.joystick`),await o(`sudo chmod 700 /root/${process.project_folder}/.joystick/data/postgresql_${t}`),await o(`sudo chown -R postgres:postgres /root/${process.project_folder}/.joystick/data/postgresql_${t}`)):await o(`${k} -D .joystick/data/postgresql_${e} --no-locale`));const a=parseInt(await f(t),10);a&&(process.platform==="linux"?await o(`${n} kill KILL ${a}`):await o(`${n} kill KILL ${a}`));const d=process.platform==="linux"?i.spawn("sudo",["-u","postgres","./postgres",`-p ${t}`,"-D",g(`${process.cwd()}/.joystick/data/postgresql_${e}`),"-c log_destination=stderr -c logging_collector=off -c log_min_messages=WARNING"],{cwd:s,shell:"/bin/bash"}):i.spawn(b,[`-p ${t}`,"-D",g(`.joystick/data/postgresql_${e}`)]);return new Promise(_=>{d.stderr.on("data",async c=>{if((c?.toString()).includes("database system is ready to accept connections")){const m=(await f(t))?.replace(`
2
+ `,""),h=process.platform==="linux"?`sudo -u postgres ${p} -h 127.0.0.1 -p ${t} app`:`${p} -h 127.0.0.1 -p ${t} app`;o(h).then(()=>{_(parseInt(m,10))}).catch(({stderr:r})=>{r&&r.includes('database "app" already exists')?_(parseInt(m,10)):console.log(r)})}}),d.stdout.on("data",async c=>{const l=c?.toString();console.log(l)})})}catch(t){console.warn(t),process.exit(1)}};var H=A;export{H as default};
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/lib/development_server/databases/postgresql/index.js"],
4
+ "sourcesContent": ["import child_process from \"child_process\";\nimport fs from \"fs\";\nimport util from \"util\";\nimport os from \"os\";\nimport get_platform_safe_path from \"../../../get_platform_safe_path.js\";\nimport get_process_id_from_port from \"../../../get_process_id_from_port.js\";\nimport path_exists from \"../../../path_exists.js\";\n\nconst exec = util.promisify(child_process.exec);\nconst { rename } = fs.promises;\n\nconst setup_data_directory = async (postgresql_port = 2610) => {\n const legacy_data_directory_exists = await path_exists(\".joystick/data/postgresql\");\n let data_directory_exists = await path_exists(`.joystick/data/postgresql_${postgresql_port}`);\n\n if (legacy_data_directory_exists && !data_directory_exists) {\n await rename ('.joystick/data/postgresql', `.joystick/data/postgresql_${postgresql_port}`);\n data_directory_exists = true;\n }\n\n return data_directory_exists;\n};\n\nconst get_createdb_command = () => {\n if (process.platform === 'win32') {\n return 'createdb.exe';\n }\n\n return 'createdb';\n};\n\nconst get_postgres_command = () => {\n if (process.platform === 'win32') {\n return 'postgres.exe';\n }\n\n return 'postgres';\n};\n\nconst get_initdb_command = () => {\n if (process.platform === 'win32') {\n return 'initdb.exe';\n }\n\n return 'initdb';\n};\n\nconst get_pg_ctl_command = () => {\n if (process.platform === 'win32') {\n return 'pgctl.exe';\n }\n\n return 'pgctl';\n};\n\nconst start_postgresql = async (port = 2610) => {\n try {\n const postgresql_port = port;\n const joystick_postgresql_bin_path = `${os.homedir()}/.joystick/databases/postgresql/bin/bin`;\n\n const joystick_pg_ctl_command = get_pg_ctl_command();\n const joystick_initdb_command = get_initdb_command();\n const joystick_postgres_command = get_postgres_command();\n const joystick_createdb_command = get_createdb_command();\n \n const joystick_pg_ctl_path = `${joystick_postgresql_bin_path}/${joystick_pg_ctl_command}`;\n const joystick_initdb_path = `${joystick_postgresql_bin_path}/${joystick_initdb_command}`;\n const joystick_postgres_path = `${joystick_postgresql_bin_path}/${joystick_postgres_command}`;\n const joystick_createdb_path = `${joystick_postgresql_bin_path}/${joystick_createdb_command}`;\n\n const data_directory_exists = await setup_data_directory(port);\n\n if (!data_directory_exists) {\n if (process.platform === 'linux') {\n await exec(`sudo -u postgres ./initdb -D ${process.cwd()}/.joystick/data/postgresql_${port} --no-locale`, {\n cwd: joystick_postgresql_bin_path\n });\n\n // NOTE: For Linux, we need to set granular permissions on the data directory path\n // to avoid access denied errors from the OS.\n await exec(`sudo chmod 755 /root`);\n await exec(`sudo chmod 755 /root/${process.project_folder}`);\n await exec(`sudo chmod 755 /root/${process.project_folder}/.joystick`);\n await exec(`sudo chmod 700 /root/${process.project_folder}/.joystick/data/postgresql_${postgresql_port}`);\n await exec(`sudo chown -R postgres:postgres /root/${process.project_folder}/.joystick/data/postgresql_${postgresql_port}`);\n } else {\n await exec(`${joystick_initdb_path} -D .joystick/data/postgresql_${port} --no-locale`);\n }\n }\n\n const existing_process_id = parseInt(await get_process_id_from_port(postgresql_port), 10);\n\n if (existing_process_id) {\n if (process.platform === 'linux') {\n await exec(`${joystick_pg_ctl_path} kill KILL ${existing_process_id}`);\n } else {\n await exec(`${joystick_pg_ctl_path} kill KILL ${existing_process_id}`);\n }\n }\n\n const database_process = process.platform === 'linux' ? child_process.spawn(\n 'sudo',\n [\n '-u',\n 'postgres',\n './postgres',\n `-p ${postgresql_port}`,\n '-D',\n get_platform_safe_path(`${process.cwd()}/.joystick/data/postgresql_${port}`),\n '-c log_destination=stderr -c logging_collector=off -c log_min_messages=WARNING',\n ],\n { cwd: joystick_postgresql_bin_path, shell: '/bin/bash' }\n ) : child_process.spawn(\n joystick_postgres_path,\n [\n `-p ${postgresql_port}`,\n '-D',\n get_platform_safe_path(`.joystick/data/postgresql_${port}`),\n ],\n );\n\n return new Promise((resolve) => {\n database_process.stderr.on('data', async (data) => {\n const stderr = data?.toString();\n\n if (stderr.includes('database system is ready to accept connections')) {\n const process_id = (await get_process_id_from_port(postgresql_port))?.replace('\\n', '');\n const createdb_command = process.platform === 'linux'\n ? `sudo -u postgres ${joystick_createdb_path} -h 127.0.0.1 -p ${postgresql_port} app`\n : `${joystick_createdb_path} -h 127.0.0.1 -p ${postgresql_port} app`;\n\n exec(createdb_command).then(() => {\n resolve(parseInt(process_id, 10));\n }).catch(({ stderr: error }) => {\n if (error && error.includes('database \"app\" already exists')) {\n resolve(parseInt(process_id, 10));\n } else {\n console.log(error);\n }\n });\n }\n });\n\n database_process.stdout.on('data', async (data) => {\n // NOTE: PostgreSQL (16) appears to route all output to stderr(?!). Have this for posterity\n // sake and to avoid trapping useful information.\n const stdout = data?.toString();\n console.log(stdout);\n });\n });\n } catch (exception) {\n console.warn(exception);\n process.exit(1);\n }\n};\n\nexport default start_postgresql;"],
5
+ "mappings": "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",
6
+ "names": ["child_process", "fs", "util", "os", "get_platform_safe_path", "get_process_id_from_port", "path_exists", "exec", "rename", "setup_data_directory", "postgresql_port", "legacy_data_directory_exists", "data_directory_exists", "get_createdb_command", "get_postgres_command", "get_initdb_command", "get_pg_ctl_command", "start_postgresql", "port", "joystick_postgresql_bin_path", "joystick_pg_ctl_command", "joystick_initdb_command", "joystick_postgres_command", "joystick_createdb_command", "joystick_pg_ctl_path", "joystick_initdb_path", "joystick_postgres_path", "joystick_createdb_path", "existing_process_id", "database_process", "resolve", "data", "process_id", "createdb_command", "error", "stdout", "exception", "postgresql_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{promisify as e}from"util";import{execFile as m,exec as y}from"child_process";import o from"fs";import w from"os";import i from"path";const r=e(m),_=e(y),u=e(o.mkdir),h=e(o.symlink),p=e(o.access),k=e(o.writeFile),b=async()=>{try{const t="16",g=`/usr/lib/postgresql/${t}/bin`,c=i.join(w.homedir(),".joystick","databases","postgresql","bin"),n=i.join(c,"bin"),l=i.join(n,"postgres");try{await p(l,o.constants.X_OK);return}catch{}process.loader.print("PostgreSQL not found. Installing... (this may take a few minutes)"),await r("sudo",["apt-get","install","-y","wget"]),await r("sudo",["sh","-c",'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list']);const{stdout:d}=await _("wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc"),a="/tmp/postgresql-ACCC4CF8.asc";await k(a,d),await r("sudo",["apt-key","add",a]),await r("rm",[a]),await r("sudo",["apt-get","update"]),await r("sudo",["apt-get","install","-y",`postgresql-${t}`,`postgresql-client-${t}`,`postgresql-server-dev-${t}`]),await u(c,{recursive:!0});try{await h(g,n)}catch(s){if(s.code!=="EEXIST")throw console.error("Error creating symlink:",s),s}try{await p(l,o.constants.X_OK)}catch(s){throw console.error("Error accessing PostgreSQL executable:",s),s}process.loader.print("PostgreSQL installed!")}catch(t){throw console.error("Error installing PostgreSQL:",t),t}};var E=b;export{E as default};
2
+ //# sourceMappingURL=linux.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/lib/development_server/databases/postgresql/installers/linux.js"],
4
+ "sourcesContent": ["import { promisify } from 'util';\nimport { execFile, exec } from 'child_process';\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\n\nconst exec_file_async = promisify(execFile);\nconst exec_async = promisify(exec);\nconst mkdir_async = promisify(fs.mkdir);\nconst symlink_async = promisify(fs.symlink);\nconst access_async = promisify(fs.access);\nconst writeFile_async = promisify(fs.writeFile);\n\nconst download_postgresql_linux = async () => {\n try {\n const postgresql_version = '16';\n const system_bin_path = `/usr/lib/postgresql/${postgresql_version}/bin`;\n const joystick_bin_path = path.join(os.homedir(), '.joystick', 'databases', 'postgresql', 'bin');\n const symlink_path = path.join(joystick_bin_path, 'bin');\n const postgres_executable = path.join(symlink_path, 'postgres');\n\n // Check if PostgreSQL is already installed in the desired location\n try {\n await access_async(postgres_executable, fs.constants.X_OK);\n return;\n } catch (error) {\n // PostgreSQL is not installed or not in the desired location, proceed with installation\n }\n\n process.loader.print('PostgreSQL not found. Installing... (this may take a few minutes)');\n \n // Ensure wget is installed\n await exec_file_async('sudo', ['apt-get', 'install', '-y', 'wget']);\n\n // Add PostgreSQL 16 repository\n await exec_file_async('sudo', ['sh', '-c', 'echo \"deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main\" > /etc/apt/sources.list.d/pgdg.list']);\n \n // Download the PostgreSQL public key\n const { stdout: keyContent } = await exec_async('wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc');\n \n // Save the key to a temporary file\n const tempKeyPath = '/tmp/postgresql-ACCC4CF8.asc';\n await writeFile_async(tempKeyPath, keyContent);\n \n // Add the key\n await exec_file_async('sudo', ['apt-key', 'add', tempKeyPath]);\n \n // Remove the temporary key file\n await exec_file_async('rm', [tempKeyPath]);\n\n // Update package list and install PostgreSQL 16\n await exec_file_async('sudo', ['apt-get', 'update']);\n await exec_file_async('sudo', ['apt-get', 'install', '-y', `postgresql-${postgresql_version}`, `postgresql-client-${postgresql_version}`, `postgresql-server-dev-${postgresql_version}`]);\n\n await mkdir_async(joystick_bin_path, { recursive: true });\n \n try {\n await symlink_async(system_bin_path, symlink_path);\n } catch (symlink_error) {\n if (symlink_error.code !== 'EEXIST') {\n console.error('Error creating symlink:', symlink_error);\n throw symlink_error;\n }\n }\n\n try {\n await access_async(postgres_executable, fs.constants.X_OK);\n } catch (access_error) {\n console.error('Error accessing PostgreSQL executable:', access_error);\n throw access_error;\n }\n \n process.loader.print('PostgreSQL installed!');\n } catch (error) {\n console.error('Error installing PostgreSQL:', error);\n throw error;\n }\n};\n\nexport default download_postgresql_linux;"],
5
+ "mappings": "AAAA,OAAS,aAAAA,MAAiB,OAC1B,OAAS,YAAAC,EAAU,QAAAC,MAAY,gBAC/B,OAAOC,MAAQ,KACf,OAAOC,MAAQ,KACf,OAAOC,MAAU,OAEjB,MAAMC,EAAkBN,EAAUC,CAAQ,EACpCM,EAAaP,EAAUE,CAAI,EAC3BM,EAAcR,EAAUG,EAAG,KAAK,EAChCM,EAAgBT,EAAUG,EAAG,OAAO,EACpCO,EAAeV,EAAUG,EAAG,MAAM,EAClCQ,EAAkBX,EAAUG,EAAG,SAAS,EAExCS,EAA4B,SAAY,CAC5C,GAAI,CACF,MAAMC,EAAqB,KACrBC,EAAkB,uBAAuBD,CAAkB,OAC3DE,EAAoBV,EAAK,KAAKD,EAAG,QAAQ,EAAG,YAAa,YAAa,aAAc,KAAK,EACzFY,EAAeX,EAAK,KAAKU,EAAmB,KAAK,EACjDE,EAAsBZ,EAAK,KAAKW,EAAc,UAAU,EAG9D,GAAI,CACF,MAAMN,EAAaO,EAAqBd,EAAG,UAAU,IAAI,EACzD,MACF,MAAgB,CAEhB,CAEA,QAAQ,OAAO,MAAM,mEAAmE,EAGxF,MAAMG,EAAgB,OAAQ,CAAC,UAAW,UAAW,KAAM,MAAM,CAAC,EAGlE,MAAMA,EAAgB,OAAQ,CAAC,KAAM,KAAM,qHAAqH,CAAC,EAGjK,KAAM,CAAE,OAAQY,CAAW,EAAI,MAAMX,EAAW,8DAA8D,EAGxGY,EAAc,+BACpB,MAAMR,EAAgBQ,EAAaD,CAAU,EAG7C,MAAMZ,EAAgB,OAAQ,CAAC,UAAW,MAAOa,CAAW,CAAC,EAG7D,MAAMb,EAAgB,KAAM,CAACa,CAAW,CAAC,EAGzC,MAAMb,EAAgB,OAAQ,CAAC,UAAW,QAAQ,CAAC,EACnD,MAAMA,EAAgB,OAAQ,CAAC,UAAW,UAAW,KAAM,cAAcO,CAAkB,GAAI,qBAAqBA,CAAkB,GAAI,yBAAyBA,CAAkB,EAAE,CAAC,EAExL,MAAML,EAAYO,EAAmB,CAAE,UAAW,EAAK,CAAC,EAExD,GAAI,CACF,MAAMN,EAAcK,EAAiBE,CAAY,CACnD,OAASI,EAAe,CACtB,GAAIA,EAAc,OAAS,SACzB,cAAQ,MAAM,0BAA2BA,CAAa,EAChDA,CAEV,CAEA,GAAI,CACF,MAAMV,EAAaO,EAAqBd,EAAG,UAAU,IAAI,CAC3D,OAASkB,EAAc,CACrB,cAAQ,MAAM,yCAA0CA,CAAY,EAC9DA,CACR,CAEA,QAAQ,OAAO,MAAM,uBAAuB,CAC9C,OAASC,EAAO,CACd,cAAQ,MAAM,+BAAgCA,CAAK,EAC7CA,CACR,CACF,EAEA,IAAOC,EAAQX",
6
+ "names": ["promisify", "execFile", "exec", "fs", "os", "path", "exec_file_async", "exec_async", "mkdir_async", "symlink_async", "access_async", "writeFile_async", "download_postgresql_linux", "postgresql_version", "system_bin_path", "joystick_bin_path", "symlink_path", "postgres_executable", "keyContent", "tempKeyPath", "symlink_error", "access_error", "error", "linux_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import e from"fs";import t from"path";import h from"os";import{promisify as d}from"util";import{pipeline as b}from"stream";import{execFile as y}from"child_process";const g=d(b),j=d(y),k=async(o=null)=>{const i=t.join(h.homedir(),".joystick","databases","postgresql"),s=t.join(i,"bin"),n=t.join(s,"bin");if(await q(i))return;await v(i,s,n);const p="https://get.enterprisedb.com/postgresql/postgresql-16.0-1-osx-binaries.zip",f=t.basename(new URL(p).pathname),c=t.join(i,f);process.loader.print("PostgreSQL not found. Downloading... (this may take a few minutes)"),await x(p,c),process.loader.print("Installing PostgreSQL...");const r=t.join(i,"temp");await e.promises.mkdir(r,{recursive:!0}),await j("unzip",["-q",c,"-d",r]);const m=t.join(r,"pgsql","bin"),w=await e.promises.readdir(m);for(const a of w)await e.promises.rename(t.join(m,a),t.join(n,a));const u=["share","lib","include"];for(const a of u){const l=t.join(r,"pgsql",a),_=t.join(s,a);await e.promises.access(l).then(()=>!0).catch(()=>!1)&&await e.promises.rename(l,_)}await e.promises.unlink(c),await e.promises.rm(r,{recursive:!0,force:!0}),await L(n),process.loader.print("PostgreSQL installed!")},x=async(o,i)=>{const s=await fetch(o);if(!s.ok)throw new Error(`Failed to download: ${s.statusText}`);await g(s.body,e.createWriteStream(i))},q=async o=>{try{return await e.promises.access(o),!0}catch{return!1}},v=async(o,i,s)=>{await e.promises.mkdir(o,{recursive:!0}),await e.promises.mkdir(i,{recursive:!0}),await e.promises.mkdir(s,{recursive:!0})},L=async o=>{const i=await e.promises.readdir(o);for(const s of i)await e.promises.chmod(t.join(o,s),"755")};var D=k;export{D as default};
2
+ //# sourceMappingURL=macos.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/lib/development_server/databases/postgresql/installers/macos.js"],
4
+ "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { promisify } from 'util';\nimport { pipeline } from 'stream';\nimport { execFile } from 'child_process';\n\nconst streamPipeline = promisify(pipeline);\nconst execFileAsync = promisify(execFile);\n\nconst download_postgresql_macos = async (version_path = null) => {\n const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'postgresql');\n const bin_directory = path.join(base_directory, 'bin');\n const bin_bin_directory = path.join(bin_directory, 'bin');\n\n if (await check_if_file_exists(base_directory)) {\n return;\n }\n\n await create_directories(base_directory, bin_directory, bin_bin_directory);\n\n const download_url = 'https://get.enterprisedb.com/postgresql/postgresql-16.0-1-osx-binaries.zip';\n const file_name = path.basename(new URL(download_url).pathname);\n const file_path = path.join(base_directory, file_name);\n\n process.loader.print('PostgreSQL not found. Downloading... (this may take a few minutes)');\n await download_file(download_url, file_path);\n\n process.loader.print('Installing PostgreSQL...');\n \n // Extract PostgreSQL\n const temp_directory = path.join(base_directory, 'temp');\n await fs.promises.mkdir(temp_directory, { recursive: true });\n await execFileAsync('unzip', ['-q', file_path, '-d', temp_directory]);\n\n // Move binaries to bin/bin\n const extracted_bin_path = path.join(temp_directory, 'pgsql', 'bin');\n const files = await fs.promises.readdir(extracted_bin_path);\n for (const file of files) {\n await fs.promises.rename(path.join(extracted_bin_path, file), path.join(bin_bin_directory, file));\n }\n\n // Move other necessary directories\n const directories_to_move = ['share', 'lib', 'include'];\n for (const dir of directories_to_move) {\n const src_path = path.join(temp_directory, 'pgsql', dir);\n const dest_path = path.join(bin_directory, dir);\n if (await fs.promises.access(src_path).then(() => true).catch(() => false)) {\n await fs.promises.rename(src_path, dest_path);\n }\n }\n\n // Clean up\n await fs.promises.unlink(file_path);\n await fs.promises.rm(temp_directory, { recursive: true, force: true });\n\n await make_file_executable(bin_bin_directory);\n process.loader.print('PostgreSQL installed!');\n};\n\nconst download_file = async (url, file_path) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.statusText}`);\n }\n await streamPipeline(response.body, fs.createWriteStream(file_path));\n};\n\nconst check_if_file_exists = async (file_path) => {\n try {\n await fs.promises.access(file_path);\n return true;\n } catch {\n return false;\n }\n};\n\nconst create_directories = async (base_directory, bin_directory, bin_bin_directory) => {\n await fs.promises.mkdir(base_directory, { recursive: true });\n await fs.promises.mkdir(bin_directory, { recursive: true });\n await fs.promises.mkdir(bin_bin_directory, { recursive: true });\n};\n\nconst make_file_executable = async (directory) => {\n const files = await fs.promises.readdir(directory);\n for (const file of files) {\n await fs.promises.chmod(path.join(directory, file), '755');\n }\n};\n\nexport default download_postgresql_macos;"],
5
+ "mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAU,OACjB,OAAOC,MAAQ,KACf,OAAS,aAAAC,MAAiB,OAC1B,OAAS,YAAAC,MAAgB,SACzB,OAAS,YAAAC,MAAgB,gBAEzB,MAAMC,EAAiBH,EAAUC,CAAQ,EACnCG,EAAgBJ,EAAUE,CAAQ,EAElCG,EAA4B,MAAOC,EAAe,OAAS,CAC/D,MAAMC,EAAiBT,EAAK,KAAKC,EAAG,QAAQ,EAAG,YAAa,YAAa,YAAY,EAC/ES,EAAgBV,EAAK,KAAKS,EAAgB,KAAK,EAC/CE,EAAoBX,EAAK,KAAKU,EAAe,KAAK,EAExD,GAAI,MAAME,EAAqBH,CAAc,EAC3C,OAGF,MAAMI,EAAmBJ,EAAgBC,EAAeC,CAAiB,EAEzE,MAAMG,EAAe,6EACfC,EAAYf,EAAK,SAAS,IAAI,IAAIc,CAAY,EAAE,QAAQ,EACxDE,EAAYhB,EAAK,KAAKS,EAAgBM,CAAS,EAErD,QAAQ,OAAO,MAAM,oEAAoE,EACzF,MAAME,EAAcH,EAAcE,CAAS,EAE3C,QAAQ,OAAO,MAAM,0BAA0B,EAG/C,MAAME,EAAiBlB,EAAK,KAAKS,EAAgB,MAAM,EACvD,MAAMV,EAAG,SAAS,MAAMmB,EAAgB,CAAE,UAAW,EAAK,CAAC,EAC3D,MAAMZ,EAAc,QAAS,CAAC,KAAMU,EAAW,KAAME,CAAc,CAAC,EAGpE,MAAMC,EAAqBnB,EAAK,KAAKkB,EAAgB,QAAS,KAAK,EAC7DE,EAAQ,MAAMrB,EAAG,SAAS,QAAQoB,CAAkB,EAC1D,UAAWE,KAAQD,EACjB,MAAMrB,EAAG,SAAS,OAAOC,EAAK,KAAKmB,EAAoBE,CAAI,EAAGrB,EAAK,KAAKW,EAAmBU,CAAI,CAAC,EAIlG,MAAMC,EAAsB,CAAC,QAAS,MAAO,SAAS,EACtD,UAAWC,KAAOD,EAAqB,CACrC,MAAME,EAAWxB,EAAK,KAAKkB,EAAgB,QAASK,CAAG,EACjDE,EAAYzB,EAAK,KAAKU,EAAea,CAAG,EAC1C,MAAMxB,EAAG,SAAS,OAAOyB,CAAQ,EAAE,KAAK,IAAM,EAAI,EAAE,MAAM,IAAM,EAAK,GACvE,MAAMzB,EAAG,SAAS,OAAOyB,EAAUC,CAAS,CAEhD,CAGA,MAAM1B,EAAG,SAAS,OAAOiB,CAAS,EAClC,MAAMjB,EAAG,SAAS,GAAGmB,EAAgB,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAErE,MAAMQ,EAAqBf,CAAiB,EAC5C,QAAQ,OAAO,MAAM,uBAAuB,CAC9C,EAEMM,EAAgB,MAAOU,EAAKX,IAAc,CAC9C,MAAMY,EAAW,MAAM,MAAMD,CAAG,EAChC,GAAI,CAACC,EAAS,GACZ,MAAM,IAAI,MAAM,uBAAuBA,EAAS,UAAU,EAAE,EAE9D,MAAMvB,EAAeuB,EAAS,KAAM7B,EAAG,kBAAkBiB,CAAS,CAAC,CACrE,EAEMJ,EAAuB,MAAOI,GAAc,CAChD,GAAI,CACF,aAAMjB,EAAG,SAAS,OAAOiB,CAAS,EAC3B,EACT,MAAQ,CACN,MAAO,EACT,CACF,EAEMH,EAAqB,MAAOJ,EAAgBC,EAAeC,IAAsB,CACrF,MAAMZ,EAAG,SAAS,MAAMU,EAAgB,CAAE,UAAW,EAAK,CAAC,EAC3D,MAAMV,EAAG,SAAS,MAAMW,EAAe,CAAE,UAAW,EAAK,CAAC,EAC1D,MAAMX,EAAG,SAAS,MAAMY,EAAmB,CAAE,UAAW,EAAK,CAAC,CAChE,EAEMe,EAAuB,MAAOG,GAAc,CAChD,MAAMT,EAAQ,MAAMrB,EAAG,SAAS,QAAQ8B,CAAS,EACjD,UAAWR,KAAQD,EACjB,MAAMrB,EAAG,SAAS,MAAMC,EAAK,KAAK6B,EAAWR,CAAI,EAAG,KAAK,CAE7D,EAEA,IAAOS,EAAQvB",
6
+ "names": ["fs", "path", "os", "promisify", "pipeline", "execFile", "streamPipeline", "execFileAsync", "download_postgresql_macos", "version_path", "base_directory", "bin_directory", "bin_bin_directory", "check_if_file_exists", "create_directories", "download_url", "file_name", "file_path", "download_file", "temp_directory", "extracted_bin_path", "files", "file", "directories_to_move", "dir", "src_path", "dest_path", "make_file_executable", "url", "response", "directory", "macos_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import e from"fs";import t from"path";import h from"os";import{promisify as d}from"util";import{pipeline as b}from"stream";import{execFile as y}from"child_process";const g=d(b),j=d(y),k=async(s=null)=>{const i=t.join(h.homedir(),".joystick","databases","postgresql"),r=t.join(i,"bin"),c=t.join(r,"bin");if(await x(i))return;await q(i,r,c);const p="https://get.enterprisedb.com/postgresql/postgresql-16.0-1-windows-x64-binaries.zip",w=t.basename(new URL(p).pathname),n=t.join(i,w);process.loader.print("PostgreSQL not found. Downloading... (this may take a few minutes)"),await v(p,n),process.loader.print("Installing PostgreSQL...");const o=t.join(i,"temp");await e.promises.mkdir(o,{recursive:!0}),await j("powershell",["Expand-Archive","-Path",n,"-DestinationPath",o]);const m=t.join(o,"pgsql","bin"),f=await e.promises.readdir(m);for(const a of f)await e.promises.rename(t.join(m,a),t.join(c,a));const u=["share","lib","include"];for(const a of u){const l=t.join(o,"pgsql",a),_=t.join(r,a);await e.promises.access(l).then(()=>!0).catch(()=>!1)&&await e.promises.rename(l,_)}await e.promises.unlink(n),await e.promises.rm(o,{recursive:!0,force:!0}),process.loader.print("PostgreSQL installed!")},v=async(s,i)=>{const r=await fetch(s);if(!r.ok)throw new Error(`Failed to download: ${r.statusText}`);await g(r.body,e.createWriteStream(i))},x=async s=>{try{return await e.promises.access(s),!0}catch{return!1}},q=async(s,i,r)=>{await e.promises.mkdir(s,{recursive:!0}),await e.promises.mkdir(i,{recursive:!0}),await e.promises.mkdir(r,{recursive:!0})};var D=k;export{D as default};
2
+ //# sourceMappingURL=windows.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/lib/development_server/databases/postgresql/installers/windows.js"],
4
+ "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { promisify } from 'util';\nimport { pipeline } from 'stream';\nimport { execFile } from 'child_process';\n\nconst streamPipeline = promisify(pipeline);\nconst execFileAsync = promisify(execFile);\n\nconst download_postgresql_windows = async (version_path = null) => {\n const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'postgresql');\n const bin_directory = path.join(base_directory, 'bin');\n const bin_bin_directory = path.join(bin_directory, 'bin');\n\n if (await check_if_file_exists(base_directory)) {\n return;\n }\n\n await create_directories(base_directory, bin_directory, bin_bin_directory);\n\n const download_url = 'https://get.enterprisedb.com/postgresql/postgresql-16.0-1-windows-x64-binaries.zip';\n const file_name = path.basename(new URL(download_url).pathname);\n const file_path = path.join(base_directory, file_name);\n\n process.loader.print('PostgreSQL not found. Downloading... (this may take a few minutes)');\n await download_file(download_url, file_path);\n\n process.loader.print('Installing PostgreSQL...');\n \n // Extract PostgreSQL\n const temp_directory = path.join(base_directory, 'temp');\n await fs.promises.mkdir(temp_directory, { recursive: true });\n await execFileAsync('powershell', ['Expand-Archive', '-Path', file_path, '-DestinationPath', temp_directory]);\n\n // Move binaries to bin/bin\n const extracted_bin_path = path.join(temp_directory, 'pgsql', 'bin');\n const files = await fs.promises.readdir(extracted_bin_path);\n for (const file of files) {\n await fs.promises.rename(path.join(extracted_bin_path, file), path.join(bin_bin_directory, file));\n }\n\n // Move other necessary directories\n const directories_to_move = ['share', 'lib', 'include'];\n for (const dir of directories_to_move) {\n const src_path = path.join(temp_directory, 'pgsql', dir);\n const dest_path = path.join(bin_directory, dir);\n if (await fs.promises.access(src_path).then(() => true).catch(() => false)) {\n await fs.promises.rename(src_path, dest_path);\n }\n }\n\n // Clean up\n await fs.promises.unlink(file_path);\n await fs.promises.rm(temp_directory, { recursive: true, force: true });\n\n process.loader.print('PostgreSQL installed!');\n};\n\nconst download_file = async (url, file_path) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.statusText}`);\n }\n await streamPipeline(response.body, fs.createWriteStream(file_path));\n};\n\nconst check_if_file_exists = async (file_path) => {\n try {\n await fs.promises.access(file_path);\n return true;\n } catch {\n return false;\n }\n};\n\nconst create_directories = async (base_directory, bin_directory, bin_bin_directory) => {\n await fs.promises.mkdir(base_directory, { recursive: true });\n await fs.promises.mkdir(bin_directory, { recursive: true });\n await fs.promises.mkdir(bin_bin_directory, { recursive: true });\n};\n\nexport default download_postgresql_windows;"],
5
+ "mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAU,OACjB,OAAOC,MAAQ,KACf,OAAS,aAAAC,MAAiB,OAC1B,OAAS,YAAAC,MAAgB,SACzB,OAAS,YAAAC,MAAgB,gBAEzB,MAAMC,EAAiBH,EAAUC,CAAQ,EACnCG,EAAgBJ,EAAUE,CAAQ,EAElCG,EAA8B,MAAOC,EAAe,OAAS,CACjE,MAAMC,EAAiBT,EAAK,KAAKC,EAAG,QAAQ,EAAG,YAAa,YAAa,YAAY,EAC/ES,EAAgBV,EAAK,KAAKS,EAAgB,KAAK,EAC/CE,EAAoBX,EAAK,KAAKU,EAAe,KAAK,EAExD,GAAI,MAAME,EAAqBH,CAAc,EAC3C,OAGF,MAAMI,EAAmBJ,EAAgBC,EAAeC,CAAiB,EAEzE,MAAMG,EAAe,qFACfC,EAAYf,EAAK,SAAS,IAAI,IAAIc,CAAY,EAAE,QAAQ,EACxDE,EAAYhB,EAAK,KAAKS,EAAgBM,CAAS,EAErD,QAAQ,OAAO,MAAM,oEAAoE,EACzF,MAAME,EAAcH,EAAcE,CAAS,EAE3C,QAAQ,OAAO,MAAM,0BAA0B,EAG/C,MAAME,EAAiBlB,EAAK,KAAKS,EAAgB,MAAM,EACvD,MAAMV,EAAG,SAAS,MAAMmB,EAAgB,CAAE,UAAW,EAAK,CAAC,EAC3D,MAAMZ,EAAc,aAAc,CAAC,iBAAkB,QAASU,EAAW,mBAAoBE,CAAc,CAAC,EAG5G,MAAMC,EAAqBnB,EAAK,KAAKkB,EAAgB,QAAS,KAAK,EAC7DE,EAAQ,MAAMrB,EAAG,SAAS,QAAQoB,CAAkB,EAC1D,UAAWE,KAAQD,EACjB,MAAMrB,EAAG,SAAS,OAAOC,EAAK,KAAKmB,EAAoBE,CAAI,EAAGrB,EAAK,KAAKW,EAAmBU,CAAI,CAAC,EAIlG,MAAMC,EAAsB,CAAC,QAAS,MAAO,SAAS,EACtD,UAAWC,KAAOD,EAAqB,CACrC,MAAME,EAAWxB,EAAK,KAAKkB,EAAgB,QAASK,CAAG,EACjDE,EAAYzB,EAAK,KAAKU,EAAea,CAAG,EAC1C,MAAMxB,EAAG,SAAS,OAAOyB,CAAQ,EAAE,KAAK,IAAM,EAAI,EAAE,MAAM,IAAM,EAAK,GACvE,MAAMzB,EAAG,SAAS,OAAOyB,EAAUC,CAAS,CAEhD,CAGA,MAAM1B,EAAG,SAAS,OAAOiB,CAAS,EAClC,MAAMjB,EAAG,SAAS,GAAGmB,EAAgB,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAErE,QAAQ,OAAO,MAAM,uBAAuB,CAC9C,EAEMD,EAAgB,MAAOS,EAAKV,IAAc,CAC9C,MAAMW,EAAW,MAAM,MAAMD,CAAG,EAChC,GAAI,CAACC,EAAS,GACZ,MAAM,IAAI,MAAM,uBAAuBA,EAAS,UAAU,EAAE,EAE9D,MAAMtB,EAAesB,EAAS,KAAM5B,EAAG,kBAAkBiB,CAAS,CAAC,CACrE,EAEMJ,EAAuB,MAAOI,GAAc,CAChD,GAAI,CACF,aAAMjB,EAAG,SAAS,OAAOiB,CAAS,EAC3B,EACT,MAAQ,CACN,MAAO,EACT,CACF,EAEMH,EAAqB,MAAOJ,EAAgBC,EAAeC,IAAsB,CACrF,MAAMZ,EAAG,SAAS,MAAMU,EAAgB,CAAE,UAAW,EAAK,CAAC,EAC3D,MAAMV,EAAG,SAAS,MAAMW,EAAe,CAAE,UAAW,EAAK,CAAC,EAC1D,MAAMX,EAAG,SAAS,MAAMY,EAAmB,CAAE,UAAW,EAAK,CAAC,CAChE,EAEA,IAAOiB,EAAQrB",
6
+ "names": ["fs", "path", "os", "promisify", "pipeline", "execFile", "streamPipeline", "execFileAsync", "download_postgresql_windows", "version_path", "base_directory", "bin_directory", "bin_bin_directory", "check_if_file_exists", "create_directories", "download_url", "file_name", "file_path", "download_file", "temp_directory", "extracted_bin_path", "files", "file", "directories_to_move", "dir", "src_path", "dest_path", "url", "response", "windows_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import o from"./mongodb/connect.js";import n from"./postgresql/connect.js";const e={mongodb:{name:"MongoDB",connect:o},postgresql:{name:"PostgreSQL",connect:n}};var c=e;export{c as default};
2
+ //# sourceMappingURL=provider_map.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/lib/development_server/databases/provider_map.js"],
4
+ "sourcesContent": ["import connect_mongodb from './mongodb/connect.js';\nimport connect_postgresql from './postgresql/connect.js';\n\nconst provider_map = {\n mongodb: {\n name: 'MongoDB',\n connect: connect_mongodb,\n },\n postgresql: {\n name: 'PostgreSQL',\n connect: connect_postgresql,\n },\n};\n\nexport default provider_map;\n"],
5
+ "mappings": "AAAA,OAAOA,MAAqB,uBAC5B,OAAOC,MAAwB,0BAE/B,MAAMC,EAAe,CACnB,QAAS,CACP,KAAM,UACN,QAASF,CACX,EACA,WAAY,CACV,KAAM,aACN,QAASC,CACX,CACF,EAEA,IAAOE,EAAQD",
6
+ "names": ["connect_mongodb", "connect_postgresql", "provider_map", "provider_map_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ const r=()=>{const t=[],o=Object.entries(process._databases||{});for(let s=0;s<o?.length;s+=1){const[d,e]=o[s];if(e?.pid&&t.push(e.pid),!e?.pid){const c=Object.entries(e);for(let n=0;n<c?.length;n+=1){const[p,i]=c[n];i?.pid&&t.push(i.pid)}}}return t};var a=r;export{a as default};
2
+ //# sourceMappingURL=get_database_process_ids.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/development_server/get_database_process_ids.js"],
4
+ "sourcesContent": ["const get_database_process_ids = () => {\n const database_process_ids = [];\n const databases = Object.entries(process._databases || {});\n\n for (let i = 0; i < databases?.length; i += 1) {\n const [_provider, provider_connection] = databases[i];\n\n if (provider_connection?.pid) {\n database_process_ids.push(provider_connection.pid);\n }\n\n if (!provider_connection?.pid) {\n const provider_connections = Object.entries(provider_connection);\n\n for (let pc = 0; pc < provider_connections?.length; pc += 1) {\n const [_connection_name, connection] = provider_connections[pc];\n\n if (connection?.pid) {\n database_process_ids.push(connection.pid);\n }\n }\n }\n }\n\n return database_process_ids;\n};\n\nexport default get_database_process_ids;"],
5
+ "mappings": "AAAA,MAAMA,EAA2B,IAAM,CACrC,MAAMC,EAAuB,CAAC,EACxBC,EAAY,OAAO,QAAQ,QAAQ,YAAc,CAAC,CAAC,EAEzD,QAASC,EAAI,EAAGA,EAAID,GAAW,OAAQC,GAAK,EAAG,CAC7C,KAAM,CAACC,EAAWC,CAAmB,EAAIH,EAAUC,CAAC,EAMpD,GAJIE,GAAqB,KACvBJ,EAAqB,KAAKI,EAAoB,GAAG,EAG/C,CAACA,GAAqB,IAAK,CAC7B,MAAMC,EAAuB,OAAO,QAAQD,CAAmB,EAE/D,QAASE,EAAK,EAAGA,EAAKD,GAAsB,OAAQC,GAAM,EAAG,CAC3D,KAAM,CAACC,EAAkBC,CAAU,EAAIH,EAAqBC,CAAE,EAE1DE,GAAY,KACdR,EAAqB,KAAKQ,EAAW,GAAG,CAE5C,CACF,CACF,CAEA,OAAOR,CACT,EAEA,IAAOS,EAAQV",
6
+ "names": ["get_database_process_ids", "database_process_ids", "databases", "i", "_provider", "provider_connection", "provider_connections", "pc", "_connection_name", "connection", "get_database_process_ids_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import g from"fs";import p from"../load_settings.js";import _ from"../types.js";import u from"../dynamic_import.js";const m=await p(process.env.NODE_ENV),h=async(n="",a="",t="")=>{const r=await u(`${process.cwd()}/${a}/i18n/${n}?v=${new Date().getTime()}`);if(r&&_.is_object(r)){const s=r[t];return s||r}return{}},d=(n="",a=[])=>{let t=[];n&&t.push(n);const r=a?.filter(e=>!e?.includes("*"));return t.push(...r),t.push(m?.config?.i18n?.defaultLanguage),t?.flatMap(e=>{const s=[e];return e?.length===2&&s.push(`${e.substring(0,2)}-`),e?.length>2&&(s.push(`${e?.split("-")[0]}`),s.push(`${e?.split("-")[0]}-`)),s})?.map(e=>e[e?.length-1]==="-"?new RegExp(`^${e}[A-Z]+.js`,"g"):new RegExp(`^${e}.js`,"g"))},w=(n="")=>n.split(",")?.map(t=>t.split(";")[0]),$=async(n="",a="",t={})=>{const r=g.readdirSync(`${n}/i18n`),e=w(t?.headers["accept-language"]),s=d(t?.context?.user?.language,e);let o=null;for(let i=0;i<s.length;i+=1){const c=s[i],l=r.find(f=>!!f.match(c));if(l){o=l;break}}return await h(o,n,a)};var j=$;export{j as default};
2
+ //# sourceMappingURL=get_translations.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/development_server/get_translations.js"],
4
+ "sourcesContent": ["import fs from 'fs';\nimport load_settings from \"../load_settings.js\";\nimport types from '../types.js';\nimport dynamic_import from '../dynamic_import.js';\n\nconst settings = await load_settings(process.env.NODE_ENV);\n\nconst get_translations_file = async (language_file_path = '', joystick_build_path = '', render_component_path = '') => {\n const language_file = await dynamic_import(`${process.cwd()}/${joystick_build_path}/i18n/${language_file_path}?v=${new Date().getTime()}`);\n const is_valid_language_file = language_file && types.is_object(language_file);\n\n if (is_valid_language_file) {\n const translations_for_page = language_file[render_component_path];\n return translations_for_page ? translations_for_page : language_file;\n }\n\n return {};\n};\n\nconst get_language_preference_regexes = (user_language = '', browser_languages = []) => {\n let language_preferences = [];\n\n if (user_language) {\n language_preferences.push(user_language);\n }\n\n const filtered_browser_languages = browser_languages?.filter((language) => {\n return !language?.includes('*');\n });\n\n language_preferences.push(...filtered_browser_languages);\n language_preferences.push(settings?.config?.i18n?.defaultLanguage);\n\n return language_preferences?.flatMap((language) => {\n const variants = [language];\n\n if (language?.length === 2) {\n variants.push(`${language.substring(0, 2)}-`);\n }\n\n if (language?.length > 2) {\n variants.push(`${language?.split('-')[0]}`);\n variants.push(`${language?.split('-')[0]}-`);\n }\n\n return variants;\n })?.map((language_string) => {\n const last_character = language_string[language_string?.length - 1];\n\n if (last_character === '-') {\n return new RegExp(`^${language_string}[A-Z]+.js`, 'g');\n }\n\n return new RegExp(`^${language_string}.js`, 'g');\n });\n};\n\nconst parse_browser_languages = (languages = '') => {\n const raw_languages = languages.split(',');\n return raw_languages?.map((raw_language) => raw_language.split(';')[0]);\n};\n\nconst get_translations = async (joystick_build_path = '', render_component_path = '', req = {}) => {\n const language_files = fs.readdirSync(`${joystick_build_path}/i18n`);\n const browser_languages = parse_browser_languages(req?.headers['accept-language']);\n const language_preferences = get_language_preference_regexes(req?.context?.user?.language, browser_languages);\n\n let matching_file = null;\n\n for (let i = 0; i < language_preferences.length; i += 1) {\n const language_regex = language_preferences[i];\n const match = language_files.find((language_file) => !!language_file.match(language_regex));\n\n if (match) {\n matching_file = match;\n break;\n }\n }\n\n const translations_file = await get_translations_file(matching_file, joystick_build_path, render_component_path);\n\n return translations_file;\n};\n\nexport default get_translations;\n"],
5
+ "mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAmB,sBAC1B,OAAOC,MAAW,cAClB,OAAOC,MAAoB,uBAE3B,MAAMC,EAAW,MAAMH,EAAc,QAAQ,IAAI,QAAQ,EAEnDI,EAAwB,MAAOC,EAAqB,GAAIC,EAAsB,GAAIC,EAAwB,KAAO,CACrH,MAAMC,EAAgB,MAAMN,EAAe,GAAG,QAAQ,IAAI,CAAC,IAAII,CAAmB,SAASD,CAAkB,MAAM,IAAI,KAAK,EAAE,QAAQ,CAAC,EAAE,EAGzI,GAF+BG,GAAiBP,EAAM,UAAUO,CAAa,EAEjD,CAC1B,MAAMC,EAAwBD,EAAcD,CAAqB,EACjE,OAAOE,GAAgDD,CACzD,CAEA,MAAO,CAAC,CACV,EAEME,EAAkC,CAACC,EAAgB,GAAIC,EAAoB,CAAC,IAAM,CACtF,IAAIC,EAAuB,CAAC,EAExBF,GACFE,EAAqB,KAAKF,CAAa,EAGzC,MAAMG,EAA6BF,GAAmB,OAAQG,GACrD,CAACA,GAAU,SAAS,GAAG,CAC/B,EAED,OAAAF,EAAqB,KAAK,GAAGC,CAA0B,EACvDD,EAAqB,KAAKV,GAAU,QAAQ,MAAM,eAAe,EAE1DU,GAAsB,QAASE,GAAa,CACjD,MAAMC,EAAW,CAACD,CAAQ,EAE1B,OAAIA,GAAU,SAAW,GACvBC,EAAS,KAAK,GAAGD,EAAS,UAAU,EAAG,CAAC,CAAC,GAAG,EAG1CA,GAAU,OAAS,IACrBC,EAAS,KAAK,GAAGD,GAAU,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,EAC1CC,EAAS,KAAK,GAAGD,GAAU,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,GAGtCC,CACT,CAAC,GAAG,IAAKC,GACgBA,EAAgBA,GAAiB,OAAS,CAAC,IAE3C,IACd,IAAI,OAAO,IAAIA,CAAe,YAAa,GAAG,EAGhD,IAAI,OAAO,IAAIA,CAAe,MAAO,GAAG,CAChD,CACH,EAEMC,EAA0B,CAACC,EAAY,KACrBA,EAAU,MAAM,GAAG,GACnB,IAAKC,GAAiBA,EAAa,MAAM,GAAG,EAAE,CAAC,CAAC,EAGlEC,EAAmB,MAAOf,EAAsB,GAAIC,EAAwB,GAAIe,EAAM,CAAC,IAAM,CACjG,MAAMC,EAAiBxB,EAAG,YAAY,GAAGO,CAAmB,OAAO,EAC7DM,EAAoBM,EAAwBI,GAAK,QAAQ,iBAAiB,CAAC,EAC3ET,EAAuBH,EAAgCY,GAAK,SAAS,MAAM,SAAUV,CAAiB,EAE5G,IAAIY,EAAgB,KAEpB,QAAS,EAAI,EAAG,EAAIX,EAAqB,OAAQ,GAAK,EAAG,CACvD,MAAMY,EAAiBZ,EAAqB,CAAC,EACvCa,EAAQH,EAAe,KAAMf,GAAkB,CAAC,CAACA,EAAc,MAAMiB,CAAc,CAAC,EAE1F,GAAIC,EAAO,CACTF,EAAgBE,EAChB,KACF,CACF,CAIA,OAF0B,MAAMtB,EAAsBoB,EAAelB,EAAqBC,CAAqB,CAGjH,EAEA,IAAOoB,EAAQN",
6
+ "names": ["fs", "load_settings", "types", "dynamic_import", "settings", "get_translations_file", "language_file_path", "joystick_build_path", "render_component_path", "language_file", "translations_for_page", "get_language_preference_regexes", "user_language", "browser_languages", "language_preferences", "filtered_browser_languages", "language", "variants", "language_string", "parse_browser_languages", "languages", "raw_language", "get_translations", "req", "language_files", "matching_file", "language_regex", "match", "get_translations_default"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import p from"query-string";import{WebSocketServer as i}from"ws";import g from"../generate_id.js";import N from"./get_translations.js";process.title="joystick_hmr";var u=(()=>{const a=new i({port:parseInt(process.env.PORT,10)+1,path:"/_joystick/hmr"});process.on("message",async c=>{const e=JSON.parse(c);if(typeof process.HMR_CONNECTIONS=="object"&&e?.type){const t=Object.values(process.HMR_CONNECTIONS);for(let n=0;n<t?.length;n+=1){const s=t[n];s?.connection?.send&&(e?.type==="BUILD_ERROR"&&s.connection.send(JSON.stringify({type:"BUILD_ERROR"})),e?.type==="FILE_CHANGE"&&s.connection.send(JSON.stringify({type:"FILE_CHANGE",settings:e?.settings?{global:e?.settings?.global,public:e?.settings?.public}:null,i18n:e?.i18n_change?await N(".joystick/build",s?.page_component_path,{headers:{"accept-language":s?.browser_language},context:{user:{language:s?.user_language}}}):null,index_html_changed:e?.index_html_change,index_css_changed:e?.index_css_change,index_client_changed:e?.index_client_change})))}}}),a.on("connection",function(e,t={}){const n=g(16),[s,r]=t?.url?.split("?"),o=p.parse(r);process.HMR_CONNECTIONS={...process.HMR_CONNECTIONS||{},[n]:{connection:e,browser_language:o?.browser_language,user_language:o?.user_language,page_component_path:o?.page_component_path}},Object.keys(process.HMR_CONNECTIONS||{})?.length>0&&process.send({type:"HAS_HMR_CONNECTIONS"}),e.on("message",_=>{JSON.parse(_)?.type==="HMR_UPDATE_COMPLETE"&&process.send({type:"HMR_UPDATE_COMPLETE"})}),e.on("close",()=>{process.HMR_CONNECTIONS[n]&&(delete process.HMR_CONNECTIONS[n],Object.keys(process.HMR_CONNECTIONS||{})?.length===0&&process.send({type:"HAS_NO_HMR_CONNECTIONS"}))})})})();export{u as default};
2
+ //# sourceMappingURL=hmr_server.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/lib/development_server/hmr_server.js"],
4
+ "sourcesContent": ["import queryString from 'query-string';\nimport { WebSocketServer } from \"ws\";\nimport generate_id from \"../generate_id.js\";\nimport get_translations from './get_translations.js';\n\nprocess.title = 'joystick_hmr';\n\nexport default (() => {\n const websocket_server = new WebSocketServer({\n port: parseInt(process.env.PORT, 10) + 1,\n path: \"/_joystick/hmr\",\n });\n\n process.on(\"message\", async (message) => {\n const parsed_message = JSON.parse(message);\n\n if (typeof process.HMR_CONNECTIONS === \"object\" && !!parsed_message?.type) {\n const connections = Object.values(process.HMR_CONNECTIONS);\n\n for (let i = 0; i < connections?.length; i += 1) {\n const connection = connections[i];\n\n if (connection?.connection?.send) {\n if (parsed_message?.type === 'BUILD_ERROR') {\n connection.connection.send(JSON.stringify({ type: 'BUILD_ERROR' }));\n }\n\n if (parsed_message?.type === 'FILE_CHANGE') {\n connection.connection.send(\n JSON.stringify({\n type: \"FILE_CHANGE\",\n settings: parsed_message?.settings ? {\n global: parsed_message?.settings?.global,\n public: parsed_message?.settings?.public,\n } : null,\n i18n: parsed_message?.i18n_change ? await get_translations('.joystick/build', connection?.page_component_path, {\n headers: {\n 'accept-language': connection?.browser_language,\n },\n context: {\n user: {\n language: connection?.user_language,\n },\n }\n }) : null,\n index_html_changed: parsed_message?.index_html_change,\n index_css_changed: parsed_message?.index_css_change,\n index_client_changed: parsed_message?.index_client_change,\n })\n );\n }\n }\n }\n }\n });\n\n websocket_server.on(\"connection\", function connection(websocket_connection, connection_request = {}) {\n const connection_id = generate_id(16);\n const [_path, params] = connection_request?.url?.split(\"?\");\n const connection_params = queryString.parse(params);\n\n process.HMR_CONNECTIONS = {\n ...(process.HMR_CONNECTIONS || {}),\n [connection_id]: {\n connection: websocket_connection,\n browser_language: connection_params?.browser_language,\n user_language: connection_params?.user_language,\n page_component_path: connection_params?.page_component_path,\n },\n };\n\n if (Object.keys(process.HMR_CONNECTIONS || {})?.length > 0) {\n process.send({ type: \"HAS_HMR_CONNECTIONS\" });\n }\n\n websocket_connection.on(\"message\", (message) => {\n const parsed_message = JSON.parse(message);\n\n if (parsed_message?.type === \"HMR_UPDATE_COMPLETE\") {\n process.send({ type: \"HMR_UPDATE_COMPLETE\" });\n }\n });\n\n websocket_connection.on(\"close\", () => {\n if (process.HMR_CONNECTIONS[connection_id]) {\n delete process.HMR_CONNECTIONS[connection_id];\n\n if (Object.keys(process.HMR_CONNECTIONS || {})?.length === 0) {\n process.send({ type: \"HAS_NO_HMR_CONNECTIONS\" });\n }\n }\n });\n });\n})();\n"],
5
+ "mappings": "AAAA,OAAOA,MAAiB,eACxB,OAAS,mBAAAC,MAAuB,KAChC,OAAOC,MAAiB,oBACxB,OAAOC,MAAsB,wBAE7B,QAAQ,MAAQ,eAEhB,IAAOC,GAAS,IAAM,CACpB,MAAMC,EAAmB,IAAIJ,EAAgB,CAC3C,KAAM,SAAS,QAAQ,IAAI,KAAM,EAAE,EAAI,EACvC,KAAM,gBACR,CAAC,EAED,QAAQ,GAAG,UAAW,MAAOK,GAAY,CACvC,MAAMC,EAAiB,KAAK,MAAMD,CAAO,EAEzC,GAAI,OAAO,QAAQ,iBAAoB,UAAcC,GAAgB,KAAM,CACzE,MAAMC,EAAc,OAAO,OAAO,QAAQ,eAAe,EAEzD,QAASC,EAAI,EAAGA,EAAID,GAAa,OAAQC,GAAK,EAAG,CAC/C,MAAMC,EAAaF,EAAYC,CAAC,EAE5BC,GAAY,YAAY,OACtBH,GAAgB,OAAS,eAC3BG,EAAW,WAAW,KAAK,KAAK,UAAU,CAAE,KAAM,aAAc,CAAC,CAAC,EAGhEH,GAAgB,OAAS,eAC3BG,EAAW,WAAW,KACpB,KAAK,UAAU,CACb,KAAM,cACN,SAAUH,GAAgB,SAAW,CACnC,OAAQA,GAAgB,UAAU,OAClC,OAAQA,GAAgB,UAAU,MACpC,EAAI,KACJ,KAAMA,GAAgB,YAAc,MAAMJ,EAAiB,kBAAmBO,GAAY,oBAAqB,CAC7G,QAAS,CACP,kBAAmBA,GAAY,gBACjC,EACA,QAAS,CACP,KAAM,CACJ,SAAUA,GAAY,aACxB,CACF,CACF,CAAC,EAAI,KACL,mBAAoBH,GAAgB,kBACpC,kBAAmBA,GAAgB,iBACnC,qBAAsBA,GAAgB,mBACxC,CAAC,CACH,EAGN,CACF,CACF,CAAC,EAEDF,EAAiB,GAAG,aAAc,SAAoBM,EAAsBC,EAAqB,CAAC,EAAG,CACnG,MAAMC,EAAgBX,EAAY,EAAE,EAC9B,CAACY,EAAOC,CAAM,EAAIH,GAAoB,KAAK,MAAM,GAAG,EACpDI,EAAoBhB,EAAY,MAAMe,CAAM,EAElD,QAAQ,gBAAkB,CACxB,GAAI,QAAQ,iBAAmB,CAAC,EAChC,CAACF,CAAa,EAAG,CACf,WAAYF,EACZ,iBAAkBK,GAAmB,iBACrC,cAAeA,GAAmB,cAClC,oBAAqBA,GAAmB,mBAC1C,CACF,EAEI,OAAO,KAAK,QAAQ,iBAAmB,CAAC,CAAC,GAAG,OAAS,GACvD,QAAQ,KAAK,CAAE,KAAM,qBAAsB,CAAC,EAG9CL,EAAqB,GAAG,UAAYL,GAAY,CACvB,KAAK,MAAMA,CAAO,GAErB,OAAS,uBAC3B,QAAQ,KAAK,CAAE,KAAM,qBAAsB,CAAC,CAEhD,CAAC,EAEDK,EAAqB,GAAG,QAAS,IAAM,CACjC,QAAQ,gBAAgBE,CAAa,IACvC,OAAO,QAAQ,gBAAgBA,CAAa,EAExC,OAAO,KAAK,QAAQ,iBAAmB,CAAC,CAAC,GAAG,SAAW,GACzD,QAAQ,KAAK,CAAE,KAAM,wBAAyB,CAAC,EAGrD,CAAC,CACH,CAAC,CACH,GAAG",
6
+ "names": ["queryString", "WebSocketServer", "generate_id", "get_translations", "hmr_server_default", "websocket_server", "message", "parsed_message", "connections", "i", "connection", "websocket_connection", "connection_request", "connection_id", "_path", "params", "connection_params"]
7
+ }
@@ -0,0 +1,11 @@
1
+ import i from"chalk";import m from"child_process";import x from"fs";import"os";import g,{dirname as O}from"path";import{fileURLToPath as b}from"url";import k from"util";import u from"./check_if_port_occupied.js";import n from"../cli_log.js";import p from"./get_database_process_ids.js";import S from"../get_platform_safe_path.js";import y from"../kill_port_process.js";import h from"../load_settings.js";import $ from"../loader.js";import _ from"../path_exists.js";import v from"../required_files.js";import j from"./start_app_server.js";import D from"./start_databases.js";import T from"./start_hmr_server.js";import R from"./watch_for_changes/index.js";import I from"../constants.js";import N from"./kill_process_ids.js";import H from"./run_tests.js";import C from"../debounce.js";import M from"./databases/download_database_binary.js";const{stat:A}=x.promises,P=k.promisify(m.exec),d=parseInt(process?.version?.split(".")[0]?.replace("v",""),10),V=b(import.meta.url),f=O(V),l=[],q=async(s=!1)=>{const e=p();await H({watch:s,__dirname:f,process_ids:[...l,...e],cleanup_process:process.cleanup_process})},L=(s=[],e=0,t="")=>{const r=["--no-warnings"];e<19&&r.push("--experimental-specifier-resolution=node");const o=m.fork(g.resolve(`${t}/cleanup.js`),[],{detached:!0,silent:!0});process.cleanup_process=o,process.on("SIGINT",async()=>{const c=p();o.send(JSON.stringify({process_ids:[...s,...c]})),process.exit()}),process.on("SIGTERM",async()=>{const c=p();o.send(JSON.stringify({process_ids:[...s,...c]})),process.exit()})},G=async(s=[])=>{const e=s?.find(a=>a?.path?.match(I.SETTINGS_FILE_NAME_REGEX)?.length>0),t=s?.find(a=>a?.path?.includes("i18n")),r=s?.find(a=>a?.path?.includes("index.html")),o=s?.find(a=>a?.path?.includes("index.css")||a?.path?.includes("css/")),c=s?.find(a=>a?.path?.includes("index.client.js"));process.hmr_server_process.send(JSON.stringify({type:"FILE_CHANGE",settings:e?await h(process.env.NODE_ENV):null,i18n_change:!!t,index_html_change:!!r,index_css_change:!!o,index_client_change:!!c}))},J=(s=0,e=!1,t={})=>{process.hmr_server_process.on("message",async r=>{["HAS_HMR_CONNECTIONS","HAS_NO_HMR_CONNECTIONS","HMR_UPDATE_COMPLETE"].includes(r?.type)||process.loader.print(r),r?.type==="HAS_HMR_CONNECTIONS"&&(process.hmr_server_process.has_connections=!0),r?.type==="HAS_NO_HMR_CONNECTIONS"&&(process.hmr_server_process.has_connections=!1),r?.type==="HMR_UPDATE_COMPLETE"&&process.app_server_process&&!process.app_server_restarting&&(process.app_server_restarting=!0,w(s,e,t))})},U=()=>{process.hmr_server_process.on("error",s=>{n(s.toString(),{level:"danger",docs:"https://github.com/cheatcode/joystick"})}),process.hmr_server_process.stdout.on("data",s=>{console.log(s.toString())}),process.hmr_server_process.stderr.on("data",s=>{n(s.toString(),{level:"danger",docs:"https://github.com/cheatcode/joystick"})})},F=(s=0,e="",t=!1,r={})=>{process.hmr_server_process=T(s,e),l.push(process.hmr_server_process?.pid),U(),J(s,t,r)},B=async(s={})=>{const e=await h(process.env.NODE_ENV),t=e?.config?.databases?JSON.stringify(e?.config?.databases):"",r=s?.config?.databases?JSON.stringify(s?.config?.databases):"";return t!==r},w=async(s=0,e=!1,t=null)=>{C(async()=>{if(await B(t)){const o=p();n(`Database configuration has changed in settings.${process.env.NODE_ENV}.json. Please restart your app to add, change, or remove databases.`,{level:"danger",docs:"https://cheatcode.co/docs/joystick/structure"}),N([process.hmr_server_process?.pid,process.app_server_process?.pid,...o]),process.exit(0)}else N([...process.app_server_process.external_process_ids||[]]),await y(process.env.PORT),E(s,e)},300)},z=(s=!1)=>{process.app_server_process.external_process_ids=[],process.app_server_process.on("message",e=>{e?.external_process_id&&(process.app_server_process.external_process_ids=[...process.app_server_process.external_process_ids||[],e?.external_process_id])}),process.app_server_process.on("error",e=>{n(e.toString(),{level:"danger",docs:"https://github.com/cheatcode/joystick"})}),process.app_server_process.stdout.on("data",e=>{const t=e.toString(),r=t.includes("App running at:");t&&r&&process.env.NODE_ENV!=="test"&&process.loader.print(t),t&&!r&&!t.includes("BUILD_ERROR")&&console.log(t),t&&r&&process.env.NODE_ENV==="test"&&q(s)}),process.app_server_process.stderr.on("data",e=>{n(e.toString(),{level:"danger",docs:"https://cheatcode.co/docs/joystick"})})},E=(s=0,e=!1)=>{process.app_server_process=j(s,e),l.push(process.app_server_process?.pid),z(e),process.app_server_restarting=!1},X=async(s={})=>{const e=s?.config?.databases?.map((t={})=>t?.provider);for(let t=0;t<e?.length;t+=1){const r=e[t];await M(r)}},K=(s={},e=2600)=>{process.title=s?.environment==="test"?"joystick_test":"joystick",process.project_folder=g.basename(process.cwd()),process.loader=new $,s?.environment==="test"&&process.loader.print("Initializing test environment..."),process.env.LOGS_PATH=s?.logs||null,process.env.NODE_ENV=s?.environment||"development",process.env.PORT=e,process.env.IS_DEBUG_MODE=s?.debug},Q=(s=2600)=>{n(`Port ${s} is already occupied. To start Joystick on this port, clear it and try again.`,{level:"danger"}),process.exit(0)},W=(s=2600)=>parseInt(s||2600,10),Y=async()=>{const s=S(`${process.cwd()}/.joystick/build`);await _(s)&&await P(`${process.platform==="win32"?"rmdir /s /q":"rm -rf"} ${s}`)},Z=async()=>{const s=[];for(let e=0;e<v?.length;e+=1){const t=v[e],r=await _(`${process.cwd()}/${t.path}`),o=r&&await A(`${process.cwd()}/${t.path}`);t&&t.type==="file"&&(!r||r&&!o.isFile())&&s.push({type:"file",path:t.path}),t&&t.type==="directory"&&(!r||r&&!o.isDirectory())&&s.push({type:"directory",path:t.path})}if(s?.length>0){const e=s?.filter(o=>o.type==="file"),t=s?.filter(o=>o.type==="directory");let r=`The following paths are missing and required in a Joystick project:
2
+
3
+ `;if(e?.length>0){r+=` ${i.yellow(">")} Required Files:
4
+
5
+ `;for(let o=0;o<e?.length;o+=1){const c=e[o],a=o+1===e?.length;r+=` ${i.red(`/${c.path}
6
+ ${a&&t?.length>0?`
7
+ `:""}`)}`}}if(t?.length>0){r+=` ${i.yellow(">")} Required Directories:
8
+
9
+ `;for(let o=0;o<t?.length;o+=1){const c=t[o];r+=` ${i.red(`/${c.path}
10
+ `)}`}}n(r,{level:"danger",docs:"https://cheatcode.co/docs/joystick/structure"}),process.exit(0)}},ss=async()=>{const s=await _(`${process.cwd()}/.joystick`),e=await _(`${process.cwd()}/tests`);process.env.NODE_ENV==="test"&&(!s||!e)&&(n("joystick test must be run in a directory with a .joystick folder and tests folder.",{level:"danger",docs:"https://cheatcode.co/docs/joystick/cli/test"}),process.exit(0)),process.env.NODE_ENV!=="test"&&!s&&(n("joystick start must be run in a directory with a .joystick folder.",{level:"danger",docs:"https://cheatcode.co/docs/joystick/cli/start"}),process.exit(0))},es=async(s={})=>{await ss(),await Z(),await Y();const e=W(s?.port),t=await u(e),r=await u(e+1);t&&Q(e),r&&y(e),K(s,e);const o=await h(process.env.NODE_ENV);await X(o),await D({environment:process.env.NODE_ENV,port:e,settings:o}),R({hot_module_reload:(c=[])=>G(c),restart_app_server:()=>w(d,s?.watch,o),start_app_server:()=>E(d,s?.watch),start_hmr_server:s?.environment!=="test"?()=>F(d,f,s?.watch,o):null},{excluded_paths:o?.config?.build?.excluded_paths,custom_copy_paths:o?.config?.build?.copy_paths?.map(c=>({path:c}))||[]}),L(l,d,f)};var $s=es;export{$s as default};
11
+ //# sourceMappingURL=index.js.map