@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,28 @@
1
+ import test from './index.js';
2
+
3
+ const [_node, _bin, ...raw_args] = process.argv;
4
+
5
+ const definition = {
6
+ description: 'Start an existing Joystick app and run its tests.',
7
+ args: {},
8
+ options: {
9
+ watch: {
10
+ flags: {
11
+ '-w': {
12
+ set: !!raw_args.includes('-w'),
13
+ value: !!raw_args.includes('-w'),
14
+ parent: 'test'
15
+ },
16
+ '--watch': {
17
+ set: !!raw_args.includes('--watch'),
18
+ value: !!raw_args.includes('--watch'),
19
+ parent: 'test'
20
+ },
21
+ },
22
+ description: 'Run joystick test in watch mode.',
23
+ },
24
+ },
25
+ command: test,
26
+ };
27
+
28
+ export default definition;
@@ -0,0 +1,12 @@
1
+ import development_server from "../../lib/development_server/index.js";
2
+
3
+ const test = async (args = {}, options = {}) => {
4
+ await development_server({
5
+ environment: 'test',
6
+ process,
7
+ port: 1977,
8
+ watch: options?.watch,
9
+ });
10
+ };
11
+
12
+ export default test;
@@ -0,0 +1,28 @@
1
+ import update from './index.js';
2
+
3
+ const [_node, _bin, ...raw_args] = process.argv;
4
+
5
+ const definition = {
6
+ description: 'Update all Joystick packages to their latest version.',
7
+ args: {},
8
+ options: {
9
+ release: {
10
+ flags: {
11
+ '-r': {
12
+ set: !!raw_args.includes('-r'),
13
+ value: !!raw_args.includes('-r') && raw_args[raw_args.indexOf('-r') + 1],
14
+ parent: 'create',
15
+ },
16
+ '--release': {
17
+ set: !!raw_args.includes('--release'),
18
+ value: !!raw_args.includes('--release') && raw_args[raw_args.indexOf('--release') + 1],
19
+ parent: 'create',
20
+ },
21
+ },
22
+ description: 'The release of Joystick to update (production or canary).',
23
+ },
24
+ },
25
+ command: update,
26
+ };
27
+
28
+ export default definition;
@@ -0,0 +1,29 @@
1
+ import chalk from 'chalk';
2
+ import child_process from "child_process";
3
+ import util from 'util';
4
+ import color_log from "../../lib/color_log.js";
5
+ import Loader from "../../lib/loader.js";
6
+
7
+ const exec = util.promisify(child_process.exec);
8
+
9
+ const update = async (args = {}, options = {}) => {
10
+ process.loader = new Loader();
11
+ process.loader.print('Updating Joystick dependencies...');
12
+
13
+ process.loader.print(`Updating @joystick.js/node${options?.relase === 'canary' ? '-canary' : ''}...`);
14
+ await exec(`npm i @joystick.js/node${options?.relase === 'canary' ? '-canary' : ''}@latest`);
15
+
16
+ process.loader.print(`Updating @joystick.js/test${options?.relase === 'canary' ? '-canary' : ''}...`);
17
+ await exec(`npm i @joystick.js/test${options?.relase === 'canary' ? '-canary' : ''}@latest`);
18
+
19
+ process.loader.print(`Updating @joystick.js/ui${options?.relase === 'canary' ? '-canary' : ''}...`);
20
+ await exec(`npm i @joystick.js/ui${options?.relase === 'canary' ? '-canary' : ''}@latest`);
21
+
22
+ process.loader.print(`Updating @joystick.js/cli${options?.relase === 'canary' ? '-canary' : ''}...`);
23
+ await exec(`npm i -g @joystick.js/cli${options?.relase === 'canary' ? '-canary' : ''}@latest`);
24
+
25
+ color_log('✔ Joystick updated!', 'green');
26
+ process.exit(0);
27
+ };
28
+
29
+ export default update;
@@ -0,0 +1,19 @@
1
+ import use from './index.js';
2
+
3
+ const [_node, _bin, ...raw_args] = process.argv;
4
+
5
+ const definition = {
6
+ description: 'Decides which release of Joystick to use (production or canary).',
7
+ args: {
8
+ release: {
9
+ set: !!raw_args.includes('use') && !!raw_args[raw_args.indexOf('use') + 1],
10
+ parent: 'use',
11
+ value: !!raw_args.includes('use') && raw_args[raw_args.indexOf('use') + 1],
12
+ description: 'The release of Joystick to use (production or canary).',
13
+ },
14
+ },
15
+ options: {},
16
+ command: use
17
+ };
18
+
19
+ export default definition;
@@ -0,0 +1,54 @@
1
+ import child_process from "child_process";
2
+ import util from 'util';
3
+ import Loader from '../../lib/loader.js';
4
+ import replace_in_files from '../../lib/replace_in_files.js';
5
+
6
+ const exec = util.promisify(child_process.exec);
7
+
8
+ const use = async (args = {}, options = {}) => {
9
+ const loader = new Loader();
10
+
11
+ if (args?.release === 'canary') {
12
+ await replace_in_files(process.cwd(), {
13
+ match: [/\.js$/],
14
+ exclude: [/node_modules/],
15
+ replace_regex: /(@joystick\.js\/node)(?!-)/g,
16
+ replace_with: '@joystick.js/node-canary',
17
+ });
18
+
19
+ await replace_in_files(process.cwd(), {
20
+ match: [/\.js$/],
21
+ exclude: [/node_modules/],
22
+ replace_regex: /(@joystick\.js\/ui)(?!-)/g,
23
+ replace_with: '@joystick.js/ui-canary',
24
+ });
25
+
26
+ loader.print('Swapping production packages for canary versions...');
27
+
28
+ await exec('npm uninstall @joystick.js/node && npm i @joystick.js/node-canary');
29
+ await exec('npm uninstall @joystick.js/ui && npm i @joystick.js/ui-canary');
30
+ }
31
+
32
+ if (args?.release === 'production') {
33
+ await replace_in_files(process.cwd(), {
34
+ match: [/\.js$/],
35
+ exclude: [/node_modules/],
36
+ replace_regex: /(@joystick\.js\/node-canary)/g,
37
+ replace_with: '@joystick.js/node',
38
+ });
39
+
40
+ await replace_in_files(process.cwd(), {
41
+ match: [/\.js$/],
42
+ exclude: [/node_modules/],
43
+ replace_regex: /(@joystick.js\/ui-canary)/g,
44
+ replace_with: '@joystick.js/ui',
45
+ });
46
+
47
+ loader.print('Swapping canary packages for production versions...');
48
+
49
+ await exec('npm uninstall @joystick.js/node-canary && npm i @joystick.js/node');
50
+ await exec('npm uninstall @joystick.js/ui-canary && npm i @joystick.js/ui');
51
+ }
52
+ };
53
+
54
+ export default use;
package/src/index.js CHANGED
File without changes
@@ -0,0 +1,8 @@
1
+ import get_platform_safe_path from "./get_platform_safe_path.js";
2
+
3
+ const browser_path_exclusions = [
4
+ get_platform_safe_path("lib/node"),
5
+ get_platform_safe_path("tests/"),
6
+ ];
7
+
8
+ export default browser_path_exclusions;
@@ -0,0 +1,11 @@
1
+ import get_platform_safe_path from "../get_platform_safe_path.js";
2
+
3
+ const browser_paths = [
4
+ get_platform_safe_path("email/"),
5
+ get_platform_safe_path("lib/"),
6
+ get_platform_safe_path("lib/browser"),
7
+ get_platform_safe_path("ui/"),
8
+ "index.client.js",
9
+ ];
10
+
11
+ export default browser_paths;
@@ -0,0 +1,163 @@
1
+ import esbuild from "esbuild";
2
+ import svg from "esbuild-plugin-svg";
3
+ import build_plugins from "./plugins/index.js";
4
+ import get_code_frame from "./get_code_frame.js";
5
+ import minify_file from "../build/minify_file.js";
6
+ import on_warn from "./on_warn.js";
7
+ import path_exists from '../path_exists.js';
8
+
9
+ const handle_build_exception = async (exception = {}, file = '') => {
10
+ const error = exception?.errors && exception?.errors[0];
11
+ const snippet = await path_exists(file) ? await get_code_frame(file, {
12
+ line: error?.location?.line,
13
+ column: error?.location?.column,
14
+ }) : null;
15
+
16
+ await on_warn({
17
+ file,
18
+ stack: exception?.stack,
19
+ line: error?.location?.line,
20
+ column: error?.location?.column,
21
+ snippet,
22
+ lineWithError: error?.location?.lineText?.trim(),
23
+ message: error?.text,
24
+ });
25
+
26
+ return snippet;
27
+ };
28
+
29
+ const handle_parse_file_path_from_exception = (exception = {}) => {
30
+ const raw_error_message = exception?.message?.split(':');
31
+
32
+ // NOTE: If the build error pertains to a file that esbuild CANNOT build, the
33
+ // structure of the error is slightly different, placing the file(s) w/ errors
34
+ // after the string "files:" (which lands at index 3 in the split array).
35
+ if (raw_error_message[2] && raw_error_message[2]?.includes('No loader')) {
36
+ return raw_error_message[3] && raw_error_message[3]?.replace('\n', '') || '';
37
+ }
38
+
39
+ // NOTE: IF the build error is just a syntax error, the offending file will be
40
+ // palced at index 1.
41
+ return raw_error_message[1] && raw_error_message[1]?.replace('\n', '') || '';
42
+ };
43
+
44
+ const handle_build_failure = async (exception = {}) => {
45
+ const file = handle_parse_file_path_from_exception(exception);
46
+ const snippet = await handle_build_exception(exception, file);
47
+
48
+ return {
49
+ success: false,
50
+ path: file,
51
+ error: {
52
+ stack: exception?.stack,
53
+ snippet,
54
+ },
55
+ };
56
+ };
57
+
58
+ const handle_build_for_node = (node_paths = [], options = {}) => {
59
+ return esbuild.build({
60
+ allowOverwrite: true,
61
+ platform: "node",
62
+ format: "esm",
63
+ bundle: false,
64
+ sourcemap: true,
65
+ entryPoints: node_paths?.map((file) => file.path),
66
+ entryNames: '[dir]/[name]',
67
+ outdir: options?.output_path || "./.joystick/build",
68
+ outbase: './',
69
+ define: {
70
+ "process.env.NODE_ENV": `'${options?.environment || 'development'}'`,
71
+ },
72
+ logLevel: "silent",
73
+ plugins: [
74
+ build_plugins.warn_node_environment,
75
+ build_plugins.generate_file_dependency_map
76
+ ],
77
+ });
78
+ };
79
+
80
+ const handle_build_for_browser = (browser_paths = [], options = {}) => {
81
+ return esbuild.build({
82
+ allowOverwrite: true,
83
+ target: "es2020",
84
+ platform: "browser",
85
+ format: "esm",
86
+ bundle: true,
87
+ sourcemap: true,
88
+ entryPoints: browser_paths?.map((file) => file.path),
89
+ entryNames: '[dir]/[name]',
90
+ outbase: './',
91
+ outdir: options?.output_path || "./.joystick/build",
92
+ define: {
93
+ "process.env.NODE_ENV": `'${options?.environment || 'development'}'`,
94
+ },
95
+ logLevel: 'silent',
96
+ loader: {
97
+ '.svg': 'text',
98
+ },
99
+ plugins: [
100
+ build_plugins.warn_node_environment,
101
+ build_plugins.generate_file_dependency_map,
102
+ build_plugins.bootstrap_component,
103
+ svg(),
104
+ ]
105
+ });
106
+ };
107
+
108
+ const build_files = async (options) => {
109
+ const dirty_files = ['.DS_Store'];
110
+
111
+ const node_files = options?.files?.filter((file) => {
112
+ return !dirty_files?.some((dirty_file) => {
113
+ return file?.path?.includes(dirty_file);
114
+ });
115
+ })?.filter((file) => file?.platform === 'node');
116
+
117
+ const browser_files = options?.files?.filter((file) => {
118
+ return !dirty_files?.some((dirty_file) => {
119
+ return file?.path?.includes(dirty_file);
120
+ });
121
+ })?.filter((file) => file?.platform === 'browser');
122
+
123
+ let node_file_results = [];
124
+ let browser_file_results = [];
125
+
126
+ if (node_files?.length > 0) {
127
+ node_file_results = [await handle_build_for_node(node_files, options)
128
+ .then(() => {
129
+ return { success: true };
130
+ }).catch((exception) => handle_build_failure(exception))];
131
+ }
132
+
133
+ if (browser_files?.length > 0) {
134
+ browser_file_results = [await handle_build_for_browser(browser_files, options)
135
+ .then(() => {
136
+ return { success: true };
137
+ }).catch((exception) => handle_build_failure(exception))];
138
+ }
139
+
140
+ const node_files_have_errors = node_file_results?.some((node_file_result) => !node_file_result?.success);
141
+ const browser_files_have_errors = browser_file_results?.some((browser_file_result) => !browser_file_result?.success);
142
+
143
+ if (node_files_have_errors || browser_files_have_errors) {
144
+ return Promise.reject([
145
+ ...node_file_results,
146
+ ...browser_file_results,
147
+ ]);
148
+ }
149
+
150
+ if (options?.environment && options?.environment !== 'development') {
151
+ await Promise.all([...browser_files, ...node_files].map((file) => {
152
+ return minify_file(`${options?.output_path || "./.joystick/build"}/${file.path}`);
153
+ }));
154
+ }
155
+
156
+ return [
157
+ ...node_file_results,
158
+ ...browser_file_results,
159
+ ];
160
+ };
161
+
162
+ export default build_files;
163
+
@@ -1,8 +1,8 @@
1
- export default [
2
- { path: "css", regex: new RegExp(/^css\//) },
3
- { path: "i18n", regex: new RegExp(/^i18n\//) },
4
- { path: "public", regex: new RegExp(/^public\//) },
5
- { path: "private", regex: new RegExp(/^private\//) },
1
+ const copy_paths = [
2
+ { path: "css", regex: new RegExp(process.platform === 'win32' ? /^css\\/ : /^css\//) },
3
+ { path: "i18n", regex: new RegExp(process.platform === 'win32' ? /^i18n\\/ : /^i18n\//) },
4
+ { path: "public", regex: new RegExp(process.platform === 'win32' ? /^public\\/ : /^public\//) },
5
+ { path: "private", regex: new RegExp(process.platform === 'win32' ? /^private\\/ : /^private\//) },
6
6
  { path: "index.html", regex: new RegExp(/^index.html/) },
7
7
  { path: "index.css", regex: new RegExp(/^index.css/) },
8
8
  { path: "package.json", regex: new RegExp(/^package.json/) },
@@ -13,3 +13,5 @@ export default [
13
13
  { path: "settings.production.json", regex: new RegExp(/^settings.production.json/) },
14
14
  { path: ".html", regex: new RegExp(/^([0-9a-zA-Z-._])+.html/) },
15
15
  ];
16
+
17
+ export default copy_paths;
@@ -0,0 +1,11 @@
1
+ import fs from 'fs';
2
+ import { codeFrameColumns } from "@babel/code-frame";
3
+
4
+ const { readFile } = fs.promises;
5
+
6
+ const get_code_frame = async (path = "", location = {}) => {
7
+ const file = await readFile(path, "utf-8");
8
+ return codeFrameColumns(file, { start: location });
9
+ };
10
+
11
+ export default get_code_frame;
@@ -0,0 +1,25 @@
1
+ import copy_paths from "./copy_paths.js";
2
+
3
+ const check_if_is_copy_path = (path = '') => {
4
+ return copy_paths.some((file_to_copy) => {
5
+ return file_to_copy.regex.test(path);
6
+ });
7
+ };
8
+
9
+ const check_if_is_javascript = (file_extension = '') => {
10
+ return file_extension === 'js';
11
+ };
12
+
13
+ const get_file_operation = (path = '') => {
14
+ const file_extension = path?.split('.')?.pop();
15
+ const is_javascript = check_if_is_javascript(file_extension);
16
+ const is_copy_path = check_if_is_copy_path(path);
17
+
18
+ if (!is_javascript || (is_javascript && is_copy_path)) {
19
+ return 'copy_file';
20
+ }
21
+
22
+ return 'build_file';
23
+ };
24
+
25
+ export default get_file_operation;
@@ -0,0 +1,41 @@
1
+ import fs from "fs";
2
+ import get_files_in_path from "../get_files_in_path.js";
3
+ import master_ignore_list from "./master_ignore_list.js";
4
+
5
+ const { stat } = fs.promises;
6
+
7
+ const get_files_to_build = async (excluded_paths = [], custom_copy_paths = []) => {
8
+ const files = await get_files_in_path("./", []);
9
+
10
+ const master_ignore_list_filtered_for_context = master_ignore_list;
11
+
12
+ const filtered_files = files
13
+ .filter((path) => {
14
+ const is_custom_copy_path = custom_copy_paths.some((custom_copy_path) => {
15
+ return path.includes(custom_copy_path);
16
+ });
17
+
18
+ return !is_custom_copy_path;
19
+ })
20
+ .filter((path) => {
21
+ const is_excluded = excluded_paths.some((excluded_path) => {
22
+ return path.includes(excluded_path);
23
+ });
24
+
25
+ return !is_excluded;
26
+ })
27
+ .filter((path) => {
28
+ const is_excluded = master_ignore_list_filtered_for_context.some((excluded_path) => {
29
+ return path.includes(excluded_path);
30
+ });
31
+
32
+ return !is_excluded;
33
+ })
34
+ .filter((path) => {
35
+ return !fs.lstatSync(path).isDirectory();
36
+ });
37
+
38
+ return filtered_files;
39
+ };
40
+
41
+ export default get_files_to_build;
@@ -0,0 +1,32 @@
1
+ import browser_path_exclusions from "./browser_path_exclusions.js";
2
+ import browser_paths from "./browser_paths.js";
3
+ import node_paths from "./node_paths.js";
4
+
5
+ const check_if_node_path = (path = '') => {
6
+ return node_paths.some((node_path) => {
7
+ return path.includes(node_path);
8
+ });
9
+ };
10
+
11
+ const check_if_browser_path = (path = '') => {
12
+ return browser_paths.some((browser_path) => {
13
+ return path.includes(browser_path);
14
+ }) && !browser_path_exclusions.some((browser_path_exclusion) => {
15
+ return path.includes(browser_path_exclusion);
16
+ });
17
+ };
18
+
19
+ const get_path_platform = (path = '') => {
20
+ const is_browser_path = check_if_browser_path(path);
21
+ const is_node_path = check_if_node_path(path);
22
+
23
+ if (is_browser_path) {
24
+ return 'browser';
25
+ }
26
+
27
+ if (is_node_path) {
28
+ return 'node';
29
+ }
30
+ };
31
+
32
+ export default get_path_platform;
@@ -0,0 +1,6 @@
1
+ const get_platform_safe_path = (path = '') => {
2
+ // NOTE: This is why serial killers exist.
3
+ return process.platform === 'win32' ? path.replace('/', '\\') : path;
4
+ };
5
+
6
+ export default get_platform_safe_path;
@@ -0,0 +1,41 @@
1
+ import fs from "fs";
2
+ import master_ignore_list from "./master_ignore_list.js";
3
+
4
+ const get_tar_ignore_list = (excluded_paths = []) => {
5
+ const git_ignore = fs.existsSync(".gitignore")
6
+ ? fs.readFileSync(".gitignore", "utf-8")
7
+ : "";
8
+
9
+ const git_ignore_files = git_ignore?.split("\n")?.filter((file) => {
10
+ return !file?.includes("#") && file?.trim() !== "";
11
+ });
12
+
13
+ // NOTE: The ^ character is an anchor to tell tar to only match the pattern
14
+ // to the root path. Without this, it will match all nested paths that resemble
15
+ // the pattern you give it. For example, ./versions will match the api/versions
16
+ // directory too.
17
+ const files_to_ignore = [
18
+ ...(git_ignore_files || [])?.map((ignore) => {
19
+ return `^${ignore}`;
20
+ }),
21
+ ...(excluded_paths || [])?.map((ignore) => {
22
+ return `^${ignore}`;
23
+ }),
24
+ ...(master_ignore_list || [])?.map((ignore) => {
25
+ return `^${ignore}`;
26
+ }),
27
+ "*.tar",
28
+ "*.tar.gz",
29
+ "*.tar.xz",
30
+ ]?.filter((item, itemIndex, array) => {
31
+ return array.indexOf(item) === itemIndex;
32
+ });
33
+
34
+ const exclude_list = `{${files_to_ignore
35
+ ?.map((file_to_ignore) => `"${file_to_ignore}"`)
36
+ .join(",")}}`;
37
+
38
+ return exclude_list;
39
+ };
40
+
41
+ export default get_tar_ignore_list;
@@ -0,0 +1,137 @@
1
+ import chalk from "chalk";
2
+ import child_process from "child_process";
3
+ import fs from 'fs';
4
+ import { dirname } from 'path';
5
+ import util from 'util';
6
+ import build_files from "./build_files.js";
7
+ import get_files_to_build from "./get_files_to_build.js";
8
+ import get_file_operation from "./get_file_operation.js";
9
+ import get_path_platform from "./get_path_platform.js";
10
+ import get_tar_ignore_list from "./get_tar_ignore_list.js";
11
+ import load_settings from "../load_settings.js";
12
+ import Loader from "../loader.js";
13
+ import path_exists from "../path_exists.js";
14
+ import encrypt_buffer from '../../lib/encrypt_buffer.js';
15
+
16
+ const { mkdir, copyFile, readFile, writeFile, readdir } = fs.promises;
17
+ const exec = util.promisify(child_process.exec);
18
+
19
+ const get_custom_copy_paths = async (copy_paths_from_settings = []) => {
20
+ const custom_copy_paths = [];
21
+
22
+ for (let i = 0; i < copy_paths_from_settings?.length; i += 1) {
23
+ const custom_copy_path = copy_paths_from_settings[i];
24
+
25
+ if (fs.existsSync(custom_copy_path)) {
26
+ const stat = fs.lstatSync(custom_copy_path);
27
+
28
+ if (stat.isDirectory()) {
29
+ const paths = await readdir(custom_copy_path, { recursive: true });
30
+ custom_copy_paths.push(
31
+ ...(paths || [])?.map((path) => {
32
+ return `${custom_copy_path}/${path}`;
33
+ })
34
+ );
35
+ } else {
36
+ custom_copy_paths.push(custom_copy_path);
37
+ }
38
+ }
39
+ }
40
+
41
+ return custom_copy_paths;
42
+ };
43
+
44
+ const get_files_to_build_with_operation_and_platform = (files = []) => {
45
+ return files?.map((file) => {
46
+ return {
47
+ path: file,
48
+ operation: get_file_operation(file),
49
+ platform: get_path_platform(file),
50
+ }
51
+ });
52
+ };
53
+
54
+ const build = async (options = {}) => {
55
+ const loader = new Loader();
56
+
57
+ const build_type = options?.type || 'tar';
58
+ const environment = options?.environment || "production";
59
+
60
+ loader.print(`Building app to ${build_type} for ${environment}...`);
61
+
62
+ const settings = await load_settings(environment);
63
+ const excluded_paths = settings?.config?.build?.excluded_paths || settings?.config?.build?.excludedPaths;
64
+ const custom_copy_paths = await get_custom_copy_paths(settings?.config?.build?.copy_paths);
65
+
66
+ const files_for_build = await get_files_to_build(excluded_paths, custom_copy_paths);
67
+ const output_path = build_type === 'tar' ? '.build/.tar' : '.build';
68
+ const files_to_build_with_operation_and_platform = get_files_to_build_with_operation_and_platform(files_for_build);
69
+
70
+ if (await path_exists('.build')) {
71
+ await exec(`rm -rf .build`);
72
+ }
73
+
74
+ const files_to_copy = [
75
+ ...files_to_build_with_operation_and_platform?.filter((file) => {
76
+ return file?.operation === 'copy_file';
77
+ }),
78
+ ...(custom_copy_paths || [])?.map((custom_copy_path) => {
79
+ return { path: custom_copy_path };
80
+ }),
81
+ ];
82
+
83
+ const files_to_build = files_to_build_with_operation_and_platform?.filter((file) => {
84
+ return file?.operation === 'build_file';
85
+ });
86
+
87
+ for (let i = 0; i < files_to_copy?.length; i += 1) {
88
+ const file_to_copy = files_to_copy[i];
89
+ const stat = fs.lstatSync(file_to_copy?.path);
90
+
91
+ if (stat.isFile()) {
92
+ await mkdir(dirname(`${output_path}/${file_to_copy?.path}`), { recursive: true });
93
+ await copyFile(file_to_copy?.path, `${output_path}/${file_to_copy?.path}`);
94
+ }
95
+ }
96
+
97
+ await build_files({
98
+ files: files_to_build,
99
+ environment,
100
+ output_path,
101
+ }).catch((error) => {
102
+ console.warn(error);
103
+ });
104
+
105
+ if (build_type === "tar") {
106
+ const ignore_list = get_tar_ignore_list(settings?.config?.build?.excludedPaths);
107
+
108
+ await exec(
109
+ `cd ${output_path} && tar --exclude=${ignore_list} -czf ../build.tar.gz .`
110
+ );
111
+
112
+ await exec(`rm -rf ${output_path}`);
113
+ }
114
+
115
+ if (build_type === "tar" && options?.encrypt_build) {
116
+ const build_path = output_path?.replace('/.tar', '/build.tar.gz');
117
+
118
+ const encrypted_build = encrypt_buffer(
119
+ await readFile(build_path),
120
+ options?.encryption_key,
121
+ );
122
+
123
+ await writeFile(`.build/build.encrypted.tar.gz`, encrypted_build);
124
+ }
125
+
126
+ if (!options?.silence_confirmation) {
127
+ console.log(
128
+ chalk.greenBright(`\n✔ App built as ${build_type} to ${build_type === 'tar' ? output_path?.replace('/.tar', '/build.tar.gz') : output_path}!\n`)
129
+ );
130
+ }
131
+
132
+ if (await path_exists('.build/component_id_cache.json')) {
133
+ await exec(`rm -rf .build/component_id_cache.json`);
134
+ }
135
+ };
136
+
137
+ export default build;