@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.
- package/.build/getFilesToBuild.js +1 -1
- package/.build/index.js +3 -3
- package/LICENSE.md +59 -0
- package/README.md +45 -4
- package/dist/cli.js +1 -76
- package/dist/commands/build/definition.js +1 -0
- package/dist/commands/build/index.js +1 -0
- package/dist/commands/create/build_package_json.js +1 -0
- package/dist/commands/create/definition.js +1 -0
- package/dist/commands/create/index.js +2 -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 +1 -0
- package/dist/commands/help/index.js +19 -0
- package/dist/commands/index.js +1 -0
- package/dist/commands/logout/definition.js +1 -0
- package/dist/commands/logout/index.js +3 -0
- package/dist/commands/push/cdn_mirrors.js +1 -0
- package/dist/commands/push/check_if_settings_valid.js +1 -0
- package/dist/commands/push/create_version.js +1 -0
- package/dist/commands/push/definition.js +1 -0
- package/dist/commands/push/get_app_domain.js +1 -0
- package/dist/commands/push/get_deployment.js +1 -0
- package/dist/commands/push/get_provision_domain.js +1 -0
- package/dist/commands/push/get_session_token.js +1 -0
- package/dist/commands/push/get_settings_file.js +1 -0
- package/dist/commands/push/handle_initial_deployment.js +1 -0
- package/dist/commands/push/handle_version_deployment.js +1 -0
- package/dist/commands/push/index.js +8 -0
- package/dist/commands/push/prompts/confirm_deployment.js +17 -0
- package/dist/commands/push/prompts/session_token.js +5 -0
- package/dist/commands/push/upload_build_to_cdn.js +1 -0
- package/dist/commands/push/validate_deployment.js +1 -0
- package/dist/commands/push/validate_push_config.js +1 -0
- package/dist/commands/start/definition.js +1 -0
- package/dist/commands/start/index.js +1 -0
- package/dist/commands/test/definition.js +1 -0
- package/dist/commands/test/index.js +1 -0
- package/dist/commands/update/definition.js +1 -0
- package/dist/commands/update/index.js +1 -0
- package/dist/commands/use/definition.js +1 -0
- package/dist/commands/use/index.js +1 -0
- package/dist/index.js +1 -7
- package/dist/lib/build/browser_path_exclusions.js +1 -0
- package/dist/lib/build/browser_paths.js +1 -0
- package/dist/lib/build/build_files.js +3 -0
- package/dist/lib/build/copy_paths.js +1 -0
- package/dist/lib/build/get_code_frame.js +1 -0
- package/dist/lib/build/get_file_operation.js +1 -0
- package/dist/lib/build/get_files_to_build.js +1 -0
- package/dist/lib/build/get_path_platform.js +1 -0
- package/dist/lib/build/get_platform_safe_path.js +1 -0
- package/dist/lib/build/get_tar_ignore_list.js +2 -0
- package/dist/lib/build/index.js +3 -0
- package/dist/lib/build/master_ignore_list.js +1 -0
- package/dist/lib/build/minify_file.js +1 -0
- package/dist/lib/build/node_paths.js +1 -0
- package/dist/lib/build/on_warn.js +10 -0
- package/dist/lib/build/plugins/bootstrap_component.js +33 -0
- package/dist/lib/build/plugins/generate_file_dependency_map.js +1 -0
- package/dist/lib/build/plugins/index.js +1 -0
- package/dist/lib/build/plugins/set_component_id.js +2 -0
- package/dist/lib/build/plugins/update_file_map.js +1 -0
- package/dist/lib/build/plugins/warn_node_environment.js +3 -0
- package/dist/lib/cli_log.js +13 -0
- package/dist/lib/color_log.js +1 -0
- package/dist/lib/command_exists.js +1 -0
- package/dist/lib/constants.js +1 -4
- package/dist/lib/debounce.js +1 -0
- package/dist/lib/decrypt_buffer.js +1 -0
- package/dist/lib/development_server/ava_config.js +1 -0
- package/dist/lib/development_server/check_if_port_occupied.js +1 -0
- package/dist/lib/development_server/cleanup.js +1 -0
- package/dist/lib/development_server/databases/download_database_binary.js +1 -0
- package/dist/lib/development_server/databases/mongodb/available_query_parameters.js +1 -0
- package/dist/lib/development_server/databases/mongodb/build_connection_string.js +1 -0
- package/dist/lib/development_server/databases/mongodb/build_query_parameters.js +1 -0
- package/dist/lib/development_server/databases/mongodb/check_connection.js +2 -0
- package/dist/lib/development_server/databases/mongodb/connect.js +1 -0
- package/dist/lib/development_server/databases/mongodb/index.js +1 -0
- package/dist/lib/development_server/databases/mongodb/installers/linux.js +1 -0
- package/dist/lib/development_server/databases/mongodb/installers/macos.js +1 -0
- package/dist/lib/development_server/databases/mongodb/installers/windows.js +1 -0
- package/dist/lib/development_server/databases/postgresql/check_connection.js +2 -0
- package/dist/lib/development_server/databases/postgresql/connect.js +1 -0
- package/dist/lib/development_server/databases/postgresql/index.js +2 -0
- package/dist/lib/development_server/databases/postgresql/installers/linux.js +1 -0
- package/dist/lib/development_server/databases/postgresql/installers/macos.js +1 -0
- package/dist/lib/development_server/databases/postgresql/installers/windows.js +1 -0
- package/dist/lib/development_server/databases/provider_map.js +1 -0
- package/dist/lib/development_server/get_database_process_ids.js +1 -0
- package/dist/lib/development_server/get_translations.js +1 -0
- package/dist/lib/development_server/hmr_server.js +1 -0
- package/dist/lib/development_server/index.js +10 -0
- package/dist/lib/development_server/kill_process_ids.js +1 -0
- package/dist/lib/development_server/run_tests.js +2 -0
- package/dist/lib/development_server/start_app_server.js +1 -0
- package/dist/lib/development_server/start_databases.js +1 -0
- package/dist/lib/development_server/start_hmr_server.js +1 -0
- package/dist/lib/development_server/watch_for_changes/browser_path_exclusions.js +1 -0
- package/dist/lib/development_server/watch_for_changes/browser_paths.js +1 -0
- package/dist/lib/development_server/watch_for_changes/get_after_run_tasks.js +1 -0
- package/dist/lib/development_server/watch_for_changes/get_file_codependencies.js +1 -0
- package/dist/lib/development_server/watch_for_changes/get_platform_safe_path.js +1 -0
- package/dist/lib/development_server/watch_for_changes/index.js +1 -0
- package/dist/lib/development_server/watch_for_changes/node_paths.js +1 -0
- package/dist/lib/development_server/watch_for_changes/read_file_dependency_map.js +1 -0
- package/dist/lib/development_server/watch_for_changes/watch_paths.js +1 -0
- package/dist/lib/dynamic_import.js +1 -0
- package/dist/lib/encrypt_buffer.js +1 -0
- package/dist/lib/generate_id.js +1 -0
- package/dist/lib/get_files_in_path.js +1 -0
- package/dist/lib/get_platform_safe_path.js +1 -0
- package/dist/lib/get_process_id_from_port.js +2 -0
- package/dist/lib/is_valid_json_string.js +1 -0
- package/dist/lib/kill_port_process.js +1 -0
- package/dist/lib/kill_process_id.js +1 -0
- package/dist/lib/load_settings.js +1 -0
- package/dist/lib/loader.js +2 -82
- package/dist/lib/log_bars.js +1 -0
- package/dist/lib/node_path_polyfills.js +1 -0
- package/dist/lib/parse_args.js +1 -0
- package/dist/lib/parse_options.js +1 -0
- package/dist/lib/path_exists.js +1 -0
- package/dist/lib/rainbow_road.js +1 -0
- package/dist/lib/replace_in_files.js +1 -0
- package/dist/lib/required_files.js +1 -0
- package/dist/lib/serialize_query_parameters.js +1 -0
- package/dist/lib/types.js +1 -6
- package/dist/lib/unique_array.js +1 -0
- package/increment_version.js +3 -0
- package/package.json +19 -38
- package/src/cli.js +59 -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 +23 -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/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 +163 -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 +15 -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 -240
- 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 -559
- 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/startApp.js +0 -70
- 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 -273
- 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 -684
- 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 -79
- 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,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;
|
|
@@ -0,0 +1,109 @@
|
|
|
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_macos = 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 cpu_info = await get_cpu_info();
|
|
23
|
+
const is_arm = cpu_info.includes('ARM');
|
|
24
|
+
|
|
25
|
+
const mongodb_url = is_arm
|
|
26
|
+
? 'https://fastdl.mongodb.org/osx/mongodb-macos-arm64-7.0.2.tgz'
|
|
27
|
+
: 'https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.2.tgz';
|
|
28
|
+
|
|
29
|
+
const mongosh_url = is_arm
|
|
30
|
+
? 'https://downloads.mongodb.com/compass/mongosh-2.2.12-darwin-arm64.zip'
|
|
31
|
+
: 'https://downloads.mongodb.com/compass/mongosh-2.2.12-darwin-x64.zip';
|
|
32
|
+
|
|
33
|
+
const mongodb_file_name = path.basename(new URL(mongodb_url).pathname);
|
|
34
|
+
const mongodb_file_path = path.join(base_directory, mongodb_file_name);
|
|
35
|
+
|
|
36
|
+
const mongosh_file_name = path.basename(new URL(mongosh_url).pathname);
|
|
37
|
+
const mongosh_file_path = path.join(base_directory, mongosh_file_name);
|
|
38
|
+
|
|
39
|
+
process.loader.print('MongoDB not found. Downloading... (this may take a few minutes)');
|
|
40
|
+
await download_file(mongodb_url, mongodb_file_path);
|
|
41
|
+
await download_file(mongosh_url, mongosh_file_path);
|
|
42
|
+
|
|
43
|
+
process.loader.print('Installing MongoDB...');
|
|
44
|
+
|
|
45
|
+
// Extract MongoDB
|
|
46
|
+
await execFileAsync('tar', ['-xzf', mongodb_file_path, '-C', bin_directory, '--strip-components=1']);
|
|
47
|
+
|
|
48
|
+
// Extract mongosh
|
|
49
|
+
const mongosh_temp_directory = path.join(base_directory, 'mongosh_temp');
|
|
50
|
+
await fs.promises.mkdir(mongosh_temp_directory, { recursive: true });
|
|
51
|
+
await execFileAsync('unzip', ['-q', mongosh_file_path, '-d', mongosh_temp_directory]);
|
|
52
|
+
|
|
53
|
+
// Find and copy mongosh executable
|
|
54
|
+
const mongosh_contents = await fs.promises.readdir(mongosh_temp_directory);
|
|
55
|
+
const mongosh_dir = mongosh_contents.find(item => item.startsWith('mongosh-'));
|
|
56
|
+
if (!mongosh_dir) {
|
|
57
|
+
throw new Error('Could not find mongosh directory in extracted contents');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const mongosh_bin_path = path.join(mongosh_temp_directory, mongosh_dir, 'bin', 'mongosh');
|
|
61
|
+
const final_mongosh_path = path.join(bin_bin_directory, 'mongosh');
|
|
62
|
+
await fs.promises.copyFile(mongosh_bin_path, final_mongosh_path);
|
|
63
|
+
|
|
64
|
+
// Clean up
|
|
65
|
+
await fs.promises.unlink(mongodb_file_path);
|
|
66
|
+
await fs.promises.unlink(mongosh_file_path);
|
|
67
|
+
await fs.promises.rm(mongosh_temp_directory, { recursive: true, force: true });
|
|
68
|
+
|
|
69
|
+
await make_file_executable(bin_directory);
|
|
70
|
+
await make_file_executable(bin_bin_directory);
|
|
71
|
+
process.loader.print('MongoDB installed!');
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const download_file = async (url, file_path) => {
|
|
75
|
+
const response = await fetch(url);
|
|
76
|
+
if (!response.ok) {
|
|
77
|
+
throw new Error(`Failed to download: ${response.statusText}`);
|
|
78
|
+
}
|
|
79
|
+
await streamPipeline(response.body, fs.createWriteStream(file_path));
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const check_if_file_exists = async (file_path) => {
|
|
83
|
+
try {
|
|
84
|
+
await fs.promises.access(file_path);
|
|
85
|
+
return true;
|
|
86
|
+
} catch {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
const get_cpu_info = async () => {
|
|
92
|
+
const { stdout } = await execFileAsync('sysctl', ['-n', 'machdep.cpu.brand_string']);
|
|
93
|
+
return stdout.trim();
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const create_directories = async (base_directory, bin_directory, bin_bin_directory) => {
|
|
97
|
+
await fs.promises.mkdir(base_directory, { recursive: true });
|
|
98
|
+
await fs.promises.mkdir(bin_directory, { recursive: true });
|
|
99
|
+
await fs.promises.mkdir(bin_bin_directory, { recursive: true });
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
const make_file_executable = async (directory) => {
|
|
103
|
+
const files = await fs.promises.readdir(directory);
|
|
104
|
+
for (const file of files) {
|
|
105
|
+
await fs.promises.chmod(path.join(directory, file), '755');
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export default download_mongodb_macos;
|
|
@@ -0,0 +1,90 @@
|
|
|
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 stream_pipeline = promisify(pipeline);
|
|
9
|
+
const exec_file_async = promisify(execFile);
|
|
10
|
+
|
|
11
|
+
const download_mongodb_windows = async () => {
|
|
12
|
+
const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'mongodb');
|
|
13
|
+
const bin_directory = path.join(base_directory, 'bin');
|
|
14
|
+
|
|
15
|
+
if (await check_if_file_exists(base_directory)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
await create_directories(base_directory, bin_directory);
|
|
20
|
+
|
|
21
|
+
const download_url = 'https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-7.0.2.zip';
|
|
22
|
+
const file_name = path.basename(new URL(download_url).pathname);
|
|
23
|
+
const file_path = path.join(base_directory, file_name);
|
|
24
|
+
|
|
25
|
+
if (await check_if_file_exists(file_path)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
process.loader.print('MongoDB not found. Downloading... (this may take a few minutes)');
|
|
30
|
+
await download_file(download_url, file_path);
|
|
31
|
+
process.loader.print('Installing MongoDB...');
|
|
32
|
+
|
|
33
|
+
const temp_directory = path.join(base_directory, 'temp');
|
|
34
|
+
await exec_file_async('powershell', ['Expand-Archive', '-Path', file_path, '-DestinationPath', temp_directory]);
|
|
35
|
+
const extracted_folder = (await fs.promises.readdir(temp_directory))[0];
|
|
36
|
+
const extracted_path = path.join(temp_directory, extracted_folder);
|
|
37
|
+
|
|
38
|
+
// Remove existing bin directory if it exists
|
|
39
|
+
if (await check_if_file_exists(bin_directory)) {
|
|
40
|
+
await fs.promises.rm(bin_directory, { recursive: true, force: true });
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Copy the entire contents of the extracted folder to the bin directory
|
|
44
|
+
await fs.promises.cp(extracted_path, bin_directory, { recursive: true });
|
|
45
|
+
|
|
46
|
+
// Download and install mongosh
|
|
47
|
+
const mongosh_url = 'https://downloads.mongodb.com/compass/mongosh-2.2.12-win32-x64.zip';
|
|
48
|
+
const mongosh_file_path = path.join(base_directory, 'mongosh.zip');
|
|
49
|
+
await download_file(mongosh_url, mongosh_file_path);
|
|
50
|
+
|
|
51
|
+
const mongosh_temp_directory = path.join(base_directory, 'mongosh_temp');
|
|
52
|
+
await exec_file_async('powershell', ['Expand-Archive', '-Path', mongosh_file_path, '-DestinationPath', mongosh_temp_directory]);
|
|
53
|
+
|
|
54
|
+
const mongosh_extracted_folder = (await fs.promises.readdir(mongosh_temp_directory))[0];
|
|
55
|
+
const mongosh_bin_path = path.join(mongosh_temp_directory, mongosh_extracted_folder, 'bin', 'mongosh.exe');
|
|
56
|
+
|
|
57
|
+
await fs.promises.copyFile(mongosh_bin_path, path.join(bin_directory, 'bin', 'mongosh.exe'));
|
|
58
|
+
|
|
59
|
+
// Clean up temporary files
|
|
60
|
+
await fs.promises.unlink(file_path);
|
|
61
|
+
await fs.promises.unlink(mongosh_file_path);
|
|
62
|
+
await fs.promises.rm(temp_directory, { recursive: true, force: true });
|
|
63
|
+
await fs.promises.rm(mongosh_temp_directory, { recursive: true, force: true });
|
|
64
|
+
|
|
65
|
+
process.loader.print('MongoDB installed!');
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
const download_file = async (url, file_path) => {
|
|
69
|
+
const response = await fetch(url);
|
|
70
|
+
if (!response.ok) {
|
|
71
|
+
throw new Error(`Failed to download: ${response.statusText}`);
|
|
72
|
+
}
|
|
73
|
+
await stream_pipeline(response.body, fs.createWriteStream(file_path));
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const check_if_file_exists = async (file_path) => {
|
|
77
|
+
try {
|
|
78
|
+
await fs.promises.access(file_path);
|
|
79
|
+
return true;
|
|
80
|
+
} catch {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const create_directories = async (base_directory, bin_directory) => {
|
|
86
|
+
await fs.promises.mkdir(base_directory, { recursive: true });
|
|
87
|
+
await fs.promises.mkdir(bin_directory, { recursive: true });
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export default download_mongodb_windows;
|