@joystick.js/cli-canary 0.0.0-canary.66 → 0.0.0-canary.660

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 (563) hide show
  1. package/.build/getFilesToBuild.js +1 -1
  2. package/.build/index.js +3 -3
  3. package/dist/cli.js +1 -69
  4. package/dist/commands/build/definition.js +1 -0
  5. package/dist/commands/build/index.js +1 -0
  6. package/dist/commands/create/build_package_json.js +1 -0
  7. package/dist/commands/create/definition.js +1 -0
  8. package/dist/commands/create/index.js +2 -0
  9. package/dist/commands/create/template/api/index.js +6 -0
  10. package/dist/commands/create/template/email/base.css +1 -0
  11. package/dist/commands/create/template/email/base.html +1 -0
  12. package/dist/commands/create/template/email/reset_password.js +20 -0
  13. package/dist/commands/create/template/i18n/en-US.js +14 -0
  14. package/dist/commands/create/template/index.client.js +1 -0
  15. package/dist/commands/create/template/index.css +34 -0
  16. package/dist/{functions/create/templates → commands/create/template}/index.html +2 -3
  17. package/dist/{functions/create/templates → commands/create/template}/index.server.js +6 -6
  18. package/dist/commands/create/template/public/apple-touch-icon-152x152.png +0 -0
  19. package/dist/commands/create/template/public/favicon.ico +0 -0
  20. package/dist/commands/create/template/public/joystick_logo.webp +0 -0
  21. package/dist/{functions/create/templates → commands/create/template}/public/manifest.json +4 -4
  22. package/dist/commands/create/template/public/splash-screen-1024x1024.png +0 -0
  23. package/{src/functions/create/templates → dist/commands/create/template}/ui/components/button/index.js +14 -6
  24. package/{src/functions/create/templates → dist/commands/create/template}/ui/layouts/app/index.js +2 -2
  25. package/dist/commands/create/template/ui/pages/error/index.js +50 -0
  26. package/dist/commands/create/template/ui/pages/index/index.js +121 -0
  27. package/dist/commands/help/definition.js +1 -0
  28. package/dist/commands/help/index.js +19 -0
  29. package/dist/commands/index.js +1 -0
  30. package/dist/commands/logout/definition.js +1 -0
  31. package/dist/commands/logout/index.js +3 -0
  32. package/dist/commands/push/cdn_mirrors.js +1 -0
  33. package/dist/commands/push/check_if_settings_valid.js +1 -0
  34. package/dist/commands/push/create_version.js +1 -0
  35. package/dist/commands/push/definition.js +1 -0
  36. package/dist/commands/push/get_app_domain.js +1 -0
  37. package/dist/commands/push/get_deployment.js +1 -0
  38. package/dist/commands/push/get_provision_domain.js +1 -0
  39. package/dist/commands/push/get_session_token.js +1 -0
  40. package/dist/commands/push/get_settings_file.js +1 -0
  41. package/dist/commands/push/handle_initial_deployment.js +1 -0
  42. package/dist/commands/push/handle_version_deployment.js +1 -0
  43. package/dist/commands/push/index.js +8 -0
  44. package/dist/commands/push/prompts/confirm_deployment.js +17 -0
  45. package/dist/commands/push/prompts/session_token.js +5 -0
  46. package/dist/commands/push/upload_build_to_cdn.js +1 -0
  47. package/dist/commands/push/validate_deployment.js +1 -0
  48. package/dist/commands/push/validate_push_config.js +1 -0
  49. package/dist/commands/start/definition.js +1 -0
  50. package/dist/commands/start/index.js +1 -0
  51. package/dist/commands/test/definition.js +1 -0
  52. package/dist/commands/test/index.js +1 -0
  53. package/dist/commands/update/definition.js +1 -0
  54. package/dist/commands/update/index.js +1 -0
  55. package/dist/commands/use/definition.js +1 -0
  56. package/dist/commands/use/index.js +1 -0
  57. package/dist/index.js +1 -7
  58. package/dist/lib/build/browser_path_exclusions.js +1 -0
  59. package/dist/lib/build/browser_paths.js +1 -0
  60. package/dist/lib/build/build_files.js +3 -0
  61. package/dist/lib/build/copy_paths.js +1 -0
  62. package/dist/lib/build/get_code_frame.js +1 -0
  63. package/dist/lib/build/get_file_operation.js +1 -0
  64. package/dist/lib/build/get_files_to_build.js +1 -0
  65. package/dist/lib/build/get_path_platform.js +1 -0
  66. package/dist/lib/build/get_platform_safe_path.js +1 -0
  67. package/dist/lib/build/get_tar_ignore_list.js +2 -0
  68. package/dist/lib/build/index.js +3 -0
  69. package/dist/lib/build/master_ignore_list.js +1 -0
  70. package/dist/lib/build/minify_file.js +1 -0
  71. package/dist/lib/build/node_paths.js +1 -0
  72. package/dist/lib/build/on_warn.js +10 -0
  73. package/dist/lib/build/plugins/bootstrap_component.js +33 -0
  74. package/dist/lib/build/plugins/generate_file_dependency_map.js +1 -0
  75. package/dist/lib/build/plugins/index.js +1 -0
  76. package/dist/lib/build/plugins/set_component_id.js +2 -0
  77. package/dist/lib/build/plugins/update_file_map.js +1 -0
  78. package/dist/lib/build/plugins/warn_node_environment.js +3 -0
  79. package/dist/lib/cli_log.js +13 -0
  80. package/dist/lib/color_log.js +1 -0
  81. package/dist/lib/command_exists.js +1 -0
  82. package/dist/lib/constants.js +1 -4
  83. package/dist/lib/debounce.js +1 -0
  84. package/dist/lib/decrypt_buffer.js +1 -0
  85. package/dist/lib/development_server/ava_config.js +1 -0
  86. package/dist/lib/development_server/check_if_port_occupied.js +1 -0
  87. package/dist/lib/development_server/cleanup.js +1 -0
  88. package/dist/lib/development_server/databases/mongodb/available_query_parameters.js +1 -0
  89. package/dist/lib/development_server/databases/mongodb/build_connection_string.js +1 -0
  90. package/dist/lib/development_server/databases/mongodb/build_query_parameters.js +1 -0
  91. package/dist/lib/development_server/databases/mongodb/check_connection.js +2 -0
  92. package/dist/lib/development_server/databases/mongodb/connect.js +1 -0
  93. package/dist/lib/development_server/databases/mongodb/index.js +5 -0
  94. package/dist/lib/development_server/databases/postgresql/check_connection.js +2 -0
  95. package/dist/lib/development_server/databases/postgresql/connect.js +1 -0
  96. package/dist/lib/development_server/databases/postgresql/index.js +2 -0
  97. package/dist/lib/development_server/databases/provider_map.js +1 -0
  98. package/dist/lib/development_server/get_database_process_ids.js +1 -0
  99. package/dist/lib/development_server/get_translations.js +1 -0
  100. package/dist/lib/development_server/hmr_server.js +1 -0
  101. package/dist/lib/development_server/index.js +10 -0
  102. package/dist/lib/development_server/kill_process_ids.js +1 -0
  103. package/dist/lib/development_server/run_tests.js +2 -0
  104. package/dist/lib/development_server/start_app_server.js +1 -0
  105. package/dist/lib/development_server/start_databases.js +1 -0
  106. package/dist/lib/development_server/start_hmr_server.js +1 -0
  107. package/dist/lib/development_server/watch_for_changes/browser_path_exclusions.js +1 -0
  108. package/dist/lib/development_server/watch_for_changes/browser_paths.js +1 -0
  109. package/dist/lib/development_server/watch_for_changes/get_after_run_tasks.js +1 -0
  110. package/dist/lib/development_server/watch_for_changes/get_file_codependencies.js +1 -0
  111. package/dist/lib/development_server/watch_for_changes/get_platform_safe_path.js +1 -0
  112. package/dist/lib/development_server/watch_for_changes/index.js +1 -0
  113. package/dist/lib/development_server/watch_for_changes/node_paths.js +1 -0
  114. package/dist/lib/development_server/watch_for_changes/read_file_dependency_map.js +1 -0
  115. package/dist/lib/development_server/watch_for_changes/watch_paths.js +1 -0
  116. package/dist/lib/dynamic_import.js +1 -0
  117. package/dist/lib/encrypt_buffer.js +1 -0
  118. package/dist/lib/generate_id.js +1 -0
  119. package/dist/lib/get_files_in_path.js +1 -0
  120. package/dist/lib/get_platform_safe_path.js +1 -0
  121. package/dist/lib/get_process_id_from_port.js +2 -0
  122. package/dist/lib/is_valid_json_string.js +1 -0
  123. package/dist/lib/kill_port_process.js +1 -0
  124. package/dist/lib/kill_process_id.js +1 -0
  125. package/dist/lib/load_settings.js +1 -0
  126. package/dist/lib/loader.js +2 -82
  127. package/dist/lib/log_bars.js +1 -0
  128. package/dist/lib/node_path_polyfills.js +1 -0
  129. package/dist/lib/parse_args.js +1 -0
  130. package/dist/lib/parse_options.js +1 -0
  131. package/dist/lib/path_exists.js +1 -0
  132. package/dist/lib/rainbow_road.js +1 -0
  133. package/dist/lib/replace_in_files.js +1 -0
  134. package/dist/lib/required_files.js +1 -0
  135. package/dist/lib/serialize_query_parameters.js +1 -0
  136. package/dist/lib/types.js +1 -6
  137. package/increment_version.js +3 -0
  138. package/package.json +18 -37
  139. package/src/cli.js +63 -46
  140. package/src/commands/build/definition.js +58 -0
  141. package/src/commands/build/index.js +7 -0
  142. package/src/commands/create/build_package_json.js +20 -0
  143. package/src/commands/create/definition.js +35 -0
  144. package/src/commands/create/index.js +71 -0
  145. package/src/commands/create/template/api/index.js +6 -0
  146. package/src/commands/create/template/email/base.css +1 -0
  147. package/src/commands/create/template/email/base.html +1 -0
  148. package/src/commands/create/template/email/reset_password.js +20 -0
  149. package/src/commands/create/template/i18n/en-US.js +14 -0
  150. package/src/commands/create/template/index.client.js +1 -0
  151. package/src/commands/create/template/index.css +34 -0
  152. package/src/{functions/create/templates → commands/create/template}/index.html +2 -3
  153. package/src/{functions/create/templates → commands/create/template}/index.server.js +6 -6
  154. package/src/commands/create/template/public/apple-touch-icon-152x152.png +0 -0
  155. package/src/commands/create/template/public/favicon.ico +0 -0
  156. package/src/commands/create/template/public/joystick_logo.webp +0 -0
  157. package/src/{functions/create/templates → commands/create/template}/public/manifest.json +4 -4
  158. package/src/commands/create/template/public/splash-screen-1024x1024.png +0 -0
  159. package/{dist/functions/create/templates → src/commands/create/template}/ui/components/button/index.js +14 -6
  160. package/{dist/functions/create/templates → src/commands/create/template}/ui/layouts/app/index.js +2 -2
  161. package/src/commands/create/template/ui/pages/error/index.js +50 -0
  162. package/src/commands/create/template/ui/pages/index/index.js +121 -0
  163. package/src/commands/help/definition.js +12 -0
  164. package/src/commands/help/index.js +48 -0
  165. package/src/commands/index.js +23 -0
  166. package/src/commands/logout/definition.js +10 -0
  167. package/src/commands/logout/index.js +20 -0
  168. package/src/commands/push/cdn_mirrors.js +7 -0
  169. package/src/commands/push/check_if_settings_valid.js +10 -0
  170. package/src/commands/push/create_version.js +20 -0
  171. package/src/commands/push/definition.js +43 -0
  172. package/src/commands/push/get_app_domain.js +11 -0
  173. package/src/commands/push/get_deployment.js +19 -0
  174. package/src/commands/push/get_provision_domain.js +9 -0
  175. package/src/commands/push/get_session_token.js +31 -0
  176. package/src/commands/push/get_settings_file.js +47 -0
  177. package/src/commands/push/handle_initial_deployment.js +24 -0
  178. package/src/commands/push/handle_version_deployment.js +23 -0
  179. package/src/commands/push/index.js +190 -0
  180. package/src/commands/push/prompts/confirm_deployment.js +73 -0
  181. package/src/commands/push/prompts/session_token.js +11 -0
  182. package/src/commands/push/upload_build_to_cdn.js +59 -0
  183. package/src/commands/push/validate_deployment.js +19 -0
  184. package/src/commands/push/validate_push_config.js +18 -0
  185. package/src/commands/start/definition.js +58 -0
  186. package/src/commands/start/index.js +11 -0
  187. package/src/commands/test/definition.js +28 -0
  188. package/src/commands/test/index.js +12 -0
  189. package/src/commands/update/definition.js +28 -0
  190. package/src/commands/update/index.js +29 -0
  191. package/src/commands/use/definition.js +19 -0
  192. package/src/commands/use/index.js +54 -0
  193. package/src/index.js +0 -0
  194. package/src/lib/build/browser_path_exclusions.js +8 -0
  195. package/src/lib/build/browser_paths.js +11 -0
  196. package/src/lib/build/build_files.js +161 -0
  197. package/src/{functions/start/filesToCopy.js → lib/build/copy_paths.js} +3 -1
  198. package/src/lib/build/get_code_frame.js +11 -0
  199. package/src/lib/build/get_file_operation.js +25 -0
  200. package/src/lib/build/get_files_to_build.js +36 -0
  201. package/src/lib/build/get_path_platform.js +32 -0
  202. package/src/lib/build/get_platform_safe_path.js +6 -0
  203. package/src/lib/build/get_tar_ignore_list.js +41 -0
  204. package/src/lib/build/index.js +101 -0
  205. package/src/lib/build/master_ignore_list.js +14 -0
  206. package/src/lib/build/minify_file.js +15 -0
  207. package/src/lib/build/node_paths.js +17 -0
  208. package/src/lib/build/on_warn.js +70 -0
  209. package/src/lib/build/plugins/bootstrap_component.js +191 -0
  210. package/src/lib/build/plugins/generate_file_dependency_map.js +20 -0
  211. package/src/lib/build/plugins/index.js +26 -0
  212. package/src/lib/build/plugins/set_component_id.js +89 -0
  213. package/src/lib/build/plugins/update_file_map.js +98 -0
  214. package/src/lib/build/plugins/warn_node_environment.js +20 -0
  215. package/src/lib/{CLILog.js → cli_log.js} +12 -8
  216. package/src/lib/color_log.js +7 -0
  217. package/src/lib/command_exists.js +16 -0
  218. package/src/lib/constants.js +11 -1
  219. package/src/lib/debounce.js +9 -0
  220. package/src/lib/decrypt_buffer.js +12 -0
  221. package/src/lib/development_server/ava_config.js +14 -0
  222. package/src/lib/development_server/check_if_port_occupied.js +31 -0
  223. package/src/lib/development_server/cleanup.js +15 -0
  224. package/src/lib/{dev/databases/mongodb/availableQueryParameters.js → development_server/databases/mongodb/available_query_parameters.js} +3 -1
  225. package/src/lib/development_server/databases/mongodb/build_connection_string.js +31 -0
  226. package/src/lib/development_server/databases/mongodb/build_query_parameters.js +17 -0
  227. package/src/lib/development_server/databases/mongodb/check_connection.js +41 -0
  228. package/src/lib/development_server/databases/mongodb/connect.js +27 -0
  229. package/src/lib/development_server/databases/mongodb/index.js +118 -0
  230. package/src/lib/development_server/databases/postgresql/check_connection.js +56 -0
  231. package/src/lib/development_server/databases/postgresql/connect.js +33 -0
  232. package/src/lib/development_server/databases/postgresql/index.js +126 -0
  233. package/src/lib/development_server/databases/provider_map.js +15 -0
  234. package/src/lib/development_server/get_database_process_ids.js +28 -0
  235. package/src/lib/development_server/get_translations.js +85 -0
  236. package/src/lib/development_server/hmr_server.js +94 -0
  237. package/src/lib/development_server/index.js +394 -0
  238. package/src/lib/development_server/kill_process_ids.js +8 -0
  239. package/src/lib/development_server/run_tests.js +84 -0
  240. package/src/lib/development_server/start_app_server.js +55 -0
  241. package/src/lib/development_server/start_databases.js +108 -0
  242. package/src/lib/development_server/start_hmr_server.js +36 -0
  243. package/src/lib/development_server/watch_for_changes/browser_path_exclusions.js +8 -0
  244. package/src/lib/development_server/watch_for_changes/browser_paths.js +11 -0
  245. package/src/lib/development_server/watch_for_changes/get_after_run_tasks.js +24 -0
  246. package/src/lib/development_server/watch_for_changes/get_file_codependencies.js +44 -0
  247. package/src/lib/development_server/watch_for_changes/get_platform_safe_path.js +6 -0
  248. package/src/lib/development_server/watch_for_changes/index.js +216 -0
  249. package/src/lib/development_server/watch_for_changes/node_paths.js +16 -0
  250. package/src/lib/development_server/watch_for_changes/read_file_dependency_map.js +18 -0
  251. package/src/lib/development_server/watch_for_changes/watch_paths.js +21 -0
  252. package/src/lib/dynamic_import.js +6 -0
  253. package/src/lib/encrypt_buffer.js +10 -0
  254. package/src/lib/generate_id.js +15 -0
  255. package/src/lib/get_files_in_path.js +25 -0
  256. package/src/lib/get_platform_safe_path.js +8 -0
  257. package/src/lib/get_process_id_from_port.js +26 -0
  258. package/src/lib/is_valid_json_string.js +10 -0
  259. package/src/lib/kill_port_process.js +12 -0
  260. package/src/lib/kill_process_id.js +19 -0
  261. package/src/lib/load_settings.js +43 -0
  262. package/src/lib/loader.js +4 -77
  263. package/src/lib/log_bars.js +7 -0
  264. package/src/lib/node_path_polyfills.js +23 -0
  265. package/src/lib/parse_args.js +16 -0
  266. package/src/lib/parse_options.js +16 -0
  267. package/src/lib/path_exists.js +11 -0
  268. package/src/lib/{rainbowRoad.js → rainbow_road.js} +4 -2
  269. package/src/lib/replace_in_files.js +40 -0
  270. package/src/lib/{dev/requiredFiles.js → required_files.js} +3 -1
  271. package/src/lib/serialize_query_parameters.js +7 -0
  272. package/src/lib/types.js +59 -2
  273. package/HMRNOTES.txt +0 -23
  274. package/README.md +0 -7
  275. package/_package.json +0 -55
  276. package/canary.js +0 -12
  277. package/dist/functions/build/getTarIgnoreList.js +0 -25
  278. package/dist/functions/build/index.js +0 -54
  279. package/dist/functions/create/buildPackageJSON.js +0 -20
  280. package/dist/functions/create/index.js +0 -193
  281. package/dist/functions/create/templates/api/index.js +0 -4
  282. package/dist/functions/create/templates/i18n/en-US.js +0 -4
  283. package/dist/functions/create/templates/index.client.js +0 -7
  284. package/dist/functions/create/templates/index.css +0 -20
  285. package/dist/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
  286. package/dist/functions/create/templates/public/favicon.ico +0 -0
  287. package/dist/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
  288. package/dist/functions/create/templates/ui/pages/error/index.js +0 -31
  289. package/dist/functions/create/templates/ui/pages/index/index.js +0 -94
  290. package/dist/functions/index.js +0 -243
  291. package/dist/functions/logout/index.js +0 -20
  292. package/dist/functions/push/checkIfProvisionAvailable.js +0 -19
  293. package/dist/functions/push/deploy/index.js +0 -173
  294. package/dist/functions/push/deploy/initial.js +0 -100
  295. package/dist/functions/push/deploy/version.js +0 -100
  296. package/dist/functions/push/domains.js +0 -23
  297. package/dist/functions/push/getAvailableCDN.js +0 -23
  298. package/dist/functions/push/getDeployment.js +0 -41
  299. package/dist/functions/push/getDeploymentSummary.js +0 -38
  300. package/dist/functions/push/getInstanceSizeRegions.js +0 -37
  301. package/dist/functions/push/getInstanceSizesForRegion.js +0 -34
  302. package/dist/functions/push/getProviderInstanceSizes.js +0 -34
  303. package/dist/functions/push/getProviderRegions.js +0 -36
  304. package/dist/functions/push/getProvidersWithConnectionStatus.js +0 -20
  305. package/dist/functions/push/getSessionToken.js +0 -23
  306. package/dist/functions/push/getUserFromSessionToken.js +0 -37
  307. package/dist/functions/push/index.js +0 -210
  308. package/dist/functions/push/loginToCheatCode.js +0 -33
  309. package/dist/functions/push/pingProvisionAPI.js +0 -31
  310. package/dist/functions/push/prompts.js +0 -332
  311. package/dist/functions/push/providerMap.js +0 -11
  312. package/dist/functions/push/providers.js +0 -9
  313. package/dist/functions/reset/index.js +0 -0
  314. package/dist/functions/reset/reset.js +0 -127
  315. package/dist/functions/start/bootstrapLayoutComponent.js +0 -54
  316. package/dist/functions/start/bootstrapPageComponent.js +0 -51
  317. package/dist/functions/start/buildFile.js +0 -85
  318. package/dist/functions/start/buildFiles.js +0 -76
  319. package/dist/functions/start/buildPlugins.js +0 -183
  320. package/dist/functions/start/checkIfPortAvailable.js +0 -18
  321. package/dist/functions/start/cleanup/index.js +0 -18
  322. package/dist/functions/start/databases/mongodb/availableQueryParameters.js +0 -42
  323. package/dist/functions/start/databases/mongodb/buildConnectionString.js +0 -22
  324. package/dist/functions/start/databases/mongodb/buildQueryParameters.js +0 -14
  325. package/dist/functions/start/databases/mongodb/checkConnection.js +0 -35
  326. package/dist/functions/start/databases/mongodb/connect.js +0 -25
  327. package/dist/functions/start/databases/mongodb/index.js +0 -93
  328. package/dist/functions/start/databases/postgresql/checkConnection.js +0 -41
  329. package/dist/functions/start/databases/postgresql/connect.js +0 -27
  330. package/dist/functions/start/databases/postgresql/index.js +0 -106
  331. package/dist/functions/start/databases/redis.js +0 -0
  332. package/dist/functions/start/databases/startProvider.js +0 -16
  333. package/dist/functions/start/fileDependencyMapper.js +0 -22
  334. package/dist/functions/start/filesToCopy.js +0 -18
  335. package/dist/functions/start/generateId.js +0 -74
  336. package/dist/functions/start/getCodependenciesForFile.js +0 -64
  337. package/dist/functions/start/getFilesToBuild.js +0 -39
  338. package/dist/functions/start/getProcessIdFromPort.js +0 -60
  339. package/dist/functions/start/hmrServer.js +0 -66
  340. package/dist/functions/start/index.js +0 -31
  341. package/dist/functions/start/isWindows.js +0 -5
  342. package/dist/functions/start/minifyFile.js +0 -12
  343. package/dist/functions/start/onWarn.js +0 -63
  344. package/dist/functions/start/readFileDependencyMap.js +0 -16
  345. package/dist/functions/start/removeDeletedDependenciesFromMap.js +0 -18
  346. package/dist/functions/start/setComponentId.js +0 -46
  347. package/dist/functions/start/updateFileMap.js +0 -67
  348. package/dist/functions/test/index.js +0 -30
  349. package/dist/functions/update/index.js +0 -21
  350. package/dist/functions/use/index.js +0 -61
  351. package/dist/lib/CLILog.js +0 -49
  352. package/dist/lib/build/browserPathExclusions.js +0 -7
  353. package/dist/lib/build/browserPaths.js +0 -11
  354. package/dist/lib/build/buildFile.js +0 -84
  355. package/dist/lib/build/buildFiles.js +0 -238
  356. package/dist/lib/build/buildPlugins.js +0 -186
  357. package/dist/lib/build/getCodeFrame.js +0 -9
  358. package/dist/lib/build/minifyFile.js +0 -12
  359. package/dist/lib/build/nodePathExclusions.js +0 -7
  360. package/dist/lib/build/nodePaths.js +0 -11
  361. package/dist/lib/build/onWarn.js +0 -63
  362. package/dist/lib/build/removeDeletedDependenciesFromMap.js +0 -18
  363. package/dist/lib/build/setComponentId.js +0 -46
  364. package/dist/lib/build/updateFileMap.js +0 -67
  365. package/dist/lib/buildResolvePlugin.js +0 -21
  366. package/dist/lib/checkIfValidJSON.js +0 -11
  367. package/dist/lib/colorLog.js +0 -7
  368. package/dist/lib/dev/cleanup.js +0 -30
  369. package/dist/lib/dev/databases/mongodb/availableQueryParameters.js +0 -42
  370. package/dist/lib/dev/databases/mongodb/buildConnectionString.js +0 -22
  371. package/dist/lib/dev/databases/mongodb/buildQueryParameters.js +0 -14
  372. package/dist/lib/dev/databases/mongodb/checkConnection.js +0 -38
  373. package/dist/lib/dev/databases/mongodb/connect.js +0 -25
  374. package/dist/lib/dev/databases/mongodb/index.js +0 -93
  375. package/dist/lib/dev/databases/postgresql/checkConnection.js +0 -41
  376. package/dist/lib/dev/databases/postgresql/connect.js +0 -27
  377. package/dist/lib/dev/databases/postgresql/index.js +0 -106
  378. package/dist/lib/dev/databases/providerMap.js +0 -15
  379. package/dist/lib/dev/getCodependenciesForFile.js +0 -64
  380. package/dist/lib/dev/getFilesToBuild.js +0 -38
  381. package/dist/lib/dev/index.js +0 -452
  382. package/dist/lib/dev/isWindows.js +0 -5
  383. package/dist/lib/dev/loadSettings.js +0 -79
  384. package/dist/lib/dev/readFileDependencyMap.js +0 -16
  385. package/dist/lib/dev/requiredFiles.js +0 -18
  386. package/dist/lib/dev/runBuild.js +0 -30
  387. package/dist/lib/dev/runTests.js +0 -30
  388. package/dist/lib/dev/startApp.js +0 -79
  389. package/dist/lib/dev/startDatabases.js +0 -109
  390. package/dist/lib/dev/startHMR.js +0 -55
  391. package/dist/lib/dev/updateFileMap.js +0 -67
  392. package/dist/lib/dev/validateProject.js +0 -0
  393. package/dist/lib/dev/watchlist.js +0 -15
  394. package/dist/lib/filesToCopy.js +0 -18
  395. package/dist/lib/generateId.js +0 -74
  396. package/dist/lib/getArgs.js +0 -14
  397. package/dist/lib/getOptions.js +0 -15
  398. package/dist/lib/getPlatformSafePath.js +0 -7
  399. package/dist/lib/getProcessIdFromPort.js +0 -60
  400. package/dist/lib/getProvider.js +0 -8
  401. package/dist/lib/help.js +0 -56
  402. package/dist/lib/isObject.js +0 -6
  403. package/dist/lib/isValidJSONString.js +0 -11
  404. package/dist/lib/isWindows.js +0 -5
  405. package/dist/lib/killProcesses.js +0 -0
  406. package/dist/lib/loadSettings.js +0 -33
  407. package/dist/lib/masterIgnoreList.js +0 -16
  408. package/dist/lib/nodeEnvironment.js +0 -9
  409. package/dist/lib/nodeEnvironments.js +0 -8
  410. package/dist/lib/parseCookiesFromLogin.js +0 -18
  411. package/dist/lib/rainbowRoad.js +0 -7
  412. package/dist/lib/readDirectorySync.js +0 -14
  413. package/dist/lib/regexes.js +0 -14
  414. package/dist/lib/replaceBackslashesWithForwardSlashes.js +0 -8
  415. package/dist/lib/replaceFileProtocol.js +0 -8
  416. package/dist/lib/serializeQueryParameters.js +0 -8
  417. package/dist/lib/settings.js +0 -4
  418. package/dist/lib/validateDatabasesFromSettings.js +0 -34
  419. package/dist/lib/wait.js +0 -8
  420. package/release.js +0 -40
  421. package/src/functions/build/getTarIgnoreList.js +0 -30
  422. package/src/functions/build/index.js +0 -63
  423. package/src/functions/create/buildPackageJSON.js +0 -18
  424. package/src/functions/create/index.js +0 -209
  425. package/src/functions/create/templates/api/index.js +0 -4
  426. package/src/functions/create/templates/i18n/en-US.js +0 -4
  427. package/src/functions/create/templates/index.client.js +0 -7
  428. package/src/functions/create/templates/index.css +0 -20
  429. package/src/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
  430. package/src/functions/create/templates/public/favicon.ico +0 -0
  431. package/src/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
  432. package/src/functions/create/templates/ui/pages/error/index.js +0 -31
  433. package/src/functions/create/templates/ui/pages/index/index.js +0 -94
  434. package/src/functions/index.js +0 -243
  435. package/src/functions/logout/index.js +0 -20
  436. package/src/functions/push/checkIfProvisionAvailable.js +0 -20
  437. package/src/functions/push/deploy/index.js +0 -199
  438. package/src/functions/push/deploy/initial.js +0 -108
  439. package/src/functions/push/deploy/version.js +0 -108
  440. package/src/functions/push/domains.js +0 -23
  441. package/src/functions/push/getAvailableCDN.js +0 -27
  442. package/src/functions/push/getDeployment.js +0 -43
  443. package/src/functions/push/getDeploymentSummary.js +0 -39
  444. package/src/functions/push/getInstanceSizeRegions.js +0 -40
  445. package/src/functions/push/getInstanceSizesForRegion.js +0 -35
  446. package/src/functions/push/getProviderInstanceSizes.js +0 -35
  447. package/src/functions/push/getProviderRegions.js +0 -39
  448. package/src/functions/push/getProvidersWithConnectionStatus.js +0 -25
  449. package/src/functions/push/getSessionToken.js +0 -26
  450. package/src/functions/push/getUserFromSessionToken.js +0 -39
  451. package/src/functions/push/index.js +0 -245
  452. package/src/functions/push/loginToCheatCode.js +0 -34
  453. package/src/functions/push/pingProvisionAPI.js +0 -33
  454. package/src/functions/push/prompts.js +0 -276
  455. package/src/functions/push/providerMap.js +0 -8
  456. package/src/functions/push/providers.js +0 -6
  457. package/src/functions/reset/index.js +0 -0
  458. package/src/functions/reset/reset.js +0 -163
  459. package/src/functions/start/bootstrapLayoutComponent.js +0 -57
  460. package/src/functions/start/bootstrapPageComponent.js +0 -54
  461. package/src/functions/start/buildFile.js +0 -97
  462. package/src/functions/start/buildFiles.js +0 -101
  463. package/src/functions/start/buildPlugins.js +0 -215
  464. package/src/functions/start/checkIfPortAvailable.js +0 -21
  465. package/src/functions/start/cleanup/index.js +0 -23
  466. package/src/functions/start/databases/mongodb/availableQueryParameters.js +0 -39
  467. package/src/functions/start/databases/mongodb/buildConnectionString.js +0 -28
  468. package/src/functions/start/databases/mongodb/buildQueryParameters.js +0 -15
  469. package/src/functions/start/databases/mongodb/checkConnection.js +0 -36
  470. package/src/functions/start/databases/mongodb/connect.js +0 -25
  471. package/src/functions/start/databases/mongodb/index.js +0 -108
  472. package/src/functions/start/databases/postgresql/checkConnection.js +0 -43
  473. package/src/functions/start/databases/postgresql/connect.js +0 -27
  474. package/src/functions/start/databases/postgresql/index.js +0 -127
  475. package/src/functions/start/databases/redis.js +0 -0
  476. package/src/functions/start/databases/startProvider.js +0 -15
  477. package/src/functions/start/fileDependencyMapper.js +0 -24
  478. package/src/functions/start/generateId.js +0 -73
  479. package/src/functions/start/getCodependenciesForFile.js +0 -84
  480. package/src/functions/start/getFilesToBuild.js +0 -49
  481. package/src/functions/start/getProcessIdFromPort.js +0 -92
  482. package/src/functions/start/hmrServer.js +0 -78
  483. package/src/functions/start/index.js +0 -701
  484. package/src/functions/start/isWindows.js +0 -3
  485. package/src/functions/start/minifyFile.js +0 -10
  486. package/src/functions/start/onWarn.js +0 -68
  487. package/src/functions/start/readFileDependencyMap.js +0 -19
  488. package/src/functions/start/removeDeletedDependenciesFromMap.js +0 -19
  489. package/src/functions/start/setComponentId.js +0 -58
  490. package/src/functions/start/updateFileMap.js +0 -100
  491. package/src/functions/test/index.js +0 -34
  492. package/src/functions/update/index.js +0 -20
  493. package/src/functions/use/index.js +0 -62
  494. package/src/lib/build/browserPathExclusions.js +0 -5
  495. package/src/lib/build/browserPaths.js +0 -9
  496. package/src/lib/build/buildFile.js +0 -91
  497. package/src/lib/build/buildFiles.js +0 -270
  498. package/src/lib/build/buildPlugins.js +0 -222
  499. package/src/lib/build/getCodeFrame.js +0 -7
  500. package/src/lib/build/minifyFile.js +0 -10
  501. package/src/lib/build/nodePathExclusions.js +0 -5
  502. package/src/lib/build/nodePaths.js +0 -9
  503. package/src/lib/build/onWarn.js +0 -68
  504. package/src/lib/build/removeDeletedDependenciesFromMap.js +0 -19
  505. package/src/lib/build/setComponentId.js +0 -58
  506. package/src/lib/build/updateFileMap.js +0 -100
  507. package/src/lib/buildResolvePlugin.js +0 -32
  508. package/src/lib/checkIfValidJSON.js +0 -8
  509. package/src/lib/colorLog.js +0 -5
  510. package/src/lib/dev/cleanup.js +0 -34
  511. package/src/lib/dev/databases/mongodb/buildConnectionString.js +0 -28
  512. package/src/lib/dev/databases/mongodb/buildQueryParameters.js +0 -15
  513. package/src/lib/dev/databases/mongodb/checkConnection.js +0 -40
  514. package/src/lib/dev/databases/mongodb/connect.js +0 -25
  515. package/src/lib/dev/databases/mongodb/index.js +0 -108
  516. package/src/lib/dev/databases/postgresql/checkConnection.js +0 -43
  517. package/src/lib/dev/databases/postgresql/connect.js +0 -27
  518. package/src/lib/dev/databases/postgresql/index.js +0 -127
  519. package/src/lib/dev/databases/providerMap.js +0 -13
  520. package/src/lib/dev/getCodependenciesForFile.js +0 -84
  521. package/src/lib/dev/getFilesToBuild.js +0 -47
  522. package/src/lib/dev/index.js +0 -560
  523. package/src/lib/dev/isWindows.js +0 -3
  524. package/src/lib/dev/loadSettings.js +0 -90
  525. package/src/lib/dev/readFileDependencyMap.js +0 -19
  526. package/src/lib/dev/runBuild.js +0 -33
  527. package/src/lib/dev/runTests.js +0 -33
  528. package/src/lib/dev/startApp.js +0 -89
  529. package/src/lib/dev/startDatabases.js +0 -131
  530. package/src/lib/dev/startHMR.js +0 -62
  531. package/src/lib/dev/updateFileMap.js +0 -100
  532. package/src/lib/dev/validateProject.js +0 -0
  533. package/src/lib/dev/watchlist.js +0 -13
  534. package/src/lib/filesToCopy.js +0 -15
  535. package/src/lib/generateId.js +0 -73
  536. package/src/lib/getArgs.js +0 -14
  537. package/src/lib/getOptions.js +0 -12
  538. package/src/lib/getProcessIdFromPort.js +0 -92
  539. package/src/lib/getProvider.js +0 -5
  540. package/src/lib/help.js +0 -56
  541. package/src/lib/isObject.js +0 -3
  542. package/src/lib/isValidJSONString.js +0 -8
  543. package/src/lib/killProcesses.js +0 -5
  544. package/src/lib/loadSettings.js +0 -40
  545. package/src/lib/masterIgnoreList.js +0 -13
  546. package/src/lib/nodeEnvironment.js +0 -6
  547. package/src/lib/nodeEnvironments.js +0 -8
  548. package/src/lib/parseCookiesFromLogin.js +0 -21
  549. package/src/lib/readDirectorySync.js +0 -13
  550. package/src/lib/regexes.js +0 -7
  551. package/src/lib/replaceBackslashesWithForwardSlashes.js +0 -8
  552. package/src/lib/replaceFileProtocol.js +0 -8
  553. package/src/lib/serializeQueryParameters.js +0 -5
  554. package/src/lib/settings.js +0 -1
  555. package/src/lib/validateDatabasesFromSettings.js +0 -37
  556. package/src/lib/wait.js +0 -5
  557. package/storage/.verdaccio-db.json +0 -1
  558. /package/{src/lib → .build}/getPlatformSafePath.js +0 -0
  559. /package/{src/lib → .build}/isWindows.js +0 -0
  560. /package/dist/{functions/create/templates → commands/create/template}/public/service-worker.js +0 -0
  561. /package/dist/{functions/create/templates → commands/create/template}/settings.development.json +0 -0
  562. /package/src/{functions/create/templates → commands/create/template}/public/service-worker.js +0 -0
  563. /package/src/{functions/create/templates → commands/create/template}/settings.development.json +0 -0
