@joystick.js/cli-canary 0.0.0-canary.162 → 0.0.0-canary.1621

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 (584) hide show
  1. package/.build/getFilesToBuild.js +1 -1
  2. package/.build/index.js +3 -3
  3. package/LICENSE.md +59 -0
  4. package/README.md +45 -4
  5. package/dist/cli.js +1 -76
  6. package/dist/commands/build/definition.js +1 -0
  7. package/dist/commands/build/index.js +1 -0
  8. package/dist/commands/create/build_package_json.js +1 -0
  9. package/dist/commands/create/definition.js +1 -0
  10. package/dist/commands/create/index.js +2 -0
  11. package/dist/commands/create/template/api/index.js +6 -0
  12. package/dist/commands/create/template/email/base.css +9 -0
  13. package/dist/commands/create/template/email/base.html +10 -0
  14. package/dist/commands/create/template/email/reset_password.js +20 -0
  15. package/dist/commands/create/template/i18n/en-US.js +14 -0
  16. package/dist/commands/create/template/index.client.js +1 -0
  17. package/dist/commands/create/template/index.css +34 -0
  18. package/dist/{functions/create/templates → commands/create/template}/index.html +2 -3
  19. package/dist/{functions/create/templates → commands/create/template}/index.server.js +6 -6
  20. package/dist/commands/create/template/public/apple-touch-icon-152x152.png +0 -0
  21. package/dist/commands/create/template/public/favicon.ico +0 -0
  22. package/dist/commands/create/template/public/joystick_logo.webp +0 -0
  23. package/dist/{functions/create/templates → commands/create/template}/public/manifest.json +4 -4
  24. package/dist/commands/create/template/public/splash-screen-1024x1024.png +0 -0
  25. package/{src/functions/create/templates → dist/commands/create/template}/ui/components/button/index.js +14 -6
  26. package/{src/functions/create/templates → dist/commands/create/template}/ui/layouts/app/index.js +2 -2
  27. package/dist/commands/create/template/ui/pages/error/index.js +50 -0
  28. package/dist/commands/create/template/ui/pages/index/index.js +121 -0
  29. package/dist/commands/help/definition.js +1 -0
  30. package/dist/commands/help/index.js +19 -0
  31. package/dist/commands/index.js +1 -0
  32. package/dist/commands/logout/definition.js +1 -0
  33. package/dist/commands/logout/index.js +3 -0
  34. package/dist/commands/push/cdn_mirrors.js +1 -0
  35. package/dist/commands/push/check_if_settings_valid.js +1 -0
  36. package/dist/commands/push/create_version.js +1 -0
  37. package/dist/commands/push/definition.js +1 -0
  38. package/dist/commands/push/get_app_domain.js +1 -0
  39. package/dist/commands/push/get_deployment.js +1 -0
  40. package/dist/commands/push/get_provision_domain.js +1 -0
  41. package/dist/commands/push/get_session_token.js +1 -0
  42. package/dist/commands/push/get_settings_file.js +1 -0
  43. package/dist/commands/push/handle_initial_deployment.js +1 -0
  44. package/dist/commands/push/handle_version_deployment.js +1 -0
  45. package/dist/commands/push/index.js +8 -0
  46. package/dist/commands/push/prompts/confirm_deployment.js +17 -0
  47. package/dist/commands/push/prompts/session_token.js +5 -0
  48. package/dist/commands/push/upload_build_to_cdn.js +1 -0
  49. package/dist/commands/push/validate_deployment.js +1 -0
  50. package/dist/commands/push/validate_push_config.js +1 -0
  51. package/dist/commands/start/definition.js +1 -0
  52. package/dist/commands/start/index.js +1 -0
  53. package/dist/commands/test/definition.js +1 -0
  54. package/dist/commands/test/index.js +1 -0
  55. package/dist/commands/update/definition.js +1 -0
  56. package/dist/commands/update/index.js +1 -0
  57. package/dist/commands/use/definition.js +1 -0
  58. package/dist/commands/use/index.js +1 -0
  59. package/dist/index.js +1 -7
  60. package/dist/lib/build/browser_path_exclusions.js +1 -0
  61. package/dist/lib/build/browser_paths.js +1 -0
  62. package/dist/lib/build/build_files.js +3 -0
  63. package/dist/lib/build/copy_paths.js +1 -0
  64. package/dist/lib/build/get_code_frame.js +1 -0
  65. package/dist/lib/build/get_file_operation.js +1 -0
  66. package/dist/lib/build/get_files_to_build.js +1 -0
  67. package/dist/lib/build/get_path_platform.js +1 -0
  68. package/dist/lib/build/get_platform_safe_path.js +1 -0
  69. package/dist/lib/build/get_tar_ignore_list.js +2 -0
  70. package/dist/lib/build/index.js +3 -0
  71. package/dist/lib/build/master_ignore_list.js +1 -0
  72. package/dist/lib/build/minify_file.js +1 -0
  73. package/dist/lib/build/node_paths.js +1 -0
  74. package/dist/lib/build/on_warn.js +10 -0
  75. package/dist/lib/build/plugins/bootstrap_component.js +33 -0
  76. package/dist/lib/build/plugins/generate_file_dependency_map.js +1 -0
  77. package/dist/lib/build/plugins/index.js +1 -0
  78. package/dist/lib/build/plugins/set_component_id.js +2 -0
  79. package/dist/lib/build/plugins/update_file_map.js +1 -0
  80. package/dist/lib/build/plugins/warn_node_environment.js +3 -0
  81. package/dist/lib/cli_log.js +13 -0
  82. package/dist/lib/color_log.js +1 -0
  83. package/dist/lib/command_exists.js +1 -0
  84. package/dist/lib/constants.js +1 -4
  85. package/dist/lib/debounce.js +1 -0
  86. package/dist/lib/decrypt_buffer.js +1 -0
  87. package/dist/lib/development_server/ava_config.js +1 -0
  88. package/dist/lib/development_server/check_if_port_occupied.js +1 -0
  89. package/dist/lib/development_server/cleanup.js +1 -0
  90. package/dist/lib/development_server/databases/download_database_binary.js +1 -0
  91. package/dist/lib/development_server/databases/mongodb/available_query_parameters.js +1 -0
  92. package/dist/lib/development_server/databases/mongodb/build_connection_string.js +1 -0
  93. package/dist/lib/development_server/databases/mongodb/build_query_parameters.js +1 -0
  94. package/dist/lib/development_server/databases/mongodb/check_connection.js +2 -0
  95. package/dist/lib/development_server/databases/mongodb/connect.js +1 -0
  96. package/dist/lib/development_server/databases/mongodb/index.js +1 -0
  97. package/dist/lib/development_server/databases/mongodb/installers/linux.js +1 -0
  98. package/dist/lib/development_server/databases/mongodb/installers/macos.js +1 -0
  99. package/dist/lib/development_server/databases/mongodb/installers/windows.js +1 -0
  100. package/dist/lib/development_server/databases/postgresql/check_connection.js +2 -0
  101. package/dist/lib/development_server/databases/postgresql/connect.js +1 -0
  102. package/dist/lib/development_server/databases/postgresql/index.js +2 -0
  103. package/dist/lib/development_server/databases/postgresql/installers/linux.js +1 -0
  104. package/dist/lib/development_server/databases/postgresql/installers/macos.js +1 -0
  105. package/dist/lib/development_server/databases/postgresql/installers/windows.js +1 -0
  106. package/dist/lib/development_server/databases/provider_map.js +1 -0
  107. package/dist/lib/development_server/get_database_process_ids.js +1 -0
  108. package/dist/lib/development_server/get_translations.js +1 -0
  109. package/dist/lib/development_server/hmr_server.js +1 -0
  110. package/dist/lib/development_server/index.js +10 -0
  111. package/dist/lib/development_server/kill_process_ids.js +1 -0
  112. package/dist/lib/development_server/run_tests.js +2 -0
  113. package/dist/lib/development_server/start_app_server.js +1 -0
  114. package/dist/lib/development_server/start_databases.js +1 -0
  115. package/dist/lib/development_server/start_hmr_server.js +1 -0
  116. package/dist/lib/development_server/watch_for_changes/browser_path_exclusions.js +1 -0
  117. package/dist/lib/development_server/watch_for_changes/browser_paths.js +1 -0
  118. package/dist/lib/development_server/watch_for_changes/get_after_run_tasks.js +1 -0
  119. package/dist/lib/development_server/watch_for_changes/get_file_codependencies.js +1 -0
  120. package/dist/lib/development_server/watch_for_changes/get_platform_safe_path.js +1 -0
  121. package/dist/lib/development_server/watch_for_changes/index.js +1 -0
  122. package/dist/lib/development_server/watch_for_changes/node_paths.js +1 -0
  123. package/dist/lib/development_server/watch_for_changes/read_file_dependency_map.js +1 -0
  124. package/dist/lib/development_server/watch_for_changes/watch_paths.js +1 -0
  125. package/dist/lib/dynamic_import.js +1 -0
  126. package/dist/lib/encrypt_buffer.js +1 -0
  127. package/dist/lib/generate_id.js +1 -0
  128. package/dist/lib/get_files_in_path.js +1 -0
  129. package/dist/lib/get_platform_safe_path.js +1 -0
  130. package/dist/lib/get_process_id_from_port.js +2 -0
  131. package/dist/lib/is_valid_json_string.js +1 -0
  132. package/dist/lib/kill_port_process.js +1 -0
  133. package/dist/lib/kill_process_id.js +1 -0
  134. package/dist/lib/load_settings.js +1 -0
  135. package/dist/lib/loader.js +2 -82
  136. package/dist/lib/log_bars.js +1 -0
  137. package/dist/lib/node_path_polyfills.js +1 -0
  138. package/dist/lib/parse_args.js +1 -0
  139. package/dist/lib/parse_options.js +1 -0
  140. package/dist/lib/path_exists.js +1 -0
  141. package/dist/lib/rainbow_road.js +1 -0
  142. package/dist/lib/replace_in_files.js +1 -0
  143. package/dist/lib/required_files.js +1 -0
  144. package/dist/lib/serialize_query_parameters.js +1 -0
  145. package/dist/lib/types.js +1 -6
  146. package/dist/lib/unique_array.js +1 -0
  147. package/increment_version.js +3 -0
  148. package/package.json +19 -38
  149. package/src/cli.js +59 -51
  150. package/src/commands/build/definition.js +58 -0
  151. package/src/commands/build/index.js +7 -0
  152. package/src/commands/create/build_package_json.js +20 -0
  153. package/src/commands/create/definition.js +35 -0
  154. package/src/commands/create/index.js +71 -0
  155. package/src/commands/create/template/api/index.js +6 -0
  156. package/src/commands/create/template/email/base.css +9 -0
  157. package/src/commands/create/template/email/base.html +10 -0
  158. package/src/commands/create/template/email/reset_password.js +20 -0
  159. package/src/commands/create/template/i18n/en-US.js +14 -0
  160. package/src/commands/create/template/index.client.js +1 -0
  161. package/src/commands/create/template/index.css +34 -0
  162. package/src/{functions/create/templates → commands/create/template}/index.html +2 -3
  163. package/src/{functions/create/templates → commands/create/template}/index.server.js +6 -6
  164. package/src/commands/create/template/public/apple-touch-icon-152x152.png +0 -0
  165. package/src/commands/create/template/public/favicon.ico +0 -0
  166. package/src/commands/create/template/public/joystick_logo.webp +0 -0
  167. package/src/{functions/create/templates → commands/create/template}/public/manifest.json +4 -4
  168. package/src/commands/create/template/public/splash-screen-1024x1024.png +0 -0
  169. package/{dist/functions/create/templates → src/commands/create/template}/ui/components/button/index.js +14 -6
  170. package/{dist/functions/create/templates → src/commands/create/template}/ui/layouts/app/index.js +2 -2
  171. package/src/commands/create/template/ui/pages/error/index.js +50 -0
  172. package/src/commands/create/template/ui/pages/index/index.js +121 -0
  173. package/src/commands/help/definition.js +12 -0
  174. package/src/commands/help/index.js +48 -0
  175. package/src/commands/index.js +23 -0
  176. package/src/commands/logout/definition.js +10 -0
  177. package/src/commands/logout/index.js +20 -0
  178. package/src/commands/push/cdn_mirrors.js +7 -0
  179. package/src/commands/push/check_if_settings_valid.js +10 -0
  180. package/src/commands/push/create_version.js +20 -0
  181. package/src/commands/push/definition.js +43 -0
  182. package/src/commands/push/get_app_domain.js +11 -0
  183. package/src/commands/push/get_deployment.js +19 -0
  184. package/src/commands/push/get_provision_domain.js +9 -0
  185. package/src/commands/push/get_session_token.js +31 -0
  186. package/src/commands/push/get_settings_file.js +47 -0
  187. package/src/commands/push/handle_initial_deployment.js +24 -0
  188. package/src/commands/push/handle_version_deployment.js +23 -0
  189. package/src/commands/push/index.js +190 -0
  190. package/src/commands/push/prompts/confirm_deployment.js +73 -0
  191. package/src/commands/push/prompts/session_token.js +11 -0
  192. package/src/commands/push/upload_build_to_cdn.js +59 -0
  193. package/src/commands/push/validate_deployment.js +19 -0
  194. package/src/commands/push/validate_push_config.js +18 -0
  195. package/src/commands/start/definition.js +58 -0
  196. package/src/commands/start/index.js +11 -0
  197. package/src/commands/test/definition.js +28 -0
  198. package/src/commands/test/index.js +12 -0
  199. package/src/commands/update/definition.js +28 -0
  200. package/src/commands/update/index.js +29 -0
  201. package/src/commands/use/definition.js +19 -0
  202. package/src/commands/use/index.js +54 -0
  203. package/src/index.js +0 -0
  204. package/src/lib/build/browser_path_exclusions.js +8 -0
  205. package/src/lib/build/browser_paths.js +11 -0
  206. package/src/lib/build/build_files.js +163 -0
  207. package/src/{functions/start/filesToCopy.js → lib/build/copy_paths.js} +7 -5
  208. package/src/lib/build/get_code_frame.js +11 -0
  209. package/src/lib/build/get_file_operation.js +25 -0
  210. package/src/lib/build/get_files_to_build.js +41 -0
  211. package/src/lib/build/get_path_platform.js +32 -0
  212. package/src/lib/build/get_platform_safe_path.js +6 -0
  213. package/src/lib/build/get_tar_ignore_list.js +41 -0
  214. package/src/lib/build/index.js +137 -0
  215. package/src/lib/build/master_ignore_list.js +14 -0
  216. package/src/lib/build/minify_file.js +15 -0
  217. package/src/lib/build/node_paths.js +19 -0
  218. package/src/lib/build/on_warn.js +70 -0
  219. package/src/lib/build/plugins/bootstrap_component.js +191 -0
  220. package/src/lib/build/plugins/generate_file_dependency_map.js +20 -0
  221. package/src/lib/build/plugins/index.js +26 -0
  222. package/src/lib/build/plugins/set_component_id.js +89 -0
  223. package/src/lib/build/plugins/update_file_map.js +98 -0
  224. package/src/lib/build/plugins/warn_node_environment.js +20 -0
  225. package/src/lib/{CLILog.js → cli_log.js} +12 -8
  226. package/src/lib/color_log.js +7 -0
  227. package/src/lib/command_exists.js +16 -0
  228. package/src/lib/constants.js +11 -1
  229. package/src/lib/debounce.js +9 -0
  230. package/src/lib/decrypt_buffer.js +12 -0
  231. package/src/lib/development_server/ava_config.js +14 -0
  232. package/src/lib/development_server/check_if_port_occupied.js +31 -0
  233. package/src/lib/development_server/cleanup.js +15 -0
  234. package/src/lib/development_server/databases/download_database_binary.js +35 -0
  235. package/src/lib/{dev/databases/mongodb/availableQueryParameters.js → development_server/databases/mongodb/available_query_parameters.js} +3 -1
  236. package/src/lib/development_server/databases/mongodb/build_connection_string.js +36 -0
  237. package/src/lib/development_server/databases/mongodb/build_query_parameters.js +17 -0
  238. package/src/lib/development_server/databases/mongodb/check_connection.js +41 -0
  239. package/src/lib/development_server/databases/mongodb/connect.js +27 -0
  240. package/src/lib/development_server/databases/mongodb/index.js +102 -0
  241. package/src/lib/development_server/databases/mongodb/installers/linux.js +107 -0
  242. package/src/lib/development_server/databases/mongodb/installers/macos.js +109 -0
  243. package/src/lib/development_server/databases/mongodb/installers/windows.js +90 -0
  244. package/src/lib/development_server/databases/postgresql/check_connection.js +56 -0
  245. package/src/lib/development_server/databases/postgresql/connect.js +33 -0
  246. package/src/lib/development_server/databases/postgresql/index.js +157 -0
  247. package/src/lib/development_server/databases/postgresql/installers/linux.js +80 -0
  248. package/src/lib/development_server/databases/postgresql/installers/macos.js +91 -0
  249. package/src/lib/development_server/databases/postgresql/installers/windows.js +83 -0
  250. package/src/lib/development_server/databases/provider_map.js +15 -0
  251. package/src/lib/development_server/get_database_process_ids.js +28 -0
  252. package/src/lib/development_server/get_translations.js +85 -0
  253. package/src/lib/development_server/hmr_server.js +94 -0
  254. package/src/lib/development_server/index.js +436 -0
  255. package/src/lib/development_server/kill_process_ids.js +8 -0
  256. package/src/lib/development_server/run_tests.js +84 -0
  257. package/src/lib/development_server/start_app_server.js +55 -0
  258. package/src/lib/development_server/start_databases.js +108 -0
  259. package/src/lib/development_server/start_hmr_server.js +36 -0
  260. package/src/lib/development_server/watch_for_changes/browser_path_exclusions.js +8 -0
  261. package/src/lib/development_server/watch_for_changes/browser_paths.js +11 -0
  262. package/src/lib/development_server/watch_for_changes/get_after_run_tasks.js +36 -0
  263. package/src/lib/development_server/watch_for_changes/get_file_codependencies.js +53 -0
  264. package/src/lib/development_server/watch_for_changes/get_platform_safe_path.js +6 -0
  265. package/src/lib/development_server/watch_for_changes/index.js +222 -0
  266. package/src/lib/development_server/watch_for_changes/node_paths.js +17 -0
  267. package/src/lib/development_server/watch_for_changes/read_file_dependency_map.js +18 -0
  268. package/src/lib/development_server/watch_for_changes/watch_paths.js +22 -0
  269. package/src/lib/dynamic_import.js +6 -0
  270. package/src/lib/encrypt_buffer.js +10 -0
  271. package/src/lib/generate_id.js +15 -0
  272. package/src/lib/get_files_in_path.js +25 -0
  273. package/src/lib/get_platform_safe_path.js +8 -0
  274. package/src/lib/get_process_id_from_port.js +26 -0
  275. package/src/lib/is_valid_json_string.js +10 -0
  276. package/src/lib/kill_port_process.js +12 -0
  277. package/src/lib/kill_process_id.js +19 -0
  278. package/src/lib/load_settings.js +43 -0
  279. package/src/lib/loader.js +4 -77
  280. package/src/lib/log_bars.js +7 -0
  281. package/src/lib/node_path_polyfills.js +23 -0
  282. package/src/lib/parse_args.js +16 -0
  283. package/src/lib/parse_options.js +16 -0
  284. package/src/lib/path_exists.js +11 -0
  285. package/src/lib/{rainbowRoad.js → rainbow_road.js} +4 -2
  286. package/src/lib/replace_in_files.js +40 -0
  287. package/src/lib/{dev/requiredFiles.js → required_files.js} +3 -1
  288. package/src/lib/serialize_query_parameters.js +7 -0
  289. package/src/lib/types.js +59 -2
  290. package/src/lib/unique_array.js +24 -0
  291. package/HMRNOTES.txt +0 -23
  292. package/_package.json +0 -56
  293. package/canary.js +0 -12
  294. package/dist/functions/build/getTarIgnoreList.js +0 -25
  295. package/dist/functions/build/index.js +0 -54
  296. package/dist/functions/create/buildPackageJSON.js +0 -20
  297. package/dist/functions/create/index.js +0 -193
  298. package/dist/functions/create/templates/api/index.js +0 -4
  299. package/dist/functions/create/templates/i18n/en-US.js +0 -4
  300. package/dist/functions/create/templates/index.client.js +0 -7
  301. package/dist/functions/create/templates/index.css +0 -20
  302. package/dist/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
  303. package/dist/functions/create/templates/public/favicon.ico +0 -0
  304. package/dist/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
  305. package/dist/functions/create/templates/ui/pages/error/index.js +0 -31
  306. package/dist/functions/create/templates/ui/pages/index/index.js +0 -94
  307. package/dist/functions/index.js +0 -269
  308. package/dist/functions/logout/index.js +0 -20
  309. package/dist/functions/push/checkIfProvisionAvailable.js +0 -19
  310. package/dist/functions/push/deploy/index.js +0 -173
  311. package/dist/functions/push/deploy/initial.js +0 -100
  312. package/dist/functions/push/deploy/version.js +0 -100
  313. package/dist/functions/push/domains.js +0 -23
  314. package/dist/functions/push/getAvailableCDN.js +0 -23
  315. package/dist/functions/push/getDeployment.js +0 -41
  316. package/dist/functions/push/getDeploymentSummary.js +0 -38
  317. package/dist/functions/push/getInstanceSizeRegions.js +0 -37
  318. package/dist/functions/push/getInstanceSizesForRegion.js +0 -34
  319. package/dist/functions/push/getProviderInstanceSizes.js +0 -34
  320. package/dist/functions/push/getProviderRegions.js +0 -36
  321. package/dist/functions/push/getProvidersWithConnectionStatus.js +0 -20
  322. package/dist/functions/push/getSessionToken.js +0 -23
  323. package/dist/functions/push/getUserFromSessionToken.js +0 -37
  324. package/dist/functions/push/index.js +0 -210
  325. package/dist/functions/push/loginToCheatCode.js +0 -33
  326. package/dist/functions/push/pingProvisionAPI.js +0 -31
  327. package/dist/functions/push/prompts.js +0 -332
  328. package/dist/functions/push/providerMap.js +0 -11
  329. package/dist/functions/push/providers.js +0 -9
  330. package/dist/functions/reset/index.js +0 -0
  331. package/dist/functions/reset/reset.js +0 -127
  332. package/dist/functions/start/bootstrapLayoutComponent.js +0 -54
  333. package/dist/functions/start/bootstrapPageComponent.js +0 -51
  334. package/dist/functions/start/buildFile.js +0 -85
  335. package/dist/functions/start/buildFiles.js +0 -76
  336. package/dist/functions/start/buildPlugins.js +0 -183
  337. package/dist/functions/start/checkIfPortAvailable.js +0 -18
  338. package/dist/functions/start/cleanup/index.js +0 -18
  339. package/dist/functions/start/databases/mongodb/availableQueryParameters.js +0 -42
  340. package/dist/functions/start/databases/mongodb/buildConnectionString.js +0 -22
  341. package/dist/functions/start/databases/mongodb/buildQueryParameters.js +0 -14
  342. package/dist/functions/start/databases/mongodb/checkConnection.js +0 -35
  343. package/dist/functions/start/databases/mongodb/connect.js +0 -25
  344. package/dist/functions/start/databases/mongodb/index.js +0 -93
  345. package/dist/functions/start/databases/postgresql/checkConnection.js +0 -41
  346. package/dist/functions/start/databases/postgresql/connect.js +0 -27
  347. package/dist/functions/start/databases/postgresql/index.js +0 -106
  348. package/dist/functions/start/databases/redis.js +0 -0
  349. package/dist/functions/start/databases/startProvider.js +0 -16
  350. package/dist/functions/start/fileDependencyMapper.js +0 -22
  351. package/dist/functions/start/filesToCopy.js +0 -18
  352. package/dist/functions/start/generateId.js +0 -74
  353. package/dist/functions/start/getCodependenciesForFile.js +0 -64
  354. package/dist/functions/start/getFilesToBuild.js +0 -39
  355. package/dist/functions/start/getProcessIdFromPort.js +0 -60
  356. package/dist/functions/start/hmrServer.js +0 -66
  357. package/dist/functions/start/index.js +0 -11
  358. package/dist/functions/start/isWindows.js +0 -5
  359. package/dist/functions/start/minifyFile.js +0 -12
  360. package/dist/functions/start/onWarn.js +0 -63
  361. package/dist/functions/start/readFileDependencyMap.js +0 -16
  362. package/dist/functions/start/removeDeletedDependenciesFromMap.js +0 -18
  363. package/dist/functions/start/setComponentId.js +0 -46
  364. package/dist/functions/start/updateFileMap.js +0 -67
  365. package/dist/functions/test/index.js +0 -12
  366. package/dist/functions/update/index.js +0 -21
  367. package/dist/functions/use/index.js +0 -61
  368. package/dist/lib/CLILog.js +0 -49
  369. package/dist/lib/build/browserPathExclusions.js +0 -8
  370. package/dist/lib/build/browserPaths.js +0 -11
  371. package/dist/lib/build/buildFile.js +0 -84
  372. package/dist/lib/build/buildFiles.js +0 -240
  373. package/dist/lib/build/buildPlugins.js +0 -186
  374. package/dist/lib/build/getCodeFrame.js +0 -9
  375. package/dist/lib/build/minifyFile.js +0 -12
  376. package/dist/lib/build/nodePathExclusions.js +0 -7
  377. package/dist/lib/build/nodePaths.js +0 -12
  378. package/dist/lib/build/onWarn.js +0 -63
  379. package/dist/lib/build/removeDeletedDependenciesFromMap.js +0 -18
  380. package/dist/lib/build/setComponentId.js +0 -46
  381. package/dist/lib/build/updateFileMap.js +0 -67
  382. package/dist/lib/buildResolvePlugin.js +0 -21
  383. package/dist/lib/checkIfValidJSON.js +0 -11
  384. package/dist/lib/colorLog.js +0 -7
  385. package/dist/lib/dev/cleanup.js +0 -18
  386. package/dist/lib/dev/databases/mongodb/availableQueryParameters.js +0 -42
  387. package/dist/lib/dev/databases/mongodb/buildConnectionString.js +0 -22
  388. package/dist/lib/dev/databases/mongodb/buildQueryParameters.js +0 -14
  389. package/dist/lib/dev/databases/mongodb/checkConnection.js +0 -38
  390. package/dist/lib/dev/databases/mongodb/connect.js +0 -25
  391. package/dist/lib/dev/databases/mongodb/index.js +0 -93
  392. package/dist/lib/dev/databases/postgresql/checkConnection.js +0 -41
  393. package/dist/lib/dev/databases/postgresql/connect.js +0 -27
  394. package/dist/lib/dev/databases/postgresql/index.js +0 -106
  395. package/dist/lib/dev/databases/providerMap.js +0 -15
  396. package/dist/lib/dev/getCodependenciesForFile.js +0 -64
  397. package/dist/lib/dev/getFilesToBuild.js +0 -38
  398. package/dist/lib/dev/hmrServer.js +0 -66
  399. package/dist/lib/dev/index.js +0 -559
  400. package/dist/lib/dev/isWindows.js +0 -5
  401. package/dist/lib/dev/loadSettings.js +0 -79
  402. package/dist/lib/dev/readFileDependencyMap.js +0 -16
  403. package/dist/lib/dev/requiredFiles.js +0 -18
  404. package/dist/lib/dev/runBuild.js +0 -30
  405. package/dist/lib/dev/runTests.js +0 -96
  406. package/dist/lib/dev/startApp.js +0 -70
  407. package/dist/lib/dev/startDatabases.js +0 -109
  408. package/dist/lib/dev/startHMR.js +0 -55
  409. package/dist/lib/dev/tests.config.js +0 -6
  410. package/dist/lib/dev/updateFileMap.js +0 -67
  411. package/dist/lib/dev/validateProject.js +0 -0
  412. package/dist/lib/dev/watchlist.js +0 -15
  413. package/dist/lib/filesToCopy.js +0 -18
  414. package/dist/lib/generateId.js +0 -74
  415. package/dist/lib/getArgs.js +0 -14
  416. package/dist/lib/getOptions.js +0 -15
  417. package/dist/lib/getPlatformSafePath.js +0 -7
  418. package/dist/lib/getProcessIdFromPort.js +0 -60
  419. package/dist/lib/getProvider.js +0 -8
  420. package/dist/lib/help.js +0 -56
  421. package/dist/lib/isObject.js +0 -6
  422. package/dist/lib/isValidJSONString.js +0 -11
  423. package/dist/lib/isWindows.js +0 -5
  424. package/dist/lib/killProcesses.js +0 -0
  425. package/dist/lib/loadSettings.js +0 -33
  426. package/dist/lib/masterIgnoreList.js +0 -16
  427. package/dist/lib/nodeEnvironment.js +0 -9
  428. package/dist/lib/nodeEnvironments.js +0 -8
  429. package/dist/lib/parseCookiesFromLogin.js +0 -18
  430. package/dist/lib/rainbowRoad.js +0 -7
  431. package/dist/lib/readDirectorySync.js +0 -14
  432. package/dist/lib/regexes.js +0 -14
  433. package/dist/lib/replaceBackslashesWithForwardSlashes.js +0 -8
  434. package/dist/lib/replaceFileProtocol.js +0 -8
  435. package/dist/lib/serializeQueryParameters.js +0 -8
  436. package/dist/lib/settings.js +0 -4
  437. package/dist/lib/validateDatabasesFromSettings.js +0 -34
  438. package/dist/lib/wait.js +0 -8
  439. package/release.js +0 -40
  440. package/src/functions/build/getTarIgnoreList.js +0 -30
  441. package/src/functions/build/index.js +0 -63
  442. package/src/functions/create/buildPackageJSON.js +0 -18
  443. package/src/functions/create/index.js +0 -209
  444. package/src/functions/create/templates/api/index.js +0 -4
  445. package/src/functions/create/templates/i18n/en-US.js +0 -4
  446. package/src/functions/create/templates/index.client.js +0 -7
  447. package/src/functions/create/templates/index.css +0 -20
  448. package/src/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
  449. package/src/functions/create/templates/public/favicon.ico +0 -0
  450. package/src/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
  451. package/src/functions/create/templates/ui/pages/error/index.js +0 -31
  452. package/src/functions/create/templates/ui/pages/index/index.js +0 -94
  453. package/src/functions/index.js +0 -269
  454. package/src/functions/logout/index.js +0 -20
  455. package/src/functions/push/checkIfProvisionAvailable.js +0 -20
  456. package/src/functions/push/deploy/index.js +0 -199
  457. package/src/functions/push/deploy/initial.js +0 -108
  458. package/src/functions/push/deploy/version.js +0 -108
  459. package/src/functions/push/domains.js +0 -23
  460. package/src/functions/push/getAvailableCDN.js +0 -27
  461. package/src/functions/push/getDeployment.js +0 -43
  462. package/src/functions/push/getDeploymentSummary.js +0 -39
  463. package/src/functions/push/getInstanceSizeRegions.js +0 -40
  464. package/src/functions/push/getInstanceSizesForRegion.js +0 -35
  465. package/src/functions/push/getProviderInstanceSizes.js +0 -35
  466. package/src/functions/push/getProviderRegions.js +0 -39
  467. package/src/functions/push/getProvidersWithConnectionStatus.js +0 -25
  468. package/src/functions/push/getSessionToken.js +0 -26
  469. package/src/functions/push/getUserFromSessionToken.js +0 -39
  470. package/src/functions/push/index.js +0 -245
  471. package/src/functions/push/loginToCheatCode.js +0 -34
  472. package/src/functions/push/pingProvisionAPI.js +0 -33
  473. package/src/functions/push/prompts.js +0 -276
  474. package/src/functions/push/providerMap.js +0 -8
  475. package/src/functions/push/providers.js +0 -6
  476. package/src/functions/reset/index.js +0 -0
  477. package/src/functions/reset/reset.js +0 -163
  478. package/src/functions/start/bootstrapLayoutComponent.js +0 -57
  479. package/src/functions/start/bootstrapPageComponent.js +0 -54
  480. package/src/functions/start/buildFile.js +0 -97
  481. package/src/functions/start/buildFiles.js +0 -101
  482. package/src/functions/start/buildPlugins.js +0 -215
  483. package/src/functions/start/checkIfPortAvailable.js +0 -21
  484. package/src/functions/start/cleanup/index.js +0 -23
  485. package/src/functions/start/databases/mongodb/availableQueryParameters.js +0 -39
  486. package/src/functions/start/databases/mongodb/buildConnectionString.js +0 -28
  487. package/src/functions/start/databases/mongodb/buildQueryParameters.js +0 -15
  488. package/src/functions/start/databases/mongodb/checkConnection.js +0 -36
  489. package/src/functions/start/databases/mongodb/connect.js +0 -25
  490. package/src/functions/start/databases/mongodb/index.js +0 -108
  491. package/src/functions/start/databases/postgresql/checkConnection.js +0 -43
  492. package/src/functions/start/databases/postgresql/connect.js +0 -27
  493. package/src/functions/start/databases/postgresql/index.js +0 -127
  494. package/src/functions/start/databases/redis.js +0 -0
  495. package/src/functions/start/databases/startProvider.js +0 -15
  496. package/src/functions/start/fileDependencyMapper.js +0 -24
  497. package/src/functions/start/generateId.js +0 -73
  498. package/src/functions/start/getCodependenciesForFile.js +0 -84
  499. package/src/functions/start/getFilesToBuild.js +0 -49
  500. package/src/functions/start/getProcessIdFromPort.js +0 -92
  501. package/src/functions/start/hmrServer.js +0 -78
  502. package/src/functions/start/index.js +0 -9
  503. package/src/functions/start/isWindows.js +0 -3
  504. package/src/functions/start/minifyFile.js +0 -10
  505. package/src/functions/start/onWarn.js +0 -68
  506. package/src/functions/start/readFileDependencyMap.js +0 -19
  507. package/src/functions/start/removeDeletedDependenciesFromMap.js +0 -19
  508. package/src/functions/start/setComponentId.js +0 -58
  509. package/src/functions/start/updateFileMap.js +0 -100
  510. package/src/functions/test/index.js +0 -10
  511. package/src/functions/update/index.js +0 -20
  512. package/src/functions/use/index.js +0 -62
  513. package/src/lib/build/browserPathExclusions.js +0 -6
  514. package/src/lib/build/browserPaths.js +0 -9
  515. package/src/lib/build/buildFile.js +0 -91
  516. package/src/lib/build/buildFiles.js +0 -273
  517. package/src/lib/build/buildPlugins.js +0 -222
  518. package/src/lib/build/getCodeFrame.js +0 -7
  519. package/src/lib/build/minifyFile.js +0 -10
  520. package/src/lib/build/nodePathExclusions.js +0 -5
  521. package/src/lib/build/nodePaths.js +0 -10
  522. package/src/lib/build/onWarn.js +0 -68
  523. package/src/lib/build/removeDeletedDependenciesFromMap.js +0 -19
  524. package/src/lib/build/setComponentId.js +0 -58
  525. package/src/lib/build/updateFileMap.js +0 -100
  526. package/src/lib/buildResolvePlugin.js +0 -32
  527. package/src/lib/checkIfValidJSON.js +0 -8
  528. package/src/lib/colorLog.js +0 -5
  529. package/src/lib/dev/cleanup.js +0 -26
  530. package/src/lib/dev/databases/mongodb/buildConnectionString.js +0 -28
  531. package/src/lib/dev/databases/mongodb/buildQueryParameters.js +0 -15
  532. package/src/lib/dev/databases/mongodb/checkConnection.js +0 -40
  533. package/src/lib/dev/databases/mongodb/connect.js +0 -25
  534. package/src/lib/dev/databases/mongodb/index.js +0 -108
  535. package/src/lib/dev/databases/postgresql/checkConnection.js +0 -43
  536. package/src/lib/dev/databases/postgresql/connect.js +0 -27
  537. package/src/lib/dev/databases/postgresql/index.js +0 -127
  538. package/src/lib/dev/databases/providerMap.js +0 -13
  539. package/src/lib/dev/getCodependenciesForFile.js +0 -84
  540. package/src/lib/dev/getFilesToBuild.js +0 -47
  541. package/src/lib/dev/hmrServer.js +0 -78
  542. package/src/lib/dev/index.js +0 -684
  543. package/src/lib/dev/isWindows.js +0 -3
  544. package/src/lib/dev/loadSettings.js +0 -90
  545. package/src/lib/dev/readFileDependencyMap.js +0 -19
  546. package/src/lib/dev/runBuild.js +0 -33
  547. package/src/lib/dev/runTests.js +0 -122
  548. package/src/lib/dev/startApp.js +0 -79
  549. package/src/lib/dev/startDatabases.js +0 -131
  550. package/src/lib/dev/startHMR.js +0 -62
  551. package/src/lib/dev/tests.config.js +0 -3
  552. package/src/lib/dev/updateFileMap.js +0 -100
  553. package/src/lib/dev/validateProject.js +0 -0
  554. package/src/lib/dev/watchlist.js +0 -13
  555. package/src/lib/filesToCopy.js +0 -15
  556. package/src/lib/generateId.js +0 -73
  557. package/src/lib/getArgs.js +0 -14
  558. package/src/lib/getOptions.js +0 -12
  559. package/src/lib/getProcessIdFromPort.js +0 -92
  560. package/src/lib/getProvider.js +0 -5
  561. package/src/lib/help.js +0 -56
  562. package/src/lib/isObject.js +0 -3
  563. package/src/lib/isValidJSONString.js +0 -8
  564. package/src/lib/killProcesses.js +0 -5
  565. package/src/lib/loadSettings.js +0 -40
  566. package/src/lib/masterIgnoreList.js +0 -13
  567. package/src/lib/nodeEnvironment.js +0 -6
  568. package/src/lib/nodeEnvironments.js +0 -8
  569. package/src/lib/parseCookiesFromLogin.js +0 -21
  570. package/src/lib/readDirectorySync.js +0 -13
  571. package/src/lib/regexes.js +0 -7
  572. package/src/lib/replaceBackslashesWithForwardSlashes.js +0 -8
  573. package/src/lib/replaceFileProtocol.js +0 -8
  574. package/src/lib/serializeQueryParameters.js +0 -5
  575. package/src/lib/settings.js +0 -1
  576. package/src/lib/validateDatabasesFromSettings.js +0 -37
  577. package/src/lib/wait.js +0 -5
  578. package/storage/.verdaccio-db.json +0 -1
  579. /package/{src/lib → .build}/getPlatformSafePath.js +0 -0
  580. /package/{src/lib → .build}/isWindows.js +0 -0
  581. /package/dist/{functions/create/templates → commands/create/template}/public/service-worker.js +0 -0
  582. /package/dist/{functions/create/templates → commands/create/template}/settings.development.json +0 -0
  583. /package/src/{functions/create/templates → commands/create/template}/public/service-worker.js +0 -0
  584. /package/src/{functions/create/templates → commands/create/template}/settings.development.json +0 -0
