@joystick.js/cli-canary 0.0.0-canary.172 → 0.0.0-canary.1721
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.build/getFilesToBuild.js +1 -1
- package/.build/index.js +5 -3
- package/LICENSE.md +59 -0
- package/README.md +45 -4
- package/dist/cli.js +2 -76
- package/dist/cli.js.map +7 -0
- package/dist/commands/build/definition.js +2 -0
- package/dist/commands/build/definition.js.map +7 -0
- package/dist/commands/build/index.js +2 -0
- package/dist/commands/build/index.js.map +7 -0
- package/dist/commands/create/build_package_json.js +2 -0
- package/dist/commands/create/build_package_json.js.map +7 -0
- package/dist/commands/create/definition.js +2 -0
- package/dist/commands/create/definition.js.map +7 -0
- package/dist/commands/create/index.js +3 -0
- package/dist/commands/create/index.js.map +7 -0
- package/dist/commands/create/template/api/index.js +6 -0
- package/dist/commands/create/template/email/base.css +9 -0
- package/dist/commands/create/template/email/base.html +10 -0
- package/dist/commands/create/template/email/reset_password.js +20 -0
- package/dist/commands/create/template/i18n/en-US.js +14 -0
- package/dist/commands/create/template/index.client.js +1 -0
- package/dist/commands/create/template/index.css +34 -0
- package/dist/{functions/create/templates → commands/create/template}/index.html +2 -3
- package/dist/{functions/create/templates → commands/create/template}/index.server.js +6 -6
- package/dist/commands/create/template/public/apple-touch-icon-152x152.png +0 -0
- package/dist/commands/create/template/public/favicon.ico +0 -0
- package/dist/commands/create/template/public/joystick_logo.webp +0 -0
- package/dist/{functions/create/templates → commands/create/template}/public/manifest.json +4 -4
- package/dist/commands/create/template/public/splash-screen-1024x1024.png +0 -0
- package/{src/functions/create/templates → dist/commands/create/template}/ui/components/button/index.js +14 -6
- package/{src/functions/create/templates → dist/commands/create/template}/ui/layouts/app/index.js +2 -2
- package/dist/commands/create/template/ui/pages/error/index.js +50 -0
- package/dist/commands/create/template/ui/pages/index/index.js +121 -0
- package/dist/commands/help/definition.js +2 -0
- package/dist/commands/help/definition.js.map +7 -0
- package/dist/commands/help/index.js +20 -0
- package/dist/commands/help/index.js.map +7 -0
- package/dist/commands/index.js +2 -0
- package/dist/commands/index.js.map +7 -0
- package/dist/commands/logout/definition.js +2 -0
- package/dist/commands/logout/definition.js.map +7 -0
- package/dist/commands/logout/index.js +4 -0
- package/dist/commands/logout/index.js.map +7 -0
- package/dist/commands/push/cdn_mirrors.js +2 -0
- package/dist/commands/push/cdn_mirrors.js.map +7 -0
- package/dist/commands/push/check_if_settings_valid.js +2 -0
- package/dist/commands/push/check_if_settings_valid.js.map +7 -0
- package/dist/commands/push/create_version.js +2 -0
- package/dist/commands/push/create_version.js.map +7 -0
- package/dist/commands/push/definition.js +2 -0
- package/dist/commands/push/definition.js.map +7 -0
- package/dist/commands/push/get_app_domain.js +2 -0
- package/dist/commands/push/get_app_domain.js.map +7 -0
- package/dist/commands/push/get_deployment.js +2 -0
- package/dist/commands/push/get_deployment.js.map +7 -0
- package/dist/commands/push/get_provision_domain.js +2 -0
- package/dist/commands/push/get_provision_domain.js.map +7 -0
- package/dist/commands/push/get_session_token.js +2 -0
- package/dist/commands/push/get_session_token.js.map +7 -0
- package/dist/commands/push/get_settings_file.js +2 -0
- package/dist/commands/push/get_settings_file.js.map +7 -0
- package/dist/commands/push/handle_initial_deployment.js +2 -0
- package/dist/commands/push/handle_initial_deployment.js.map +7 -0
- package/dist/commands/push/handle_version_deployment.js +2 -0
- package/dist/commands/push/handle_version_deployment.js.map +7 -0
- package/dist/commands/push/index.js +9 -0
- package/dist/commands/push/index.js.map +7 -0
- package/dist/commands/push/prompts/confirm_deployment.js +18 -0
- package/dist/commands/push/prompts/confirm_deployment.js.map +7 -0
- package/dist/commands/push/prompts/session_token.js +6 -0
- package/dist/commands/push/prompts/session_token.js.map +7 -0
- package/dist/commands/push/upload_build_to_cdn.js +2 -0
- package/dist/commands/push/upload_build_to_cdn.js.map +7 -0
- package/dist/commands/push/validate_deployment.js +2 -0
- package/dist/commands/push/validate_deployment.js.map +7 -0
- package/dist/commands/push/validate_push_config.js +2 -0
- package/dist/commands/push/validate_push_config.js.map +7 -0
- package/dist/commands/push_v2/Dockerfile +47 -0
- package/dist/commands/push_v2/build_docker_image.js +2 -0
- package/dist/commands/push_v2/build_docker_image.js.map +7 -0
- package/dist/commands/push_v2/cdn_mirrors.js +2 -0
- package/dist/commands/push_v2/cdn_mirrors.js.map +7 -0
- package/dist/commands/push_v2/check_if_settings_valid.js +2 -0
- package/dist/commands/push_v2/check_if_settings_valid.js.map +7 -0
- package/dist/commands/push_v2/create_version.js +2 -0
- package/dist/commands/push_v2/create_version.js.map +7 -0
- package/dist/commands/push_v2/definition.js +2 -0
- package/dist/commands/push_v2/definition.js.map +7 -0
- package/dist/commands/push_v2/get_app_domain.js +2 -0
- package/dist/commands/push_v2/get_app_domain.js.map +7 -0
- package/dist/commands/push_v2/get_deployment.js +2 -0
- package/dist/commands/push_v2/get_deployment.js.map +7 -0
- package/dist/commands/push_v2/get_deployment_token.js +2 -0
- package/dist/commands/push_v2/get_deployment_token.js.map +7 -0
- package/dist/commands/push_v2/get_push_domain.js +2 -0
- package/dist/commands/push_v2/get_push_domain.js.map +7 -0
- package/dist/commands/push_v2/get_settings_file.js +2 -0
- package/dist/commands/push_v2/get_settings_file.js.map +7 -0
- package/dist/commands/push_v2/handle_initial_deployment.js +2 -0
- package/dist/commands/push_v2/handle_initial_deployment.js.map +7 -0
- package/dist/commands/push_v2/handle_version_deployment.js +2 -0
- package/dist/commands/push_v2/handle_version_deployment.js.map +7 -0
- package/dist/commands/push_v2/index.js +6 -0
- package/dist/commands/push_v2/index.js.map +7 -0
- package/dist/commands/push_v2/prompts/confirm_deployment.js +18 -0
- package/dist/commands/push_v2/prompts/confirm_deployment.js.map +7 -0
- package/dist/commands/push_v2/prompts/session_token.js +6 -0
- package/dist/commands/push_v2/prompts/session_token.js.map +7 -0
- package/dist/commands/push_v2/upload_build_to_push.js +2 -0
- package/dist/commands/push_v2/upload_build_to_push.js.map +7 -0
- package/dist/commands/push_v2/validate_deployment.js +2 -0
- package/dist/commands/push_v2/validate_deployment.js.map +7 -0
- package/dist/commands/push_v2/validate_push_config.js +2 -0
- package/dist/commands/push_v2/validate_push_config.js.map +7 -0
- package/dist/commands/start/definition.js +2 -0
- package/dist/commands/start/definition.js.map +7 -0
- package/dist/commands/start/index.js +2 -0
- package/dist/commands/start/index.js.map +7 -0
- package/dist/commands/test/definition.js +2 -0
- package/dist/commands/test/definition.js.map +7 -0
- package/dist/commands/test/index.js +2 -0
- package/dist/commands/test/index.js.map +7 -0
- package/dist/commands/update/definition.js +2 -0
- package/dist/commands/update/definition.js.map +7 -0
- package/dist/commands/update/index.js +2 -0
- package/dist/commands/update/index.js.map +7 -0
- package/dist/commands/use/definition.js +2 -0
- package/dist/commands/use/definition.js.map +7 -0
- package/dist/commands/use/index.js +2 -0
- package/dist/commands/use/index.js.map +7 -0
- package/dist/index.js +2 -7
- package/dist/index.js.map +7 -0
- package/dist/lib/build/browser_path_exclusions.js +2 -0
- package/dist/lib/build/browser_path_exclusions.js.map +7 -0
- package/dist/lib/build/browser_paths.js +2 -0
- package/dist/lib/build/browser_paths.js.map +7 -0
- package/dist/lib/build/build_files.js +4 -0
- package/dist/lib/build/build_files.js.map +7 -0
- package/dist/lib/build/copy_paths.js +2 -0
- package/dist/lib/build/copy_paths.js.map +7 -0
- package/dist/lib/build/get_code_frame.js +2 -0
- package/dist/lib/build/get_code_frame.js.map +7 -0
- package/dist/lib/build/get_file_operation.js +2 -0
- package/dist/lib/build/get_file_operation.js.map +7 -0
- package/dist/lib/build/get_files_to_build.js +2 -0
- package/dist/lib/build/get_files_to_build.js.map +7 -0
- package/dist/lib/build/get_path_platform.js +2 -0
- package/dist/lib/build/get_path_platform.js.map +7 -0
- package/dist/lib/build/get_platform_safe_path.js +2 -0
- package/dist/lib/build/get_platform_safe_path.js.map +7 -0
- package/dist/lib/build/get_tar_ignore_list.js +3 -0
- package/dist/lib/build/get_tar_ignore_list.js.map +7 -0
- package/dist/lib/build/index.js +4 -0
- package/dist/lib/build/index.js.map +7 -0
- package/dist/lib/build/master_ignore_list.js +2 -0
- package/dist/lib/build/master_ignore_list.js.map +7 -0
- package/dist/lib/build/minify_file.js +2 -0
- package/dist/lib/build/minify_file.js.map +7 -0
- package/dist/lib/build/node_paths.js +2 -0
- package/dist/lib/build/node_paths.js.map +7 -0
- package/dist/lib/build/on_warn.js +11 -0
- package/dist/lib/build/on_warn.js.map +7 -0
- package/dist/lib/build/plugins/bootstrap_component.js +34 -0
- package/dist/lib/build/plugins/bootstrap_component.js.map +7 -0
- package/dist/lib/build/plugins/generate_file_dependency_map.js +2 -0
- package/dist/lib/build/plugins/generate_file_dependency_map.js.map +7 -0
- package/dist/lib/build/plugins/index.js +2 -0
- package/dist/lib/build/plugins/index.js.map +7 -0
- package/dist/lib/build/plugins/set_component_id.js +3 -0
- package/dist/lib/build/plugins/set_component_id.js.map +7 -0
- package/dist/lib/build/plugins/update_file_map.js +2 -0
- package/dist/lib/build/plugins/update_file_map.js.map +7 -0
- package/dist/lib/build/plugins/warn_node_environment.js +4 -0
- package/dist/lib/build/plugins/warn_node_environment.js.map +7 -0
- package/dist/lib/cli_log.js +14 -0
- package/dist/lib/cli_log.js.map +7 -0
- package/dist/lib/color_log.js +2 -0
- package/dist/lib/color_log.js.map +7 -0
- package/dist/lib/command_exists.js +2 -0
- package/dist/lib/command_exists.js.map +7 -0
- package/dist/lib/constants.js +2 -4
- package/dist/lib/constants.js.map +7 -0
- package/dist/lib/debounce.js +2 -0
- package/dist/lib/debounce.js.map +7 -0
- package/dist/lib/decrypt_buffer.js +2 -0
- package/dist/lib/decrypt_buffer.js.map +7 -0
- package/dist/lib/development_server/ava_config.js +2 -0
- package/dist/lib/development_server/ava_config.js.map +7 -0
- package/dist/lib/development_server/check_if_port_occupied.js +2 -0
- package/dist/lib/development_server/check_if_port_occupied.js.map +7 -0
- package/dist/lib/development_server/cleanup.js +2 -0
- package/dist/lib/development_server/cleanup.js.map +7 -0
- package/dist/lib/development_server/databases/download_database_binary.js +2 -0
- package/dist/lib/development_server/databases/download_database_binary.js.map +7 -0
- package/dist/lib/development_server/databases/mongodb/available_query_parameters.js +2 -0
- package/dist/lib/development_server/databases/mongodb/available_query_parameters.js.map +7 -0
- package/dist/lib/development_server/databases/mongodb/build_connection_string.js +2 -0
- package/dist/lib/development_server/databases/mongodb/build_connection_string.js.map +7 -0
- package/dist/lib/development_server/databases/mongodb/build_query_parameters.js +2 -0
- package/dist/lib/development_server/databases/mongodb/build_query_parameters.js.map +7 -0
- package/dist/lib/development_server/databases/mongodb/check_connection.js +3 -0
- package/dist/lib/development_server/databases/mongodb/check_connection.js.map +7 -0
- package/dist/lib/development_server/databases/mongodb/connect.js +2 -0
- package/dist/lib/development_server/databases/mongodb/connect.js.map +7 -0
- package/dist/lib/development_server/databases/mongodb/index.js +2 -0
- package/dist/lib/development_server/databases/mongodb/index.js.map +7 -0
- package/dist/lib/development_server/databases/mongodb/installers/linux.js +2 -0
- package/dist/lib/development_server/databases/mongodb/installers/linux.js.map +7 -0
- package/dist/lib/development_server/databases/mongodb/installers/macos.js +2 -0
- package/dist/lib/development_server/databases/mongodb/installers/macos.js.map +7 -0
- package/dist/lib/development_server/databases/mongodb/installers/windows.js +2 -0
- package/dist/lib/development_server/databases/mongodb/installers/windows.js.map +7 -0
- package/dist/lib/development_server/databases/postgresql/check_connection.js +3 -0
- package/dist/lib/development_server/databases/postgresql/check_connection.js.map +7 -0
- package/dist/lib/development_server/databases/postgresql/connect.js +2 -0
- package/dist/lib/development_server/databases/postgresql/connect.js.map +7 -0
- package/dist/lib/development_server/databases/postgresql/index.js +3 -0
- package/dist/lib/development_server/databases/postgresql/index.js.map +7 -0
- package/dist/lib/development_server/databases/postgresql/installers/linux.js +2 -0
- package/dist/lib/development_server/databases/postgresql/installers/linux.js.map +7 -0
- package/dist/lib/development_server/databases/postgresql/installers/macos.js +2 -0
- package/dist/lib/development_server/databases/postgresql/installers/macos.js.map +7 -0
- package/dist/lib/development_server/databases/postgresql/installers/windows.js +2 -0
- package/dist/lib/development_server/databases/postgresql/installers/windows.js.map +7 -0
- package/dist/lib/development_server/databases/provider_map.js +2 -0
- package/dist/lib/development_server/databases/provider_map.js.map +7 -0
- package/dist/lib/development_server/get_database_process_ids.js +2 -0
- package/dist/lib/development_server/get_database_process_ids.js.map +7 -0
- package/dist/lib/development_server/get_translations.js +2 -0
- package/dist/lib/development_server/get_translations.js.map +7 -0
- package/dist/lib/development_server/hmr_server.js +2 -0
- package/dist/lib/development_server/hmr_server.js.map +7 -0
- package/dist/lib/development_server/index.js +11 -0
- package/dist/lib/development_server/index.js.map +7 -0
- package/dist/lib/development_server/kill_process_ids.js +2 -0
- package/dist/lib/development_server/kill_process_ids.js.map +7 -0
- package/dist/lib/development_server/run_tests.js +3 -0
- package/dist/lib/development_server/run_tests.js.map +7 -0
- package/dist/lib/development_server/start_app_server.js +2 -0
- package/dist/lib/development_server/start_app_server.js.map +7 -0
- package/dist/lib/development_server/start_databases.js +2 -0
- package/dist/lib/development_server/start_databases.js.map +7 -0
- package/dist/lib/development_server/start_hmr_server.js +2 -0
- package/dist/lib/development_server/start_hmr_server.js.map +7 -0
- package/dist/lib/development_server/watch_for_changes/browser_path_exclusions.js +2 -0
- package/dist/lib/development_server/watch_for_changes/browser_path_exclusions.js.map +7 -0
- package/dist/lib/development_server/watch_for_changes/browser_paths.js +2 -0
- package/dist/lib/development_server/watch_for_changes/browser_paths.js.map +7 -0
- package/dist/lib/development_server/watch_for_changes/get_after_run_tasks.js +2 -0
- package/dist/lib/development_server/watch_for_changes/get_after_run_tasks.js.map +7 -0
- package/dist/lib/development_server/watch_for_changes/get_file_codependencies.js +2 -0
- package/dist/lib/development_server/watch_for_changes/get_file_codependencies.js.map +7 -0
- package/dist/lib/development_server/watch_for_changes/get_platform_safe_path.js +2 -0
- package/dist/lib/development_server/watch_for_changes/get_platform_safe_path.js.map +7 -0
- package/dist/lib/development_server/watch_for_changes/index.js +2 -0
- package/dist/lib/development_server/watch_for_changes/index.js.map +7 -0
- package/dist/lib/development_server/watch_for_changes/node_paths.js +2 -0
- package/dist/lib/development_server/watch_for_changes/node_paths.js.map +7 -0
- package/dist/lib/development_server/watch_for_changes/read_file_dependency_map.js +2 -0
- package/dist/lib/development_server/watch_for_changes/read_file_dependency_map.js.map +7 -0
- package/dist/lib/development_server/watch_for_changes/watch_paths.js +2 -0
- package/dist/lib/development_server/watch_for_changes/watch_paths.js.map +7 -0
- package/dist/lib/dynamic_import.js +2 -0
- package/dist/lib/dynamic_import.js.map +7 -0
- package/dist/lib/encrypt_buffer.js +2 -0
- package/dist/lib/encrypt_buffer.js.map +7 -0
- package/dist/lib/generate_id.js +2 -0
- package/dist/lib/generate_id.js.map +7 -0
- package/dist/lib/get_files_in_path.js +2 -0
- package/dist/lib/get_files_in_path.js.map +7 -0
- package/dist/lib/get_platform_safe_path.js +2 -0
- package/dist/lib/get_platform_safe_path.js.map +7 -0
- package/dist/lib/get_process_id_from_port.js +3 -0
- package/dist/lib/get_process_id_from_port.js.map +7 -0
- package/dist/lib/is_valid_json_string.js +2 -0
- package/dist/lib/is_valid_json_string.js.map +7 -0
- package/dist/lib/kill_port_process.js +2 -0
- package/dist/lib/kill_port_process.js.map +7 -0
- package/dist/lib/kill_process_id.js +2 -0
- package/dist/lib/kill_process_id.js.map +7 -0
- package/dist/lib/load_settings.js +2 -0
- package/dist/lib/load_settings.js.map +7 -0
- package/dist/lib/loader.js +3 -82
- package/dist/lib/loader.js.map +7 -0
- package/dist/lib/log_bars.js +2 -0
- package/dist/lib/log_bars.js.map +7 -0
- package/dist/lib/node_path_polyfills.js +2 -0
- package/dist/lib/node_path_polyfills.js.map +7 -0
- package/dist/lib/parse_args.js +2 -0
- package/dist/lib/parse_args.js.map +7 -0
- package/dist/lib/parse_options.js +2 -0
- package/dist/lib/parse_options.js.map +7 -0
- package/dist/lib/path_exists.js +2 -0
- package/dist/lib/path_exists.js.map +7 -0
- package/dist/lib/rainbow_road.js +2 -0
- package/dist/lib/rainbow_road.js.map +7 -0
- package/dist/lib/replace_in_files.js +2 -0
- package/dist/lib/replace_in_files.js.map +7 -0
- package/dist/lib/required_files.js +2 -0
- package/dist/lib/required_files.js.map +7 -0
- package/dist/lib/serialize_query_parameters.js +2 -0
- package/dist/lib/serialize_query_parameters.js.map +7 -0
- package/dist/lib/types.js +2 -6
- package/dist/lib/types.js.map +7 -0
- package/dist/lib/unique_array.js +2 -0
- package/dist/lib/unique_array.js.map +7 -0
- package/increment_version.js +3 -0
- package/package.json +19 -38
- package/src/cli.js +69 -51
- package/src/commands/build/definition.js +58 -0
- package/src/commands/build/index.js +7 -0
- package/src/commands/create/build_package_json.js +20 -0
- package/src/commands/create/definition.js +35 -0
- package/src/commands/create/index.js +71 -0
- package/src/commands/create/template/api/index.js +6 -0
- package/src/commands/create/template/email/base.css +9 -0
- package/src/commands/create/template/email/base.html +10 -0
- package/src/commands/create/template/email/reset_password.js +20 -0
- package/src/commands/create/template/i18n/en-US.js +14 -0
- package/src/commands/create/template/index.client.js +1 -0
- package/src/commands/create/template/index.css +34 -0
- package/src/{functions/create/templates → commands/create/template}/index.html +2 -3
- package/src/{functions/create/templates → commands/create/template}/index.server.js +6 -6
- package/src/commands/create/template/public/apple-touch-icon-152x152.png +0 -0
- package/src/commands/create/template/public/favicon.ico +0 -0
- package/src/commands/create/template/public/joystick_logo.webp +0 -0
- package/src/{functions/create/templates → commands/create/template}/public/manifest.json +4 -4
- package/src/commands/create/template/public/splash-screen-1024x1024.png +0 -0
- package/{dist/functions/create/templates → src/commands/create/template}/ui/components/button/index.js +14 -6
- package/{dist/functions/create/templates → src/commands/create/template}/ui/layouts/app/index.js +2 -2
- package/src/commands/create/template/ui/pages/error/index.js +50 -0
- package/src/commands/create/template/ui/pages/index/index.js +121 -0
- package/src/commands/help/definition.js +12 -0
- package/src/commands/help/index.js +48 -0
- package/src/commands/index.js +25 -0
- package/src/commands/logout/definition.js +10 -0
- package/src/commands/logout/index.js +20 -0
- package/src/commands/push/cdn_mirrors.js +7 -0
- package/src/commands/push/check_if_settings_valid.js +10 -0
- package/src/commands/push/create_version.js +20 -0
- package/src/commands/push/definition.js +43 -0
- package/src/commands/push/get_app_domain.js +11 -0
- package/src/commands/push/get_deployment.js +19 -0
- package/src/commands/push/get_provision_domain.js +9 -0
- package/src/commands/push/get_session_token.js +31 -0
- package/src/commands/push/get_settings_file.js +47 -0
- package/src/commands/push/handle_initial_deployment.js +24 -0
- package/src/commands/push/handle_version_deployment.js +23 -0
- package/src/commands/push/index.js +190 -0
- package/src/commands/push/prompts/confirm_deployment.js +73 -0
- package/src/commands/push/prompts/session_token.js +11 -0
- package/src/commands/push/upload_build_to_cdn.js +59 -0
- package/src/commands/push/validate_deployment.js +19 -0
- package/src/commands/push/validate_push_config.js +18 -0
- package/src/commands/push_v2/Dockerfile +47 -0
- package/src/commands/push_v2/build_docker_image.js +78 -0
- package/src/commands/push_v2/cdn_mirrors.js +7 -0
- package/src/commands/push_v2/check_if_settings_valid.js +10 -0
- package/src/commands/push_v2/create_version.js +20 -0
- package/src/commands/push_v2/definition.js +58 -0
- package/src/commands/push_v2/get_app_domain.js +11 -0
- package/src/commands/push_v2/get_deployment.js +19 -0
- package/src/commands/push_v2/get_deployment_token.js +30 -0
- package/src/commands/push_v2/get_push_domain.js +8 -0
- package/src/commands/push_v2/get_settings_file.js +47 -0
- package/src/commands/push_v2/handle_initial_deployment.js +24 -0
- package/src/commands/push_v2/handle_version_deployment.js +23 -0
- package/src/commands/push_v2/index.js +90 -0
- package/src/commands/push_v2/prompts/confirm_deployment.js +73 -0
- package/src/commands/push_v2/prompts/session_token.js +11 -0
- package/src/commands/push_v2/upload_build_to_push.js +37 -0
- package/src/commands/push_v2/validate_deployment.js +19 -0
- package/src/commands/push_v2/validate_push_config.js +18 -0
- package/src/commands/start/definition.js +58 -0
- package/src/commands/start/index.js +11 -0
- package/src/commands/test/definition.js +28 -0
- package/src/commands/test/index.js +12 -0
- package/src/commands/update/definition.js +28 -0
- package/src/commands/update/index.js +29 -0
- package/src/commands/use/definition.js +19 -0
- package/src/commands/use/index.js +54 -0
- package/src/index.js +0 -0
- package/src/lib/build/browser_path_exclusions.js +8 -0
- package/src/lib/build/browser_paths.js +11 -0
- package/src/lib/build/build_files.js +167 -0
- package/src/{functions/start/filesToCopy.js → lib/build/copy_paths.js} +7 -5
- package/src/lib/build/get_code_frame.js +11 -0
- package/src/lib/build/get_file_operation.js +25 -0
- package/src/lib/build/get_files_to_build.js +41 -0
- package/src/lib/build/get_path_platform.js +32 -0
- package/src/lib/build/get_platform_safe_path.js +6 -0
- package/src/lib/build/get_tar_ignore_list.js +41 -0
- package/src/lib/build/index.js +137 -0
- package/src/lib/build/master_ignore_list.js +14 -0
- package/src/lib/build/minify_file.js +22 -0
- package/src/lib/build/node_paths.js +19 -0
- package/src/lib/build/on_warn.js +70 -0
- package/src/lib/build/plugins/bootstrap_component.js +191 -0
- package/src/lib/build/plugins/generate_file_dependency_map.js +20 -0
- package/src/lib/build/plugins/index.js +26 -0
- package/src/lib/build/plugins/set_component_id.js +89 -0
- package/src/lib/build/plugins/update_file_map.js +98 -0
- package/src/lib/build/plugins/warn_node_environment.js +20 -0
- package/src/lib/{CLILog.js → cli_log.js} +12 -8
- package/src/lib/color_log.js +7 -0
- package/src/lib/command_exists.js +16 -0
- package/src/lib/constants.js +11 -1
- package/src/lib/debounce.js +9 -0
- package/src/lib/decrypt_buffer.js +12 -0
- package/src/lib/development_server/ava_config.js +14 -0
- package/src/lib/development_server/check_if_port_occupied.js +31 -0
- package/src/lib/development_server/cleanup.js +15 -0
- package/src/lib/development_server/databases/download_database_binary.js +35 -0
- package/src/lib/{dev/databases/mongodb/availableQueryParameters.js → development_server/databases/mongodb/available_query_parameters.js} +3 -1
- package/src/lib/development_server/databases/mongodb/build_connection_string.js +36 -0
- package/src/lib/development_server/databases/mongodb/build_query_parameters.js +17 -0
- package/src/lib/development_server/databases/mongodb/check_connection.js +41 -0
- package/src/lib/development_server/databases/mongodb/connect.js +27 -0
- package/src/lib/development_server/databases/mongodb/index.js +102 -0
- package/src/lib/development_server/databases/mongodb/installers/linux.js +107 -0
- package/src/lib/development_server/databases/mongodb/installers/macos.js +109 -0
- package/src/lib/development_server/databases/mongodb/installers/windows.js +90 -0
- package/src/lib/development_server/databases/postgresql/check_connection.js +56 -0
- package/src/lib/development_server/databases/postgresql/connect.js +33 -0
- package/src/lib/development_server/databases/postgresql/index.js +157 -0
- package/src/lib/development_server/databases/postgresql/installers/linux.js +80 -0
- package/src/lib/development_server/databases/postgresql/installers/macos.js +91 -0
- package/src/lib/development_server/databases/postgresql/installers/windows.js +83 -0
- package/src/lib/development_server/databases/provider_map.js +15 -0
- package/src/lib/development_server/get_database_process_ids.js +28 -0
- package/src/lib/development_server/get_translations.js +85 -0
- package/src/lib/development_server/hmr_server.js +94 -0
- package/src/lib/development_server/index.js +436 -0
- package/src/lib/development_server/kill_process_ids.js +8 -0
- package/src/lib/development_server/run_tests.js +84 -0
- package/src/lib/development_server/start_app_server.js +55 -0
- package/src/lib/development_server/start_databases.js +108 -0
- package/src/lib/development_server/start_hmr_server.js +36 -0
- package/src/lib/development_server/watch_for_changes/browser_path_exclusions.js +8 -0
- package/src/lib/development_server/watch_for_changes/browser_paths.js +11 -0
- package/src/lib/development_server/watch_for_changes/get_after_run_tasks.js +36 -0
- package/src/lib/development_server/watch_for_changes/get_file_codependencies.js +53 -0
- package/src/lib/development_server/watch_for_changes/get_platform_safe_path.js +6 -0
- package/src/lib/development_server/watch_for_changes/index.js +222 -0
- package/src/lib/development_server/watch_for_changes/node_paths.js +17 -0
- package/src/lib/development_server/watch_for_changes/read_file_dependency_map.js +18 -0
- package/src/lib/development_server/watch_for_changes/watch_paths.js +22 -0
- package/src/lib/dynamic_import.js +6 -0
- package/src/lib/encrypt_buffer.js +10 -0
- package/src/lib/generate_id.js +15 -0
- package/src/lib/get_files_in_path.js +25 -0
- package/src/lib/get_platform_safe_path.js +8 -0
- package/src/lib/get_process_id_from_port.js +26 -0
- package/src/lib/is_valid_json_string.js +10 -0
- package/src/lib/kill_port_process.js +12 -0
- package/src/lib/kill_process_id.js +19 -0
- package/src/lib/load_settings.js +43 -0
- package/src/lib/loader.js +4 -77
- package/src/lib/log_bars.js +7 -0
- package/src/lib/node_path_polyfills.js +23 -0
- package/src/lib/parse_args.js +16 -0
- package/src/lib/parse_options.js +16 -0
- package/src/lib/path_exists.js +11 -0
- package/src/lib/{rainbowRoad.js → rainbow_road.js} +4 -2
- package/src/lib/replace_in_files.js +40 -0
- package/src/lib/{dev/requiredFiles.js → required_files.js} +3 -1
- package/src/lib/serialize_query_parameters.js +7 -0
- package/src/lib/types.js +59 -2
- package/src/lib/unique_array.js +24 -0
- package/HMRNOTES.txt +0 -23
- package/_package.json +0 -56
- package/canary.js +0 -12
- package/dist/functions/build/getTarIgnoreList.js +0 -25
- package/dist/functions/build/index.js +0 -54
- package/dist/functions/create/buildPackageJSON.js +0 -20
- package/dist/functions/create/index.js +0 -193
- package/dist/functions/create/templates/api/index.js +0 -4
- package/dist/functions/create/templates/i18n/en-US.js +0 -4
- package/dist/functions/create/templates/index.client.js +0 -7
- package/dist/functions/create/templates/index.css +0 -20
- package/dist/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
- package/dist/functions/create/templates/public/favicon.ico +0 -0
- package/dist/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
- package/dist/functions/create/templates/ui/pages/error/index.js +0 -31
- package/dist/functions/create/templates/ui/pages/index/index.js +0 -94
- package/dist/functions/index.js +0 -269
- package/dist/functions/logout/index.js +0 -20
- package/dist/functions/push/checkIfProvisionAvailable.js +0 -19
- package/dist/functions/push/deploy/index.js +0 -173
- package/dist/functions/push/deploy/initial.js +0 -100
- package/dist/functions/push/deploy/version.js +0 -100
- package/dist/functions/push/domains.js +0 -23
- package/dist/functions/push/getAvailableCDN.js +0 -23
- package/dist/functions/push/getDeployment.js +0 -41
- package/dist/functions/push/getDeploymentSummary.js +0 -38
- package/dist/functions/push/getInstanceSizeRegions.js +0 -37
- package/dist/functions/push/getInstanceSizesForRegion.js +0 -34
- package/dist/functions/push/getProviderInstanceSizes.js +0 -34
- package/dist/functions/push/getProviderRegions.js +0 -36
- package/dist/functions/push/getProvidersWithConnectionStatus.js +0 -20
- package/dist/functions/push/getSessionToken.js +0 -23
- package/dist/functions/push/getUserFromSessionToken.js +0 -37
- package/dist/functions/push/index.js +0 -210
- package/dist/functions/push/loginToCheatCode.js +0 -33
- package/dist/functions/push/pingProvisionAPI.js +0 -31
- package/dist/functions/push/prompts.js +0 -332
- package/dist/functions/push/providerMap.js +0 -11
- package/dist/functions/push/providers.js +0 -9
- package/dist/functions/reset/index.js +0 -0
- package/dist/functions/reset/reset.js +0 -127
- package/dist/functions/start/bootstrapLayoutComponent.js +0 -54
- package/dist/functions/start/bootstrapPageComponent.js +0 -51
- package/dist/functions/start/buildFile.js +0 -85
- package/dist/functions/start/buildFiles.js +0 -76
- package/dist/functions/start/buildPlugins.js +0 -183
- package/dist/functions/start/checkIfPortAvailable.js +0 -18
- package/dist/functions/start/cleanup/index.js +0 -18
- package/dist/functions/start/databases/mongodb/availableQueryParameters.js +0 -42
- package/dist/functions/start/databases/mongodb/buildConnectionString.js +0 -22
- package/dist/functions/start/databases/mongodb/buildQueryParameters.js +0 -14
- package/dist/functions/start/databases/mongodb/checkConnection.js +0 -35
- package/dist/functions/start/databases/mongodb/connect.js +0 -25
- package/dist/functions/start/databases/mongodb/index.js +0 -93
- package/dist/functions/start/databases/postgresql/checkConnection.js +0 -41
- package/dist/functions/start/databases/postgresql/connect.js +0 -27
- package/dist/functions/start/databases/postgresql/index.js +0 -106
- package/dist/functions/start/databases/redis.js +0 -0
- package/dist/functions/start/databases/startProvider.js +0 -16
- package/dist/functions/start/fileDependencyMapper.js +0 -22
- package/dist/functions/start/filesToCopy.js +0 -18
- package/dist/functions/start/generateId.js +0 -74
- package/dist/functions/start/getCodependenciesForFile.js +0 -64
- package/dist/functions/start/getFilesToBuild.js +0 -39
- package/dist/functions/start/getProcessIdFromPort.js +0 -60
- package/dist/functions/start/hmrServer.js +0 -66
- package/dist/functions/start/index.js +0 -11
- package/dist/functions/start/isWindows.js +0 -5
- package/dist/functions/start/minifyFile.js +0 -12
- package/dist/functions/start/onWarn.js +0 -63
- package/dist/functions/start/readFileDependencyMap.js +0 -16
- package/dist/functions/start/removeDeletedDependenciesFromMap.js +0 -18
- package/dist/functions/start/setComponentId.js +0 -46
- package/dist/functions/start/updateFileMap.js +0 -67
- package/dist/functions/test/index.js +0 -12
- package/dist/functions/update/index.js +0 -21
- package/dist/functions/use/index.js +0 -61
- package/dist/lib/CLILog.js +0 -49
- package/dist/lib/build/browserPathExclusions.js +0 -8
- package/dist/lib/build/browserPaths.js +0 -11
- package/dist/lib/build/buildFile.js +0 -84
- package/dist/lib/build/buildFiles.js +0 -242
- package/dist/lib/build/buildPlugins.js +0 -186
- package/dist/lib/build/getCodeFrame.js +0 -9
- package/dist/lib/build/minifyFile.js +0 -12
- package/dist/lib/build/nodePathExclusions.js +0 -7
- package/dist/lib/build/nodePaths.js +0 -12
- package/dist/lib/build/onWarn.js +0 -63
- package/dist/lib/build/removeDeletedDependenciesFromMap.js +0 -18
- package/dist/lib/build/setComponentId.js +0 -46
- package/dist/lib/build/updateFileMap.js +0 -67
- package/dist/lib/buildResolvePlugin.js +0 -21
- package/dist/lib/checkIfValidJSON.js +0 -11
- package/dist/lib/colorLog.js +0 -7
- package/dist/lib/dev/cleanup.js +0 -18
- package/dist/lib/dev/databases/mongodb/availableQueryParameters.js +0 -42
- package/dist/lib/dev/databases/mongodb/buildConnectionString.js +0 -22
- package/dist/lib/dev/databases/mongodb/buildQueryParameters.js +0 -14
- package/dist/lib/dev/databases/mongodb/checkConnection.js +0 -38
- package/dist/lib/dev/databases/mongodb/connect.js +0 -25
- package/dist/lib/dev/databases/mongodb/index.js +0 -93
- package/dist/lib/dev/databases/postgresql/checkConnection.js +0 -41
- package/dist/lib/dev/databases/postgresql/connect.js +0 -27
- package/dist/lib/dev/databases/postgresql/index.js +0 -106
- package/dist/lib/dev/databases/providerMap.js +0 -15
- package/dist/lib/dev/getCodependenciesForFile.js +0 -64
- package/dist/lib/dev/getFilesToBuild.js +0 -38
- package/dist/lib/dev/hmrServer.js +0 -66
- package/dist/lib/dev/index.js +0 -561
- package/dist/lib/dev/isWindows.js +0 -5
- package/dist/lib/dev/loadSettings.js +0 -79
- package/dist/lib/dev/readFileDependencyMap.js +0 -16
- package/dist/lib/dev/requiredFiles.js +0 -18
- package/dist/lib/dev/runBuild.js +0 -30
- package/dist/lib/dev/runTests.js +0 -96
- package/dist/lib/dev/startDatabases.js +0 -109
- package/dist/lib/dev/startHMR.js +0 -55
- package/dist/lib/dev/tests.config.js +0 -6
- package/dist/lib/dev/updateFileMap.js +0 -67
- package/dist/lib/dev/validateProject.js +0 -0
- package/dist/lib/dev/watchlist.js +0 -15
- package/dist/lib/filesToCopy.js +0 -18
- package/dist/lib/generateId.js +0 -74
- package/dist/lib/getArgs.js +0 -14
- package/dist/lib/getOptions.js +0 -15
- package/dist/lib/getPlatformSafePath.js +0 -7
- package/dist/lib/getProcessIdFromPort.js +0 -60
- package/dist/lib/getProvider.js +0 -8
- package/dist/lib/help.js +0 -56
- package/dist/lib/isObject.js +0 -6
- package/dist/lib/isValidJSONString.js +0 -11
- package/dist/lib/isWindows.js +0 -5
- package/dist/lib/killProcesses.js +0 -0
- package/dist/lib/loadSettings.js +0 -33
- package/dist/lib/masterIgnoreList.js +0 -16
- package/dist/lib/nodeEnvironment.js +0 -9
- package/dist/lib/nodeEnvironments.js +0 -8
- package/dist/lib/parseCookiesFromLogin.js +0 -18
- package/dist/lib/rainbowRoad.js +0 -7
- package/dist/lib/readDirectorySync.js +0 -14
- package/dist/lib/regexes.js +0 -14
- package/dist/lib/replaceBackslashesWithForwardSlashes.js +0 -8
- package/dist/lib/replaceFileProtocol.js +0 -8
- package/dist/lib/serializeQueryParameters.js +0 -8
- package/dist/lib/settings.js +0 -4
- package/dist/lib/validateDatabasesFromSettings.js +0 -34
- package/dist/lib/wait.js +0 -8
- package/release.js +0 -40
- package/src/functions/build/getTarIgnoreList.js +0 -30
- package/src/functions/build/index.js +0 -63
- package/src/functions/create/buildPackageJSON.js +0 -18
- package/src/functions/create/index.js +0 -209
- package/src/functions/create/templates/api/index.js +0 -4
- package/src/functions/create/templates/i18n/en-US.js +0 -4
- package/src/functions/create/templates/index.client.js +0 -7
- package/src/functions/create/templates/index.css +0 -20
- package/src/functions/create/templates/public/apple-touch-icon-152x152.png +0 -0
- package/src/functions/create/templates/public/favicon.ico +0 -0
- package/src/functions/create/templates/public/splash-screen-1024x1024.png +0 -0
- package/src/functions/create/templates/ui/pages/error/index.js +0 -31
- package/src/functions/create/templates/ui/pages/index/index.js +0 -94
- package/src/functions/index.js +0 -269
- package/src/functions/logout/index.js +0 -20
- package/src/functions/push/checkIfProvisionAvailable.js +0 -20
- package/src/functions/push/deploy/index.js +0 -199
- package/src/functions/push/deploy/initial.js +0 -108
- package/src/functions/push/deploy/version.js +0 -108
- package/src/functions/push/domains.js +0 -23
- package/src/functions/push/getAvailableCDN.js +0 -27
- package/src/functions/push/getDeployment.js +0 -43
- package/src/functions/push/getDeploymentSummary.js +0 -39
- package/src/functions/push/getInstanceSizeRegions.js +0 -40
- package/src/functions/push/getInstanceSizesForRegion.js +0 -35
- package/src/functions/push/getProviderInstanceSizes.js +0 -35
- package/src/functions/push/getProviderRegions.js +0 -39
- package/src/functions/push/getProvidersWithConnectionStatus.js +0 -25
- package/src/functions/push/getSessionToken.js +0 -26
- package/src/functions/push/getUserFromSessionToken.js +0 -39
- package/src/functions/push/index.js +0 -245
- package/src/functions/push/loginToCheatCode.js +0 -34
- package/src/functions/push/pingProvisionAPI.js +0 -33
- package/src/functions/push/prompts.js +0 -276
- package/src/functions/push/providerMap.js +0 -8
- package/src/functions/push/providers.js +0 -6
- package/src/functions/reset/index.js +0 -0
- package/src/functions/reset/reset.js +0 -163
- package/src/functions/start/bootstrapLayoutComponent.js +0 -57
- package/src/functions/start/bootstrapPageComponent.js +0 -54
- package/src/functions/start/buildFile.js +0 -97
- package/src/functions/start/buildFiles.js +0 -101
- package/src/functions/start/buildPlugins.js +0 -215
- package/src/functions/start/checkIfPortAvailable.js +0 -21
- package/src/functions/start/cleanup/index.js +0 -23
- package/src/functions/start/databases/mongodb/availableQueryParameters.js +0 -39
- package/src/functions/start/databases/mongodb/buildConnectionString.js +0 -28
- package/src/functions/start/databases/mongodb/buildQueryParameters.js +0 -15
- package/src/functions/start/databases/mongodb/checkConnection.js +0 -36
- package/src/functions/start/databases/mongodb/connect.js +0 -25
- package/src/functions/start/databases/mongodb/index.js +0 -108
- package/src/functions/start/databases/postgresql/checkConnection.js +0 -43
- package/src/functions/start/databases/postgresql/connect.js +0 -27
- package/src/functions/start/databases/postgresql/index.js +0 -127
- package/src/functions/start/databases/redis.js +0 -0
- package/src/functions/start/databases/startProvider.js +0 -15
- package/src/functions/start/fileDependencyMapper.js +0 -24
- package/src/functions/start/generateId.js +0 -73
- package/src/functions/start/getCodependenciesForFile.js +0 -84
- package/src/functions/start/getFilesToBuild.js +0 -49
- package/src/functions/start/getProcessIdFromPort.js +0 -92
- package/src/functions/start/hmrServer.js +0 -78
- package/src/functions/start/index.js +0 -9
- package/src/functions/start/isWindows.js +0 -3
- package/src/functions/start/minifyFile.js +0 -10
- package/src/functions/start/onWarn.js +0 -68
- package/src/functions/start/readFileDependencyMap.js +0 -19
- package/src/functions/start/removeDeletedDependenciesFromMap.js +0 -19
- package/src/functions/start/setComponentId.js +0 -58
- package/src/functions/start/updateFileMap.js +0 -100
- package/src/functions/test/index.js +0 -10
- package/src/functions/update/index.js +0 -20
- package/src/functions/use/index.js +0 -62
- package/src/lib/build/browserPathExclusions.js +0 -6
- package/src/lib/build/browserPaths.js +0 -9
- package/src/lib/build/buildFile.js +0 -91
- package/src/lib/build/buildFiles.js +0 -274
- package/src/lib/build/buildPlugins.js +0 -222
- package/src/lib/build/getCodeFrame.js +0 -7
- package/src/lib/build/minifyFile.js +0 -10
- package/src/lib/build/nodePathExclusions.js +0 -5
- package/src/lib/build/nodePaths.js +0 -10
- package/src/lib/build/onWarn.js +0 -68
- package/src/lib/build/removeDeletedDependenciesFromMap.js +0 -19
- package/src/lib/build/setComponentId.js +0 -58
- package/src/lib/build/updateFileMap.js +0 -100
- package/src/lib/buildResolvePlugin.js +0 -32
- package/src/lib/checkIfValidJSON.js +0 -8
- package/src/lib/colorLog.js +0 -5
- package/src/lib/dev/cleanup.js +0 -26
- package/src/lib/dev/databases/mongodb/buildConnectionString.js +0 -28
- package/src/lib/dev/databases/mongodb/buildQueryParameters.js +0 -15
- package/src/lib/dev/databases/mongodb/checkConnection.js +0 -40
- package/src/lib/dev/databases/mongodb/connect.js +0 -25
- package/src/lib/dev/databases/mongodb/index.js +0 -108
- package/src/lib/dev/databases/postgresql/checkConnection.js +0 -43
- package/src/lib/dev/databases/postgresql/connect.js +0 -27
- package/src/lib/dev/databases/postgresql/index.js +0 -127
- package/src/lib/dev/databases/providerMap.js +0 -13
- package/src/lib/dev/getCodependenciesForFile.js +0 -84
- package/src/lib/dev/getFilesToBuild.js +0 -47
- package/src/lib/dev/hmrServer.js +0 -78
- package/src/lib/dev/index.js +0 -686
- package/src/lib/dev/isWindows.js +0 -3
- package/src/lib/dev/loadSettings.js +0 -90
- package/src/lib/dev/readFileDependencyMap.js +0 -19
- package/src/lib/dev/runBuild.js +0 -33
- package/src/lib/dev/runTests.js +0 -122
- package/src/lib/dev/startApp.js +0 -81
- package/src/lib/dev/startDatabases.js +0 -131
- package/src/lib/dev/startHMR.js +0 -62
- package/src/lib/dev/tests.config.js +0 -3
- package/src/lib/dev/updateFileMap.js +0 -100
- package/src/lib/dev/validateProject.js +0 -0
- package/src/lib/dev/watchlist.js +0 -13
- package/src/lib/filesToCopy.js +0 -15
- package/src/lib/generateId.js +0 -73
- package/src/lib/getArgs.js +0 -14
- package/src/lib/getOptions.js +0 -12
- package/src/lib/getProcessIdFromPort.js +0 -92
- package/src/lib/getProvider.js +0 -5
- package/src/lib/help.js +0 -56
- package/src/lib/isObject.js +0 -3
- package/src/lib/isValidJSONString.js +0 -8
- package/src/lib/killProcesses.js +0 -5
- package/src/lib/loadSettings.js +0 -40
- package/src/lib/masterIgnoreList.js +0 -13
- package/src/lib/nodeEnvironment.js +0 -6
- package/src/lib/nodeEnvironments.js +0 -8
- package/src/lib/parseCookiesFromLogin.js +0 -21
- package/src/lib/readDirectorySync.js +0 -13
- package/src/lib/regexes.js +0 -7
- package/src/lib/replaceBackslashesWithForwardSlashes.js +0 -8
- package/src/lib/replaceFileProtocol.js +0 -8
- package/src/lib/serializeQueryParameters.js +0 -5
- package/src/lib/settings.js +0 -1
- package/src/lib/validateDatabasesFromSettings.js +0 -37
- package/src/lib/wait.js +0 -5
- package/storage/.verdaccio-db.json +0 -1
- /package/{src/lib → .build}/getPlatformSafePath.js +0 -0
- /package/{src/lib → .build}/isWindows.js +0 -0
- /package/dist/{functions/create/templates → commands/create/template}/public/service-worker.js +0 -0
- /package/dist/{functions/create/templates → commands/create/template}/settings.development.json +0 -0
- /package/src/{functions/create/templates → commands/create/template}/public/service-worker.js +0 -0
- /package/src/{functions/create/templates → commands/create/template}/settings.development.json +0 -0
|
@@ -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
|
|
2
|
+
import log_bars from './log_bars.js';
|
|
3
3
|
|
|
4
|
-
|
|
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://
|
|
21
|
+
const docs = options.docs || 'https://docs.cheatcode.co/joystick';
|
|
22
22
|
|
|
23
|
-
console.log(`\n${(options.padding || '')}${
|
|
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('
|
|
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
|
-
|
|
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 || '')}${
|
|
41
|
+
console.log(`${(options.padding || '')}${log_bars()}\n`);
|
|
40
42
|
};
|
|
43
|
+
|
|
44
|
+
export default cli_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;
|
package/src/lib/constants.js
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
|
|
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,12 @@
|
|
|
1
|
+
import crypto from 'crypto';
|
|
2
|
+
|
|
3
|
+
const decrypt_buffer = (buffer, key) => {
|
|
4
|
+
// NOTE: First 16 bytes of buffer are the initialization_vector.
|
|
5
|
+
const initialization_vector = buffer.slice(0, 16);
|
|
6
|
+
const rest_of_buffer = buffer.slice(16);
|
|
7
|
+
const hashed_encryption_key = crypto.createHash('sha256').update(key).digest('hex').substring(0, 32);
|
|
8
|
+
const decipher = crypto.createDecipheriv('aes256', hashed_encryption_key, initialization_vector);
|
|
9
|
+
return Buffer.concat([decipher.update(rest_of_buffer), decipher.final()]);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export default decrypt_buffer;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const ava_config = {
|
|
2
|
+
files: [
|
|
3
|
+
`tests/**/*.test.js`,
|
|
4
|
+
],
|
|
5
|
+
ignoredByWatcher: ['.joystick', './uploads'],
|
|
6
|
+
// NOTE: Intentionally limit to 1 test at a time to avoid concurrency creating
|
|
7
|
+
// race conditions in tests that have users or other global data that needs
|
|
8
|
+
// to be cleaned up. The extra time needed is worth it to guarantee that tests
|
|
9
|
+
// don't step on each other's toes and our code is properly verified.
|
|
10
|
+
concurrency: 1,
|
|
11
|
+
cache: false,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default ava_config;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import net from 'net';
|
|
2
|
+
|
|
3
|
+
const reset_client = (client = {}) => {
|
|
4
|
+
client.end();
|
|
5
|
+
client.destroy();
|
|
6
|
+
client.unref();
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const check_if_port_occupied = (port = 2600) => {
|
|
10
|
+
return new Promise((resolve) => {
|
|
11
|
+
const client = new net.Socket();
|
|
12
|
+
|
|
13
|
+
// NOTE: This is inverted. If we can connect, the port is occupied. If we can't, the port is free.
|
|
14
|
+
client.once('connect', () => {
|
|
15
|
+
reset_client(client);
|
|
16
|
+
resolve(true);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
client.once('error', () => {
|
|
20
|
+
reset_client(client);
|
|
21
|
+
resolve(false);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
client.connect({
|
|
25
|
+
port,
|
|
26
|
+
host: '127.0.0.1',
|
|
27
|
+
}, function() {});
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default check_if_port_occupied;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// NOTE: This module is intended to be run as a child_process as part of
|
|
2
|
+
// a SIGINT or SIGTERM event.
|
|
3
|
+
|
|
4
|
+
import kill_process_ids from "./kill_process_ids.js";
|
|
5
|
+
|
|
6
|
+
process.title = "joystick_cleanup";
|
|
7
|
+
|
|
8
|
+
process.on('message', async (message) => {
|
|
9
|
+
const parsed_message = JSON.parse(message);
|
|
10
|
+
const process_ids = parsed_message?.process_ids;
|
|
11
|
+
|
|
12
|
+
kill_process_ids(process_ids);
|
|
13
|
+
|
|
14
|
+
process.exit();
|
|
15
|
+
});
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import os from 'os';
|
|
2
|
+
import mongodb_macos from './mongodb/installers/macos.js';
|
|
3
|
+
import mongodb_windows from './mongodb/installers/windows.js';
|
|
4
|
+
import mongodb_linux from './mongodb/installers/linux.js';
|
|
5
|
+
import postgresql_macos from './postgresql/installers/macos.js';
|
|
6
|
+
import postgresql_windows from './postgresql/installers/windows.js';
|
|
7
|
+
import postgresql_linux from './postgresql/installers/linux.js';
|
|
8
|
+
|
|
9
|
+
const installers = {
|
|
10
|
+
darwin: {
|
|
11
|
+
mongodb: mongodb_macos,
|
|
12
|
+
postgresql: postgresql_macos,
|
|
13
|
+
},
|
|
14
|
+
win32: {
|
|
15
|
+
mongodb: mongodb_windows,
|
|
16
|
+
postgresql: postgresql_windows,
|
|
17
|
+
},
|
|
18
|
+
linux: {
|
|
19
|
+
mongodb: mongodb_linux,
|
|
20
|
+
postgresql: postgresql_linux,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const download_database_binary = async (database_name = '') => {
|
|
25
|
+
const platform = os.platform();
|
|
26
|
+
const installer = installers[platform] && installers[platform][database_name];
|
|
27
|
+
|
|
28
|
+
if (typeof installer === 'function') {
|
|
29
|
+
await installer();
|
|
30
|
+
} else {
|
|
31
|
+
console.warn(`${database_name} not supported on ${platform}`);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export default download_database_binary;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import build_query_parameters from "./build_query_parameters.js";
|
|
2
|
+
import serialize_query_parameters from "../../../serialize_query_parameters.js";
|
|
3
|
+
import types from "../../../types.js";
|
|
4
|
+
|
|
5
|
+
const build_connection_string = (connection = {}) => {
|
|
6
|
+
let connection_string = "mongodb://";
|
|
7
|
+
|
|
8
|
+
// NOTE: Swap protocols if we're using a DNS Seedlist URL (mongodb+srv://).
|
|
9
|
+
if (connection?.srv) {
|
|
10
|
+
connection_string = "mongodb+srv://";
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (connection && (connection.username || connection.password)) {
|
|
14
|
+
connection_string = `${connection_string}${connection.username || connection.password ? `${connection.username || ""}${!!connection.username && !!connection.password ? ':' : ''}${connection.password || ""}@` : ''}`;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (connection && connection.hosts && types.is_array(connection.hosts)) {
|
|
18
|
+
connection_string = `${connection_string}${connection.hosts
|
|
19
|
+
.map((host) => connection?.srv ? host.hostname : `${host.hostname}:${host.port}`)
|
|
20
|
+
.join(",")}`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (connection && connection.database) {
|
|
24
|
+
connection_string = `${connection_string}/${connection.database}`;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const query_parameters = build_query_parameters(connection);
|
|
28
|
+
|
|
29
|
+
if (Object.keys(query_parameters)?.length > 0 ) {
|
|
30
|
+
connection_string = `${connection_string}?${serialize_query_parameters(query_parameters)}`;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return connection_string;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export default build_connection_string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import available_query_parameters from "./available_query_parameters.js";
|
|
2
|
+
|
|
3
|
+
const build_query_parameters = (connection = {}) => {
|
|
4
|
+
const query_parameters = {};
|
|
5
|
+
|
|
6
|
+
for (let i = 0; i < available_query_parameters.length; i += 1) {
|
|
7
|
+
const available_query_parameter = available_query_parameters[i];
|
|
8
|
+
|
|
9
|
+
if (connection && connection[available_query_parameter]) {
|
|
10
|
+
query_parameters[available_query_parameter] = connection[available_query_parameter];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return query_parameters;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export default build_query_parameters;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { MongoClient } from "mongodb";
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import build_connection_string from "./build_connection_string.js";
|
|
4
|
+
import color_log from '../../../color_log.js';
|
|
5
|
+
|
|
6
|
+
const { readFile } = fs.promises;
|
|
7
|
+
|
|
8
|
+
const check_connection = async (connection = {}, mongodb_options = {}) => {
|
|
9
|
+
const connection_string = build_connection_string(connection);
|
|
10
|
+
|
|
11
|
+
try {
|
|
12
|
+
const connectionOptions = {
|
|
13
|
+
connectTimeoutMS: 3000,
|
|
14
|
+
socketTimeoutMS: 3000,
|
|
15
|
+
useNewUrlParser: true,
|
|
16
|
+
useUnifiedTopology: true,
|
|
17
|
+
ssl: false,
|
|
18
|
+
...(mongodb_options || {}),
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
if (mongodb_options?.ca) {
|
|
22
|
+
connectionOptions.ca = await readFile(mongodb_options?.ca);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const connection = await MongoClient.connect(connection_string, connectionOptions);
|
|
26
|
+
connection.close();
|
|
27
|
+
|
|
28
|
+
return true;
|
|
29
|
+
} catch (exception) {
|
|
30
|
+
console.warn(exception);
|
|
31
|
+
|
|
32
|
+
color_log(
|
|
33
|
+
`\n✖ Failed to connect to MongoDB. Please double-check connection settings and try again.`,
|
|
34
|
+
'yellow'
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default check_connection;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import check_connection from "./check_connection.js";
|
|
2
|
+
import mongodb from "./index.js";
|
|
3
|
+
|
|
4
|
+
const connect = async (settings = {}, port = 2610) => {
|
|
5
|
+
const has_connection = settings.connection && Object.keys(settings.connection).length > 0;
|
|
6
|
+
|
|
7
|
+
if (has_connection) {
|
|
8
|
+
await check_connection(settings.connection, settings.options);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return {
|
|
12
|
+
pid: !has_connection ? await mongodb(port) : null,
|
|
13
|
+
connection: has_connection ? settings.connection : {
|
|
14
|
+
hosts: [
|
|
15
|
+
{
|
|
16
|
+
hostname: "127.0.0.1",
|
|
17
|
+
port,
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
database: "app",
|
|
21
|
+
username: "",
|
|
22
|
+
password: "",
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default connect;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import child_process from "child_process";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import os from "os";
|
|
4
|
+
import get_platform_safe_path from '../../../get_platform_safe_path.js';
|
|
5
|
+
import get_process_id_from_port from "../../../get_process_id_from_port.js";
|
|
6
|
+
import kill_port_process from "../../../kill_port_process.js";
|
|
7
|
+
import path_exists from "../../../path_exists.js";
|
|
8
|
+
|
|
9
|
+
const { rename, mkdir } = fs.promises;
|
|
10
|
+
|
|
11
|
+
const get_mongo_shell_command = () => {
|
|
12
|
+
if (process.platform === 'win32') {
|
|
13
|
+
return 'mongosh.exe';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return 'mongosh';
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const get_mongo_server_command = () => {
|
|
20
|
+
if (process.platform === 'win32') {
|
|
21
|
+
return 'mongod.exe';
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return 'mongod';
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const start_mongodb_process = (mongodb_port = 2610) => {
|
|
28
|
+
return new Promise((resolve) => {
|
|
29
|
+
// TODO: Does this hold up on Linux?
|
|
30
|
+
const mongo_server_command = get_mongo_server_command();
|
|
31
|
+
const joystick_mongod_path = `${os.homedir()}/.joystick/databases/mongodb/bin/bin/${mongo_server_command}`;
|
|
32
|
+
const database_process_flags = [
|
|
33
|
+
'--port',
|
|
34
|
+
mongodb_port,
|
|
35
|
+
'--dbpath',
|
|
36
|
+
get_platform_safe_path(`./.joystick/data/mongodb_${mongodb_port}`),
|
|
37
|
+
'--quiet',
|
|
38
|
+
'--replSet',
|
|
39
|
+
`joystick_${mongodb_port}`,
|
|
40
|
+
];
|
|
41
|
+
|
|
42
|
+
const database_process = child_process.spawn(
|
|
43
|
+
joystick_mongod_path,
|
|
44
|
+
database_process_flags.filter((command) => !!command),
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
database_process.stdout.on('data', async (data) => {
|
|
48
|
+
const stdout = data?.toString();
|
|
49
|
+
|
|
50
|
+
if (stdout.includes('Waiting for connections')) {
|
|
51
|
+
const mongo_shell_command = get_mongo_shell_command();
|
|
52
|
+
const joystick_mongo_shell_path = `${os.homedir()}/.joystick/databases/mongodb/bin/bin/${mongo_shell_command}`;
|
|
53
|
+
child_process.exec(`${joystick_mongo_shell_path} --eval "rs.initiate()" --verbose --port ${mongodb_port}`, async (error, _stdout, _stderr) => {
|
|
54
|
+
if (error && !error?.message?.includes('already initialized')) {
|
|
55
|
+
console.log(error);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const process_id = await get_process_id_from_port(mongodb_port);
|
|
59
|
+
return resolve(parseInt(process_id, 10));
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
database_process.stderr.on('data', async (data) => {
|
|
65
|
+
const stderr = data.toString();
|
|
66
|
+
console.log(stderr);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const setup_data_directory = async (mongodb_port = 2610) => {
|
|
72
|
+
// NOTE: MongoDB was originally started as a standalone server. To enable additional functionality,
|
|
73
|
+
// we moved to a replica set config which necessitated multiple data directories in order to support
|
|
74
|
+
// running the same app on multiple ports (a limitation of MongoDB).
|
|
75
|
+
const legacy_data_directory_exists = await path_exists(".joystick/data/mongodb");
|
|
76
|
+
const data_directory_exists = await path_exists(`.joystick/data/mongodb_${mongodb_port}`);
|
|
77
|
+
|
|
78
|
+
if (legacy_data_directory_exists && !data_directory_exists) {
|
|
79
|
+
await rename('.joystick/data/mongodb', `.joystick/data/mongodb_${mongodb_port}`);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (!data_directory_exists) {
|
|
83
|
+
await mkdir(`.joystick/data/mongodb_${mongodb_port}`, { recursive: true });
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return data_directory_exists;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const start_mongodb = async (mongodb_port = 2610) => {
|
|
90
|
+
await setup_data_directory(mongodb_port);
|
|
91
|
+
|
|
92
|
+
try {
|
|
93
|
+
await kill_port_process(mongodb_port);
|
|
94
|
+
const mongo_process_id = await start_mongodb_process(mongodb_port);
|
|
95
|
+
return mongo_process_id;
|
|
96
|
+
} catch (exception) {
|
|
97
|
+
console.warn(exception);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export default start_mongodb;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import { promisify } from 'util';
|
|
5
|
+
import { pipeline } from 'stream';
|
|
6
|
+
import { execFile } from 'child_process';
|
|
7
|
+
|
|
8
|
+
const streamPipeline = promisify(pipeline);
|
|
9
|
+
const execFileAsync = promisify(execFile);
|
|
10
|
+
|
|
11
|
+
const download_mongodb_linux = async (version_path = null) => {
|
|
12
|
+
const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'mongodb');
|
|
13
|
+
const bin_directory = path.join(base_directory, 'bin');
|
|
14
|
+
const bin_bin_directory = path.join(bin_directory, 'bin');
|
|
15
|
+
|
|
16
|
+
if (await check_if_file_exists(base_directory)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
await create_directories(base_directory, bin_directory, bin_bin_directory);
|
|
21
|
+
|
|
22
|
+
const mongodb_url = 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-7.0.2.tgz';
|
|
23
|
+
const mongosh_url = 'https://downloads.mongodb.com/compass/mongosh-2.2.12-linux-x64.tgz';
|
|
24
|
+
|
|
25
|
+
const mongodb_file_name = path.basename(new URL(mongodb_url).pathname);
|
|
26
|
+
const mongodb_file_path = path.join(base_directory, mongodb_file_name);
|
|
27
|
+
|
|
28
|
+
const mongosh_file_name = path.basename(new URL(mongosh_url).pathname);
|
|
29
|
+
const mongosh_file_path = path.join(base_directory, mongosh_file_name);
|
|
30
|
+
|
|
31
|
+
process.loader.print('MongoDB not found. Downloading... (this may take a few minutes)');
|
|
32
|
+
await download_file(mongodb_url, mongodb_file_path);
|
|
33
|
+
await download_file(mongosh_url, mongosh_file_path);
|
|
34
|
+
|
|
35
|
+
process.loader.print('Installing MongoDB...');
|
|
36
|
+
|
|
37
|
+
// Extract MongoDB
|
|
38
|
+
await execFileAsync('tar', ['-xzf', mongodb_file_path, '-C', base_directory]);
|
|
39
|
+
const mongodb_extracted_dir = (await fs.promises.readdir(base_directory)).find(dir => dir.startsWith('mongodb-'));
|
|
40
|
+
if (!mongodb_extracted_dir) {
|
|
41
|
+
throw new Error('Could not find extracted MongoDB directory');
|
|
42
|
+
}
|
|
43
|
+
const mongodb_bin_path = path.join(base_directory, mongodb_extracted_dir, 'bin');
|
|
44
|
+
|
|
45
|
+
// Move MongoDB binaries to bin/bin
|
|
46
|
+
const mongodb_binaries = await fs.promises.readdir(mongodb_bin_path);
|
|
47
|
+
for (const binary of mongodb_binaries) {
|
|
48
|
+
await fs.promises.rename(path.join(mongodb_bin_path, binary), path.join(bin_bin_directory, binary));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Extract mongosh
|
|
52
|
+
const mongosh_temp_directory = path.join(base_directory, 'mongosh_temp');
|
|
53
|
+
await fs.promises.mkdir(mongosh_temp_directory, { recursive: true });
|
|
54
|
+
await execFileAsync('tar', ['-xzf', mongosh_file_path, '-C', mongosh_temp_directory]);
|
|
55
|
+
|
|
56
|
+
// Find and copy mongosh executable
|
|
57
|
+
const mongosh_contents = await fs.promises.readdir(mongosh_temp_directory);
|
|
58
|
+
const mongosh_dir = mongosh_contents.find(item => item.startsWith('mongosh-'));
|
|
59
|
+
if (!mongosh_dir) {
|
|
60
|
+
throw new Error('Could not find mongosh directory in extracted contents');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const mongosh_bin_path = path.join(mongosh_temp_directory, mongosh_dir, 'bin', 'mongosh');
|
|
64
|
+
const final_mongosh_path = path.join(bin_bin_directory, 'mongosh');
|
|
65
|
+
await fs.promises.copyFile(mongosh_bin_path, final_mongosh_path);
|
|
66
|
+
|
|
67
|
+
// Clean up
|
|
68
|
+
await fs.promises.unlink(mongodb_file_path);
|
|
69
|
+
await fs.promises.unlink(mongosh_file_path);
|
|
70
|
+
await fs.promises.rm(mongosh_temp_directory, { recursive: true, force: true });
|
|
71
|
+
await fs.promises.rm(path.join(base_directory, mongodb_extracted_dir), { recursive: true, force: true });
|
|
72
|
+
|
|
73
|
+
await make_file_executable(bin_bin_directory);
|
|
74
|
+
process.loader.print('MongoDB installed!');
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const download_file = async (url, file_path) => {
|
|
78
|
+
const response = await fetch(url);
|
|
79
|
+
if (!response.ok) {
|
|
80
|
+
throw new Error(`Failed to download: ${response.statusText}`);
|
|
81
|
+
}
|
|
82
|
+
await streamPipeline(response.body, fs.createWriteStream(file_path));
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const check_if_file_exists = async (file_path) => {
|
|
86
|
+
try {
|
|
87
|
+
await fs.promises.access(file_path);
|
|
88
|
+
return true;
|
|
89
|
+
} catch {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const create_directories = async (base_directory, bin_directory, bin_bin_directory) => {
|
|
95
|
+
await fs.promises.mkdir(base_directory, { recursive: true });
|
|
96
|
+
await fs.promises.mkdir(bin_directory, { recursive: true });
|
|
97
|
+
await fs.promises.mkdir(bin_bin_directory, { recursive: true });
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const make_file_executable = async (directory) => {
|
|
101
|
+
const files = await fs.promises.readdir(directory);
|
|
102
|
+
for (const file of files) {
|
|
103
|
+
await fs.promises.chmod(path.join(directory, file), '755');
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export default download_mongodb_linux;
|