@@ -0,0 +1,17 @@
1
+ import available_query_parameters from "./available_query_parameters.js";
2
+
3
+ const build_query_parameters = (connection = {}) => {
4
+ const query_parameters = {};
5
+
6
+ for (let i = 0; i < available_query_parameters.length; i += 1) {
7
+ const available_query_parameter = available_query_parameters[i];
8
+
9
+ if (connection && connection[available_query_parameter]) {
10
+ query_parameters[available_query_parameter] = connection[available_query_parameter];
11
+ }
12
+ }
13
+
14
+ return query_parameters;
15
+ };
16
+
17
+ export default build_query_parameters;
@@ -0,0 +1,41 @@
1
+ import { MongoClient } from "mongodb";
2
+ import fs from 'fs';
3
+ import build_connection_string from "./build_connection_string.js";
4
+ import color_log from '../../../color_log.js';
5
+
6
+ const { readFile } = fs.promises;
7
+
8
+ const check_connection = async (connection = {}, mongodb_options = {}) => {
9
+ const connection_string = build_connection_string(connection);
10
+
11
+ try {
12
+ const connectionOptions = {
13
+ connectTimeoutMS: 3000,
14
+ socketTimeoutMS: 3000,
15
+ useNewUrlParser: true,
16
+ useUnifiedTopology: true,
17
+ ssl: false,
18
+ ...(mongodb_options || {}),
19
+ };
20
+
21
+ if (mongodb_options?.ca) {
22
+ connectionOptions.ca = await readFile(mongodb_options?.ca);
23
+ }
24
+
25
+ const connection = await MongoClient.connect(connection_string, connectionOptions);
26
+ connection.close();
27
+
28
+ return true;
29
+ } catch (exception) {
30
+ console.warn(exception);
31
+
32
+ color_log(
33
+ `\n✖ Failed to connect to MongoDB. Please double-check connection settings and try again.`,
34
+ 'yellow'
35
+ );
36
+
37
+ process.exit(1);
38
+ }
39
+ };
40
+
41
+ export default check_connection;
@@ -0,0 +1,27 @@
1
+ import check_connection from "./check_connection.js";
2
+ import mongodb from "./index.js";
3
+
4
+ const connect = async (settings = {}, port = 2610) => {
5
+ const has_connection = settings.connection && Object.keys(settings.connection).length > 0;
6
+
7
+ if (has_connection) {
8
+ await check_connection(settings.connection, settings.options);
9
+ }
10
+
11
+ return {
12
+ pid: !has_connection ? await mongodb(port) : null,
13
+ connection: has_connection ? settings.connection : {
14
+ hosts: [
15
+ {
16
+ hostname: "127.0.0.1",
17
+ port,
18
+ },
19
+ ],
20
+ database: "app",
21
+ username: "",
22
+ password: "",
23
+ },
24
+ };
25
+ };
26
+
27
+ export default connect;
@@ -0,0 +1,118 @@
1
+ import child_process from "child_process";
2
+ import fs from "fs";
3
+ import cli_log from "../../../cli_log.js";
4
+ import command_exists from '../../../command_exists.js';
5
+ import get_platform_safe_path from '../../../get_platform_safe_path.js';
6
+ import get_process_id_from_port from "../../../get_process_id_from_port.js";
7
+ import kill_port_process from "../../../kill_port_process.js";
8
+ import path_exists from "../../../path_exists.js";
9
+
10
+ const { rename, readdir, mkdir } = fs.promises;
11
+
12
+ const warn_mongodb_not_installed = () => {
13
+ cli_log(
14
+ ` MongoDB is not installed on this computer.\n\n Download MongoDB at https://www.mongodb.com/try/download/community\n\n After you've installed MongoDB, run joystick start again, or, remove MongoDB from your config.databases array in your settings.development.json file to skip starting it up.`,
15
+ {
16
+ level: 'danger',
17
+ docs: 'https://github.com/cheatcode/joystick#databases',
18
+ }
19
+ );
20
+ };
21
+
22
+ const check_if_mongodb_exists = async () => {
23
+ if (process.platform === "win32") {
24
+ const mongodb_versions = await get_mongodb_windows_versions();
25
+ return mongodb_versions && mongodb_versions.length > 0;
26
+ }
27
+
28
+ return command_exists("mongod");
29
+ };
30
+
31
+ const get_mongodb_windows_versions = async () => {
32
+ const mongodb_versions = (await readdir(`C:\\Program Files\\MongoDB\\Server\\`));
33
+ return mongodb_versions;
34
+ };
35
+
36
+ const get_mongo_command = (mongodb_windows_versions = []) => {
37
+ if (process.platform === 'win32') {
38
+ const has_mongodb_six_or_greater = ['6.0', '7.0', '8.0', '9.0', '10.0'].some((mongodb_version) => {
39
+ return mongodb_windows_versions.includes(mongodb_version);
40
+ });
41
+
42
+ return has_mongodb_six_or_greater ? 'mongosh' : 'mongo';
43
+ }
44
+
45
+ return 'mongo';
46
+ };
47
+
48
+ const start_mongodb_process = (mongodb_port = 2610, mongodb_windows_versions = []) => {
49
+ return new Promise((resolve) => {
50
+ const database_process_flags = [
51
+ '--port',
52
+ mongodb_port,
53
+ '--dbpath',
54
+ get_platform_safe_path(`./.joystick/data/mongodb_${mongodb_port}`),
55
+ '--quiet',
56
+ '--replSet',
57
+ `joystick_${mongodb_port}`,
58
+ ];
59
+
60
+ const database_process = child_process.spawn(
61
+ `mongod`,
62
+ database_process_flags.filter((command) => !!command),
63
+ );
64
+
65
+ database_process.stdout.on('data', async (data) => {
66
+ const stdout = data?.toString();
67
+
68
+ if (stdout.includes('Waiting for connections')) {
69
+ const mongo_command = get_mongo_command(mongodb_windows_versions);
70
+ child_process.exec(`${mongo_command} --eval "rs.initiate()" --verbose --port ${mongodb_port}`, async (error, _stdout, stderr) => {
71
+ const process_id = await get_process_id_from_port(mongodb_port);
72
+ return resolve(parseInt(process_id, 10));
73
+ });
74
+ }
75
+ });
76
+ });
77
+ };
78
+
79
+ const setup_data_directory = async (mongodb_port = 2610) => {
80
+ // NOTE: MongoDB was originally started as a standalone server. To enable additional functionality,
81
+ // we moved to a replica set config which necessitated multiple data directories in order to support
82
+ // running the same app on multiple ports (a limitation of MongoDB).
83
+ const legacy_data_directory_exists = await path_exists(".joystick/data/mongodb");
84
+ const data_directory_exists = await path_exists(`.joystick/data/mongodb_${mongodb_port}`);
85
+
86
+ if (legacy_data_directory_exists && !data_directory_exists) {
87
+ await rename('.joystick/data/mongodb', `.joystick/data/mongodb_${mongodb_port}`);
88
+ }
89
+
90
+ if (!data_directory_exists) {
91
+ await mkdir(`.joystick/data/mongodb_${mongodb_port}`, { recursive: true });
92
+ }
93
+
94
+ return data_directory_exists;
95
+ };
96
+
97
+ const start_mongodb = async (mongodb_port = 2610) => {
98
+ const mongodb_exists = await check_if_mongodb_exists();
99
+ const mongodb_windows_versions = process.platform === 'win32' ? await get_mongodb_windows_versions() : null;
100
+
101
+ if (!mongodb_exists) {
102
+ warn_mongodb_not_installed();
103
+ process.exit(1);
104
+ }
105
+
106
+ await setup_data_directory(mongodb_port);
107
+
108
+ try {
109
+ await kill_port_process(mongodb_port);
110
+ const mongo_process_id = await start_mongodb_process(mongodb_port, mongodb_windows_versions);
111
+ return mongo_process_id;
112
+ } catch (exception) {
113
+ console.warn(exception);
114
+ process.exit(1);
115
+ }
116
+ };
117
+
118
+ export default start_mongodb;
@@ -0,0 +1,56 @@
1
+ import fs from 'fs';
2
+ import postgresql from "pg";
3
+ import color_log from "../../../color_log.js";
4
+
5
+ const { Client } = postgresql;
6
+ const { readFile } = fs.promises;
7
+
8
+ const test_query = (client = {}) => {
9
+ return new Promise((resolve, reject) => {
10
+ client.query('SELECT NOW()', (error) => {
11
+ if (error) {
12
+ reject();
13
+ } else {
14
+ resolve();
15
+ }
16
+
17
+ client.end();
18
+ });
19
+ });
20
+ };
21
+
22
+ const check_connection = async (connection = {}, options = {}) => {
23
+ try {
24
+ const host = connection?.hosts && connection?.hosts[0];
25
+ const connection_config = {
26
+ user: connection?.username,
27
+ host: host?.hostname,
28
+ database: connection?.database,
29
+ password: connection?.password,
30
+ port: host?.port,
31
+ };
32
+
33
+ if (options?.ssl?.ca) {
34
+ connection_config.ssl = {
35
+ ca: await readFile(options?.ssl?.ca)
36
+ };
37
+ }
38
+
39
+ const client = new Client(connection_config);
40
+
41
+ client.connect();
42
+ await test_query(client);
43
+
44
+ return true;
45
+ } catch (exception) {
46
+ console.warn(exception);
47
+ color_log(
48
+ `\n✖ Failed to connect to PostgreSQL. Please double-check connection settings and try again.`,
49
+ 'yellow'
50
+ );
51
+
52
+ process.exit(1);
53
+ }
54
+ };
55
+
56
+ export default check_connection;
@@ -0,0 +1,33 @@
1
+ import os from 'os';
2
+ import check_connection from "./check_connection.js";
3
+ import postgresql from "./index.js";
4
+
5
+ const connect = async (settings = {}, port = 2610) => {
6
+ try {
7
+ const has_connection = settings.connection && Object.keys(settings.connection).length > 0;
8
+
9
+ if (has_connection) {
10
+ await check_connection(settings.connection, settings.options);
11
+ }
12
+
13
+ return {
14
+ pid: !has_connection ? await postgresql(port) : null,
15
+ connection: has_connection ? settings.connection : {
16
+ hosts: [
17
+ {
18
+ hostname: "127.0.0.1",
19
+ port,
20
+ },
21
+ ],
22
+ database: "app",
23
+ // NOTE: PostgreSQL creates a default superuser based on the OS username.
24
+ username: (os.userInfo() || {}).username || "",
25
+ password: "",
26
+ },
27
+ };
28
+ } catch (exception) {
29
+ console.warn(exception);
30
+ }
31
+ };
32
+
33
+ export default connect;
@@ -0,0 +1,126 @@
1
+ import child_process from "child_process";
2
+ import fs from "fs";
3
+ import util from "util";
4
+ import cli_log from "../../../cli_log.js";
5
+ import command_exists from "../../../command_exists.js";
6
+ import get_platform_safe_path from "../../../get_platform_safe_path.js";
7
+ import get_process_id_from_port from "../../../get_process_id_from_port.js";
8
+ import kill_port_process from "../../../kill_port_process.js";
9
+ import path_exists from "../../../path_exists.js";
10
+
11
+ const exec = util.promisify(child_process.exec);
12
+ const { rename } = fs.promises;
13
+
14
+ const setup_data_directory = async (postgresql_port = 2610) => {
15
+ const legacy_data_directory_exists = await path_exists(".joystick/data/postgresql");
16
+ let data_directory_exists = await path_exists(`.joystick/data/postgresql_${postgresql_port}`);
17
+
18
+ if (legacy_data_directory_exists && !data_directory_exists) {
19
+ await rename ('.joystick/data/postgresql', `.joystick/data/postgresql_${postgresql_port}`);
20
+ data_directory_exists = true;
21
+ }
22
+
23
+ return data_directory_exists;
24
+ };
25
+
26
+ const warn_postgresql_is_missing = () => {
27
+ cli_log(
28
+ 'PostgreSQL is not installed on this computer. You can download PostgreSQL at https://www.postgresql.org/download. After you\'ve installed PostgreSQL, run joystick start again, or, remove PostgreSQL from your databases list in your settings.development.json file to skip startup.',
29
+ {
30
+ level: 'danger',
31
+ docs: 'https://cheatcode.co/docs/joystick/cli#databases'
32
+ }
33
+ );
34
+ };
35
+
36
+ const check_if_postgresql_exists = () => {
37
+ return command_exists("psql");
38
+ };
39
+
40
+ const check_if_postgresql_control_exists = () => {
41
+ return command_exists("pg_ctl");
42
+ };
43
+
44
+ const start_postgresql = async (port = 2610) => {
45
+ const postgresql_exists = await check_if_postgresql_exists();
46
+
47
+ if (!postgresql_exists) {
48
+ warn_postgresql_is_missing();
49
+ process.exit(1);
50
+ }
51
+
52
+ const postgresql_control_exists = await check_if_postgresql_control_exists();
53
+
54
+ if (!postgresql_control_exists) {
55
+ cli_log(
56
+ 'PostgreSQL is installed on this computer, but pg_ctl (what Joystick uses to start and manage PostgreSQL) is not in your command line\'s PATH variable. Add pg_ctl to your command line\'s PATH, restart your command line, and try again.',
57
+ {
58
+ level: 'danger',
59
+ docs: 'https://cheatcode.co/docs/joystick/postgresql#path'
60
+ }
61
+ );
62
+ }
63
+
64
+ try {
65
+ const data_directory_exists = await setup_data_directory(port);
66
+
67
+ if (!data_directory_exists && postgresql_control_exists) {
68
+ await exec(
69
+ `pg_ctl init -D .joystick/data/postgresql_${port}`
70
+ );
71
+ }
72
+
73
+ const postgresql_port = port;
74
+ const existing_process_id = parseInt(await get_process_id_from_port(postgresql_port), 10);
75
+
76
+ if (existing_process_id) {
77
+ await exec(`pg_ctl kill KILL ${existing_process_id}`);
78
+ }
79
+
80
+ const database_process = child_process.spawn(
81
+ `pg_ctl`,
82
+ [
83
+ '-o',
84
+ `"-p ${postgresql_port}"`,
85
+ '-D',
86
+ get_platform_safe_path(`.joystick/data/postgresql_${port}`),
87
+ 'start',
88
+ ].filter((command) => !!command),
89
+ );
90
+
91
+ return new Promise((resolve) => {
92
+ database_process.stderr.on('data', async (data) => {
93
+ const stderr = data?.toString();
94
+
95
+ if (!stderr?.includes('another server might be running')) {
96
+ console.warn(stderr);
97
+ }
98
+ });
99
+
100
+ database_process.stdout.on('data', async (data) => {
101
+ const stdout = data?.toString();
102
+
103
+ if (stdout.includes('database system is ready to accept connections')) {
104
+ const process_id = (await get_process_id_from_port(postgresql_port))?.replace('\n', '');
105
+
106
+ exec(`createdb -h 127.0.0.1 -p ${postgresql_port} app`).then((data) => {
107
+ resolve(parseInt(process_id, 10));
108
+ }).catch(({ stderr: error }) => {
109
+ // NOTE: PostgreSQL does not have a clean way to create database if it doesn't exist. Use this as a hack
110
+ // to get around the "already exists" error (if the database exists, it's not an issue).
111
+ if (error && error.includes('database "app" already exists')) {
112
+ resolve(parseInt(process_id, 10));
113
+ } else {
114
+ console.log(error);
115
+ }
116
+ });
117
+ }
118
+ });
119
+ });
120
+ } catch (exception) {
121
+ console.warn(exception);
122
+ process.exit(1);
123
+ }
124
+ };
125
+
126
+ export default start_postgresql;
@@ -0,0 +1,15 @@
1
+ import connect_mongodb from './mongodb/connect.js';
2
+ import connect_postgresql from './postgresql/connect.js';
3
+
4
+ const provider_map = {
5
+ mongodb: {
6
+ name: 'MongoDB',
7
+ connect: connect_mongodb,
8
+ },
9
+ postgresql: {
10
+ name: 'PostgreSQL',
11
+ connect: connect_postgresql,
12
+ },
13
+ };
14
+
15
+ export default provider_map;
@@ -0,0 +1,28 @@
1
+ const get_database_process_ids = () => {
2
+ const database_process_ids = [];
3
+ const databases = Object.entries(process._databases || {});
4
+
5
+ for (let i = 0; i < databases?.length; i += 1) {
6
+ const [_provider, provider_connection] = databases[i];
7
+
8
+ if (provider_connection?.pid) {
9
+ database_process_ids.push(provider_connection.pid);
10
+ }
11
+
12
+ if (!provider_connection?.pid) {
13
+ const provider_connections = Object.entries(provider_connection);
14
+
15
+ for (let pc = 0; pc < provider_connections?.length; pc += 1) {
16
+ const [_connection_name, connection] = provider_connections[pc];
17
+
18
+ if (connection?.pid) {
19
+ database_process_ids.push(connection.pid);
20
+ }
21
+ }
22
+ }
23
+ }
24
+
25
+ return database_process_ids;
26
+ };
27
+
28
+ export default get_database_process_ids;
@@ -0,0 +1,85 @@
1
+ import fs from 'fs';
2
+ import load_settings from "../load_settings.js";
3
+ import types from '../types.js';
4
+ import dynamic_import from '../dynamic_import.js';
5
+
6
+ const settings = await load_settings(process.env.NODE_ENV);
7
+
8
+ const get_translations_file = async (language_file_path = '', joystick_build_path = '', render_component_path = '') => {
9
+ const language_file = await dynamic_import(`${process.cwd()}/${joystick_build_path}/i18n/${language_file_path}?v=${new Date().getTime()}`);
10
+ const is_valid_language_file = language_file && types.is_object(language_file);
11
+
12
+ if (is_valid_language_file) {
13
+ const translations_for_page = language_file[render_component_path];
14
+ return translations_for_page ? translations_for_page : language_file;
15
+ }
16
+
17
+ return {};
18
+ };
19
+
20
+ const get_language_preference_regexes = (user_language = '', browser_languages = []) => {
21
+ let language_preferences = [];
22
+
23
+ if (user_language) {
24
+ language_preferences.push(user_language);
25
+ }
26
+
27
+ const filtered_browser_languages = browser_languages?.filter((language) => {
28
+ return !language?.includes('*');
29
+ });
30
+
31
+ language_preferences.push(...filtered_browser_languages);
32
+ language_preferences.push(settings?.config?.i18n?.defaultLanguage);
33
+
34
+ return language_preferences?.flatMap((language) => {
35
+ const variants = [language];
36
+
37
+ if (language?.length === 2) {
38
+ variants.push(`${language.substring(0, 2)}-`);
39
+ }
40
+
41
+ if (language?.length > 2) {
42
+ variants.push(`${language?.split('-')[0]}`);
43
+ variants.push(`${language?.split('-')[0]}-`);
44
+ }
45
+
46
+ return variants;
47
+ })?.map((language_string) => {
48
+ const last_character = language_string[language_string?.length - 1];
49
+
50
+ if (last_character === '-') {
51
+ return new RegExp(`^${language_string}[A-Z]+.js`, 'g');
52
+ }
53
+
54
+ return new RegExp(`^${language_string}.js`, 'g');
55
+ });
56
+ };
57
+
58
+ const parse_browser_languages = (languages = '') => {
59
+ const raw_languages = languages.split(',');
60
+ return raw_languages?.map((raw_language) => raw_language.split(';')[0]);
61
+ };
62
+
63
+ const get_translations = async (joystick_build_path = '', render_component_path = '', req = {}) => {
64
+ const language_files = fs.readdirSync(`${joystick_build_path}/i18n`);
65
+ const browser_languages = parse_browser_languages(req?.headers['accept-language']);
66
+ const language_preferences = get_language_preference_regexes(req?.context?.user?.language, browser_languages);
67
+
68
+ let matching_file = null;
69
+
70
+ for (let i = 0; i < language_preferences.length; i += 1) {
71
+ const language_regex = language_preferences[i];
72
+ const match = language_files.find((language_file) => !!language_file.match(language_regex));
73
+
74
+ if (match) {
75
+ matching_file = match;
76
+ break;
77
+ }
78
+ }
79
+
80
+ const translations_file = await get_translations_file(matching_file, joystick_build_path, render_component_path);
81
+
82
+ return translations_file;
83
+ };
84
+
85
+ export default get_translations;
@@ -0,0 +1,94 @@
1
+ import queryString from 'query-string';
2
+ import { WebSocketServer } from "ws";
3
+ import generate_id from "../generate_id.js";
4
+ import get_translations from './get_translations.js';
5
+
6
+ process.title = 'joystick_hmr';
7
+
8
+ export default (() => {
9
+ const websocket_server = new WebSocketServer({
10
+ port: parseInt(process.env.PORT, 10) + 1,
11
+ path: "/_joystick/hmr",
12
+ });
13
+
14
+ process.on("message", async (message) => {
15
+ const parsed_message = JSON.parse(message);
16
+
17
+ if (typeof process.HMR_CONNECTIONS === "object" && !!parsed_message?.type) {
18
+ const connections = Object.values(process.HMR_CONNECTIONS);
19
+
20
+ for (let i = 0; i < connections?.length; i += 1) {
21
+ const connection = connections[i];
22
+
23
+ if (connection?.connection?.send) {
24
+ if (parsed_message?.type === 'BUILD_ERROR') {
25
+ connection.connection.send(JSON.stringify({ type: 'BUILD_ERROR' }));
26
+ }
27
+
28
+ if (parsed_message?.type === 'FILE_CHANGE') {
29
+ connection.connection.send(
30
+ JSON.stringify({
31
+ type: "FILE_CHANGE",
32
+ settings: parsed_message?.settings ? {
33
+ global: parsed_message?.settings?.global,
34
+ public: parsed_message?.settings?.public,
35
+ } : null,
36
+ i18n: parsed_message?.i18n_change ? await get_translations('./.joystick/build', connection?.page_component_path, {
37
+ headers: {
38
+ 'accept-language': connection?.browser_language,
39
+ },
40
+ context: {
41
+ user: {
42
+ language: connection?.user_language,
43
+ },
44
+ }
45
+ }) : null,
46
+ index_html_changed: parsed_message?.index_html_change,
47
+ index_css_changed: parsed_message?.index_css_change,
48
+ index_client_changed: parsed_message?.index_client_change,
49
+ })
50
+ );
51
+ }
52
+ }
53
+ }
54
+ }
55
+ });
56
+
57
+ websocket_server.on("connection", function connection(websocket_connection, connection_request = {}) {
58
+ const connection_id = generate_id(16);
59
+ const [_path, params] = connection_request?.url?.split("?");
60
+ const connection_params = queryString.parse(params);
61
+
62
+ process.HMR_CONNECTIONS = {
63
+ ...(process.HMR_CONNECTIONS || {}),
64
+ [connection_id]: {
65
+ connection: websocket_connection,
66
+ browser_language: connection_params?.browser_language,
67
+ user_language: connection_params?.user_language,
68
+ page_component_path: connection_params?.page_component_path,
69
+ },
70
+ };
71
+
72
+ if (Object.keys(process.HMR_CONNECTIONS || {})?.length > 0) {
73
+ process.send({ type: "HAS_HMR_CONNECTIONS" });
74
+ }
75
+
76
+ websocket_connection.on("message", (message) => {
77
+ const parsed_message = JSON.parse(message);
78
+
79
+ if (parsed_message?.type === "HMR_UPDATE_COMPLETE") {
80
+ process.send({ type: "HMR_UPDATE_COMPLETE" });
81
+ }
82
+ });
83
+
84
+ websocket_connection.on("close", () => {
85
+ if (process.HMR_CONNECTIONS[connection_id]) {
86
+ delete process.HMR_CONNECTIONS[connection_id];
87
+
88
+ if (Object.keys(process.HMR_CONNECTIONS || {})?.length === 0) {
89
+ process.send({ type: "HAS_NO_HMR_CONNECTIONS" });
90
+ }
91
+ }
92
+ });
93
+ });
94
+ })();