@@ -0,0 +1,14 @@
1
+ const master_ignore_list = [
2
+ '.build',
3
+ '.DS_Store',
4
+ '.git',
5
+ '.joystick/build',
6
+ '.joystick/data',
7
+ '.push',
8
+ 'node_modules',
9
+ 'settings.development.json',
10
+ 'settings.staging.json',
11
+ 'settings.production.json',
12
+ ];
13
+
14
+ export default master_ignore_list;
@@ -0,0 +1,15 @@
1
+ import fs from "fs";
2
+ import esbuild from "esbuild";
3
+ import path_exists from "../path_exists.js";
4
+
5
+ const { readFile, writeFile } = fs.promises;
6
+
7
+ const minify_file = async (path = "") => {
8
+ if (await path_exists(path)) {
9
+ const file = await readFile(path, "utf-8");
10
+ const minified = await esbuild.transform(file, { minify: true });
11
+ await writeFile(path, minified.code);
12
+ }
13
+ };
14
+
15
+ export default minify_file;
@@ -0,0 +1,19 @@
1
+ import get_platform_safe_path from "./get_platform_safe_path.js";
2
+
3
+ const node_paths = [
4
+ get_platform_safe_path("api/"),
5
+ get_platform_safe_path("caches/"),
6
+ get_platform_safe_path("cronJobs/"),
7
+ get_platform_safe_path("cron_jobs/"),
8
+ get_platform_safe_path("fixtures/"),
9
+ get_platform_safe_path("indexes/"),
10
+ get_platform_safe_path("lib/node"),
11
+ get_platform_safe_path("queues/"),
12
+ get_platform_safe_path("routes/"),
13
+ get_platform_safe_path("tests/"),
14
+ get_platform_safe_path("uploaders/"),
15
+ get_platform_safe_path("websockets/"),
16
+ "index.server.js",
17
+ ];
18
+
19
+ export default node_paths;
@@ -0,0 +1,70 @@
1
+ import chalk from "chalk";
2
+ import constants from "../constants.js";
3
+ import get_code_frame from "./get_code_frame.js";
4
+ import rainbow_road from '../rainbow_road.js';
5
+
6
+ const remove_location_data_from_stack_tree = (stack_trace = "") => {
7
+ return stack_trace.replace(constants.OBJECT_REGEX, "");
8
+ };
9
+
10
+ const log_error = (warning = {}) => {
11
+ const snippet_lines = warning?.snippet?.split(`\n`);
12
+
13
+ console.log('\n');
14
+ console.log(`${rainbow_road()}\n`);
15
+
16
+ if (warning.file) {
17
+ console.log(chalk.yellowBright(`Build Error in ${warning?.file}:\n`));
18
+ }
19
+
20
+ if (snippet_lines && snippet_lines.length > 0) {
21
+ snippet_lines.forEach((line) => {
22
+ if (line.includes(`> ${warning.line} |`)) {
23
+ return console.log(` ${chalk.red(line)}`);
24
+ }
25
+
26
+ return console.log(` ${chalk.gray(line)}`);
27
+ });
28
+ }
29
+
30
+ if (warning?.stack) {
31
+ console.log(chalk.magentaBright("\nStack Trace:\n"));
32
+ console.log(chalk.yellow(` ${remove_location_data_from_stack_tree(warning?.stack)}\n`));
33
+ }
34
+
35
+ process.loader.error(
36
+ "Build error. Fix the error above to continue building your app."
37
+ );
38
+ console.log('\n');
39
+ console.log(`${rainbow_road()}\n`);
40
+ };
41
+
42
+ const parse_warning = async (warning = {}, type = "") => {
43
+ if (type && type === "BUILD_ERROR") {
44
+ return {
45
+ file: warning?.file,
46
+ snippet: warning?.snippet ? await get_code_frame(warning.file, {
47
+ line: warning?.line,
48
+ column: warning?.column,
49
+ }) : '',
50
+ stack: warning?.stack,
51
+ line: warning?.line,
52
+ character: warning?.column,
53
+ message: warning?.message,
54
+ };
55
+ }
56
+
57
+ return null;
58
+ };
59
+
60
+ const on_warn = async (warning) => {
61
+ const parsed_warning = await parse_warning(warning, "BUILD_ERROR");
62
+
63
+ if (parsed_warning) {
64
+ log_error(parsed_warning);
65
+ }
66
+
67
+ return parsed_warning;
68
+ };
69
+
70
+ export default on_warn;
@@ -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;