@joystick.js/cli-canary 0.0.0-canary.201 → 0.0.0-canary.2011
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 +4 -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/check_if_settings_valid.js +2 -0
- package/dist/commands/push/check_if_settings_valid.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_deployment.js +2 -0
- package/dist/commands/push/get_deployment.js.map +7 -0
- package/dist/commands/push/get_deployment_token.js +2 -0
- package/dist/commands/push/get_deployment_token.js.map +7 -0
- package/dist/commands/push/get_push_domain.js +2 -0
- package/dist/commands/push/get_push_domain.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/index.js +6 -0
- package/dist/commands/push/index.js.map +7 -0
- package/dist/commands/push/upload_build_to_push.js +2 -0
- package/dist/commands/push/upload_build_to_push.js.map +7 -0
- package/dist/commands/push_old/cdn_mirrors.js +2 -0
- package/dist/commands/push_old/cdn_mirrors.js.map +7 -0
- package/dist/commands/push_old/check_if_settings_valid.js +2 -0
- package/dist/commands/push_old/check_if_settings_valid.js.map +7 -0
- package/dist/commands/push_old/create_version.js +2 -0
- package/dist/commands/push_old/create_version.js.map +7 -0
- package/dist/commands/push_old/definition.js +2 -0
- package/dist/commands/push_old/definition.js.map +7 -0
- package/dist/commands/push_old/get_app_domain.js +2 -0
- package/dist/commands/push_old/get_app_domain.js.map +7 -0
- package/dist/commands/push_old/get_deployment.js +2 -0
- package/dist/commands/push_old/get_deployment.js.map +7 -0
- package/dist/commands/push_old/get_provision_domain.js +2 -0
- package/dist/commands/push_old/get_provision_domain.js.map +7 -0
- package/dist/commands/push_old/get_session_token.js +2 -0
- package/dist/commands/push_old/get_session_token.js.map +7 -0
- package/dist/commands/push_old/get_settings_file.js +2 -0
- package/dist/commands/push_old/get_settings_file.js.map +7 -0
- package/dist/commands/push_old/handle_initial_deployment.js +2 -0
- package/dist/commands/push_old/handle_initial_deployment.js.map +7 -0
- package/dist/commands/push_old/handle_version_deployment.js +2 -0
- package/dist/commands/push_old/handle_version_deployment.js.map +7 -0
- package/dist/commands/push_old/index.js +9 -0
- package/dist/commands/push_old/index.js.map +7 -0
- package/dist/commands/push_old/prompts/confirm_deployment.js +18 -0
- package/dist/commands/push_old/prompts/confirm_deployment.js.map +7 -0
- package/dist/commands/push_old/prompts/session_token.js +6 -0
- package/dist/commands/push_old/prompts/session_token.js.map +7 -0
- package/dist/commands/push_old/upload_build_to_cdn.js +2 -0
- package/dist/commands/push_old/upload_build_to_cdn.js.map +7 -0
- package/dist/commands/push_old/validate_deployment.js +2 -0
- package/dist/commands/push_old/validate_deployment.js.map +7 -0
- package/dist/commands/push_old/validate_push_config.js +2 -0
- package/dist/commands/push_old/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 +21 -40
- 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/check_if_settings_valid.js +10 -0
- package/src/commands/push/definition.js +58 -0
- package/src/commands/push/get_deployment.js +19 -0
- package/src/commands/push/get_deployment_token.js +30 -0
- package/src/commands/push/get_push_domain.js +8 -0
- package/src/commands/push/get_settings_file.js +47 -0
- package/src/commands/push/index.js +102 -0
- package/src/commands/push/upload_build_to_push.js +37 -0
- package/src/commands/push_old/cdn_mirrors.js +7 -0
- package/src/commands/push_old/check_if_settings_valid.js +10 -0
- package/src/commands/push_old/create_version.js +20 -0
- package/src/commands/push_old/definition.js +43 -0
- package/src/commands/push_old/get_app_domain.js +11 -0
- package/src/commands/push_old/get_deployment.js +19 -0
- package/src/commands/push_old/get_provision_domain.js +9 -0
- package/src/commands/push_old/get_session_token.js +31 -0
- package/src/commands/push_old/get_settings_file.js +47 -0
- package/src/commands/push_old/handle_initial_deployment.js +24 -0
- package/src/commands/push_old/handle_version_deployment.js +23 -0
- package/src/commands/push_old/index.js +190 -0
- package/src/commands/push_old/prompts/confirm_deployment.js +73 -0
- package/src/commands/push_old/prompts/session_token.js +11 -0
- package/src/commands/push_old/upload_build_to_cdn.js +59 -0
- package/src/commands/push_old/validate_deployment.js +19 -0
- package/src/commands/push_old/validate_push_config.js +18 -0
- package/src/commands/start/definition.js +83 -0
- package/src/commands/start/index.js +12 -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 +20 -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/{dev/tests.config.js → development_server/ava_config.js} +9 -3
- 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 +46 -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 +438 -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 +60 -0
- package/src/lib/development_server/start_databases.js +98 -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 +18 -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 +23 -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 -55
- 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 -557
- 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 -98
- package/dist/lib/dev/startApp.js +0 -72
- package/dist/lib/dev/startDatabases.js +0 -109
- package/dist/lib/dev/startHMR.js +0 -55
- package/dist/lib/dev/tests.config.js +0 -11
- 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 -685
- 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 -123
- 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/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,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/lib/development_server/databases/mongodb/installers/macos.js"],
|
|
4
|
+
"sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { promisify } from 'util';\nimport { pipeline } from 'stream';\nimport { execFile } from 'child_process';\n\nconst streamPipeline = promisify(pipeline);\nconst execFileAsync = promisify(execFile);\n\nconst download_mongodb_macos = async (version_path = null) => {\n const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'mongodb');\n const bin_directory = path.join(base_directory, 'bin');\n const bin_bin_directory = path.join(bin_directory, 'bin');\n\n if (await check_if_file_exists(base_directory)) {\n return;\n }\n\n await create_directories(base_directory, bin_directory, bin_bin_directory);\n\n const cpu_info = await get_cpu_info();\n const is_arm = cpu_info.includes('ARM');\n \n const mongodb_url = is_arm\n ? 'https://fastdl.mongodb.org/osx/mongodb-macos-arm64-7.0.2.tgz'\n : 'https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.2.tgz';\n\n const mongosh_url = is_arm\n ? 'https://downloads.mongodb.com/compass/mongosh-2.2.12-darwin-arm64.zip'\n : 'https://downloads.mongodb.com/compass/mongosh-2.2.12-darwin-x64.zip';\n\n const mongodb_file_name = path.basename(new URL(mongodb_url).pathname);\n const mongodb_file_path = path.join(base_directory, mongodb_file_name);\n\n const mongosh_file_name = path.basename(new URL(mongosh_url).pathname);\n const mongosh_file_path = path.join(base_directory, mongosh_file_name);\n\n process.loader.print('MongoDB not found. Downloading... (this may take a few minutes)');\n await download_file(mongodb_url, mongodb_file_path);\n await download_file(mongosh_url, mongosh_file_path);\n\n process.loader.print('Installing MongoDB...');\n \n // Extract MongoDB\n await execFileAsync('tar', ['-xzf', mongodb_file_path, '-C', bin_directory, '--strip-components=1']);\n \n // Extract mongosh\n const mongosh_temp_directory = path.join(base_directory, 'mongosh_temp');\n await fs.promises.mkdir(mongosh_temp_directory, { recursive: true });\n await execFileAsync('unzip', ['-q', mongosh_file_path, '-d', mongosh_temp_directory]);\n \n // Find and copy mongosh executable\n const mongosh_contents = await fs.promises.readdir(mongosh_temp_directory);\n const mongosh_dir = mongosh_contents.find(item => item.startsWith('mongosh-'));\n if (!mongosh_dir) {\n throw new Error('Could not find mongosh directory in extracted contents');\n }\n \n const mongosh_bin_path = path.join(mongosh_temp_directory, mongosh_dir, 'bin', 'mongosh');\n const final_mongosh_path = path.join(bin_bin_directory, 'mongosh');\n await fs.promises.copyFile(mongosh_bin_path, final_mongosh_path);\n\n // Clean up\n await fs.promises.unlink(mongodb_file_path);\n await fs.promises.unlink(mongosh_file_path);\n await fs.promises.rm(mongosh_temp_directory, { recursive: true, force: true });\n\n await make_file_executable(bin_directory);\n await make_file_executable(bin_bin_directory);\n process.loader.print('MongoDB installed!');\n};\n\nconst download_file = async (url, file_path) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.statusText}`);\n }\n await streamPipeline(response.body, fs.createWriteStream(file_path));\n};\n\nconst check_if_file_exists = async (file_path) => {\n try {\n await fs.promises.access(file_path);\n return true;\n } catch {\n return false;\n }\n};\n\nconst get_cpu_info = async () => {\n const { stdout } = await execFileAsync('sysctl', ['-n', 'machdep.cpu.brand_string']);\n return stdout.trim();\n};\n\nconst create_directories = async (base_directory, bin_directory, bin_bin_directory) => {\n await fs.promises.mkdir(base_directory, { recursive: true });\n await fs.promises.mkdir(bin_directory, { recursive: true });\n await fs.promises.mkdir(bin_bin_directory, { recursive: true });\n};\n\nconst make_file_executable = async (directory) => {\n const files = await fs.promises.readdir(directory);\n for (const file of files) {\n await fs.promises.chmod(path.join(directory, file), '755');\n }\n};\n\nexport default download_mongodb_macos;"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["fs", "path", "os", "promisify", "pipeline", "execFile", "streamPipeline", "execFileAsync", "download_mongodb_macos", "version_path", "base_directory", "bin_directory", "bin_bin_directory", "check_if_file_exists", "create_directories", "is_arm", "get_cpu_info", "mongodb_url", "mongosh_url", "mongodb_file_name", "mongodb_file_path", "mongosh_file_name", "mongosh_file_path", "download_file", "mongosh_temp_directory", "mongosh_dir", "item", "mongosh_bin_path", "final_mongosh_path", "make_file_executable", "url", "file_path", "response", "stdout", "directory", "files", "file", "macos_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"fs";import t from"path";import y from"os";import{promisify as p}from"util";import{pipeline as b}from"stream";import{execFile as x}from"child_process";const j=p(b),d=p(x),k=async()=>{const o=t.join(y.homedir(),".joystick","databases","mongodb"),i=t.join(o,"bin");if(await m(o))return;await v(o,i);const r="https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-7.0.2.zip",l=t.basename(new URL(r).pathname),s=t.join(o,l);if(await m(s))return;process.loader.print("MongoDB not found. Downloading... (this may take a few minutes)"),await w(r,s),process.loader.print("Installing MongoDB...");const a=t.join(o,"temp");await d("powershell",["Expand-Archive","-Path",s,"-DestinationPath",a]);const h=(await e.promises.readdir(a))[0],f=t.join(a,h);await m(i)&&await e.promises.rm(i,{recursive:!0,force:!0}),await e.promises.cp(f,i,{recursive:!0});const _="https://downloads.mongodb.com/compass/mongosh-2.2.12-win32-x64.zip",c=t.join(o,"mongosh.zip");await w(_,c);const n=t.join(o,"mongosh_temp");await d("powershell",["Expand-Archive","-Path",c,"-DestinationPath",n]);const u=(await e.promises.readdir(n))[0],g=t.join(n,u,"bin","mongosh.exe");await e.promises.copyFile(g,t.join(i,"bin","mongosh.exe")),await e.promises.unlink(s),await e.promises.unlink(c),await e.promises.rm(a,{recursive:!0,force:!0}),await e.promises.rm(n,{recursive:!0,force:!0}),process.loader.print("MongoDB installed!")},w=async(o,i)=>{const r=await fetch(o);if(!r.ok)throw new Error(`Failed to download: ${r.statusText}`);await j(r.body,e.createWriteStream(i))},m=async o=>{try{return await e.promises.access(o),!0}catch{return!1}},v=async(o,i)=>{await e.promises.mkdir(o,{recursive:!0}),await e.promises.mkdir(i,{recursive:!0})};var M=k;export{M as default};
|
|
2
|
+
//# sourceMappingURL=windows.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/lib/development_server/databases/mongodb/installers/windows.js"],
|
|
4
|
+
"sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { promisify } from 'util';\nimport { pipeline } from 'stream';\nimport { execFile } from 'child_process';\n\nconst stream_pipeline = promisify(pipeline);\nconst exec_file_async = promisify(execFile);\n\nconst download_mongodb_windows = async () => {\n const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'mongodb');\n const bin_directory = path.join(base_directory, 'bin');\n\n if (await check_if_file_exists(base_directory)) {\n return;\n }\n\n await create_directories(base_directory, bin_directory);\n\n const download_url = 'https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-7.0.2.zip';\n const file_name = path.basename(new URL(download_url).pathname);\n const file_path = path.join(base_directory, file_name);\n\n if (await check_if_file_exists(file_path)) {\n return;\n }\n\n process.loader.print('MongoDB not found. Downloading... (this may take a few minutes)');\n await download_file(download_url, file_path);\n process.loader.print('Installing MongoDB...');\n \n const temp_directory = path.join(base_directory, 'temp');\n await exec_file_async('powershell', ['Expand-Archive', '-Path', file_path, '-DestinationPath', temp_directory]);\n const extracted_folder = (await fs.promises.readdir(temp_directory))[0];\n const extracted_path = path.join(temp_directory, extracted_folder);\n \n // Remove existing bin directory if it exists\n if (await check_if_file_exists(bin_directory)) {\n await fs.promises.rm(bin_directory, { recursive: true, force: true });\n }\n \n // Copy the entire contents of the extracted folder to the bin directory\n await fs.promises.cp(extracted_path, bin_directory, { recursive: true });\n\n // Download and install mongosh\n const mongosh_url = 'https://downloads.mongodb.com/compass/mongosh-2.2.12-win32-x64.zip';\n const mongosh_file_path = path.join(base_directory, 'mongosh.zip');\n await download_file(mongosh_url, mongosh_file_path);\n \n const mongosh_temp_directory = path.join(base_directory, 'mongosh_temp');\n await exec_file_async('powershell', ['Expand-Archive', '-Path', mongosh_file_path, '-DestinationPath', mongosh_temp_directory]);\n \n const mongosh_extracted_folder = (await fs.promises.readdir(mongosh_temp_directory))[0];\n const mongosh_bin_path = path.join(mongosh_temp_directory, mongosh_extracted_folder, 'bin', 'mongosh.exe');\n \n await fs.promises.copyFile(mongosh_bin_path, path.join(bin_directory, 'bin', 'mongosh.exe'));\n \n // Clean up temporary files\n await fs.promises.unlink(file_path);\n await fs.promises.unlink(mongosh_file_path);\n await fs.promises.rm(temp_directory, { recursive: true, force: true });\n await fs.promises.rm(mongosh_temp_directory, { recursive: true, force: true });\n\n process.loader.print('MongoDB installed!');\n};\n\nconst download_file = async (url, file_path) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.statusText}`);\n }\n await stream_pipeline(response.body, fs.createWriteStream(file_path));\n};\n\nconst check_if_file_exists = async (file_path) => {\n try {\n await fs.promises.access(file_path);\n return true;\n } catch {\n return false;\n }\n};\n\nconst create_directories = async (base_directory, bin_directory) => {\n await fs.promises.mkdir(base_directory, { recursive: true });\n await fs.promises.mkdir(bin_directory, { recursive: true });\n};\n\nexport default download_mongodb_windows;"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAU,OACjB,OAAOC,MAAQ,KACf,OAAS,aAAAC,MAAiB,OAC1B,OAAS,YAAAC,MAAgB,SACzB,OAAS,YAAAC,MAAgB,gBAEzB,MAAMC,EAAkBH,EAAUC,CAAQ,EACpCG,EAAkBJ,EAAUE,CAAQ,EAEpCG,EAA2B,SAAY,CAC3C,MAAMC,EAAiBR,EAAK,KAAKC,EAAG,QAAQ,EAAG,YAAa,YAAa,SAAS,EAC5EQ,EAAgBT,EAAK,KAAKQ,EAAgB,KAAK,EAErD,GAAI,MAAME,EAAqBF,CAAc,EAC3C,OAGF,MAAMG,EAAmBH,EAAgBC,CAAa,EAEtD,MAAMG,EAAe,sEACfC,EAAYb,EAAK,SAAS,IAAI,IAAIY,CAAY,EAAE,QAAQ,EACxDE,EAAYd,EAAK,KAAKQ,EAAgBK,CAAS,EAErD,GAAI,MAAMH,EAAqBI,CAAS,EACtC,OAGF,QAAQ,OAAO,MAAM,iEAAiE,EACtF,MAAMC,EAAcH,EAAcE,CAAS,EAC3C,QAAQ,OAAO,MAAM,uBAAuB,EAE5C,MAAME,EAAiBhB,EAAK,KAAKQ,EAAgB,MAAM,EACvD,MAAMF,EAAgB,aAAc,CAAC,iBAAkB,QAASQ,EAAW,mBAAoBE,CAAc,CAAC,EAC9G,MAAMC,GAAoB,MAAMlB,EAAG,SAAS,QAAQiB,CAAc,GAAG,CAAC,EAChEE,EAAiBlB,EAAK,KAAKgB,EAAgBC,CAAgB,EAG7D,MAAMP,EAAqBD,CAAa,GAC1C,MAAMV,EAAG,SAAS,GAAGU,EAAe,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAItE,MAAMV,EAAG,SAAS,GAAGmB,EAAgBT,EAAe,CAAE,UAAW,EAAK,CAAC,EAGvE,MAAMU,EAAc,qEACdC,EAAoBpB,EAAK,KAAKQ,EAAgB,aAAa,EACjE,MAAMO,EAAcI,EAAaC,CAAiB,EAElD,MAAMC,EAAyBrB,EAAK,KAAKQ,EAAgB,cAAc,EACvE,MAAMF,EAAgB,aAAc,CAAC,iBAAkB,QAASc,EAAmB,mBAAoBC,CAAsB,CAAC,EAE9H,MAAMC,GAA4B,MAAMvB,EAAG,SAAS,QAAQsB,CAAsB,GAAG,CAAC,EAChFE,EAAmBvB,EAAK,KAAKqB,EAAwBC,EAA0B,MAAO,aAAa,EAEzG,MAAMvB,EAAG,SAAS,SAASwB,EAAkBvB,EAAK,KAAKS,EAAe,MAAO,aAAa,CAAC,EAG3F,MAAMV,EAAG,SAAS,OAAOe,CAAS,EAClC,MAAMf,EAAG,SAAS,OAAOqB,CAAiB,EAC1C,MAAMrB,EAAG,SAAS,GAAGiB,EAAgB,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EACrE,MAAMjB,EAAG,SAAS,GAAGsB,EAAwB,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAE7E,QAAQ,OAAO,MAAM,oBAAoB,CAC3C,EAEMN,EAAgB,MAAOS,EAAKV,IAAc,CAC9C,MAAMW,EAAW,MAAM,MAAMD,CAAG,EAChC,GAAI,CAACC,EAAS,GACZ,MAAM,IAAI,MAAM,uBAAuBA,EAAS,UAAU,EAAE,EAE9D,MAAMpB,EAAgBoB,EAAS,KAAM1B,EAAG,kBAAkBe,CAAS,CAAC,CACtE,EAEMJ,EAAuB,MAAOI,GAAc,CAChD,GAAI,CACF,aAAMf,EAAG,SAAS,OAAOe,CAAS,EAC3B,EACT,MAAQ,CACN,MAAO,EACT,CACF,EAEMH,EAAqB,MAAOH,EAAgBC,IAAkB,CAClE,MAAMV,EAAG,SAAS,MAAMS,EAAgB,CAAE,UAAW,EAAK,CAAC,EAC3D,MAAMT,EAAG,SAAS,MAAMU,EAAe,CAAE,UAAW,EAAK,CAAC,CAC5D,EAEA,IAAOiB,EAAQnB",
|
|
6
|
+
"names": ["fs", "path", "os", "promisify", "pipeline", "execFile", "stream_pipeline", "exec_file_async", "download_mongodb_windows", "base_directory", "bin_directory", "check_if_file_exists", "create_directories", "download_url", "file_name", "file_path", "download_file", "temp_directory", "extracted_folder", "extracted_path", "mongosh_url", "mongosh_file_path", "mongosh_temp_directory", "mongosh_extracted_folder", "mongosh_bin_path", "url", "response", "windows_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import a from"fs";import c from"pg";import n from"../../../color_log.js";const{Client:l}=c,{readFile:i}=a.promises,p=(s={})=>new Promise((t,e)=>{s.query("SELECT NOW()",o=>{o?e():t(),s.end()})}),d=async(s={},t={})=>{try{const e=s?.hosts&&s?.hosts[0],o={user:s?.username,host:e?.hostname,database:s?.database,password:s?.password,port:e?.port};t?.ssl?.ca&&(o.ssl={ca:await i(t?.ssl?.ca)});const r=new l(o);return r.connect(),await p(r),!0}catch(e){console.warn(e),n(`
|
|
2
|
+
\u2716 Failed to connect to PostgreSQL. Please double-check connection settings and try again.`,"yellow"),process.exit(1)}};var h=d;export{h as default};
|
|
3
|
+
//# sourceMappingURL=check_connection.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/lib/development_server/databases/postgresql/check_connection.js"],
|
|
4
|
+
"sourcesContent": ["import fs from 'fs';\nimport postgresql from \"pg\";\nimport color_log from \"../../../color_log.js\";\n\nconst { Client } = postgresql;\nconst { readFile } = fs.promises;\n\nconst test_query = (client = {}) => {\n return new Promise((resolve, reject) => {\n client.query('SELECT NOW()', (error) => {\n if (error) {\n reject();\n } else {\n resolve();\n }\n\n client.end();\n });\n });\n};\n\nconst check_connection = async (connection = {}, options = {}) => {\n try {\n const host = connection?.hosts && connection?.hosts[0];\n const connection_config = {\n user: connection?.username,\n host: host?.hostname,\n database: connection?.database,\n password: connection?.password,\n port: host?.port,\n };\n\n if (options?.ssl?.ca) {\n connection_config.ssl = {\n ca: await readFile(options?.ssl?.ca)\n };\n }\n\n const client = new Client(connection_config);\n\n client.connect();\n await test_query(client);\n\n return true;\n } catch (exception) {\n console.warn(exception);\n \tcolor_log(\n \t\t`\\n\u2716 Failed to connect to PostgreSQL. Please double-check connection settings and try again.`,\n \t\t'yellow'\n \t);\n\n process.exit(1);\n }\n};\n\nexport default check_connection;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAgB,KACvB,OAAOC,MAAe,wBAEtB,KAAM,CAAE,OAAAC,CAAO,EAAIF,EACb,CAAE,SAAAG,CAAS,EAAIJ,EAAG,SAElBK,EAAa,CAACC,EAAS,CAAC,IACrB,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtCF,EAAO,MAAM,eAAiBG,GAAU,CAClCA,EACFD,EAAO,EAEPD,EAAQ,EAGVD,EAAO,IAAI,CACb,CAAC,CACH,CAAC,EAGGI,EAAmB,MAAOC,EAAa,CAAC,EAAGC,EAAU,CAAC,IAAM,CAChE,GAAI,CACF,MAAMC,EAAOF,GAAY,OAASA,GAAY,MAAM,CAAC,EAC/CG,EAAoB,CACxB,KAAMH,GAAY,SAClB,KAAME,GAAM,SACZ,SAAUF,GAAY,SACtB,SAAUA,GAAY,SACtB,KAAME,GAAM,IACd,EAEID,GAAS,KAAK,KAChBE,EAAkB,IAAM,CACtB,GAAI,MAAMV,EAASQ,GAAS,KAAK,EAAE,CACrC,GAGF,MAAMN,EAAS,IAAIH,EAAOW,CAAiB,EAE3C,OAAAR,EAAO,QAAQ,EACf,MAAMD,EAAWC,CAAM,EAEhB,EACT,OAASS,EAAW,CAClB,QAAQ,KAAKA,CAAS,EACvBb,EACC;AAAA,gGACA,QACD,EAEC,QAAQ,KAAK,CAAC,CAChB,CACF,EAEA,IAAOc,EAAQN",
|
|
6
|
+
"names": ["fs", "postgresql", "color_log", "Client", "readFile", "test_query", "client", "resolve", "reject", "error", "check_connection", "connection", "options", "host", "connection_config", "exception", "check_connection_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"os";import t from"./check_connection.js";import a from"./index.js";const r=async(o={},c=2610)=>{try{const n=o.connection&&Object.keys(o.connection).length>0;return n&&await t(o.connection,o.options),{pid:n?null:await a(c),connection:n?o.connection:{hosts:[{hostname:"127.0.0.1",port:c}],database:"app",username:(e.userInfo()||{}).username||"",password:""}}}catch(n){console.warn(n)}};var m=r;export{m as default};
|
|
2
|
+
//# sourceMappingURL=connect.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/lib/development_server/databases/postgresql/connect.js"],
|
|
4
|
+
"sourcesContent": ["import os from 'os';\nimport check_connection from \"./check_connection.js\";\nimport postgresql from \"./index.js\";\n\nconst connect = async (settings = {}, port = 2610) => {\n try {\n const has_connection = settings.connection && Object.keys(settings.connection).length > 0;\n\n if (has_connection) {\n await check_connection(settings.connection, settings.options);\n }\n\n return {\n pid: !has_connection ? await postgresql(port) : null,\n connection: has_connection ? settings.connection : {\n hosts: [\n {\n hostname: \"127.0.0.1\",\n port,\n },\n ],\n database: \"app\",\n // NOTE: PostgreSQL creates a default superuser based on the OS username.\n username: (os.userInfo() || {}).username || \"\",\n password: \"\",\n },\n };\n } catch (exception) {\n console.warn(exception);\n }\n};\n\nexport default connect;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAsB,wBAC7B,OAAOC,MAAgB,aAEvB,MAAMC,EAAU,MAAOC,EAAW,CAAC,EAAGC,EAAO,OAAS,CACpD,GAAI,CACF,MAAMC,EAAiBF,EAAS,YAAc,OAAO,KAAKA,EAAS,UAAU,EAAE,OAAS,EAExF,OAAIE,GACF,MAAML,EAAiBG,EAAS,WAAYA,EAAS,OAAO,EAGvD,CACL,IAAME,EAA0C,KAAzB,MAAMJ,EAAWG,CAAI,EAC5C,WAAYC,EAAiBF,EAAS,WAAa,CACjD,MAAO,CACL,CACE,SAAU,YACV,KAAAC,CACF,CACF,EACA,SAAU,MAEV,UAAWL,EAAG,SAAS,GAAK,CAAC,GAAG,UAAY,GAC5C,SAAU,EACZ,CACF,CACF,OAASO,EAAW,CAClB,QAAQ,KAAKA,CAAS,CACxB,CACF,EAEA,IAAOC,EAAQL",
|
|
6
|
+
"names": ["os", "check_connection", "postgresql", "connect", "settings", "port", "has_connection", "exception", "connect_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import i from"child_process";import x from"fs";import q from"util";import I from"os";import g from"../../../get_platform_safe_path.js";import f from"../../../get_process_id_from_port.js";import y from"../../../path_exists.js";const o=q.promisify(i.exec),{rename:D}=x.promises,L=async(e=2610)=>{const t=await y(".joystick/data/postgresql");let s=await y(`.joystick/data/postgresql_${e}`);return t&&!s&&(await D(".joystick/data/postgresql",`.joystick/data/postgresql_${e}`),s=!0),s},K=()=>process.platform==="win32"?"createdb.exe":"createdb",N=()=>process.platform==="win32"?"postgres.exe":"postgres",R=()=>process.platform==="win32"?"initdb.exe":"initdb",S=()=>process.platform==="win32"?"pgctl.exe":"pgctl",A=async(e=2610)=>{try{const t=e,s=`${I.homedir()}/.joystick/databases/postgresql/bin/bin`,$=S(),u=R(),w=N(),j=K(),n=`${s}/${$}`,k=`${s}/${u}`,b=`${s}/${w}`,p=`${s}/${j}`;await L(e)||(process.platform==="linux"?(await o(`sudo -u postgres ./initdb -D ${process.cwd()}/.joystick/data/postgresql_${e} --no-locale`,{cwd:s}),await o("sudo chmod 755 /root"),await o(`sudo chmod 755 /root/${process.project_folder}`),await o(`sudo chmod 755 /root/${process.project_folder}/.joystick`),await o(`sudo chmod 700 /root/${process.project_folder}/.joystick/data/postgresql_${t}`),await o(`sudo chown -R postgres:postgres /root/${process.project_folder}/.joystick/data/postgresql_${t}`)):await o(`${k} -D .joystick/data/postgresql_${e} --no-locale`));const a=parseInt(await f(t),10);a&&(process.platform==="linux"?await o(`${n} kill KILL ${a}`):await o(`${n} kill KILL ${a}`));const d=process.platform==="linux"?i.spawn("sudo",["-u","postgres","./postgres",`-p ${t}`,"-D",g(`${process.cwd()}/.joystick/data/postgresql_${e}`),"-c log_destination=stderr -c logging_collector=off -c log_min_messages=WARNING"],{cwd:s,shell:"/bin/bash"}):i.spawn(b,[`-p ${t}`,"-D",g(`.joystick/data/postgresql_${e}`)]);return new Promise(_=>{d.stderr.on("data",async c=>{if((c?.toString()).includes("database system is ready to accept connections")){const m=(await f(t))?.replace(`
|
|
2
|
+
`,""),h=process.platform==="linux"?`sudo -u postgres ${p} -h 127.0.0.1 -p ${t} app`:`${p} -h 127.0.0.1 -p ${t} app`;o(h).then(()=>{_(parseInt(m,10))}).catch(({stderr:r})=>{r&&r.includes('database "app" already exists')?_(parseInt(m,10)):console.log(r)})}}),d.stdout.on("data",async c=>{const l=c?.toString();console.log(l)})})}catch(t){console.warn(t),process.exit(1)}};var H=A;export{H as default};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/lib/development_server/databases/postgresql/index.js"],
|
|
4
|
+
"sourcesContent": ["import child_process from \"child_process\";\nimport fs from \"fs\";\nimport util from \"util\";\nimport os from \"os\";\nimport get_platform_safe_path from \"../../../get_platform_safe_path.js\";\nimport get_process_id_from_port from \"../../../get_process_id_from_port.js\";\nimport path_exists from \"../../../path_exists.js\";\n\nconst exec = util.promisify(child_process.exec);\nconst { rename } = fs.promises;\n\nconst setup_data_directory = async (postgresql_port = 2610) => {\n const legacy_data_directory_exists = await path_exists(\".joystick/data/postgresql\");\n let data_directory_exists = await path_exists(`.joystick/data/postgresql_${postgresql_port}`);\n\n if (legacy_data_directory_exists && !data_directory_exists) {\n await rename ('.joystick/data/postgresql', `.joystick/data/postgresql_${postgresql_port}`);\n data_directory_exists = true;\n }\n\n return data_directory_exists;\n};\n\nconst get_createdb_command = () => {\n if (process.platform === 'win32') {\n return 'createdb.exe';\n }\n\n return 'createdb';\n};\n\nconst get_postgres_command = () => {\n if (process.platform === 'win32') {\n return 'postgres.exe';\n }\n\n return 'postgres';\n};\n\nconst get_initdb_command = () => {\n if (process.platform === 'win32') {\n return 'initdb.exe';\n }\n\n return 'initdb';\n};\n\nconst get_pg_ctl_command = () => {\n if (process.platform === 'win32') {\n return 'pgctl.exe';\n }\n\n return 'pgctl';\n};\n\nconst start_postgresql = async (port = 2610) => {\n try {\n const postgresql_port = port;\n const joystick_postgresql_bin_path = `${os.homedir()}/.joystick/databases/postgresql/bin/bin`;\n\n const joystick_pg_ctl_command = get_pg_ctl_command();\n const joystick_initdb_command = get_initdb_command();\n const joystick_postgres_command = get_postgres_command();\n const joystick_createdb_command = get_createdb_command();\n \n const joystick_pg_ctl_path = `${joystick_postgresql_bin_path}/${joystick_pg_ctl_command}`;\n const joystick_initdb_path = `${joystick_postgresql_bin_path}/${joystick_initdb_command}`;\n const joystick_postgres_path = `${joystick_postgresql_bin_path}/${joystick_postgres_command}`;\n const joystick_createdb_path = `${joystick_postgresql_bin_path}/${joystick_createdb_command}`;\n\n const data_directory_exists = await setup_data_directory(port);\n\n if (!data_directory_exists) {\n if (process.platform === 'linux') {\n await exec(`sudo -u postgres ./initdb -D ${process.cwd()}/.joystick/data/postgresql_${port} --no-locale`, {\n cwd: joystick_postgresql_bin_path\n });\n\n // NOTE: For Linux, we need to set granular permissions on the data directory path\n // to avoid access denied errors from the OS.\n await exec(`sudo chmod 755 /root`);\n await exec(`sudo chmod 755 /root/${process.project_folder}`);\n await exec(`sudo chmod 755 /root/${process.project_folder}/.joystick`);\n await exec(`sudo chmod 700 /root/${process.project_folder}/.joystick/data/postgresql_${postgresql_port}`);\n await exec(`sudo chown -R postgres:postgres /root/${process.project_folder}/.joystick/data/postgresql_${postgresql_port}`);\n } else {\n await exec(`${joystick_initdb_path} -D .joystick/data/postgresql_${port} --no-locale`);\n }\n }\n\n const existing_process_id = parseInt(await get_process_id_from_port(postgresql_port), 10);\n\n if (existing_process_id) {\n if (process.platform === 'linux') {\n await exec(`${joystick_pg_ctl_path} kill KILL ${existing_process_id}`);\n } else {\n await exec(`${joystick_pg_ctl_path} kill KILL ${existing_process_id}`);\n }\n }\n\n const database_process = process.platform === 'linux' ? child_process.spawn(\n 'sudo',\n [\n '-u',\n 'postgres',\n './postgres',\n `-p ${postgresql_port}`,\n '-D',\n get_platform_safe_path(`${process.cwd()}/.joystick/data/postgresql_${port}`),\n '-c log_destination=stderr -c logging_collector=off -c log_min_messages=WARNING',\n ],\n { cwd: joystick_postgresql_bin_path, shell: '/bin/bash' }\n ) : child_process.spawn(\n joystick_postgres_path,\n [\n `-p ${postgresql_port}`,\n '-D',\n get_platform_safe_path(`.joystick/data/postgresql_${port}`),\n ],\n );\n\n return new Promise((resolve) => {\n database_process.stderr.on('data', async (data) => {\n const stderr = data?.toString();\n\n if (stderr.includes('database system is ready to accept connections')) {\n const process_id = (await get_process_id_from_port(postgresql_port))?.replace('\\n', '');\n const createdb_command = process.platform === 'linux'\n ? `sudo -u postgres ${joystick_createdb_path} -h 127.0.0.1 -p ${postgresql_port} app`\n : `${joystick_createdb_path} -h 127.0.0.1 -p ${postgresql_port} app`;\n\n exec(createdb_command).then(() => {\n resolve(parseInt(process_id, 10));\n }).catch(({ stderr: error }) => {\n if (error && error.includes('database \"app\" already exists')) {\n resolve(parseInt(process_id, 10));\n } else {\n console.log(error);\n }\n });\n }\n });\n\n database_process.stdout.on('data', async (data) => {\n // NOTE: PostgreSQL (16) appears to route all output to stderr(?!). Have this for posterity\n // sake and to avoid trapping useful information.\n const stdout = data?.toString();\n console.log(stdout);\n });\n });\n } catch (exception) {\n console.warn(exception);\n process.exit(1);\n }\n};\n\nexport default start_postgresql;"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["child_process", "fs", "util", "os", "get_platform_safe_path", "get_process_id_from_port", "path_exists", "exec", "rename", "setup_data_directory", "postgresql_port", "legacy_data_directory_exists", "data_directory_exists", "get_createdb_command", "get_postgres_command", "get_initdb_command", "get_pg_ctl_command", "start_postgresql", "port", "joystick_postgresql_bin_path", "joystick_pg_ctl_command", "joystick_initdb_command", "joystick_postgres_command", "joystick_createdb_command", "joystick_pg_ctl_path", "joystick_initdb_path", "joystick_postgres_path", "joystick_createdb_path", "existing_process_id", "database_process", "resolve", "data", "process_id", "createdb_command", "error", "stdout", "exception", "index_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{promisify as e}from"util";import{execFile as m,exec as y}from"child_process";import o from"fs";import w from"os";import i from"path";const r=e(m),_=e(y),u=e(o.mkdir),h=e(o.symlink),p=e(o.access),k=e(o.writeFile),b=async()=>{try{const t="16",g=`/usr/lib/postgresql/${t}/bin`,c=i.join(w.homedir(),".joystick","databases","postgresql","bin"),n=i.join(c,"bin"),l=i.join(n,"postgres");try{await p(l,o.constants.X_OK);return}catch{}process.loader.print("PostgreSQL not found. Installing... (this may take a few minutes)"),await r("sudo",["apt-get","install","-y","wget"]),await r("sudo",["sh","-c",'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list']);const{stdout:d}=await _("wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc"),a="/tmp/postgresql-ACCC4CF8.asc";await k(a,d),await r("sudo",["apt-key","add",a]),await r("rm",[a]),await r("sudo",["apt-get","update"]),await r("sudo",["apt-get","install","-y",`postgresql-${t}`,`postgresql-client-${t}`,`postgresql-server-dev-${t}`]),await u(c,{recursive:!0});try{await h(g,n)}catch(s){if(s.code!=="EEXIST")throw console.error("Error creating symlink:",s),s}try{await p(l,o.constants.X_OK)}catch(s){throw console.error("Error accessing PostgreSQL executable:",s),s}process.loader.print("PostgreSQL installed!")}catch(t){throw console.error("Error installing PostgreSQL:",t),t}};var E=b;export{E as default};
|
|
2
|
+
//# sourceMappingURL=linux.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/lib/development_server/databases/postgresql/installers/linux.js"],
|
|
4
|
+
"sourcesContent": ["import { promisify } from 'util';\nimport { execFile, exec } from 'child_process';\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\n\nconst exec_file_async = promisify(execFile);\nconst exec_async = promisify(exec);\nconst mkdir_async = promisify(fs.mkdir);\nconst symlink_async = promisify(fs.symlink);\nconst access_async = promisify(fs.access);\nconst writeFile_async = promisify(fs.writeFile);\n\nconst download_postgresql_linux = async () => {\n try {\n const postgresql_version = '16';\n const system_bin_path = `/usr/lib/postgresql/${postgresql_version}/bin`;\n const joystick_bin_path = path.join(os.homedir(), '.joystick', 'databases', 'postgresql', 'bin');\n const symlink_path = path.join(joystick_bin_path, 'bin');\n const postgres_executable = path.join(symlink_path, 'postgres');\n\n // Check if PostgreSQL is already installed in the desired location\n try {\n await access_async(postgres_executable, fs.constants.X_OK);\n return;\n } catch (error) {\n // PostgreSQL is not installed or not in the desired location, proceed with installation\n }\n\n process.loader.print('PostgreSQL not found. Installing... (this may take a few minutes)');\n \n // Ensure wget is installed\n await exec_file_async('sudo', ['apt-get', 'install', '-y', 'wget']);\n\n // Add PostgreSQL 16 repository\n await exec_file_async('sudo', ['sh', '-c', 'echo \"deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main\" > /etc/apt/sources.list.d/pgdg.list']);\n \n // Download the PostgreSQL public key\n const { stdout: keyContent } = await exec_async('wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc');\n \n // Save the key to a temporary file\n const tempKeyPath = '/tmp/postgresql-ACCC4CF8.asc';\n await writeFile_async(tempKeyPath, keyContent);\n \n // Add the key\n await exec_file_async('sudo', ['apt-key', 'add', tempKeyPath]);\n \n // Remove the temporary key file\n await exec_file_async('rm', [tempKeyPath]);\n\n // Update package list and install PostgreSQL 16\n await exec_file_async('sudo', ['apt-get', 'update']);\n await exec_file_async('sudo', ['apt-get', 'install', '-y', `postgresql-${postgresql_version}`, `postgresql-client-${postgresql_version}`, `postgresql-server-dev-${postgresql_version}`]);\n\n await mkdir_async(joystick_bin_path, { recursive: true });\n \n try {\n await symlink_async(system_bin_path, symlink_path);\n } catch (symlink_error) {\n if (symlink_error.code !== 'EEXIST') {\n console.error('Error creating symlink:', symlink_error);\n throw symlink_error;\n }\n }\n\n try {\n await access_async(postgres_executable, fs.constants.X_OK);\n } catch (access_error) {\n console.error('Error accessing PostgreSQL executable:', access_error);\n throw access_error;\n }\n \n process.loader.print('PostgreSQL installed!');\n } catch (error) {\n console.error('Error installing PostgreSQL:', error);\n throw error;\n }\n};\n\nexport default download_postgresql_linux;"],
|
|
5
|
+
"mappings": "AAAA,OAAS,aAAAA,MAAiB,OAC1B,OAAS,YAAAC,EAAU,QAAAC,MAAY,gBAC/B,OAAOC,MAAQ,KACf,OAAOC,MAAQ,KACf,OAAOC,MAAU,OAEjB,MAAMC,EAAkBN,EAAUC,CAAQ,EACpCM,EAAaP,EAAUE,CAAI,EAC3BM,EAAcR,EAAUG,EAAG,KAAK,EAChCM,EAAgBT,EAAUG,EAAG,OAAO,EACpCO,EAAeV,EAAUG,EAAG,MAAM,EAClCQ,EAAkBX,EAAUG,EAAG,SAAS,EAExCS,EAA4B,SAAY,CAC5C,GAAI,CACF,MAAMC,EAAqB,KACrBC,EAAkB,uBAAuBD,CAAkB,OAC3DE,EAAoBV,EAAK,KAAKD,EAAG,QAAQ,EAAG,YAAa,YAAa,aAAc,KAAK,EACzFY,EAAeX,EAAK,KAAKU,EAAmB,KAAK,EACjDE,EAAsBZ,EAAK,KAAKW,EAAc,UAAU,EAG9D,GAAI,CACF,MAAMN,EAAaO,EAAqBd,EAAG,UAAU,IAAI,EACzD,MACF,MAAgB,CAEhB,CAEA,QAAQ,OAAO,MAAM,mEAAmE,EAGxF,MAAMG,EAAgB,OAAQ,CAAC,UAAW,UAAW,KAAM,MAAM,CAAC,EAGlE,MAAMA,EAAgB,OAAQ,CAAC,KAAM,KAAM,qHAAqH,CAAC,EAGjK,KAAM,CAAE,OAAQY,CAAW,EAAI,MAAMX,EAAW,8DAA8D,EAGxGY,EAAc,+BACpB,MAAMR,EAAgBQ,EAAaD,CAAU,EAG7C,MAAMZ,EAAgB,OAAQ,CAAC,UAAW,MAAOa,CAAW,CAAC,EAG7D,MAAMb,EAAgB,KAAM,CAACa,CAAW,CAAC,EAGzC,MAAMb,EAAgB,OAAQ,CAAC,UAAW,QAAQ,CAAC,EACnD,MAAMA,EAAgB,OAAQ,CAAC,UAAW,UAAW,KAAM,cAAcO,CAAkB,GAAI,qBAAqBA,CAAkB,GAAI,yBAAyBA,CAAkB,EAAE,CAAC,EAExL,MAAML,EAAYO,EAAmB,CAAE,UAAW,EAAK,CAAC,EAExD,GAAI,CACF,MAAMN,EAAcK,EAAiBE,CAAY,CACnD,OAASI,EAAe,CACtB,GAAIA,EAAc,OAAS,SACzB,cAAQ,MAAM,0BAA2BA,CAAa,EAChDA,CAEV,CAEA,GAAI,CACF,MAAMV,EAAaO,EAAqBd,EAAG,UAAU,IAAI,CAC3D,OAASkB,EAAc,CACrB,cAAQ,MAAM,yCAA0CA,CAAY,EAC9DA,CACR,CAEA,QAAQ,OAAO,MAAM,uBAAuB,CAC9C,OAASC,EAAO,CACd,cAAQ,MAAM,+BAAgCA,CAAK,EAC7CA,CACR,CACF,EAEA,IAAOC,EAAQX",
|
|
6
|
+
"names": ["promisify", "execFile", "exec", "fs", "os", "path", "exec_file_async", "exec_async", "mkdir_async", "symlink_async", "access_async", "writeFile_async", "download_postgresql_linux", "postgresql_version", "system_bin_path", "joystick_bin_path", "symlink_path", "postgres_executable", "keyContent", "tempKeyPath", "symlink_error", "access_error", "error", "linux_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"fs";import t from"path";import h from"os";import{promisify as d}from"util";import{pipeline as b}from"stream";import{execFile as y}from"child_process";const g=d(b),j=d(y),k=async(o=null)=>{const i=t.join(h.homedir(),".joystick","databases","postgresql"),s=t.join(i,"bin"),n=t.join(s,"bin");if(await q(i))return;await v(i,s,n);const p="https://get.enterprisedb.com/postgresql/postgresql-16.0-1-osx-binaries.zip",f=t.basename(new URL(p).pathname),c=t.join(i,f);process.loader.print("PostgreSQL not found. Downloading... (this may take a few minutes)"),await x(p,c),process.loader.print("Installing PostgreSQL...");const r=t.join(i,"temp");await e.promises.mkdir(r,{recursive:!0}),await j("unzip",["-q",c,"-d",r]);const m=t.join(r,"pgsql","bin"),w=await e.promises.readdir(m);for(const a of w)await e.promises.rename(t.join(m,a),t.join(n,a));const u=["share","lib","include"];for(const a of u){const l=t.join(r,"pgsql",a),_=t.join(s,a);await e.promises.access(l).then(()=>!0).catch(()=>!1)&&await e.promises.rename(l,_)}await e.promises.unlink(c),await e.promises.rm(r,{recursive:!0,force:!0}),await L(n),process.loader.print("PostgreSQL installed!")},x=async(o,i)=>{const s=await fetch(o);if(!s.ok)throw new Error(`Failed to download: ${s.statusText}`);await g(s.body,e.createWriteStream(i))},q=async o=>{try{return await e.promises.access(o),!0}catch{return!1}},v=async(o,i,s)=>{await e.promises.mkdir(o,{recursive:!0}),await e.promises.mkdir(i,{recursive:!0}),await e.promises.mkdir(s,{recursive:!0})},L=async o=>{const i=await e.promises.readdir(o);for(const s of i)await e.promises.chmod(t.join(o,s),"755")};var D=k;export{D as default};
|
|
2
|
+
//# sourceMappingURL=macos.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/lib/development_server/databases/postgresql/installers/macos.js"],
|
|
4
|
+
"sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { promisify } from 'util';\nimport { pipeline } from 'stream';\nimport { execFile } from 'child_process';\n\nconst streamPipeline = promisify(pipeline);\nconst execFileAsync = promisify(execFile);\n\nconst download_postgresql_macos = async (version_path = null) => {\n const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'postgresql');\n const bin_directory = path.join(base_directory, 'bin');\n const bin_bin_directory = path.join(bin_directory, 'bin');\n\n if (await check_if_file_exists(base_directory)) {\n return;\n }\n\n await create_directories(base_directory, bin_directory, bin_bin_directory);\n\n const download_url = 'https://get.enterprisedb.com/postgresql/postgresql-16.0-1-osx-binaries.zip';\n const file_name = path.basename(new URL(download_url).pathname);\n const file_path = path.join(base_directory, file_name);\n\n process.loader.print('PostgreSQL not found. Downloading... (this may take a few minutes)');\n await download_file(download_url, file_path);\n\n process.loader.print('Installing PostgreSQL...');\n \n // Extract PostgreSQL\n const temp_directory = path.join(base_directory, 'temp');\n await fs.promises.mkdir(temp_directory, { recursive: true });\n await execFileAsync('unzip', ['-q', file_path, '-d', temp_directory]);\n\n // Move binaries to bin/bin\n const extracted_bin_path = path.join(temp_directory, 'pgsql', 'bin');\n const files = await fs.promises.readdir(extracted_bin_path);\n for (const file of files) {\n await fs.promises.rename(path.join(extracted_bin_path, file), path.join(bin_bin_directory, file));\n }\n\n // Move other necessary directories\n const directories_to_move = ['share', 'lib', 'include'];\n for (const dir of directories_to_move) {\n const src_path = path.join(temp_directory, 'pgsql', dir);\n const dest_path = path.join(bin_directory, dir);\n if (await fs.promises.access(src_path).then(() => true).catch(() => false)) {\n await fs.promises.rename(src_path, dest_path);\n }\n }\n\n // Clean up\n await fs.promises.unlink(file_path);\n await fs.promises.rm(temp_directory, { recursive: true, force: true });\n\n await make_file_executable(bin_bin_directory);\n process.loader.print('PostgreSQL installed!');\n};\n\nconst download_file = async (url, file_path) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.statusText}`);\n }\n await streamPipeline(response.body, fs.createWriteStream(file_path));\n};\n\nconst check_if_file_exists = async (file_path) => {\n try {\n await fs.promises.access(file_path);\n return true;\n } catch {\n return false;\n }\n};\n\nconst create_directories = async (base_directory, bin_directory, bin_bin_directory) => {\n await fs.promises.mkdir(base_directory, { recursive: true });\n await fs.promises.mkdir(bin_directory, { recursive: true });\n await fs.promises.mkdir(bin_bin_directory, { recursive: true });\n};\n\nconst make_file_executable = async (directory) => {\n const files = await fs.promises.readdir(directory);\n for (const file of files) {\n await fs.promises.chmod(path.join(directory, file), '755');\n }\n};\n\nexport default download_postgresql_macos;"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["fs", "path", "os", "promisify", "pipeline", "execFile", "streamPipeline", "execFileAsync", "download_postgresql_macos", "version_path", "base_directory", "bin_directory", "bin_bin_directory", "check_if_file_exists", "create_directories", "download_url", "file_name", "file_path", "download_file", "temp_directory", "extracted_bin_path", "files", "file", "directories_to_move", "dir", "src_path", "dest_path", "make_file_executable", "url", "response", "directory", "macos_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"fs";import t from"path";import h from"os";import{promisify as d}from"util";import{pipeline as b}from"stream";import{execFile as y}from"child_process";const g=d(b),j=d(y),k=async(s=null)=>{const i=t.join(h.homedir(),".joystick","databases","postgresql"),r=t.join(i,"bin"),c=t.join(r,"bin");if(await x(i))return;await q(i,r,c);const p="https://get.enterprisedb.com/postgresql/postgresql-16.0-1-windows-x64-binaries.zip",w=t.basename(new URL(p).pathname),n=t.join(i,w);process.loader.print("PostgreSQL not found. Downloading... (this may take a few minutes)"),await v(p,n),process.loader.print("Installing PostgreSQL...");const o=t.join(i,"temp");await e.promises.mkdir(o,{recursive:!0}),await j("powershell",["Expand-Archive","-Path",n,"-DestinationPath",o]);const m=t.join(o,"pgsql","bin"),f=await e.promises.readdir(m);for(const a of f)await e.promises.rename(t.join(m,a),t.join(c,a));const u=["share","lib","include"];for(const a of u){const l=t.join(o,"pgsql",a),_=t.join(r,a);await e.promises.access(l).then(()=>!0).catch(()=>!1)&&await e.promises.rename(l,_)}await e.promises.unlink(n),await e.promises.rm(o,{recursive:!0,force:!0}),process.loader.print("PostgreSQL installed!")},v=async(s,i)=>{const r=await fetch(s);if(!r.ok)throw new Error(`Failed to download: ${r.statusText}`);await g(r.body,e.createWriteStream(i))},x=async s=>{try{return await e.promises.access(s),!0}catch{return!1}},q=async(s,i,r)=>{await e.promises.mkdir(s,{recursive:!0}),await e.promises.mkdir(i,{recursive:!0}),await e.promises.mkdir(r,{recursive:!0})};var D=k;export{D as default};
|
|
2
|
+
//# sourceMappingURL=windows.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/lib/development_server/databases/postgresql/installers/windows.js"],
|
|
4
|
+
"sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport os from 'os';\nimport { promisify } from 'util';\nimport { pipeline } from 'stream';\nimport { execFile } from 'child_process';\n\nconst streamPipeline = promisify(pipeline);\nconst execFileAsync = promisify(execFile);\n\nconst download_postgresql_windows = async (version_path = null) => {\n const base_directory = path.join(os.homedir(), '.joystick', 'databases', 'postgresql');\n const bin_directory = path.join(base_directory, 'bin');\n const bin_bin_directory = path.join(bin_directory, 'bin');\n\n if (await check_if_file_exists(base_directory)) {\n return;\n }\n\n await create_directories(base_directory, bin_directory, bin_bin_directory);\n\n const download_url = 'https://get.enterprisedb.com/postgresql/postgresql-16.0-1-windows-x64-binaries.zip';\n const file_name = path.basename(new URL(download_url).pathname);\n const file_path = path.join(base_directory, file_name);\n\n process.loader.print('PostgreSQL not found. Downloading... (this may take a few minutes)');\n await download_file(download_url, file_path);\n\n process.loader.print('Installing PostgreSQL...');\n \n // Extract PostgreSQL\n const temp_directory = path.join(base_directory, 'temp');\n await fs.promises.mkdir(temp_directory, { recursive: true });\n await execFileAsync('powershell', ['Expand-Archive', '-Path', file_path, '-DestinationPath', temp_directory]);\n\n // Move binaries to bin/bin\n const extracted_bin_path = path.join(temp_directory, 'pgsql', 'bin');\n const files = await fs.promises.readdir(extracted_bin_path);\n for (const file of files) {\n await fs.promises.rename(path.join(extracted_bin_path, file), path.join(bin_bin_directory, file));\n }\n\n // Move other necessary directories\n const directories_to_move = ['share', 'lib', 'include'];\n for (const dir of directories_to_move) {\n const src_path = path.join(temp_directory, 'pgsql', dir);\n const dest_path = path.join(bin_directory, dir);\n if (await fs.promises.access(src_path).then(() => true).catch(() => false)) {\n await fs.promises.rename(src_path, dest_path);\n }\n }\n\n // Clean up\n await fs.promises.unlink(file_path);\n await fs.promises.rm(temp_directory, { recursive: true, force: true });\n\n process.loader.print('PostgreSQL installed!');\n};\n\nconst download_file = async (url, file_path) => {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`Failed to download: ${response.statusText}`);\n }\n await streamPipeline(response.body, fs.createWriteStream(file_path));\n};\n\nconst check_if_file_exists = async (file_path) => {\n try {\n await fs.promises.access(file_path);\n return true;\n } catch {\n return false;\n }\n};\n\nconst create_directories = async (base_directory, bin_directory, bin_bin_directory) => {\n await fs.promises.mkdir(base_directory, { recursive: true });\n await fs.promises.mkdir(bin_directory, { recursive: true });\n await fs.promises.mkdir(bin_bin_directory, { recursive: true });\n};\n\nexport default download_postgresql_windows;"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAU,OACjB,OAAOC,MAAQ,KACf,OAAS,aAAAC,MAAiB,OAC1B,OAAS,YAAAC,MAAgB,SACzB,OAAS,YAAAC,MAAgB,gBAEzB,MAAMC,EAAiBH,EAAUC,CAAQ,EACnCG,EAAgBJ,EAAUE,CAAQ,EAElCG,EAA8B,MAAOC,EAAe,OAAS,CACjE,MAAMC,EAAiBT,EAAK,KAAKC,EAAG,QAAQ,EAAG,YAAa,YAAa,YAAY,EAC/ES,EAAgBV,EAAK,KAAKS,EAAgB,KAAK,EAC/CE,EAAoBX,EAAK,KAAKU,EAAe,KAAK,EAExD,GAAI,MAAME,EAAqBH,CAAc,EAC3C,OAGF,MAAMI,EAAmBJ,EAAgBC,EAAeC,CAAiB,EAEzE,MAAMG,EAAe,qFACfC,EAAYf,EAAK,SAAS,IAAI,IAAIc,CAAY,EAAE,QAAQ,EACxDE,EAAYhB,EAAK,KAAKS,EAAgBM,CAAS,EAErD,QAAQ,OAAO,MAAM,oEAAoE,EACzF,MAAME,EAAcH,EAAcE,CAAS,EAE3C,QAAQ,OAAO,MAAM,0BAA0B,EAG/C,MAAME,EAAiBlB,EAAK,KAAKS,EAAgB,MAAM,EACvD,MAAMV,EAAG,SAAS,MAAMmB,EAAgB,CAAE,UAAW,EAAK,CAAC,EAC3D,MAAMZ,EAAc,aAAc,CAAC,iBAAkB,QAASU,EAAW,mBAAoBE,CAAc,CAAC,EAG5G,MAAMC,EAAqBnB,EAAK,KAAKkB,EAAgB,QAAS,KAAK,EAC7DE,EAAQ,MAAMrB,EAAG,SAAS,QAAQoB,CAAkB,EAC1D,UAAWE,KAAQD,EACjB,MAAMrB,EAAG,SAAS,OAAOC,EAAK,KAAKmB,EAAoBE,CAAI,EAAGrB,EAAK,KAAKW,EAAmBU,CAAI,CAAC,EAIlG,MAAMC,EAAsB,CAAC,QAAS,MAAO,SAAS,EACtD,UAAWC,KAAOD,EAAqB,CACrC,MAAME,EAAWxB,EAAK,KAAKkB,EAAgB,QAASK,CAAG,EACjDE,EAAYzB,EAAK,KAAKU,EAAea,CAAG,EAC1C,MAAMxB,EAAG,SAAS,OAAOyB,CAAQ,EAAE,KAAK,IAAM,EAAI,EAAE,MAAM,IAAM,EAAK,GACvE,MAAMzB,EAAG,SAAS,OAAOyB,EAAUC,CAAS,CAEhD,CAGA,MAAM1B,EAAG,SAAS,OAAOiB,CAAS,EAClC,MAAMjB,EAAG,SAAS,GAAGmB,EAAgB,CAAE,UAAW,GAAM,MAAO,EAAK,CAAC,EAErE,QAAQ,OAAO,MAAM,uBAAuB,CAC9C,EAEMD,EAAgB,MAAOS,EAAKV,IAAc,CAC9C,MAAMW,EAAW,MAAM,MAAMD,CAAG,EAChC,GAAI,CAACC,EAAS,GACZ,MAAM,IAAI,MAAM,uBAAuBA,EAAS,UAAU,EAAE,EAE9D,MAAMtB,EAAesB,EAAS,KAAM5B,EAAG,kBAAkBiB,CAAS,CAAC,CACrE,EAEMJ,EAAuB,MAAOI,GAAc,CAChD,GAAI,CACF,aAAMjB,EAAG,SAAS,OAAOiB,CAAS,EAC3B,EACT,MAAQ,CACN,MAAO,EACT,CACF,EAEMH,EAAqB,MAAOJ,EAAgBC,EAAeC,IAAsB,CACrF,MAAMZ,EAAG,SAAS,MAAMU,EAAgB,CAAE,UAAW,EAAK,CAAC,EAC3D,MAAMV,EAAG,SAAS,MAAMW,EAAe,CAAE,UAAW,EAAK,CAAC,EAC1D,MAAMX,EAAG,SAAS,MAAMY,EAAmB,CAAE,UAAW,EAAK,CAAC,CAChE,EAEA,IAAOiB,EAAQrB",
|
|
6
|
+
"names": ["fs", "path", "os", "promisify", "pipeline", "execFile", "streamPipeline", "execFileAsync", "download_postgresql_windows", "version_path", "base_directory", "bin_directory", "bin_bin_directory", "check_if_file_exists", "create_directories", "download_url", "file_name", "file_path", "download_file", "temp_directory", "extracted_bin_path", "files", "file", "directories_to_move", "dir", "src_path", "dest_path", "url", "response", "windows_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/lib/development_server/databases/provider_map.js"],
|
|
4
|
+
"sourcesContent": ["import connect_mongodb from './mongodb/connect.js';\nimport connect_postgresql from './postgresql/connect.js';\n\nconst provider_map = {\n mongodb: {\n name: 'MongoDB',\n connect: connect_mongodb,\n },\n postgresql: {\n name: 'PostgreSQL',\n connect: connect_postgresql,\n },\n};\n\nexport default provider_map;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAqB,uBAC5B,OAAOC,MAAwB,0BAE/B,MAAMC,EAAe,CACnB,QAAS,CACP,KAAM,UACN,QAASF,CACX,EACA,WAAY,CACV,KAAM,aACN,QAASC,CACX,CACF,EAEA,IAAOE,EAAQD",
|
|
6
|
+
"names": ["connect_mongodb", "connect_postgresql", "provider_map", "provider_map_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const r=()=>{const t=[],o=Object.entries(process._databases||{});for(let s=0;s<o?.length;s+=1){const[d,e]=o[s];if(e?.pid&&t.push(e.pid),!e?.pid){const c=Object.entries(e);for(let n=0;n<c?.length;n+=1){const[p,i]=c[n];i?.pid&&t.push(i.pid)}}}return t};var a=r;export{a as default};
|
|
2
|
+
//# sourceMappingURL=get_database_process_ids.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/development_server/get_database_process_ids.js"],
|
|
4
|
+
"sourcesContent": ["const get_database_process_ids = () => {\n const database_process_ids = [];\n const databases = Object.entries(process._databases || {});\n\n for (let i = 0; i < databases?.length; i += 1) {\n const [_provider, provider_connection] = databases[i];\n\n if (provider_connection?.pid) {\n database_process_ids.push(provider_connection.pid);\n }\n\n if (!provider_connection?.pid) {\n const provider_connections = Object.entries(provider_connection);\n\n for (let pc = 0; pc < provider_connections?.length; pc += 1) {\n const [_connection_name, connection] = provider_connections[pc];\n\n if (connection?.pid) {\n database_process_ids.push(connection.pid);\n }\n }\n }\n }\n\n return database_process_ids;\n};\n\nexport default get_database_process_ids;"],
|
|
5
|
+
"mappings": "AAAA,MAAMA,EAA2B,IAAM,CACrC,MAAMC,EAAuB,CAAC,EACxBC,EAAY,OAAO,QAAQ,QAAQ,YAAc,CAAC,CAAC,EAEzD,QAASC,EAAI,EAAGA,EAAID,GAAW,OAAQC,GAAK,EAAG,CAC7C,KAAM,CAACC,EAAWC,CAAmB,EAAIH,EAAUC,CAAC,EAMpD,GAJIE,GAAqB,KACvBJ,EAAqB,KAAKI,EAAoB,GAAG,EAG/C,CAACA,GAAqB,IAAK,CAC7B,MAAMC,EAAuB,OAAO,QAAQD,CAAmB,EAE/D,QAASE,EAAK,EAAGA,EAAKD,GAAsB,OAAQC,GAAM,EAAG,CAC3D,KAAM,CAACC,EAAkBC,CAAU,EAAIH,EAAqBC,CAAE,EAE1DE,GAAY,KACdR,EAAqB,KAAKQ,EAAW,GAAG,CAE5C,CACF,CACF,CAEA,OAAOR,CACT,EAEA,IAAOS,EAAQV",
|
|
6
|
+
"names": ["get_database_process_ids", "database_process_ids", "databases", "i", "_provider", "provider_connection", "provider_connections", "pc", "_connection_name", "connection", "get_database_process_ids_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import g from"fs";import p from"../load_settings.js";import _ from"../types.js";import u from"../dynamic_import.js";const m=await p(process.env.NODE_ENV),h=async(n="",a="",t="")=>{const r=await u(`${process.cwd()}/${a}/i18n/${n}?v=${new Date().getTime()}`);if(r&&_.is_object(r)){const s=r[t];return s||r}return{}},d=(n="",a=[])=>{let t=[];n&&t.push(n);const r=a?.filter(e=>!e?.includes("*"));return t.push(...r),t.push(m?.config?.i18n?.defaultLanguage),t?.flatMap(e=>{const s=[e];return e?.length===2&&s.push(`${e.substring(0,2)}-`),e?.length>2&&(s.push(`${e?.split("-")[0]}`),s.push(`${e?.split("-")[0]}-`)),s})?.map(e=>e[e?.length-1]==="-"?new RegExp(`^${e}[A-Z]+.js`,"g"):new RegExp(`^${e}.js`,"g"))},w=(n="")=>n.split(",")?.map(t=>t.split(";")[0]),$=async(n="",a="",t={})=>{const r=g.readdirSync(`${n}/i18n`),e=w(t?.headers["accept-language"]),s=d(t?.context?.user?.language,e);let o=null;for(let i=0;i<s.length;i+=1){const c=s[i],l=r.find(f=>!!f.match(c));if(l){o=l;break}}return await h(o,n,a)};var j=$;export{j as default};
|
|
2
|
+
//# sourceMappingURL=get_translations.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/development_server/get_translations.js"],
|
|
4
|
+
"sourcesContent": ["import fs from 'fs';\nimport load_settings from \"../load_settings.js\";\nimport types from '../types.js';\nimport dynamic_import from '../dynamic_import.js';\n\nconst settings = await load_settings(process.env.NODE_ENV);\n\nconst get_translations_file = async (language_file_path = '', joystick_build_path = '', render_component_path = '') => {\n const language_file = await dynamic_import(`${process.cwd()}/${joystick_build_path}/i18n/${language_file_path}?v=${new Date().getTime()}`);\n const is_valid_language_file = language_file && types.is_object(language_file);\n\n if (is_valid_language_file) {\n const translations_for_page = language_file[render_component_path];\n return translations_for_page ? translations_for_page : language_file;\n }\n\n return {};\n};\n\nconst get_language_preference_regexes = (user_language = '', browser_languages = []) => {\n let language_preferences = [];\n\n if (user_language) {\n language_preferences.push(user_language);\n }\n\n const filtered_browser_languages = browser_languages?.filter((language) => {\n return !language?.includes('*');\n });\n\n language_preferences.push(...filtered_browser_languages);\n language_preferences.push(settings?.config?.i18n?.defaultLanguage);\n\n return language_preferences?.flatMap((language) => {\n const variants = [language];\n\n if (language?.length === 2) {\n variants.push(`${language.substring(0, 2)}-`);\n }\n\n if (language?.length > 2) {\n variants.push(`${language?.split('-')[0]}`);\n variants.push(`${language?.split('-')[0]}-`);\n }\n\n return variants;\n })?.map((language_string) => {\n const last_character = language_string[language_string?.length - 1];\n\n if (last_character === '-') {\n return new RegExp(`^${language_string}[A-Z]+.js`, 'g');\n }\n\n return new RegExp(`^${language_string}.js`, 'g');\n });\n};\n\nconst parse_browser_languages = (languages = '') => {\n const raw_languages = languages.split(',');\n return raw_languages?.map((raw_language) => raw_language.split(';')[0]);\n};\n\nconst get_translations = async (joystick_build_path = '', render_component_path = '', req = {}) => {\n const language_files = fs.readdirSync(`${joystick_build_path}/i18n`);\n const browser_languages = parse_browser_languages(req?.headers['accept-language']);\n const language_preferences = get_language_preference_regexes(req?.context?.user?.language, browser_languages);\n\n let matching_file = null;\n\n for (let i = 0; i < language_preferences.length; i += 1) {\n const language_regex = language_preferences[i];\n const match = language_files.find((language_file) => !!language_file.match(language_regex));\n\n if (match) {\n matching_file = match;\n break;\n }\n }\n\n const translations_file = await get_translations_file(matching_file, joystick_build_path, render_component_path);\n\n return translations_file;\n};\n\nexport default get_translations;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAQ,KACf,OAAOC,MAAmB,sBAC1B,OAAOC,MAAW,cAClB,OAAOC,MAAoB,uBAE3B,MAAMC,EAAW,MAAMH,EAAc,QAAQ,IAAI,QAAQ,EAEnDI,EAAwB,MAAOC,EAAqB,GAAIC,EAAsB,GAAIC,EAAwB,KAAO,CACrH,MAAMC,EAAgB,MAAMN,EAAe,GAAG,QAAQ,IAAI,CAAC,IAAII,CAAmB,SAASD,CAAkB,MAAM,IAAI,KAAK,EAAE,QAAQ,CAAC,EAAE,EAGzI,GAF+BG,GAAiBP,EAAM,UAAUO,CAAa,EAEjD,CAC1B,MAAMC,EAAwBD,EAAcD,CAAqB,EACjE,OAAOE,GAAgDD,CACzD,CAEA,MAAO,CAAC,CACV,EAEME,EAAkC,CAACC,EAAgB,GAAIC,EAAoB,CAAC,IAAM,CACtF,IAAIC,EAAuB,CAAC,EAExBF,GACFE,EAAqB,KAAKF,CAAa,EAGzC,MAAMG,EAA6BF,GAAmB,OAAQG,GACrD,CAACA,GAAU,SAAS,GAAG,CAC/B,EAED,OAAAF,EAAqB,KAAK,GAAGC,CAA0B,EACvDD,EAAqB,KAAKV,GAAU,QAAQ,MAAM,eAAe,EAE1DU,GAAsB,QAASE,GAAa,CACjD,MAAMC,EAAW,CAACD,CAAQ,EAE1B,OAAIA,GAAU,SAAW,GACvBC,EAAS,KAAK,GAAGD,EAAS,UAAU,EAAG,CAAC,CAAC,GAAG,EAG1CA,GAAU,OAAS,IACrBC,EAAS,KAAK,GAAGD,GAAU,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,EAC1CC,EAAS,KAAK,GAAGD,GAAU,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,GAGtCC,CACT,CAAC,GAAG,IAAKC,GACgBA,EAAgBA,GAAiB,OAAS,CAAC,IAE3C,IACd,IAAI,OAAO,IAAIA,CAAe,YAAa,GAAG,EAGhD,IAAI,OAAO,IAAIA,CAAe,MAAO,GAAG,CAChD,CACH,EAEMC,EAA0B,CAACC,EAAY,KACrBA,EAAU,MAAM,GAAG,GACnB,IAAKC,GAAiBA,EAAa,MAAM,GAAG,EAAE,CAAC,CAAC,EAGlEC,EAAmB,MAAOf,EAAsB,GAAIC,EAAwB,GAAIe,EAAM,CAAC,IAAM,CACjG,MAAMC,EAAiBxB,EAAG,YAAY,GAAGO,CAAmB,OAAO,EAC7DM,EAAoBM,EAAwBI,GAAK,QAAQ,iBAAiB,CAAC,EAC3ET,EAAuBH,EAAgCY,GAAK,SAAS,MAAM,SAAUV,CAAiB,EAE5G,IAAIY,EAAgB,KAEpB,QAAS,EAAI,EAAG,EAAIX,EAAqB,OAAQ,GAAK,EAAG,CACvD,MAAMY,EAAiBZ,EAAqB,CAAC,EACvCa,EAAQH,EAAe,KAAMf,GAAkB,CAAC,CAACA,EAAc,MAAMiB,CAAc,CAAC,EAE1F,GAAIC,EAAO,CACTF,EAAgBE,EAChB,KACF,CACF,CAIA,OAF0B,MAAMtB,EAAsBoB,EAAelB,EAAqBC,CAAqB,CAGjH,EAEA,IAAOoB,EAAQN",
|
|
6
|
+
"names": ["fs", "load_settings", "types", "dynamic_import", "settings", "get_translations_file", "language_file_path", "joystick_build_path", "render_component_path", "language_file", "translations_for_page", "get_language_preference_regexes", "user_language", "browser_languages", "language_preferences", "filtered_browser_languages", "language", "variants", "language_string", "parse_browser_languages", "languages", "raw_language", "get_translations", "req", "language_files", "matching_file", "language_regex", "match", "get_translations_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import p from"query-string";import{WebSocketServer as i}from"ws";import g from"../generate_id.js";import N from"./get_translations.js";process.title="joystick_hmr";var u=(()=>{const a=new i({port:parseInt(process.env.PORT,10)+1,path:"/_joystick/hmr"});process.on("message",async c=>{const e=JSON.parse(c);if(typeof process.HMR_CONNECTIONS=="object"&&e?.type){const t=Object.values(process.HMR_CONNECTIONS);for(let n=0;n<t?.length;n+=1){const s=t[n];s?.connection?.send&&(e?.type==="BUILD_ERROR"&&s.connection.send(JSON.stringify({type:"BUILD_ERROR"})),e?.type==="FILE_CHANGE"&&s.connection.send(JSON.stringify({type:"FILE_CHANGE",settings:e?.settings?{global:e?.settings?.global,public:e?.settings?.public}:null,i18n:e?.i18n_change?await N(".joystick/build",s?.page_component_path,{headers:{"accept-language":s?.browser_language},context:{user:{language:s?.user_language}}}):null,index_html_changed:e?.index_html_change,index_css_changed:e?.index_css_change,index_client_changed:e?.index_client_change})))}}}),a.on("connection",function(e,t={}){const n=g(16),[s,r]=t?.url?.split("?"),o=p.parse(r);process.HMR_CONNECTIONS={...process.HMR_CONNECTIONS||{},[n]:{connection:e,browser_language:o?.browser_language,user_language:o?.user_language,page_component_path:o?.page_component_path}},Object.keys(process.HMR_CONNECTIONS||{})?.length>0&&process.send({type:"HAS_HMR_CONNECTIONS"}),e.on("message",_=>{JSON.parse(_)?.type==="HMR_UPDATE_COMPLETE"&&process.send({type:"HMR_UPDATE_COMPLETE"})}),e.on("close",()=>{process.HMR_CONNECTIONS[n]&&(delete process.HMR_CONNECTIONS[n],Object.keys(process.HMR_CONNECTIONS||{})?.length===0&&process.send({type:"HAS_NO_HMR_CONNECTIONS"}))})})})();export{u as default};
|
|
2
|
+
//# sourceMappingURL=hmr_server.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/development_server/hmr_server.js"],
|
|
4
|
+
"sourcesContent": ["import queryString from 'query-string';\nimport { WebSocketServer } from \"ws\";\nimport generate_id from \"../generate_id.js\";\nimport get_translations from './get_translations.js';\n\nprocess.title = 'joystick_hmr';\n\nexport default (() => {\n const websocket_server = new WebSocketServer({\n port: parseInt(process.env.PORT, 10) + 1,\n path: \"/_joystick/hmr\",\n });\n\n process.on(\"message\", async (message) => {\n const parsed_message = JSON.parse(message);\n\n if (typeof process.HMR_CONNECTIONS === \"object\" && !!parsed_message?.type) {\n const connections = Object.values(process.HMR_CONNECTIONS);\n\n for (let i = 0; i < connections?.length; i += 1) {\n const connection = connections[i];\n\n if (connection?.connection?.send) {\n if (parsed_message?.type === 'BUILD_ERROR') {\n connection.connection.send(JSON.stringify({ type: 'BUILD_ERROR' }));\n }\n\n if (parsed_message?.type === 'FILE_CHANGE') {\n connection.connection.send(\n JSON.stringify({\n type: \"FILE_CHANGE\",\n settings: parsed_message?.settings ? {\n global: parsed_message?.settings?.global,\n public: parsed_message?.settings?.public,\n } : null,\n i18n: parsed_message?.i18n_change ? await get_translations('.joystick/build', connection?.page_component_path, {\n headers: {\n 'accept-language': connection?.browser_language,\n },\n context: {\n user: {\n language: connection?.user_language,\n },\n }\n }) : null,\n index_html_changed: parsed_message?.index_html_change,\n index_css_changed: parsed_message?.index_css_change,\n index_client_changed: parsed_message?.index_client_change,\n })\n );\n }\n }\n }\n }\n });\n\n websocket_server.on(\"connection\", function connection(websocket_connection, connection_request = {}) {\n const connection_id = generate_id(16);\n const [_path, params] = connection_request?.url?.split(\"?\");\n const connection_params = queryString.parse(params);\n\n process.HMR_CONNECTIONS = {\n ...(process.HMR_CONNECTIONS || {}),\n [connection_id]: {\n connection: websocket_connection,\n browser_language: connection_params?.browser_language,\n user_language: connection_params?.user_language,\n page_component_path: connection_params?.page_component_path,\n },\n };\n\n if (Object.keys(process.HMR_CONNECTIONS || {})?.length > 0) {\n process.send({ type: \"HAS_HMR_CONNECTIONS\" });\n }\n\n websocket_connection.on(\"message\", (message) => {\n const parsed_message = JSON.parse(message);\n\n if (parsed_message?.type === \"HMR_UPDATE_COMPLETE\") {\n process.send({ type: \"HMR_UPDATE_COMPLETE\" });\n }\n });\n\n websocket_connection.on(\"close\", () => {\n if (process.HMR_CONNECTIONS[connection_id]) {\n delete process.HMR_CONNECTIONS[connection_id];\n\n if (Object.keys(process.HMR_CONNECTIONS || {})?.length === 0) {\n process.send({ type: \"HAS_NO_HMR_CONNECTIONS\" });\n }\n }\n });\n });\n})();\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAiB,eACxB,OAAS,mBAAAC,MAAuB,KAChC,OAAOC,MAAiB,oBACxB,OAAOC,MAAsB,wBAE7B,QAAQ,MAAQ,eAEhB,IAAOC,GAAS,IAAM,CACpB,MAAMC,EAAmB,IAAIJ,EAAgB,CAC3C,KAAM,SAAS,QAAQ,IAAI,KAAM,EAAE,EAAI,EACvC,KAAM,gBACR,CAAC,EAED,QAAQ,GAAG,UAAW,MAAOK,GAAY,CACvC,MAAMC,EAAiB,KAAK,MAAMD,CAAO,EAEzC,GAAI,OAAO,QAAQ,iBAAoB,UAAcC,GAAgB,KAAM,CACzE,MAAMC,EAAc,OAAO,OAAO,QAAQ,eAAe,EAEzD,QAASC,EAAI,EAAGA,EAAID,GAAa,OAAQC,GAAK,EAAG,CAC/C,MAAMC,EAAaF,EAAYC,CAAC,EAE5BC,GAAY,YAAY,OACtBH,GAAgB,OAAS,eAC3BG,EAAW,WAAW,KAAK,KAAK,UAAU,CAAE,KAAM,aAAc,CAAC,CAAC,EAGhEH,GAAgB,OAAS,eAC3BG,EAAW,WAAW,KACpB,KAAK,UAAU,CACb,KAAM,cACN,SAAUH,GAAgB,SAAW,CACnC,OAAQA,GAAgB,UAAU,OAClC,OAAQA,GAAgB,UAAU,MACpC,EAAI,KACJ,KAAMA,GAAgB,YAAc,MAAMJ,EAAiB,kBAAmBO,GAAY,oBAAqB,CAC7G,QAAS,CACP,kBAAmBA,GAAY,gBACjC,EACA,QAAS,CACP,KAAM,CACJ,SAAUA,GAAY,aACxB,CACF,CACF,CAAC,EAAI,KACL,mBAAoBH,GAAgB,kBACpC,kBAAmBA,GAAgB,iBACnC,qBAAsBA,GAAgB,mBACxC,CAAC,CACH,EAGN,CACF,CACF,CAAC,EAEDF,EAAiB,GAAG,aAAc,SAAoBM,EAAsBC,EAAqB,CAAC,EAAG,CACnG,MAAMC,EAAgBX,EAAY,EAAE,EAC9B,CAACY,EAAOC,CAAM,EAAIH,GAAoB,KAAK,MAAM,GAAG,EACpDI,EAAoBhB,EAAY,MAAMe,CAAM,EAElD,QAAQ,gBAAkB,CACxB,GAAI,QAAQ,iBAAmB,CAAC,EAChC,CAACF,CAAa,EAAG,CACf,WAAYF,EACZ,iBAAkBK,GAAmB,iBACrC,cAAeA,GAAmB,cAClC,oBAAqBA,GAAmB,mBAC1C,CACF,EAEI,OAAO,KAAK,QAAQ,iBAAmB,CAAC,CAAC,GAAG,OAAS,GACvD,QAAQ,KAAK,CAAE,KAAM,qBAAsB,CAAC,EAG9CL,EAAqB,GAAG,UAAYL,GAAY,CACvB,KAAK,MAAMA,CAAO,GAErB,OAAS,uBAC3B,QAAQ,KAAK,CAAE,KAAM,qBAAsB,CAAC,CAEhD,CAAC,EAEDK,EAAqB,GAAG,QAAS,IAAM,CACjC,QAAQ,gBAAgBE,CAAa,IACvC,OAAO,QAAQ,gBAAgBA,CAAa,EAExC,OAAO,KAAK,QAAQ,iBAAmB,CAAC,CAAC,GAAG,SAAW,GACzD,QAAQ,KAAK,CAAE,KAAM,wBAAyB,CAAC,EAGrD,CAAC,CACH,CAAC,CACH,GAAG",
|
|
6
|
+
"names": ["queryString", "WebSocketServer", "generate_id", "get_translations", "hmr_server_default", "websocket_server", "message", "parsed_message", "connections", "i", "connection", "websocket_connection", "connection_request", "connection_id", "_path", "params", "connection_params"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import n from"chalk";import m from"child_process";import x from"fs";import"os";import g,{dirname as O}from"path";import{fileURLToPath as b}from"url";import k from"util";import u from"./check_if_port_occupied.js";import i from"../cli_log.js";import p from"./get_database_process_ids.js";import S from"../get_platform_safe_path.js";import y from"../kill_port_process.js";import h from"../load_settings.js";import $ from"../loader.js";import _ from"../path_exists.js";import v from"../required_files.js";import j from"./start_app_server.js";import D from"./start_databases.js";import T from"./start_hmr_server.js";import R from"./watch_for_changes/index.js";import I from"../constants.js";import N from"./kill_process_ids.js";import H from"./run_tests.js";import C from"../debounce.js";import M from"./databases/download_database_binary.js";const{stat:A}=x.promises,P=k.promisify(m.exec),d=parseInt(process?.version?.split(".")[0]?.replace("v",""),10),V=b(import.meta.url),f=O(V),l=[],q=async(s=!1)=>{const e=p();await H({watch:s,__dirname:f,process_ids:[...l,...e],cleanup_process:process.cleanup_process})},L=(s=[],e=0,t="")=>{const o=["--no-warnings"];e<19&&o.push("--experimental-specifier-resolution=node");const r=m.fork(g.resolve(`${t}/cleanup.js`),[],{detached:!0,silent:!0});process.cleanup_process=r,process.on("SIGINT",async()=>{const c=p();r.send(JSON.stringify({process_ids:[...s,...c]})),process.exit()}),process.on("SIGTERM",async()=>{const c=p();r.send(JSON.stringify({process_ids:[...s,...c]})),process.exit()})},G=async(s=[])=>{const e=s?.find(a=>a?.path?.match(I.SETTINGS_FILE_NAME_REGEX)?.length>0),t=s?.find(a=>a?.path?.includes("i18n")),o=s?.find(a=>a?.path?.includes("index.html")),r=s?.find(a=>a?.path?.includes("index.css")||a?.path?.includes("css/")),c=s?.find(a=>a?.path?.includes("index.client.js"));process.hmr_server_process.send(JSON.stringify({type:"FILE_CHANGE",settings:e?await h(process.env.NODE_ENV):null,i18n_change:!!t,index_html_change:!!o,index_css_change:!!r,index_client_change:!!c}))},J=(s=0,e=!1,t={},o=[])=>{process.hmr_server_process.on("message",async r=>{["HAS_HMR_CONNECTIONS","HAS_NO_HMR_CONNECTIONS","HMR_UPDATE_COMPLETE"].includes(r?.type)||process.loader.print(r),r?.type==="HAS_HMR_CONNECTIONS"&&(process.hmr_server_process.has_connections=!0),r?.type==="HAS_NO_HMR_CONNECTIONS"&&(process.hmr_server_process.has_connections=!1),r?.type==="HMR_UPDATE_COMPLETE"&&process.app_server_process&&!process.app_server_restarting&&(process.app_server_restarting=!0,w(s,e,t,o))})},U=()=>{process.hmr_server_process.on("error",s=>{i(s.toString(),{level:"danger",docs:"https://github.com/cheatcode/joystick"})}),process.hmr_server_process.stdout.on("data",s=>{console.log(s.toString())}),process.hmr_server_process.stderr.on("data",s=>{i(s.toString(),{level:"danger",docs:"https://github.com/cheatcode/joystick"})})},F=(s=0,e="",t=!1,o={},r=[])=>{process.hmr_server_process=T(s,e),l.push(process.hmr_server_process?.pid),U(),J(s,t,o,r)},B=async(s={})=>{const e=await h(process.env.NODE_ENV),t=e?.config?.databases?JSON.stringify(e?.config?.databases):"",o=s?.config?.databases?JSON.stringify(s?.config?.databases):"";return t!==o},w=async(s=0,e=!1,t=null,o=[])=>{C(async()=>{if(await B(t)){const c=p();i(`Database configuration has changed in settings.${process.env.NODE_ENV}.json. Please restart your app to add, change, or remove databases.`,{level:"danger",docs:"https://cheatcode.co/docs/joystick/structure"}),N([process.hmr_server_process?.pid,process.app_server_process?.pid,...c]),process.exit(0)}else N([...process.app_server_process.external_process_ids||[]]),await y(process.env.PORT),E(s,e,o)},300)},z=(s=!1)=>{process.app_server_process.external_process_ids=[],process.app_server_process.on("message",e=>{e?.external_process_id&&(process.app_server_process.external_process_ids=[...process.app_server_process.external_process_ids||[],e?.external_process_id])}),process.app_server_process.on("error",e=>{i(e.toString(),{level:"danger",docs:"https://github.com/cheatcode/joystick"})}),process.app_server_process.stdout.on("data",e=>{const t=e.toString(),o=t.includes("App running at:");t&&o&&process.env.NODE_ENV!=="test"&&process.loader.print(t),t&&!o&&!t.includes("BUILD_ERROR")&&console.log(t),t&&o&&process.env.NODE_ENV==="test"&&q(s)}),process.app_server_process.stderr.on("data",e=>{i(e.toString(),{level:"danger",docs:"https://cheatcode.co/docs/joystick"})})},E=(s=0,e=!1,t=[])=>{process.app_server_process=j(s,e,t),l.push(process.app_server_process?.pid),z(e),process.app_server_restarting=!1},X=async(s={})=>{const e=s?.config?.databases?.map((t={})=>t?.provider);for(let t=0;t<e?.length;t+=1){const o=e[t];await M(o)}},K=(s={},e=2600)=>{process.title=s?.environment==="test"?"joystick_test":"joystick",process.project_folder=g.basename(process.cwd()),process.loader=new $,s?.environment==="test"&&process.loader.print("Initializing test environment..."),process.env.LOGS_PATH=s?.logs||null,process.env.NODE_ENV=s?.environment||"development",process.env.PORT=e,process.env.IS_DEBUG_MODE=s?.debug},Q=(s=2600)=>{i(`Port ${s} is already occupied. To start Joystick on this port, clear it and try again.`,{level:"danger"}),process.exit(0)},W=(s=2600)=>parseInt(s||2600,10),Y=async()=>{const s=S(`${process.cwd()}/.joystick/build`);await _(s)&&await P(`${process.platform==="win32"?"rmdir /s /q":"rm -rf"} ${s}`)},Z=async()=>{const s=[];for(let e=0;e<v?.length;e+=1){const t=v[e],o=await _(`${process.cwd()}/${t.path}`),r=o&&await A(`${process.cwd()}/${t.path}`);t&&t.type==="file"&&(!o||o&&!r.isFile())&&s.push({type:"file",path:t.path}),t&&t.type==="directory"&&(!o||o&&!r.isDirectory())&&s.push({type:"directory",path:t.path})}if(s?.length>0){const e=s?.filter(r=>r.type==="file"),t=s?.filter(r=>r.type==="directory");let o=`The following paths are missing and required in a Joystick project:
|
|
2
|
+
|
|
3
|
+
`;if(e?.length>0){o+=` ${n.yellow(">")} Required Files:
|
|
4
|
+
|
|
5
|
+
`;for(let r=0;r<e?.length;r+=1){const c=e[r],a=r+1===e?.length;o+=` ${n.red(`/${c.path}
|
|
6
|
+
${a&&t?.length>0?`
|
|
7
|
+
`:""}`)}`}}if(t?.length>0){o+=` ${n.yellow(">")} Required Directories:
|
|
8
|
+
|
|
9
|
+
`;for(let r=0;r<t?.length;r+=1){const c=t[r];o+=` ${n.red(`/${c.path}
|
|
10
|
+
`)}`}}i(o,{level:"danger",docs:"https://cheatcode.co/docs/joystick/structure"}),process.exit(0)}},ss=async()=>{const s=await _(`${process.cwd()}/.joystick`),e=await _(`${process.cwd()}/tests`);process.env.NODE_ENV==="test"&&(!s||!e)&&(i("joystick test must be run in a directory with a .joystick folder and tests folder.",{level:"danger",docs:"https://cheatcode.co/docs/joystick/cli/test"}),process.exit(0)),process.env.NODE_ENV!=="test"&&!s&&(i("joystick start must be run in a directory with a .joystick folder.",{level:"danger",docs:"https://cheatcode.co/docs/joystick/cli/start"}),process.exit(0))},es=async(s={})=>{await ss(),await Z(),await Y();const e=W(s?.port),t=await u(e),o=await u(e+1);t&&Q(e),o&&y(e),K(s,e);const r=await h(process.env.NODE_ENV);await X(r),await D({environment:process.env.NODE_ENV,port:e,settings:r}),R({hot_module_reload:(c=[])=>G(c),restart_app_server:()=>w(d,s?.watch,r,s?.imports),start_app_server:()=>E(d,s?.watch,s?.imports),start_hmr_server:s?.environment!=="test"?()=>F(d,f,s?.watch,r,s?.imports):null},{excluded_paths:r?.config?.build?.excluded_paths,custom_copy_paths:r?.config?.build?.copy_paths?.map(c=>({path:c}))||[]}),L(l,d,f)};var $s=es;export{$s as default};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/development_server/index.js"],
|
|
4
|
+
"sourcesContent": ["import chalk from 'chalk';\nimport child_process from 'child_process';\nimport fs from 'fs';\nimport os from 'os';\nimport path, { dirname } from \"path\";\nimport { fileURLToPath } from \"url\";\nimport util from 'util';\nimport check_if_port_occupied from './check_if_port_occupied.js';\nimport cli_log from '../cli_log.js';\nimport get_database_process_ids from './get_database_process_ids.js';\n import get_platform_safe_path from '../get_platform_safe_path.js';\nimport kill_port_process from '../kill_port_process.js';\nimport load_settings from '../load_settings.js';\nimport Loader from '../loader.js';\nimport path_exists from '../path_exists.js';\nimport required_files from '../required_files.js';\nimport start_app_server from './start_app_server.js';\nimport start_databases from './start_databases.js';\nimport start_hmr_server from './start_hmr_server.js';\nimport watch_for_changes from './watch_for_changes/index.js';\nimport constants from '../constants.js';\nimport kill_process_ids from './kill_process_ids.js';\nimport run_tests from './run_tests.js';\nimport debounce from '../debounce.js';\nimport download_database_binary from './databases/download_database_binary.js';\n\nconst { stat } = fs.promises;\nconst exec = util.promisify(child_process.exec);\n\nconst node_major_version = parseInt(\n process?.version?.split(\".\")[0]?.replace(\"v\", \"\"),\n 10\n);\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\nconst process_ids = [];\n\nconst handle_run_tests = async (watch = false) => {\n const database_process_ids = get_database_process_ids();\n await run_tests({\n watch,\n __dirname,\n process_ids: [\n ...process_ids,\n ...database_process_ids,\n ],\n cleanup_process: process.cleanup_process,\n });\n};\n\nconst handle_signal_events = (process_ids = [], node_major_version = 0, __dirname = '') => {\n const exec_argv = [\"--no-warnings\"];\n\n if (node_major_version < 19) {\n exec_argv.push(\"--experimental-specifier-resolution=node\");\n }\n\n const cleanup_process = child_process.fork(\n path.resolve(`${__dirname}/cleanup.js`),\n [],\n {\n // NOTE: Run in detached mode so when parent process dies, the child still runs\n // and cleanup completes. Keep silent as we don't wan't/expect any messages.\n detached: true,\n silent: true,\n }\n );\n\n process.cleanup_process = cleanup_process;\n\n process.on(\"SIGINT\", async () => {\n const database_process_ids = get_database_process_ids();\n cleanup_process.send(JSON.stringify(({ process_ids: [...process_ids, ...database_process_ids] })));\n process.exit();\n });\n\n process.on(\"SIGTERM\", async () => {\n const database_process_ids = get_database_process_ids();\n cleanup_process.send(JSON.stringify(({ process_ids: [...process_ids, ...database_process_ids] })));\n process.exit();\n });\n};\n\nconst handle_signal_hmr_update = async (jobs = []) => {\n const has_settings_change = jobs?.find((job) => (job?.path?.match(constants.SETTINGS_FILE_NAME_REGEX))?.length > 0);\n const has_i18n_change = jobs?.find((job) => job?.path?.includes('i18n'));\n const has_index_html_change = jobs?.find((job) => job?.path?.includes('index.html'));\n const has_index_css_change = jobs?.find((job) => {\n return job?.path?.includes('index.css') || job?.path?.includes('css/');\n });\n const has_index_client_change = jobs?.find((job) => job?.path?.includes('index.client.js'));\n\n process.hmr_server_process.send(JSON.stringify({\n type: 'FILE_CHANGE',\n settings: has_settings_change ? await load_settings(process.env.NODE_ENV) : null,\n i18n_change: !!has_i18n_change,\n index_html_change: !!has_index_html_change,\n index_css_change: !!has_index_css_change,\n index_client_change: !!has_index_client_change,\n }));\n};\n\nconst handle_hmr_server_process_messages = (node_major_version = 0, watch = false, old_settings = {}, imports = []) => {\n process.hmr_server_process.on(\"message\", async (message) => {\n const process_messages = [\n \"HAS_HMR_CONNECTIONS\",\n \"HAS_NO_HMR_CONNECTIONS\",\n \"HMR_UPDATE_COMPLETE\",\n ];\n\n if (!process_messages.includes(message?.type)) {\n process.loader.print(message);\n }\n\n if (message?.type === \"HAS_HMR_CONNECTIONS\") {\n process.hmr_server_process.has_connections = true;\n }\n\n if (message?.type === \"HAS_NO_HMR_CONNECTIONS\") {\n process.hmr_server_process.has_connections = false;\n }\n\n if (message?.type === \"HMR_UPDATE_COMPLETE\") {\n if (process.app_server_process && !process.app_server_restarting) {\n process.app_server_restarting = true;\n handle_restart_app_server(node_major_version, watch, old_settings, imports);\n }\n }\n });\n};\n\nconst handle_hmr_server_process_stdio = () => {\n process.hmr_server_process.on(\"error\", (error) => {\n cli_log(error.toString(), {\n level: \"danger\",\n docs: \"https://github.com/cheatcode/joystick\",\n });\n });\n\n process.hmr_server_process.stdout.on(\"data\", (data) => {\n console.log(data.toString());\n });\n\n process.hmr_server_process.stderr.on(\"data\", (data) => {\n cli_log(data.toString(), {\n level: \"danger\",\n docs: \"https://github.com/cheatcode/joystick\",\n });\n });\n};\n\nconst handle_start_hmr_server = (node_major_version = 0, __dirname = '', watch = false, old_settings = {}, imports = []) => {\n\tprocess.hmr_server_process = start_hmr_server(node_major_version, __dirname);\n process_ids.push(process.hmr_server_process?.pid);\n handle_hmr_server_process_stdio();\n handle_hmr_server_process_messages(node_major_version, watch, old_settings, imports);\n};\n\nconst check_if_database_changes = async (old_settings = {}) => {\n const new_settings = await load_settings(process.env.NODE_ENV);\n const new_databse_settings = new_settings?.config?.databases ? JSON.stringify(new_settings?.config?.databases) : '';\n const old_database_settings = old_settings?.config?.databases ? JSON.stringify(old_settings?.config?.databases) : '';\n return new_databse_settings !== old_database_settings;\n};\n\nconst handle_restart_app_server = async (node_major_version = 0, watch = false, old_settings = null, imports = []) => {\n debounce(async () => {\n const has_database_changes = await check_if_database_changes(old_settings);\n\n if (has_database_changes) {\n const database_process_ids = get_database_process_ids();\n\n cli_log(`Database configuration has changed in settings.${process.env.NODE_ENV}.json. Please restart your app to add, change, or remove databases.`, {\n level: \"danger\",\n docs: \"https://cheatcode.co/docs/joystick/structure\",\n });\n\n kill_process_ids([\n process.hmr_server_process?.pid,\n process.app_server_process?.pid,\n ...database_process_ids,\n ]);\n\n process.exit(0);\n } else {\n kill_process_ids([\n ...(process.app_server_process.external_process_ids || []),\n ]);\n\n await kill_port_process(process.env.PORT);\n handle_start_app_server(node_major_version, watch, imports);\n }\n }, 300);\n};\n\nconst handle_app_server_process_stdio = (watch = false) => {\n // NOTE: Default this in case we never get any external process IDs.\n process.app_server_process.external_process_ids = [];\n\n process.app_server_process.on('message', (message_from_child) => {\n if (message_from_child?.external_process_id) {\n process.app_server_process.external_process_ids = [\n ...(process.app_server_process.external_process_ids || []),\n message_from_child?.external_process_id,\n ];\n }\n });\n\n process.app_server_process.on('error', (error) => {\n cli_log(error.toString(), {\n level: \"danger\",\n docs: \"https://github.com/cheatcode/joystick\",\n });\n });\n\n process.app_server_process.stdout.on(\"data\", (data) => {\n \tconst stdout = data.toString();\n const is_startup_notification = stdout.includes(\"App running at:\");\n\n \tif (stdout && is_startup_notification && process.env.NODE_ENV !== 'test') {\n \t\tprocess.loader.print(stdout);\n \t}\n\n if (stdout && !is_startup_notification && !stdout.includes(\"BUILD_ERROR\")) {\n console.log(stdout);\n }\n\n // NOTE: Run tests here so we can guarantee app server is running. Do a slight delay\n // to ensure that test routes are registered.\n if (stdout && is_startup_notification && process.env.NODE_ENV === 'test') {\n handle_run_tests(watch);\n }\n });\n\n process.app_server_process.stderr.on(\"data\", (data) => {\n cli_log(data.toString(), {\n level: \"danger\",\n docs: \"https://cheatcode.co/docs/joystick\",\n });\n });\n};\n\nconst handle_start_app_server = (node_major_version = 0, watch = false, imports = []) => {\n\tprocess.app_server_process = start_app_server(node_major_version, watch, imports);\n process_ids.push(process.app_server_process?.pid);\n handle_app_server_process_stdio(watch);\n process.app_server_restarting = false;\n};\n\nconst install_missing_databases = async (settings = {}) => {\n const required_databases = settings?.config?.databases?.map((database = {}) => {\n return database?.provider;\n });\n\n for (let i = 0; i < required_databases?.length; i += 1) {\n const provider_name = required_databases[i];\n await download_database_binary(provider_name);\n }\n};\n\nconst set_process_variables = (development_server_options = {}, port = 2600) => {\n process.title = development_server_options?.environment === 'test' ? \"joystick_test\" : 'joystick';\n process.project_folder = path.basename(process.cwd());\n process.loader = new Loader();\n\n if (development_server_options?.environment === 'test') {\n process.loader.print(\"Initializing test environment...\");\n }\n\n process.env.LOGS_PATH = development_server_options?.logs || null;\n process.env.NODE_ENV = development_server_options?.environment || \"development\";\n process.env.PORT = port;\n process.env.IS_DEBUG_MODE = development_server_options?.debug;\n};\n\nconst warn_app_port_occupied = (port = 2600) => {\n cli_log(`Port ${port} is already occupied. To start Joystick on this port, clear it and try again.`, {\n level: 'danger',\n });\n\n process.exit(0);\n};\n\nconst get_port = (port = 2600) => {\n\treturn parseInt(port || 2600, 10);\n};\n\nconst clean_up_existing_build = async () => {\n\tconst build_path = get_platform_safe_path(`${process.cwd()}/.joystick/build`);\n\n\tif (await path_exists(build_path)) {\n\t\tawait exec(`${process.platform === 'win32' ? 'rmdir /s /q' : 'rm -rf'} ${build_path}`);\n\t}\n};\n\nconst check_for_required_files = async () => {\n const missing_files = [];\n\n for (let i = 0; i < required_files?.length; i += 1) {\n const required_file = required_files[i];\n const exists = await path_exists(`${process.cwd()}/${required_file.path}`);\n const stats = exists && await stat(`${process.cwd()}/${required_file.path}`);\n\n if (required_file && required_file.type === \"file\" && (!exists || (exists && !stats.isFile()))) {\n missing_files.push({ type: 'file', path: required_file.path });\n }\n\n if (required_file && required_file.type === \"directory\" && (!exists || (exists && !stats.isDirectory()))) {\n missing_files.push({ type: 'directory', path: required_file.path });\n }\n }\n\n if (missing_files?.length > 0) {\n const files = missing_files?.filter((path) => path.type === 'file');\n const directories = missing_files?.filter((path) => path.type === 'directory');\n\n let error = `The following paths are missing and required in a Joystick project:\\n\\n`;\n\n if (files?.length > 0) {\n error += ` ${chalk.yellow('>')} Required Files:\\n\\n`;\n\n for (let i = 0; i < files?.length; i += 1) {\n const file = files[i];\n const is_last_file = i +1 === files?.length;\n error += ` ${chalk.red(`/${file.path}\\n${is_last_file && directories?.length > 0 ? '\\n' : ''}`)}`;\n }\n }\n\n if (directories?.length > 0) {\n error += ` ${chalk.yellow('>')} Required Directories:\\n\\n`;\n\n for (let i = 0; i < directories?.length; i += 1) {\n const file = directories[i];\n error += ` ${chalk.red(`/${file.path}\\n`)}`;\n }\n }\n\n cli_log(error, {\n level: \"danger\",\n docs: \"https://cheatcode.co/docs/joystick/structure\",\n });\n\n process.exit(0);\n }\n};\n\nconst warn_invalid_joystick_environment = async () => {\n const has_joystick_folder = await path_exists(`${process.cwd()}/.joystick`);\n const has_tests_folder = await path_exists(`${process.cwd()}/tests`);\n\n if (process.env.NODE_ENV === 'test' && (!has_joystick_folder || !has_tests_folder)) {\n cli_log(\n \"joystick test must be run in a directory with a .joystick folder and tests folder.\",\n {\n level: \"danger\",\n docs: \"https://cheatcode.co/docs/joystick/cli/test\",\n }\n );\n\n process.exit(0);\n }\n\n if (process.env.NODE_ENV !== 'test' && !has_joystick_folder) {\n cli_log(\n \"joystick start must be run in a directory with a .joystick folder.\",\n {\n level: \"danger\",\n docs: \"https://cheatcode.co/docs/joystick/cli/start\",\n }\n );\n\n process.exit(0);\n }\n};\n\nconst development_server = async (development_server_options = {}) => {\n await warn_invalid_joystick_environment();\n await check_for_required_files();\n\n\tawait clean_up_existing_build();\n\n\tconst port = get_port(development_server_options?.port);\n\tconst app_port_occupied = await check_if_port_occupied(port);\n const hmr_port_occupied = await check_if_port_occupied(port + 1);\n\n if (app_port_occupied) {\n \twarn_app_port_occupied(port);\n }\n\n if (hmr_port_occupied) {\n \tkill_port_process(port);\n }\n\n set_process_variables(development_server_options, port);\n\n const settings = await load_settings(process.env.NODE_ENV);\n\n await install_missing_databases(settings);\n\n await start_databases({\n environment: process.env.NODE_ENV,\n port,\n settings\n });\n\n watch_for_changes({\n hot_module_reload: (jobs = []) => handle_signal_hmr_update(jobs),\n restart_app_server: () => handle_restart_app_server(\n node_major_version,\n development_server_options?.watch,\n settings,\n development_server_options?.imports,\n ),\n start_app_server: () => handle_start_app_server(\n node_major_version,\n development_server_options?.watch,\n development_server_options?.imports,\n ),\n start_hmr_server: development_server_options?.environment !== 'test' ? () => handle_start_hmr_server(\n node_major_version,\n __dirname,\n development_server_options?.watch,\n settings,\n development_server_options?.imports,\n ) : null,\n }, {\n excluded_paths: settings?.config?.build?.excluded_paths,\n custom_copy_paths: settings?.config?.build?.copy_paths?.map((path) => {\n return { path };\n }) || [],\n });\n\n handle_signal_events(process_ids, node_major_version, __dirname);\n};\n\nexport default development_server;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["chalk", "child_process", "fs", "path", "dirname", "fileURLToPath", "util", "check_if_port_occupied", "cli_log", "get_database_process_ids", "get_platform_safe_path", "kill_port_process", "load_settings", "Loader", "path_exists", "required_files", "start_app_server", "start_databases", "start_hmr_server", "watch_for_changes", "constants", "kill_process_ids", "run_tests", "debounce", "download_database_binary", "stat", "exec", "node_major_version", "__filename", "__dirname", "process_ids", "handle_run_tests", "watch", "database_process_ids", "handle_signal_events", "exec_argv", "cleanup_process", "handle_signal_hmr_update", "jobs", "has_settings_change", "job", "has_i18n_change", "has_index_html_change", "has_index_css_change", "has_index_client_change", "handle_hmr_server_process_messages", "old_settings", "imports", "message", "handle_restart_app_server", "handle_hmr_server_process_stdio", "error", "data", "handle_start_hmr_server", "check_if_database_changes", "new_settings", "new_databse_settings", "old_database_settings", "handle_start_app_server", "handle_app_server_process_stdio", "message_from_child", "stdout", "is_startup_notification", "install_missing_databases", "settings", "required_databases", "database", "i", "provider_name", "set_process_variables", "development_server_options", "port", "warn_app_port_occupied", "get_port", "clean_up_existing_build", "build_path", "check_for_required_files", "missing_files", "required_file", "exists", "stats", "files", "directories", "file", "is_last_file", "warn_invalid_joystick_environment", "has_joystick_folder", "has_tests_folder", "development_server", "app_port_occupied", "hmr_port_occupied", "index_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/development_server/kill_process_ids.js"],
|
|
4
|
+
"sourcesContent": ["const kill_process_ids = (process_ids = []) => {\n for (let i = 0; i < process_ids?.length; i += 1) {\n const process_id = process_ids[i];\n process.kill(process_id);\n }\n};\n\nexport default kill_process_ids;\n"],
|
|
5
|
+
"mappings": "AAAA,MAAMA,EAAmB,CAACC,EAAc,CAAC,IAAM,CAC7C,QAASC,EAAI,EAAGA,EAAID,GAAa,OAAQC,GAAK,EAAG,CAC/C,MAAMC,EAAaF,EAAYC,CAAC,EAChC,QAAQ,KAAKC,CAAU,CACzB,CACF,EAEA,IAAOC,EAAQJ",
|
|
6
|
+
"names": ["kill_process_ids", "process_ids", "i", "process_id", "kill_process_ids_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import t from"child_process";import a from"../cli_log.js";const i=(e="")=>{if(e?.includes("Using configuration"))return null;if(e?.includes("No tests found"))return a("No tests found. Add tests in the /tests folder at the root of your Joystick app.",{level:"danger",docs:"https://cheatcode.co/docs/joystick/test/setup"});console.log(e)},r=(e="")=>{if(e?.includes("Using configuration"))return null;if(e?.includes("No tests found in")){const[s]=e?.split(",");return console.log(`${s}
|
|
2
|
+
`)}console.log(e)},d=(e={},s={})=>{e.stdout.on("data",function(n){const o=n.toString();r(o,s)}),e.stderr.on("data",function(n){const o=n.toString();i(o,s)})},l=(e={})=>{const s=`${process.cwd()}/node_modules/.bin/ava`;return new Promise(n=>{const o=t.exec(`DEBUG=ava:watcher && ${s} --config ${e?.__dirname}/ava_config.js ${e?.watch?"--watch":""}`,{stdio:"inherit",env:{...process.env,databases:process.databases,FORCE_COLOR:"1"}},c=>{c?(e.cleanup_process.send(JSON.stringify({process_ids:e?.process_ids})),process.exit(0)):(e.cleanup_process.send(JSON.stringify({process_ids:e?.process_ids})),process.exit(0))});d(o,e)})};var u=l;export{u as default};
|
|
3
|
+
//# sourceMappingURL=run_tests.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/development_server/run_tests.js"],
|
|
4
|
+
"sourcesContent": ["import child_process from \"child_process\";\nimport cli_log from \"../cli_log.js\";\n\nconst handle_ava_stderr = (stderr = '') => {\n // NOTE: Squash output about using a configuration file (we always do in the framework).\n if (stderr?.includes('Using configuration')) {\n return null;\n }\n\n if (stderr?.includes('No tests found')) {\n return cli_log('No tests found. Add tests in the /tests folder at the root of your Joystick app.', {\n level: 'danger',\n docs: 'https://cheatcode.co/docs/joystick/test/setup',\n });\n }\n \n console.log(stderr);\n};\n\nconst handle_ava_stdout = (stdout = '') => {\n // NOTE: Squash output about using a configuration file (we always do in the framework).\n if (stdout?.includes('Using configuration')) {\n return null;\n }\n\n if (stdout?.includes('No tests found in')) {\n const [message] = stdout?.split(',');\n return console.log(`${message}\\n`);\n }\n \n console.log(stdout);\n};\n\nconst handle_ava_stdio = (ava = {}, run_tests_options = {}) => {\n ava.stdout.on('data', function (data) {\n const string = data.toString();\n handle_ava_stdout(string, run_tests_options);\n });\n\n ava.stderr.on('data', function (data) {\n const string = data.toString();\n handle_ava_stderr(string, run_tests_options);\n });\n};\n\nconst run_tests = (run_tests_options = {}) => {\n // NOTE: A little bananas to reason through this. In order for Ava to run w/o errors,\n // the Ava binary being run here has to be identical to the one used in @joystick.js/test.\n // That would equal the copy of Ava that's installed in a Joystick app's node_modules\n // directory, not the node_modules directory of the CLI here. We can guarantee that will\n // exist for the CLI here because a developer has to install @joystick.js/test which will\n // add Ava as a dependency to their app in order to write tests.\n const ava_path = `${process.cwd()}/node_modules/.bin/ava`;\n \n return new Promise((resolve) => {\n // NOTE: Despite using the app's node_modules path to reference Ava, we still want to reference\n // the internal path here for the default test config in /lib/dev/tests.config.js.\n const ava = child_process.exec(`DEBUG=ava:watcher && ${ava_path} --config ${run_tests_options?.__dirname}/ava_config.js ${run_tests_options?.watch ? '--watch' : ''}`, {\n stdio: 'inherit',\n env: {\n ...(process.env),\n databases: process.databases,\n FORCE_COLOR: \"1\"\n }\n }, (error) => {\n if (!error) {\n // NOTE: Do this here because the standard SIGINT and SIGTERM hooks the dev process\n // listens for don't catch a clean exit (and the process.exit() hook fires after exit).\n run_tests_options.cleanup_process.send(JSON.stringify(({ process_ids: run_tests_options?.process_ids })));\n process.exit(0);\n } else {\n // NOTE: Do not report any Ava errors here because they're picked up by the handle_ava_stdio();\n // hook below. Just do a clean exit here so Node doesn't hang.\n run_tests_options.cleanup_process.send(JSON.stringify(({ process_ids: run_tests_options?.process_ids })));\n process.exit(0);\n }\n });\n\n handle_ava_stdio(ava, run_tests_options);\n });\n};\n\nexport default run_tests;\n\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAmB,gBAC1B,OAAOC,MAAa,gBAEpB,MAAMC,EAAoB,CAACC,EAAS,KAAO,CAEzC,GAAIA,GAAQ,SAAS,qBAAqB,EACxC,OAAO,KAGT,GAAIA,GAAQ,SAAS,gBAAgB,EACnC,OAAOF,EAAQ,mFAAoF,CACjG,MAAO,SACP,KAAM,+CACR,CAAC,EAGH,QAAQ,IAAIE,CAAM,CACpB,EAEMC,EAAoB,CAACC,EAAS,KAAO,CAEzC,GAAIA,GAAQ,SAAS,qBAAqB,EACxC,OAAO,KAGT,GAAIA,GAAQ,SAAS,mBAAmB,EAAG,CACzC,KAAM,CAACC,CAAO,EAAID,GAAQ,MAAM,GAAG,EACnC,OAAO,QAAQ,IAAI,GAAGC,CAAO;AAAA,CAAI,CACnC,CAEA,QAAQ,IAAID,CAAM,CACpB,EAEME,EAAmB,CAACC,EAAM,CAAC,EAAGC,EAAoB,CAAC,IAAM,CAC7DD,EAAI,OAAO,GAAG,OAAQ,SAAUE,EAAM,CACpC,MAAMC,EAASD,EAAK,SAAS,EAC7BN,EAAkBO,EAAQF,CAAiB,CAC7C,CAAC,EAEDD,EAAI,OAAO,GAAG,OAAQ,SAAUE,EAAM,CACpC,MAAMC,EAASD,EAAK,SAAS,EAC7BR,EAAkBS,EAAQF,CAAiB,CAC7C,CAAC,CACH,EAEMG,EAAY,CAACH,EAAoB,CAAC,IAAM,CAO5C,MAAMI,EAAW,GAAG,QAAQ,IAAI,CAAC,yBAEjC,OAAO,IAAI,QAASC,GAAY,CAG9B,MAAMN,EAAMR,EAAc,KAAK,wBAAwBa,CAAQ,aAAaJ,GAAmB,SAAS,kBAAkBA,GAAmB,MAAQ,UAAY,EAAE,GAAI,CACrK,MAAO,UACP,IAAK,CACH,GAAI,QAAQ,IACZ,UAAW,QAAQ,UACnB,YAAa,GACf,CACF,EAAIM,GAAU,CACPA,GAQHN,EAAkB,gBAAgB,KAAK,KAAK,UAAW,CAAE,YAAaA,GAAmB,WAAY,CAAE,CAAC,EACxG,QAAQ,KAAK,CAAC,IANdA,EAAkB,gBAAgB,KAAK,KAAK,UAAW,CAAE,YAAaA,GAAmB,WAAY,CAAE,CAAC,EACxG,QAAQ,KAAK,CAAC,EAOlB,CAAC,EAEDF,EAAiBC,EAAKC,CAAiB,CACzC,CAAC,CACH,EAEA,IAAOO,EAAQJ",
|
|
6
|
+
"names": ["child_process", "cli_log", "handle_ava_stderr", "stderr", "handle_ava_stdout", "stdout", "message", "handle_ava_stdio", "ava", "run_tests_options", "data", "string", "run_tests", "ava_path", "resolve", "error", "run_tests_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import o from"child_process";import n from"path";const c=(s=[],r=!1)=>(process.env.NODE_ENV!=="test"&&process.loader.print("Starting app..."),o.fork(n.resolve(".joystick/build/index.server.js"),[],{execArgv:s,silent:!0,env:{FORCE_COLOR:"1",LOGS_PATH:process.env.LOGS_PATH,NODE_ENV:process.env.NODE_ENV,ROOT_URL:process.env.ROOT_URL,PORT:process.env.PORT,JOYSTICK_SETTINGS:process.env.JOYSTICK_SETTINGS}})),_=(s=0,r=[])=>{const e=["--no-warnings"];process.env.NODE_ENV==="development"&&e.push("--dns-result-order=ipv4first"),s<19&&e.push("--experimental-specifier-resolution=node"),process.env.NODE_ENV==="development"&&process.env.IS_DEBUG_MODE==="true"&&e.push("--inspect");for(let p=0;p<r?.length;p+=1){const t=r[p];e.push("--import",t)}return e},i=(s=0,r=!1,e=[])=>{const p=_(s,e);return c(p,r)};var O=i;export{O as default};
|
|
2
|
+
//# sourceMappingURL=start_app_server.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/development_server/start_app_server.js"],
|
|
4
|
+
"sourcesContent": ["import child_process from \"child_process\";\nimport path from \"path\";\n\nconst start_app_server_process = (exec_argv = [], watch = false) => {\n if (process.env.NODE_ENV !== 'test') {\n process.loader.print('Starting app...');\n }\n\n return child_process.fork(\n path.resolve(\".joystick/build/index.server.js\"),\n [],\n {\n execArgv: exec_argv,\n // NOTE: Pipe stdin, stdout, and stderr. IPC establishes a message channel so we\n // communicate with the child_process.\n silent: true,\n env: {\n FORCE_COLOR: \"1\",\n LOGS_PATH: process.env.LOGS_PATH,\n NODE_ENV: process.env.NODE_ENV,\n ROOT_URL: process.env.ROOT_URL,\n PORT: process.env.PORT,\n JOYSTICK_SETTINGS: process.env.JOYSTICK_SETTINGS,\n },\n }\n );\n};\n\nconst get_exec_args = (node_major_version = 0, imports = []) => {\n const exec_argv = [\"--no-warnings\"];\n\n if (process.env.NODE_ENV === 'development') {\n // NOTE: Ensure that localhost is not swapped with ::1 (IPv6 local address) in Node v17-v19.\n // See here for information: https://github.com/nodejs/node/issues/40702#issuecomment-958157082\n exec_argv.push(\"--dns-result-order=ipv4first\");\n }\n\n if (node_major_version < 19) {\n exec_argv.push(\"--experimental-specifier-resolution=node\");\n }\n\n if (process.env.NODE_ENV === \"development\" && process.env.IS_DEBUG_MODE === \"true\") {\n exec_argv.push(\"--inspect\");\n }\n\n for (let i = 0; i < imports?.length; i += 1) {\n const import_path = imports[i];\n exec_argv.push(\"--import\", import_path);\n }\n\n return exec_argv;\n};\n\nconst start_app_server = (node_major_version = 0, watch = false, imports = []) => {\n const exec_argv = get_exec_args(node_major_version, imports);\n const app_server_process = start_app_server_process(exec_argv, watch);\n return app_server_process;\n};\n\nexport default start_app_server;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAmB,gBAC1B,OAAOC,MAAU,OAEjB,MAAMC,EAA2B,CAACC,EAAY,CAAC,EAAGC,EAAQ,MACpD,QAAQ,IAAI,WAAa,QAC3B,QAAQ,OAAO,MAAM,iBAAiB,EAGjCJ,EAAc,KACnBC,EAAK,QAAQ,iCAAiC,EAC9C,CAAC,EACD,CACE,SAAUE,EAGV,OAAQ,GACR,IAAK,CACH,YAAa,IACb,UAAW,QAAQ,IAAI,UACvB,SAAU,QAAQ,IAAI,SACtB,SAAU,QAAQ,IAAI,SACtB,KAAM,QAAQ,IAAI,KAClB,kBAAmB,QAAQ,IAAI,iBACjC,CACF,CACF,GAGIE,EAAgB,CAACC,EAAqB,EAAGC,EAAU,CAAC,IAAM,CAC9D,MAAMJ,EAAY,CAAC,eAAe,EAE9B,QAAQ,IAAI,WAAa,eAG3BA,EAAU,KAAK,8BAA8B,EAG3CG,EAAqB,IACvBH,EAAU,KAAK,0CAA0C,EAGvD,QAAQ,IAAI,WAAa,eAAiB,QAAQ,IAAI,gBAAkB,QAC1EA,EAAU,KAAK,WAAW,EAG5B,QAASK,EAAI,EAAGA,EAAID,GAAS,OAAQC,GAAK,EAAG,CAC3C,MAAMC,EAAcF,EAAQC,CAAC,EAC7BL,EAAU,KAAK,WAAYM,CAAW,CACxC,CAEA,OAAON,CACT,EAEMO,EAAmB,CAACJ,EAAqB,EAAGF,EAAQ,GAAOG,EAAU,CAAC,IAAM,CAChF,MAAMJ,EAAYE,EAAcC,EAAoBC,CAAO,EAE3D,OAD2BL,EAAyBC,EAAWC,CAAK,CAEtE,EAEA,IAAOO,EAAQD",
|
|
6
|
+
"names": ["child_process", "path", "start_app_server_process", "exec_argv", "watch", "get_exec_args", "node_major_version", "imports", "i", "import_path", "start_app_server", "start_app_server_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import r from"../cli_log.js";import i from"./databases/provider_map.js";import d from"../types.js";const l=async(s="development",e={},o=2610,a=!1)=>{const t=i[e?.provider];t&&(process.env.NODE_ENV!=="test"&&process.loader.print(`Starting ${t?.name}${e?.name?` (${e?.name})`:""}...`),process._databases={...process._databases||{},[e.provider]:a?{...process._databases&&process._databases[e.provider]||{},[e?.name||`${e.provider}_${o}`]:await t.connect(e,o,s)}:await t.connect(e,o,s)})},p=async(s=[],e=2610,o="")=>{for(let a=0;a<s?.length;a+=1){const t=s[a],n=s?.filter(c=>c?.provider===c?.provider)?.length>1;await l(o,t,t?.port||e+a,n)}},u=(s=[])=>{const e=s.filter(t=>!d.is_object(t)),o=s.filter(t=>!!t.users),a=s.filter(t=>!!t.queues);return e&&e.length>0&&(r(`Please ensure that each database in the config.databases array in your settings.${process.env.NODE_ENV}.json is an object. Correct the array and restart your app.`,{level:"danger",docs:"https://cheatcode.co/docs/joystick/cli/databases"}),process.exit(1)),o&&o.length>1&&(r("Please select a single database for your user accounts and restart your app.",{level:"danger",docs:"https://cheatcode.co/docs/joystick/cli/databases#users"}),process.exit(1)),a&&a.length>1&&(r("Please select a single database for your queues and restart your app. If you need to spread queues across databases, use the database object on the queue definition instead (see documentation link below).",{level:"danger",docs:"https://cheatcode.co/docs/joystick/cli/databases#queues"}),process.exit(1)),!0},_=async(s={})=>{const e=s?.settings?.config?.databases||[];e?.length>0&&(u(e),await p(e,s?.port+10,s?.environment))};var v=_;export{v as default};
|
|
2
|
+
//# sourceMappingURL=start_databases.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/development_server/start_databases.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable consistent-return */\n\nimport cli_log from \"../cli_log.js\";\nimport provider_map from \"./databases/provider_map.js\";\nimport types from '../types.js';\n\nconst start_database_provider = async (\n environment = 'development',\n database = {},\n port = 2610,\n has_multiple_of_provider = false\n) => {\n const provider = provider_map[database?.provider];\n\n if (provider) {\n if (process.env.NODE_ENV !== 'test') {\n process.loader.print(`Starting ${provider?.name}${database?.name ? ` (${database?.name})`: ''}...`);\n }\n\n process._databases = {\n ...(process._databases || {}),\n [database.provider]: !has_multiple_of_provider ? await provider.connect(database, port, environment) : {\n ...((process._databases && process._databases[database.provider]) || {}),\n [database?.name || `${database.provider}_${port}`]: await provider.connect(database, port, environment)\n },\n };\n }\n};\n\nconst start_database_providers = async (databases = [], database_port = 2610, environment = '') => {\n for (let i = 0; i < databases?.length; i += 1) {\n const database = databases[i];\n const has_multiple_of_provider = (databases?.filter((database) => database?.provider === database?.provider))?.length > 1;\n\n await start_database_provider(\n environment,\n database,\n // NOTE: Increment each database port using index in the databases array from settings if no port\n // is assigned in the settings.\n database?.port || database_port + i,\n has_multiple_of_provider,\n );\n }\n};\n\nconst validate_databases_from_settings = (databases = []) => {\n const databases_not_as_objects = databases.filter(\n (database) => !types.is_object(database)\n );\n\n const user_databases = databases.filter((database) => !!database.users);\n const queue_databases = databases.filter((database) => !!database.queues);\n\n if (databases_not_as_objects && databases_not_as_objects.length > 0) {\n cli_log(`Please ensure that each database in the config.databases array in your settings.${process.env.NODE_ENV}.json is an object. Correct the array and restart your app.`, {\n level: 'danger',\n docs: 'https://cheatcode.co/docs/joystick/cli/databases',\n });\n\n process.exit(1);\n }\n\n if (user_databases && user_databases.length > 1) {\n cli_log(`Please select a single database for your user accounts and restart your app.`, {\n level: 'danger',\n docs: 'https://cheatcode.co/docs/joystick/cli/databases#users',\n });\n\n process.exit(1);\n }\n\n if (queue_databases && queue_databases.length > 1) {\n cli_log(`Please select a single database for your queues and restart your app. If you need to spread queues across databases, use the database object on the queue definition instead (see documentation link below).`, {\n level: 'danger',\n docs: 'https://cheatcode.co/docs/joystick/cli/databases#queues',\n });\n\n process.exit(1);\n }\n\n return true;\n};\n\nconst start_databases = async (options = {}) => {\n const databases = options?.settings?.config?.databases || [];\n\n if (databases?.length > 0) {\n validate_databases_from_settings(databases);\n\n await start_database_providers(\n databases,\n options?.port + 10,\n options?.environment,\n );\n }\n};\n\nexport default start_databases;\n"],
|
|
5
|
+
"mappings": "AAEA,OAAOA,MAAa,gBACpB,OAAOC,MAAkB,8BACzB,OAAOC,MAAW,cAElB,MAAMC,EAA0B,MAC9BC,EAAc,cACdC,EAAW,CAAC,EACZC,EAAO,KACPC,EAA2B,KACxB,CACH,MAAMC,EAAWP,EAAaI,GAAU,QAAQ,EAE5CG,IACE,QAAQ,IAAI,WAAa,QAC3B,QAAQ,OAAO,MAAM,YAAYA,GAAU,IAAI,GAAGH,GAAU,KAAO,KAAKA,GAAU,IAAI,IAAK,EAAE,KAAK,EAGpG,QAAQ,WAAa,CACnB,GAAI,QAAQ,YAAc,CAAC,EAC3B,CAACA,EAAS,QAAQ,EAAIE,EAAiF,CACrG,GAAK,QAAQ,YAAc,QAAQ,WAAWF,EAAS,QAAQ,GAAM,CAAC,EACtE,CAACA,GAAU,MAAQ,GAAGA,EAAS,QAAQ,IAAIC,CAAI,EAAE,EAAG,MAAME,EAAS,QAAQH,EAAUC,EAAMF,CAAW,CACxG,EAHiD,MAAMI,EAAS,QAAQH,EAAUC,EAAMF,CAAW,CAIrG,EAEJ,EAEMK,EAA2B,MAAOC,EAAY,CAAC,EAAGC,EAAgB,KAAMP,EAAc,KAAO,CACjG,QAASQ,EAAI,EAAGA,EAAIF,GAAW,OAAQE,GAAK,EAAG,CAC7C,MAAMP,EAAWK,EAAUE,CAAC,EACtBL,EAA4BG,GAAW,OAAQL,GAAaA,GAAU,WAAaA,GAAU,QAAQ,GAAI,OAAS,EAExH,MAAMF,EACJC,EACAC,EAGAA,GAAU,MAAQM,EAAgBC,EAClCL,CACF,CACF,CACF,EAEMM,EAAmC,CAACH,EAAY,CAAC,IAAM,CAC3D,MAAMI,EAA2BJ,EAAU,OACxCL,GAAa,CAACH,EAAM,UAAUG,CAAQ,CACzC,EAEMU,EAAiBL,EAAU,OAAQL,GAAa,CAAC,CAACA,EAAS,KAAK,EAChEW,EAAkBN,EAAU,OAAQL,GAAa,CAAC,CAACA,EAAS,MAAM,EAExE,OAAIS,GAA4BA,EAAyB,OAAS,IAChEd,EAAQ,mFAAmF,QAAQ,IAAI,QAAQ,8DAA+D,CAC5K,MAAO,SACP,KAAM,kDACR,CAAC,EAED,QAAQ,KAAK,CAAC,GAGZe,GAAkBA,EAAe,OAAS,IAC5Cf,EAAQ,+EAAgF,CACtF,MAAO,SACP,KAAM,wDACR,CAAC,EAED,QAAQ,KAAK,CAAC,GAGZgB,GAAmBA,EAAgB,OAAS,IAC9ChB,EAAQ,+MAAgN,CACtN,MAAO,SACP,KAAM,yDACR,CAAC,EAED,QAAQ,KAAK,CAAC,GAGT,EACT,EAEMiB,EAAkB,MAAOC,EAAU,CAAC,IAAM,CAC9C,MAAMR,EAAYQ,GAAS,UAAU,QAAQ,WAAa,CAAC,EAEvDR,GAAW,OAAS,IACtBG,EAAiCH,CAAS,EAE1C,MAAMD,EACJC,EACAQ,GAAS,KAAO,GAChBA,GAAS,WACX,EAEJ,EAEA,IAAOC,EAAQF",
|
|
6
|
+
"names": ["cli_log", "provider_map", "types", "start_database_provider", "environment", "database", "port", "has_multiple_of_provider", "provider", "start_database_providers", "databases", "database_port", "i", "validate_databases_from_settings", "databases_not_as_objects", "user_databases", "queue_databases", "start_databases", "options", "start_databases_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import t from"child_process";import o from"path";const c=(e=[],r="")=>t.fork(o.resolve(`${r}/hmr_server.js`),[],{execArgv:e,silent:!0}),n=(e=0)=>{const r=["--no-warnings"];return e<19&&r.push("--experimental-specifier-resolution=node"),r},_=(e=0,r="")=>{const s=n(e);return c(s,r)};var a=_;export{a as default};
|
|
2
|
+
//# sourceMappingURL=start_hmr_server.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/lib/development_server/start_hmr_server.js"],
|
|
4
|
+
"sourcesContent": ["import child_process from \"child_process\";\nimport path from \"path\";\n\nconst start_hmr_server_process = (exec_argv = [], __dirname = '') => {\n // NOTE: Port is automatically pulled via process.env.PORT\n // in the hmr_server.js script.\n return child_process.fork(\n path.resolve(`${__dirname}/hmr_server.js`),\n [],\n {\n execArgv: exec_argv,\n // NOTE: Pipe stdin, stdout, and stderr. IPC establishes a message channel so we\n // communicate with the child_process.\n silent: true,\n }\n );\n};\n\nconst get_exec_args = (node_major_version = 0) => {\n const exec_argv = [\"--no-warnings\"];\n\n if (node_major_version < 19) {\n exec_argv.push(\"--experimental-specifier-resolution=node\");\n }\n \n return exec_argv;\n};\n\nconst start_hmr_server = (node_major_version = 0, __dirname = '') => {\n const exec_argv = get_exec_args(node_major_version);\n const hmr_server_process = start_hmr_server_process(exec_argv, __dirname);\n return hmr_server_process;\n};\n\nexport default start_hmr_server;\n\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAmB,gBAC1B,OAAOC,MAAU,OAEjB,MAAMC,EAA2B,CAACC,EAAY,CAAC,EAAGC,EAAY,KAGrDJ,EAAc,KACnBC,EAAK,QAAQ,GAAGG,CAAS,gBAAgB,EACzC,CAAC,EACD,CACE,SAAUD,EAGV,OAAQ,EACV,CACF,EAGIE,EAAgB,CAACC,EAAqB,IAAM,CAChD,MAAMH,EAAY,CAAC,eAAe,EAElC,OAAIG,EAAqB,IACvBH,EAAU,KAAK,0CAA0C,EAGpDA,CACT,EAEMI,EAAmB,CAACD,EAAqB,EAAGF,EAAY,KAAO,CACnE,MAAMD,EAAYE,EAAcC,CAAkB,EAElD,OAD2BJ,EAAyBC,EAAWC,CAAS,CAE1E,EAEA,IAAOI,EAAQD",
|
|
6
|
+
"names": ["child_process", "path", "start_hmr_server_process", "exec_argv", "__dirname", "get_exec_args", "node_major_version", "start_hmr_server", "start_hmr_server_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/lib/development_server/watch_for_changes/browser_path_exclusions.js"],
|
|
4
|
+
"sourcesContent": ["import get_platform_safe_path from \"./get_platform_safe_path.js\";\n\nconst browser_path_exclusions = [\n get_platform_safe_path(\"lib/node\"),\n get_platform_safe_path(\"tests/\"),\n];\n\nexport default browser_path_exclusions;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAA4B,8BAEnC,MAAMC,EAA0B,CAC9BD,EAAuB,UAAU,EACjCA,EAAuB,QAAQ,CACjC,EAEA,IAAOE,EAAQD",
|
|
6
|
+
"names": ["get_platform_safe_path", "browser_path_exclusions", "browser_path_exclusions_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/lib/development_server/watch_for_changes/browser_paths.js"],
|
|
4
|
+
"sourcesContent": ["import get_platform_safe_path from \"./get_platform_safe_path.js\";\n\nconst browser_paths = [\n get_platform_safe_path(\"email/\"),\n get_platform_safe_path(\"lib/\"),\n get_platform_safe_path(\"lib/browser\"),\n get_platform_safe_path(\"ui/\"),\n \"index.client.js\",\n];\n\nexport default browser_paths;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAA4B,8BAEnC,MAAMC,EAAgB,CACpBD,EAAuB,QAAQ,EAC/BA,EAAuB,MAAM,EAC7BA,EAAuB,aAAa,EACpCA,EAAuB,KAAK,EAC5B,iBACF,EAEA,IAAOE,EAAQD",
|
|
6
|
+
"names": ["get_platform_safe_path", "browser_paths", "browser_paths_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import d from"../../constants.js";import e from"../../get_platform_safe_path.js";const u=(s="")=>{const t=s==="index.html",_=s==="index.client.js",n=s.includes(e("lib/"))&&!s.includes(e("lib/node")),i=s.includes("css/"),r=s.includes("i18n"),o=s.match(d.SETTINGS_FILE_NAME_REGEX)?.length>0,c=s.includes(e("ui/"))||s==="index.css"||t||_||n,l=process.hmr_server_process&&process.hmr_server_process.has_connections&&(c||r||o)||!1;return i?["hot_module_reload"]:l?["hot_module_reload"]:["restart_app_server"]};var p=u;export{p as default};
|
|
2
|
+
//# sourceMappingURL=get_after_run_tasks.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/lib/development_server/watch_for_changes/get_after_run_tasks.js"],
|
|
4
|
+
"sourcesContent": ["import constants from \"../../constants.js\";\nimport get_platform_safe_path from \"../../get_platform_safe_path.js\";\n\nconst get_after_run_tasks = (path = '') => {\n\tconst is_html_update = path === 'index.html';\n const is_client_index_update = path === 'index.client.js';\n const is_client_lib_update = path.includes(\n get_platform_safe_path('lib/')\n ) && !path.includes(\n get_platform_safe_path('lib/node')\n );\n const is_css_path = path.includes('css/');\n const is_i18n_path = path.includes('i18n');\n const is_settings_path = (path.match(constants.SETTINGS_FILE_NAME_REGEX))?.length > 0;\n const is_ui_path = path.includes(\n get_platform_safe_path(\"ui/\")\n ) || path === 'index.css' || is_html_update || is_client_index_update || is_client_lib_update;\n const is_ui_update = (process.hmr_server_process && process.hmr_server_process.has_connections) &&\n (is_ui_path || is_i18n_path || is_settings_path) ||\n false;\n\n if (is_css_path) {\n return ['hot_module_reload'];\n }\n\n if (is_ui_update) {\n // NOTE: As part of hot_module_reload, the server will be restarted after a client has\n // signaled that the HMR update is complete (see handle_hmr_server_process_messages in\n // lib/development_server/index.js for the event handler).\n \treturn ['hot_module_reload'];\n }\n\n return ['restart_app_server'];\n};\n\nexport default get_after_run_tasks;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAe,qBACtB,OAAOC,MAA4B,kCAEnC,MAAMC,EAAsB,CAACC,EAAO,KAAO,CAC1C,MAAMC,EAAiBD,IAAS,aACzBE,EAAyBF,IAAS,kBAClCG,EAAuBH,EAAK,SAChCF,EAAuB,MAAM,CAC/B,GAAK,CAACE,EAAK,SACTF,EAAuB,UAAU,CACnC,EACMM,EAAcJ,EAAK,SAAS,MAAM,EAClCK,EAAeL,EAAK,SAAS,MAAM,EACnCM,EAAoBN,EAAK,MAAMH,EAAU,wBAAwB,GAAI,OAAS,EAC9EU,EAAaP,EAAK,SACtBF,EAAuB,KAAK,CAC9B,GAAKE,IAAS,aAAeC,GAAkBC,GAA0BC,EACnEK,EAAgB,QAAQ,oBAAsB,QAAQ,mBAAmB,kBAC5ED,GAAcF,GAAgBC,IAC/B,GAEF,OAAIF,EACK,CAAC,mBAAmB,EAGzBI,EAII,CAAC,mBAAmB,EAGrB,CAAC,oBAAoB,CAC9B,EAEA,IAAOC,EAAQV",
|
|
6
|
+
"names": ["constants", "get_platform_safe_path", "get_after_run_tasks", "path", "is_html_update", "is_client_index_update", "is_client_lib_update", "is_css_path", "is_i18n_path", "is_settings_path", "is_ui_path", "is_ui_update", "get_after_run_tasks_default"]
|
|
7
|
+
}
|