@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,191 @@
1
+ import chalk from 'chalk';
2
+ import fs from 'fs';
3
+ import get_platform_safe_path from '../../get_platform_safe_path.js';
4
+ import constants from '../../constants.js';
5
+ import set_component_id from './set_component_id.js';
6
+ import path_exists from '../../path_exists.js';
7
+
8
+ const { readFile, writeFile } = fs.promises;
9
+
10
+ const restore_examples_without_mounting_code = (code = '', examples_before_replacement = []) => {
11
+ for (let i = 0; i < examples_before_replacement?.length; i += 1) {
12
+ const example_to_restore = examples_before_replacement[i];
13
+ code = code.replace(`%example:${i}%`, example_to_restore);
14
+ }
15
+ };
16
+
17
+ const add_page_mounting_code = (code = '', default_export = '', component_name = '') => {
18
+ return code.replace(
19
+ `${default_export};`,
20
+ `if (
21
+ typeof window !== 'undefined' &&
22
+ window.__joystick_should_auto_mount__ === true &&
23
+ !window.__joystick_layout_url__ &&
24
+ window.__joystick_page_url__ &&
25
+ !window.__joystick_hmr_update__ &&
26
+ joystick &&
27
+ joystick.mount
28
+ ) {
29
+ joystick.mount(${component_name}, window.__joystick_ssr_props__ || {}, document.getElementById('app'));
30
+ }
31
+
32
+ export default ${component_name};
33
+ `
34
+ );
35
+ };
36
+
37
+ const add_layout_mounting_code = (code = '', default_export = '', component_name = '') => {
38
+ return code.replace(
39
+ `${default_export};`,
40
+ `if (
41
+ typeof window !== 'undefined' &&
42
+ window.__joystick_should_auto_mount__ === true &&
43
+ window.__joystick_layout_url__ &&
44
+ window.__joystick_page_url__ &&
45
+ !window.__joystick_hmr_update__ &&
46
+ joystick &&
47
+ joystick.mount
48
+ ) {
49
+ (async () => {
50
+ const layout_component_file = await import(window.__joystick_layout_url__);
51
+ const page_component_file = await import(window.window.__joystick_page_url__);
52
+ const layout = layout_component_file.default;
53
+ const page = page_component_file.default;
54
+ joystick.mount(layout, Object.assign({ ...window.__joystick_ssr_props__ }, { page }), document.getElementById('app'));
55
+ })();
56
+ }
57
+
58
+ export default ${component_name};
59
+ `
60
+ );
61
+ };
62
+
63
+ const replace_commented_code = (code = '') => {
64
+ return code.replace(constants.JOYSTICK_COMMENT_REGEX, "");
65
+ };
66
+
67
+ const set_placeholders_for_examples = (code = '') => {
68
+ // NOTE: Replace any <example> bracketed code with a placeholder. This ensures
69
+ // that we don't accidentally include any mounting code (or inject a _componentId)
70
+ // in Joystick example code included as content on the page.
71
+ //
72
+ // example_index is tracked to account for potential for multiple examples in a
73
+ // single file. example_index acts as a placeholder for the code to swap back
74
+ // in after the _componentId is set in restore_examples_without_mounting_code().
75
+ let example_index = 0;
76
+
77
+ return code.replace(
78
+ constants.EXAMPLE_CODE_REGEX,
79
+ () => {
80
+ return `%example:${example_index++}%`;
81
+ }
82
+ );
83
+ };
84
+
85
+ const get_examples_before_replacement = (code = '') => {
86
+ return code.match(constants.EXAMPLE_CODE_REGEX) || [];
87
+ };
88
+
89
+ const get_component_name = (default_export = null) => {
90
+ const default_export_parts = (default_export && default_export.split(" ")) || [];
91
+ return default_export_parts?.pop();
92
+ };
93
+
94
+ const check_if_valid_component_file = (has_joystick_ui = false, default_export = null) => {
95
+ return has_joystick_ui && !!default_export;
96
+ };
97
+
98
+ const get_default_export = (code = '') => {
99
+ const export_default_matches = code.match(constants.EXPORT_DEFAULT_REGEX) || [];
100
+ return export_default_matches && export_default_matches[0];
101
+ };
102
+
103
+ const check_if_has_joystick_ui = (code = '') => {
104
+ const joystick_ui_matches = code.match(constants.JOYSTICK_UI_REGEX) || [];
105
+ return !!joystick_ui_matches && !!joystick_ui_matches[0];
106
+ };
107
+
108
+ const check_if_is_component_type = (type ='', build_args = {}) => {
109
+ return [get_platform_safe_path(type)].some(
110
+ (bootstrap_target) => {
111
+ return build_args.path.includes(bootstrap_target);
112
+ }
113
+ );
114
+ };
115
+
116
+ const check_if_should_set_component_id = (entry_point = '') => {
117
+ return [
118
+ get_platform_safe_path("ui/"),
119
+ get_platform_safe_path("email/"),
120
+ ].some((bootstrap_target) => {
121
+ return entry_point.includes(bootstrap_target);
122
+ });
123
+ };
124
+
125
+ const bootstrap_component = (build = {}) => {
126
+ build.onLoad({ filter: /\.js$/ }, async (build_args = {}) => {
127
+ const is_layout_component = check_if_is_component_type('ui/layouts', build_args);
128
+ const is_page_component = check_if_is_component_type('ui/pages', build_args);
129
+ const is_email_component = check_if_is_component_type('email/', build_args);
130
+ const is_component = is_layout_component || is_page_component || is_email_component;
131
+
132
+ if (is_component) {
133
+ let file_contents = await readFile(get_platform_safe_path(build_args.path), "utf-8");
134
+
135
+ const has_joystick_ui = check_if_has_joystick_ui(file_contents);
136
+ const default_export = get_default_export(file_contents);
137
+ const is_valid_component_file = check_if_valid_component_file(has_joystick_ui, default_export);
138
+ const examples_before_replacement = get_examples_before_replacement(file_contents);
139
+ const component_name = get_component_name(default_export);
140
+
141
+ file_contents = set_placeholders_for_examples(file_contents);
142
+ file_contents = replace_commented_code(file_contents);
143
+ file_contents = component_name && is_layout_component ?
144
+ add_layout_mounting_code(file_contents, default_export, component_name) :
145
+ file_contents;
146
+ file_contents = component_name && is_page_component ?
147
+ add_page_mounting_code(file_contents, default_export, component_name) :
148
+ file_contents;
149
+
150
+ restore_examples_without_mounting_code(file_contents, examples_before_replacement);
151
+
152
+ return {
153
+ contents: file_contents,
154
+ loader: "js",
155
+ };
156
+ }
157
+ });
158
+
159
+ build.onEnd(() => {
160
+ return new Promise(async (resolve) => {
161
+ for (let i = 0; i < build?.initialOptions?.entryPoints?.length; i += 1) {
162
+ const entry_point = build?.initialOptions?.entryPoints[i];
163
+ const should_set_component_id = check_if_should_set_component_id(entry_point);
164
+ const build_exists = await path_exists(`${build?.initialOptions?.outdir}/${entry_point}`);
165
+
166
+ if (should_set_component_id && build_exists) {
167
+ let file_contents = await readFile(`${build?.initialOptions?.outdir}/${entry_point}`, "utf-8");
168
+ const has_joystick_ui = check_if_has_joystick_ui(file_contents);
169
+ const examples_before_replacement = get_examples_before_replacement(file_contents);
170
+
171
+ file_contents = set_placeholders_for_examples(file_contents);
172
+
173
+ if (has_joystick_ui) {
174
+ file_contents = await set_component_id(file_contents);
175
+
176
+ for (let i = 0; i < examples_before_replacement?.length; i += 1) {
177
+ const example_to_restore = examples_before_replacement[i];
178
+ file_contents = file_contents.replace(`%example:${i}%`, example_to_restore);
179
+ }
180
+
181
+ await writeFile(`${build?.initialOptions?.outdir}/${entry_point}`, file_contents);
182
+ }
183
+ }
184
+ }
185
+
186
+ resolve();
187
+ });
188
+ });
189
+ };
190
+
191
+ export default bootstrap_component;
@@ -0,0 +1,20 @@
1
+ import fs from 'fs';
2
+ import get_platform_safe_path from '../../get_platform_safe_path.js';
3
+ import update_file_map from './update_file_map.js';
4
+
5
+ const { readFile } = fs.promises;
6
+
7
+ const generate_file_dependency_map = (build = {}) => {
8
+ build.onLoad({ filter: /\.js$/ }, async (args) => {
9
+ const can_add_to_map = !["node_modules", ".joystick", "?", "commonjsHelpers.js"].some((excluded_path) => {
10
+ return get_platform_safe_path(args.path).includes(excluded_path);
11
+ });
12
+
13
+ if (can_add_to_map) {
14
+ const code = await readFile(get_platform_safe_path(args.path), "utf-8");
15
+ await update_file_map(get_platform_safe_path(args.path), code);
16
+ }
17
+ });
18
+ };
19
+
20
+ export default generate_file_dependency_map;
@@ -0,0 +1,26 @@
1
+ import bootstrap_component from './bootstrap_component.js';
2
+ import generate_file_dependency_map from './generate_file_dependency_map.js';
3
+ import warn_node_environment from "./warn_node_environment.js";
4
+
5
+ const plugins = {
6
+ bootstrap_component: {
7
+ name: "bootstrap_component",
8
+ setup(build) {
9
+ bootstrap_component(build);
10
+ },
11
+ },
12
+ generate_file_dependency_map: {
13
+ name: "generate_file_dependency_map",
14
+ setup(build) {
15
+ generate_file_dependency_map(build);
16
+ },
17
+ },
18
+ warn_node_environment: {
19
+ name: "warn_node_environment",
20
+ setup(build) {
21
+ warn_node_environment(build);
22
+ },
23
+ },
24
+ };
25
+
26
+ export default plugins;
@@ -0,0 +1,89 @@
1
+ import fs from "fs";
2
+ import generate_id from "../../generate_id.js";
3
+ import path_exists from "../../path_exists.js";
4
+
5
+ const { readFile, writeFile } = fs.promises;
6
+
7
+ const update_component_id_cache = async (component_id_targets = [], component_id_cache = {}, component_id_cache_path = '') => {
8
+ for (let i = 0; i < component_id_targets.length; i += 1) {
9
+ const component = component_id_targets[i];
10
+ component_id_cache[component.path] = component.component_id;
11
+ await writeFile(component_id_cache_path, JSON.stringify(component_id_cache));
12
+ }
13
+ };
14
+
15
+ const inject_component_id = (component_id_targets = [], file = '') => {
16
+ let updated_file = file;
17
+
18
+ for (let i = 0; i < component_id_targets.length; i += 1) {
19
+ const component = component_id_targets[i];
20
+
21
+ const tainted = component.source.replace(
22
+ /\.component\(\{+(?!\n + _componentId)/g,
23
+ () => {
24
+ return `.component({\n _componentId: '${component.component_id}',`;
25
+ }
26
+ );
27
+
28
+ updated_file = updated_file.replace(component.source, tainted);
29
+ }
30
+
31
+ return updated_file;
32
+ };
33
+
34
+ const get_component_id_targets = (file = '', component_paths_from_esbuild_output = [], component_id_cache = {}) => {
35
+ return component_paths_from_esbuild_output?.map((component_path, component_path_index) => {
36
+ const next_component_path = component_paths_from_esbuild_output[component_path_index + 1];
37
+ const path_without_comment = component_path.path.replace("// ", "");
38
+
39
+ return {
40
+ path: path_without_comment,
41
+ component_id: component_id_cache[path_without_comment] || generate_id(16),
42
+ index: component_path.index,
43
+ source: file.substring(
44
+ component_path.index,
45
+ next_component_path ? next_component_path.index : file.length
46
+ ),
47
+ };
48
+ });
49
+ };
50
+
51
+ const get_component_paths_from_esbuild_output = (file = '') => {
52
+ return [...file?.matchAll(/\/\/ ui+.*/gi), ...file?.matchAll(/\/\/ email+.*/gi)]?.map((match) => {
53
+ return {
54
+ path: match[0],
55
+ index: match.index,
56
+ };
57
+ });
58
+ };
59
+
60
+ const get_existing_component_id_cache = async (component_id_cache_path = '') => {
61
+ const has_component_id_cache = await path_exists(component_id_cache_path);
62
+
63
+ if (has_component_id_cache) {
64
+ const component_id_cache = await readFile(component_id_cache_path, 'utf-8');
65
+ return JSON.parse(component_id_cache);
66
+ }
67
+
68
+ return {};
69
+ };
70
+
71
+ const get_component_id_cache_path = () => {
72
+ return ['development', 'test'].includes(process.env.NODE_ENV)
73
+ ? `./.joystick/build/component_id_cache.json`
74
+ : `./.build/component_id_cache.json`;
75
+ };
76
+
77
+ const set_component_id = async (file = "") => {
78
+ const component_id_cache_path = get_component_id_cache_path();
79
+ const component_id_cache = await get_existing_component_id_cache(component_id_cache_path);
80
+ const component_paths_from_esbuild_output = get_component_paths_from_esbuild_output(file);
81
+ const component_id_targets = get_component_id_targets(file, component_paths_from_esbuild_output, component_id_cache);
82
+
83
+ const file_with_component_id = inject_component_id(component_id_targets, file);
84
+ await update_component_id_cache(component_id_targets, component_id_cache, component_id_cache_path);
85
+
86
+ return file_with_component_id;
87
+ };
88
+
89
+ export default set_component_id;
@@ -0,0 +1,98 @@
1
+ import fs from "fs";
2
+ import path, { dirname } from 'path';
3
+ import * as acorn from "acorn";
4
+ import path_exists from '../../path_exists.js';
5
+
6
+ const { readFile, writeFile } = fs.promises;
7
+
8
+ const get_requires = (from_path = '', map = {}) => {
9
+ const requires = map?.body?.filter((statement) => {
10
+ const type = statement && statement.type;
11
+ const declarations = (statement && statement.declarations) || [];
12
+
13
+ const is_variable_declaration = type === "VariableDeclaration";
14
+
15
+ const has_require_statement = declarations.some((declaration) => {
16
+ const is_variable_declarator = declaration.type === "VariableDeclarator";
17
+ const callee_name = declaration?.init?.callee?.name;
18
+ return is_variable_declarator && callee_name === "require";
19
+ });
20
+
21
+ return is_variable_declaration && has_require_statement;
22
+ });
23
+
24
+ return requires.map((require_declaration) => {
25
+ const declarations = require_declaration.declarations;
26
+ const declaration = declarations && declarations[0];
27
+ const declaration_value = declaration?.init?.arguments[0] && declaration.init.arguments[0]?.value;
28
+
29
+ return {
30
+ absolute_path: declaration_value ? path.resolve(dirname(from_path), declaration_value) : null,
31
+ };
32
+ });
33
+ };
34
+
35
+ const get_imports = (from_path = '', map = {}) => {
36
+ const imports = map?.body?.filter(({ type }) => {
37
+ return type === "ImportDeclaration";
38
+ }) || [];
39
+
40
+ return imports.map((import_declaration) => {
41
+ return {
42
+ path: import_declaration?.source?.value,
43
+ absolute_path: path.resolve(dirname(from_path), import_declaration?.source?.value),
44
+ };
45
+ });
46
+ };
47
+
48
+ const get_imports_and_requires = (from_path = '', map = {}) => {
49
+ const imports = get_imports(from_path, map);
50
+ const requires = get_requires(from_path, map);
51
+
52
+ return {
53
+ imports,
54
+ requires,
55
+ };
56
+ };
57
+
58
+ const parse_file_to_ast = (file = "") => {
59
+ return acorn.parse(file, {
60
+ ecmaVersion: "latest",
61
+ sourceType: "module",
62
+ });
63
+ };
64
+
65
+ const read_file_dependency_map = async () => {
66
+ const file_dependency_map_path = `.joystick/build/file_map.json`;
67
+
68
+ if (await path_exists(file_dependency_map_path)) {
69
+ const file_dependency_map_as_json = fs.readFileSync(
70
+ file_dependency_map_path,
71
+ "utf-8"
72
+ );
73
+
74
+ return file_dependency_map_as_json ? JSON.parse(file_dependency_map_as_json) : {};
75
+ }
76
+
77
+ return {};
78
+ };
79
+
80
+ const update_file_map = async (from_path = "", source = "") => {
81
+ try {
82
+ const file_dependency_map = await read_file_dependency_map();
83
+ const file_ast = parse_file_to_ast(source);
84
+ const imports = file_ast ? get_imports_and_requires(from_path, file_ast) : [];
85
+
86
+ file_dependency_map[from_path] = imports;
87
+
88
+ fs.writeFileSync(
89
+ `.joystick/build/file_map.json`,
90
+ JSON.stringify(file_dependency_map, null, 2)
91
+ );
92
+ } catch {
93
+ // Do nothing. This exists to handle acorn parsing errors that are also picked
94
+ // up by the esbuild parser (we want to defer to esbuild).
95
+ }
96
+ };
97
+
98
+ export default update_file_map;
@@ -0,0 +1,20 @@
1
+ import fs from 'fs';
2
+ import chalk from 'chalk';
3
+
4
+ const { readFile } = fs.promises;
5
+
6
+ const warn_node_environment = (build = {}) => {
7
+ build.onLoad({ filter: /\.js$/ }, async (args = {}) => {
8
+ const code = await readFile(args.path, "utf-8");
9
+
10
+ if (code?.match(/process.env.NODE_ENV\s+=\s/gi)?.length) {
11
+ console.warn(
12
+ chalk.yellowBright(
13
+ "\n[WARNING] process.env.NODE_ENV should only be set via a CLI flag in development or via external environment variables in production.\n"
14
+ )
15
+ );
16
+ }
17
+ });
18
+ };
19
+
20
+ export default warn_node_environment;
@@ -1,7 +1,7 @@
1
1
  import chalk from 'chalk';
2
- import rainbowRoad from './rainbowRoad.js';
2
+ import log_bars from './log_bars.js';
3
3
 
4
- export default (message = '', options = {}) => {
4
+ const cli_log = (message = '', options = {}) => {
5
5
  const colors = {
6
6
  info: 'blue',
7
7
  success: 'green',
@@ -18,23 +18,27 @@ export default (message = '', options = {}) => {
18
18
 
19
19
  const color = options.level ? colors[options.level] : 'gray';
20
20
  const title = options.level ? titles[options.level] : 'Log';
21
- const docs = options.docs || 'https://github.com/cheatcode/joystick';
21
+ const docs = options.docs || 'https://docs.cheatcode.co/joystick';
22
22
 
23
- console.log(`\n${(options.padding || '')}${rainbowRoad()}\n`);
23
+ console.log(`\n${(options.padding || '')}${log_bars()}\n`);
24
24
  console.log(`${(options.padding || '')}${chalk[color](`${title}:`)}\n`)
25
25
  console.log(`${(options.padding || '')}${chalk.white(message)}\n`);
26
26
  console.log(`${(options.padding || '')}${chalk.grey('---')}\n`);
27
27
  console.log(`${(options.padding || '')}${chalk.white('Relevant Documentation:')}\n`)
28
28
  console.log(`${(options.padding || '')}${chalk.blue(docs)}\n`);
29
29
  console.log(`${(options.padding || '')}${chalk.white('Stuck? Ask a Question:')}\n`)
30
- console.log(`${(options.padding || '')}${chalk.blue('https://github.com/cheatcode/joystick/discussions')}\n`);
30
+ console.log(`${(options.padding || '')}${chalk.blue('http://discord.cheatcode.co')}\n`);
31
31
 
32
32
  if (options.tools && Array.isArray(options.tools)) {
33
33
  console.log(`${(options.padding || '')}${chalk.white('Helpful Tools:')}\n`);
34
- options.tools.forEach((tool) => {
34
+
35
+ for (let i = 0; i < options?.tools?.length; i += 1) {
36
+ const tool = options?.tools[i];
35
37
  console.log(`${(options.padding || '')}${chalk.blue(`${tool.title} — ${tool.url}`)}\n`);
36
- });
38
+ }
37
39
  }
38
40
 
39
- console.log(`${(options.padding || '')}${rainbowRoad()}\n`);
41
+ console.log(`${(options.padding || '')}${log_bars()}\n`);
40
42
  };
43
+
44
+ export default cli_log;
@@ -0,0 +1,7 @@
1
+ import chalk from "chalk";
2
+
3
+ const color_log = (message = '', color = 'blueBright') => {
4
+ return console.log(chalk[color](message));
5
+ };
6
+
7
+ export default color_log;
@@ -0,0 +1,16 @@
1
+ import child_process from 'child_process';
2
+ import util from 'util';
3
+
4
+ const exec = util.promisify(child_process.exec);
5
+
6
+ const command_exists = (command = '') => {
7
+ const where_command = process.platform === 'win32' ? 'where' : 'whereis';
8
+ return exec(`${where_command} ${command}`).then(() => {
9
+ return true;
10
+ }).catch((error) => {
11
+ console.warn(error);
12
+ return false;
13
+ });
14
+ };
15
+
16
+ export default command_exists;
@@ -1 +1,11 @@
1
- export default {};
1
+ const constants = {
2
+ EXAMPLE_CODE_REGEX: new RegExp(/\<example\>[^%]+\<\/example\>/g),
3
+ EXPORT_DEFAULT_REGEX: new RegExp(/export default [a-zA-Z0-9]+/g),
4
+ JOYSTICK_COMMENT_REGEX: new RegExp(/\<\!\-\-(.|\n|\r)*?-->/g),
5
+ JOYSTICK_COMPONENT_REGEX: new RegExp(/\.component\(\{/g),
6
+ JOYSTICK_UI_REGEX: new RegExp(/joystick-ui-test|joystick.js\/ui-canary|joystick.js\/ui/g),
7
+ OBJECT_REGEX: new RegExp(/{([^;]*)}/g),
8
+ SETTINGS_FILE_NAME_REGEX: new RegExp(/settings\.+[a-z]+\.json/g),
9
+ };
10
+
11
+ export default constants;
@@ -0,0 +1,9 @@
1
+ const debounce = (() => {
2
+ let timer = 0;
3
+ return (callback, ms) => {
4
+ clearTimeout(timer);
5
+ timer = setTimeout(callback, ms);
6
+ };
7
+ })();
8
+
9
+ export default debounce;
@@ -0,0 +1,12 @@
1
+ import crypto from 'crypto';
2
+
3
+ const decrypt_buffer = (buffer, key) => {
4
+ // NOTE: First 16 bytes of buffer are the initialization_vector.
5
+ const initialization_vector = buffer.slice(0, 16);
6
+ const rest_of_buffer = buffer.slice(16);
7
+ const hashed_encryption_key = crypto.createHash('sha256').update(key).digest('hex').substring(0, 32);
8
+ const decipher = crypto.createDecipheriv('aes256', hashed_encryption_key, initialization_vector);
9
+ return Buffer.concat([decipher.update(rest_of_buffer), decipher.final()]);
10
+ };
11
+
12
+ export default decrypt_buffer;
@@ -0,0 +1,14 @@
1
+ const ava_config = {
2
+ files: [
3
+ `tests/**/*.test.js`,
4
+ ],
5
+ ignoredByWatcher: ['.joystick', './uploads'],
6
+ // NOTE: Intentionally limit to 1 test at a time to avoid concurrency creating
7
+ // race conditions in tests that have users or other global data that needs
8
+ // to be cleaned up. The extra time needed is worth it to guarantee that tests
9
+ // don't step on each other's toes and our code is properly verified.
10
+ concurrency: 1,
11
+ cache: false,
12
+ };
13
+
14
+ export default ava_config;
@@ -0,0 +1,31 @@
1
+ import net from 'net';
2
+
3
+ const reset_client = (client = {}) => {
4
+ client.end();
5
+ client.destroy();
6
+ client.unref();
7
+ };
8
+
9
+ const check_if_port_occupied = (port = 2600) => {
10
+ return new Promise((resolve) => {
11
+ const client = new net.Socket();
12
+
13
+ // NOTE: This is inverted. If we can connect, the port is occupied. If we can't, the port is free.
14
+ client.once('connect', () => {
15
+ reset_client(client);
16
+ resolve(true);
17
+ });
18
+
19
+ client.once('error', () => {
20
+ reset_client(client);
21
+ resolve(false);
22
+ });
23
+
24
+ client.connect({
25
+ port,
26
+ host: '127.0.0.1',
27
+ }, function() {});
28
+ });
29
+ };
30
+
31
+ export default check_if_port_occupied;
@@ -0,0 +1,15 @@
1
+ // NOTE: This module is intended to be run as a child_process as part of
2
+ // a SIGINT or SIGTERM event.
3
+
4
+ import kill_process_ids from "./kill_process_ids.js";
5
+
6
+ process.title = "joystick_cleanup";
7
+
8
+ process.on('message', async (message) => {
9
+ const parsed_message = JSON.parse(message);
10
+ const process_ids = parsed_message?.process_ids;
11
+
12
+ kill_process_ids(process_ids);
13
+
14
+ process.exit();
15
+ });
@@ -1,4 +1,4 @@
1
- export default [
1
+ const available_query_parameters = [
2
2
  "replicaSet",
3
3
  "tls",
4
4
  "ssl",
@@ -37,3 +37,5 @@ export default [
37
37
  "retryWrites",
38
38
  "uuidRepresentation"
39
39
  ];
40
+
41
+ export default available_query_parameters;
@@ -0,0 +1,31 @@
1
+ import build_query_parameters from "./build_query_parameters.js";
2
+ import serialize_query_parameters from "../../../serialize_query_parameters.js";
3
+ import types from "../../../types.js";
4
+
5
+ const build_connection_string = (connection = {}) => {
6
+ let connection_string = "mongodb://";
7
+
8
+ if (connection && (connection.username || connection.password)) {
9
+ connection_string = `${connection_string}${connection.username || connection.password ? `${connection.username || ""}${!!connection.username && !!connection.password ? ':' : ''}${connection.password || ""}@` : ''}`;
10
+ }
11
+
12
+ if (connection && connection.hosts && types.is_array(connection.hosts)) {
13
+ connection_string = `${connection_string}${connection.hosts
14
+ .map((host) => `${host.hostname}:${host.port}`)
15
+ .join(",")}`;
16
+ }
17
+
18
+ if (connection && connection.database) {
19
+ connection_string = `${connection_string}/${connection.database}`;
20
+ }
21
+
22
+ const query_parameters = build_query_parameters(connection);
23
+
24
+ if (Object.keys(query_parameters)?.length > 0 ) {
25
+ connection_string = `${connection_string}?${serialize_query_parameters(query_parameters)}`;
26
+ }
27
+
28
+ return connection_string;
29
+ };
30
+
31
+ export default build_connection_string;