@joystick.js/cli-canary 0.0.0-canary.21 → 0.0.0-canary.2100
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 -69
- 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/installer.js +4 -0
- package/dist/lib/development_server/databases/installer.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/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/provider_map.js +2 -0
- package/dist/lib/development_server/databases/provider_map.js.map +7 -0
- package/dist/lib/development_server/databases/redis/check_connection.js +3 -0
- package/dist/lib/development_server/databases/redis/check_connection.js.map +7 -0
- package/dist/lib/development_server/databases/redis/connect.js +2 -0
- package/dist/lib/development_server/databases/redis/connect.js.map +7 -0
- package/dist/lib/development_server/databases/redis/index.js +2 -0
- package/dist/lib/development_server/databases/redis/index.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_architecture.js +2 -0
- package/dist/lib/get_architecture.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 -0
- 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 +22 -39
- package/src/cli.js +73 -46
- 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/development_server/ava_config.js +14 -0
- package/src/lib/development_server/check_if_port_occupied.js +31 -0
- package/src/lib/development_server/cleanup.js +15 -0
- package/src/lib/development_server/databases/download_database_binary.js +11 -0
- package/src/lib/development_server/databases/installer.js +205 -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 +105 -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 +156 -0
- package/src/lib/development_server/databases/provider_map.js +20 -0
- package/src/lib/development_server/databases/redis/check_connection.js +55 -0
- package/src/lib/development_server/databases/redis/connect.js +27 -0
- package/src/lib/development_server/databases/redis/index.js +138 -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 +108 -0
- package/src/lib/development_server/start_hmr_server.js +36 -0
- package/src/lib/development_server/watch_for_changes/browser_path_exclusions.js +8 -0
- package/src/lib/development_server/watch_for_changes/browser_paths.js +11 -0
- package/src/lib/development_server/watch_for_changes/get_after_run_tasks.js +36 -0
- package/src/lib/development_server/watch_for_changes/get_file_codependencies.js +53 -0
- package/src/lib/development_server/watch_for_changes/get_platform_safe_path.js +6 -0
- package/src/lib/development_server/watch_for_changes/index.js +222 -0
- package/src/lib/development_server/watch_for_changes/node_paths.js +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_architecture.js +43 -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 +60 -0
- 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 -243
- 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 -10
- 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 -30
- 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 -7
- package/dist/lib/build/browserPaths.js +0 -11
- package/dist/lib/build/buildFile.js +0 -84
- package/dist/lib/build/buildFiles.js +0 -183
- package/dist/lib/build/buildPlugins.js +0 -183
- package/dist/lib/build/getCodeFrame.js +0 -10
- package/dist/lib/build/minifyFile.js +0 -12
- package/dist/lib/build/nodePathExclusions.js +0 -7
- package/dist/lib/build/nodePaths.js +0 -11
- 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 -30
- 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/index.js +0 -382
- package/dist/lib/dev/isWindows.js +0 -5
- package/dist/lib/dev/loadSettings.js +0 -81
- 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 -30
- package/dist/lib/dev/startApp.js +0 -30
- package/dist/lib/dev/startDatabases.js +0 -102
- package/dist/lib/dev/startHMR.js +0 -30
- 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 -243
- 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 -698
- 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 -34
- package/src/functions/update/index.js +0 -20
- package/src/functions/use/index.js +0 -62
- package/src/lib/build/browserPathExclusions.js +0 -5
- package/src/lib/build/browserPaths.js +0 -9
- package/src/lib/build/buildFile.js +0 -91
- package/src/lib/build/buildFiles.js +0 -205
- package/src/lib/build/buildPlugins.js +0 -215
- package/src/lib/build/getCodeFrame.js +0 -8
- package/src/lib/build/minifyFile.js +0 -10
- package/src/lib/build/nodePathExclusions.js +0 -5
- package/src/lib/build/nodePaths.js +0 -9
- 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 -34
- 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/index.js +0 -479
- package/src/lib/dev/isWindows.js +0 -3
- package/src/lib/dev/loadSettings.js +0 -92
- package/src/lib/dev/readFileDependencyMap.js +0 -19
- package/src/lib/dev/runBuild.js +0 -33
- package/src/lib/dev/runTests.js +0 -33
- package/src/lib/dev/startApp.js +0 -33
- package/src/lib/dev/startDatabases.js +0 -125
- package/src/lib/dev/startHMR.js +0 -33
- 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,3 @@
|
|
|
1
|
+
import g from"child_process";import x from"fs";import b from"util";import q from"os";import k from"path";import d from"../../../get_platform_safe_path.js";import h from"../../../get_process_id_from_port.js";import m from"../../../path_exists.js";import L from"../../../get_architecture.js";const r=b.promisify(g.exec),{rename:I}=x.promises,D=async(t=2610)=>{const s=await m(".joystick/data/postgresql");let e=await m(`.joystick/data/postgresql_${t}`);return s&&!e&&(await I(".joystick/data/postgresql",`.joystick/data/postgresql_${t}`),e=!0),e&&(await m(`.joystick/data/postgresql_${t}/PG_VERSION`)||(e=!1)),e},P=()=>"createdb",v=()=>"postgres",E=()=>"initdb",S=()=>"pg_ctl",U=async(t=2610)=>{try{const s=t,e=L(),$=k.join(q.homedir(),".joystick","databases","postgresql",e),o=k.join($,"bin"),p=S(),w=E(),K=v(),f=P(),c=process.platform==="linux"&&process.getuid&&process.getuid()===0;if(!await D(t)){const i=`${process.cwd()}/.joystick/data/postgresql_${t}`,a="--auth-local=trust --auth-host=trust -U postgres";c?(await r(`mkdir -p ${i}`),await r(`chown -R postgres:postgres ${process.cwd()}/.joystick/data`),await r(`sudo -u postgres ${o}/${w} -D ${i} ${a}`)):await r(`./${w} -D ${i} ${a}`,{cwd:o})}const _=parseInt(await h(s),10);_&&(c?await r(`sudo -u postgres ${o}/${p} kill KILL ${_}`):await r(`./${p} kill KILL ${_}`,{cwd:o}));const u=c?g.spawn("sudo",["-u","postgres",`${o}/${p}`,"-o",`"-p ${s}"`,"-D",d(`${process.cwd()}/.joystick/data/postgresql_${t}`),"-l",d(`${process.cwd()}/.joystick/data/postgresql_${t}/logfile`),"start","-w"]):g.spawn(`./${p}`,["-o",`"-p ${s}"`,"-D",d(`${process.cwd()}/.joystick/data/postgresql_${t}`),"-l",d(`${process.cwd()}/.joystick/data/postgresql_${t}/logfile`),"start","-w"],{cwd:o});return new Promise((i,a)=>{u.on("exit",async n=>{if(n===0){const y=(await h(s))?.replace(`
|
|
2
|
+
`,"");if(!y){a(new Error("PostgreSQL server failed to start"));return}const j=c?`sudo -u postgres ${o}/${f} -h 127.0.0.1 -p ${s} -U postgres app`:`./${f} -h 127.0.0.1 -p ${s} -U postgres app`;try{await r(j,{cwd:c?process.cwd():o})}catch({stderr:l}){(!l||!l.includes('database "app" already exists'))&&console.log(l)}i(parseInt(y,10))}else a(new Error(`PostgreSQL failed to start (exit code: ${n})`))}),u.on("error",n=>{a(n)})})}catch(s){console.warn(s),process.exit(1)}};var F=U;export{F 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 path from \"path\";\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\";\nimport get_architecture from \"../../../get_architecture.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 if (data_directory_exists) {\n const pg_version_exists = await path_exists(`.joystick/data/postgresql_${postgresql_port}/PG_VERSION`);\n if (!pg_version_exists) {\n data_directory_exists = false;\n }\n }\n\n return data_directory_exists;\n};\n\nconst get_createdb_command = () => {\n return \"createdb\";\n};\n\nconst get_postgres_command = () => {\n return \"postgres\";\n};\n\nconst get_initdb_command = () => {\n return \"initdb\";\n};\n\nconst get_pg_ctl_command = () => {\n return \"pg_ctl\";\n};\n\nconst start_postgresql = async (port = 2610) => {\n try {\n const postgresql_port = port;\n const architecture = get_architecture();\n const joystick_postgresql_base_path = path.join(os.homedir(), \".joystick\", \"databases\", \"postgresql\", architecture);\n const joystick_postgresql_bin_path = path.join(joystick_postgresql_base_path, \"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 is_root_on_linux = process.platform === \"linux\" && process.getuid && process.getuid() === 0;\n\n const data_directory_exists = await setup_data_directory(port);\n\n if (!data_directory_exists) {\n const data_dir = `${process.cwd()}/.joystick/data/postgresql_${port}`;\n const auth_flags = \"--auth-local=trust --auth-host=trust -U postgres\";\n\n if (is_root_on_linux) {\n await exec(`mkdir -p ${data_dir}`);\n await exec(`chown -R postgres:postgres ${process.cwd()}/.joystick/data`);\n await exec(`sudo -u postgres ${joystick_postgresql_bin_path}/${joystick_initdb_command} -D ${data_dir} ${auth_flags}`);\n } else {\n await exec(`./${joystick_initdb_command} -D ${data_dir} ${auth_flags}`, {\n cwd: joystick_postgresql_bin_path\n });\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 (is_root_on_linux) {\n await exec(`sudo -u postgres ${joystick_postgresql_bin_path}/${joystick_pg_ctl_command} kill KILL ${existing_process_id}`);\n } else {\n await exec(`./${joystick_pg_ctl_command} kill KILL ${existing_process_id}`, {\n cwd: joystick_postgresql_bin_path\n });\n }\n }\n\n const database_process = is_root_on_linux\n ? child_process.spawn(\"sudo\", [\n \"-u\", \"postgres\",\n `${joystick_postgresql_bin_path}/${joystick_pg_ctl_command}`,\n \"-o\", `\"-p ${postgresql_port}\"`,\n \"-D\", get_platform_safe_path(`${process.cwd()}/.joystick/data/postgresql_${port}`),\n \"-l\", get_platform_safe_path(`${process.cwd()}/.joystick/data/postgresql_${port}/logfile`),\n \"start\",\n \"-w\"\n ])\n : child_process.spawn(\n `./${joystick_pg_ctl_command}`,\n [\n \"-o\", `\"-p ${postgresql_port}\"`,\n \"-D\", get_platform_safe_path(`${process.cwd()}/.joystick/data/postgresql_${port}`),\n \"-l\", get_platform_safe_path(`${process.cwd()}/.joystick/data/postgresql_${port}/logfile`),\n \"start\",\n \"-w\"\n ],\n {\n cwd: joystick_postgresql_bin_path\n }\n );\n\n return new Promise((resolve, reject) => {\n database_process.on(\"exit\", async (code) => {\n if (code === 0) {\n const process_id = (await get_process_id_from_port(postgresql_port))?.replace(\"\\n\", \"\");\n\n if (!process_id) {\n reject(new Error(\"PostgreSQL server failed to start\"));\n return;\n }\n\n const createdb_command = is_root_on_linux\n ? `sudo -u postgres ${joystick_postgresql_bin_path}/${joystick_createdb_command} -h 127.0.0.1 -p ${postgresql_port} -U postgres app`\n : `./${joystick_createdb_command} -h 127.0.0.1 -p ${postgresql_port} -U postgres app`;\n\n try {\n await exec(createdb_command, {\n cwd: is_root_on_linux ? process.cwd() : joystick_postgresql_bin_path\n });\n } catch ({ stderr: error }) {\n if (!error || !error.includes('database \"app\" already exists')) {\n console.log(error);\n }\n }\n\n resolve(parseInt(process_id, 10));\n } else {\n reject(new Error(`PostgreSQL failed to start (exit code: ${code})`));\n }\n });\n\n database_process.on(\"error\", (error) => {\n reject(error);\n });\n });\n } catch (exception) {\n console.warn(exception);\n process.exit(1);\n }\n};\n\nexport default start_postgresql;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["child_process", "fs", "util", "os", "path", "get_platform_safe_path", "get_process_id_from_port", "path_exists", "get_architecture", "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", "architecture", "joystick_postgresql_base_path", "joystick_postgresql_bin_path", "joystick_pg_ctl_command", "joystick_initdb_command", "joystick_postgres_command", "joystick_createdb_command", "is_root_on_linux", "data_dir", "auth_flags", "existing_process_id", "database_process", "resolve", "reject", "code", "process_id", "createdb_command", "error", "exception", "index_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import o from"./mongodb/connect.js";import n from"./postgresql/connect.js";import e from"./redis/connect.js";const t={mongodb:{name:"MongoDB",connect:o},postgresql:{name:"PostgreSQL",connect:n},redis:{name:"Redis",connect:e}};var s=t;export{s as default};
|
|
2
|
+
//# sourceMappingURL=provider_map.js.map
|
|
@@ -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';\nimport connect_redis from './redis/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 redis: {\n name: 'Redis',\n connect: connect_redis,\n },\n};\n\nexport default provider_map;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAqB,uBAC5B,OAAOC,MAAwB,0BAC/B,OAAOC,MAAmB,qBAE1B,MAAMC,EAAe,CACnB,QAAS,CACP,KAAM,UACN,QAASH,CACX,EACA,WAAY,CACV,KAAM,aACN,QAASC,CACX,EACA,MAAO,CACL,KAAM,QACN,QAASC,CACX,CACF,EAEA,IAAOE,EAAQD",
|
|
6
|
+
"names": ["connect_mongodb", "connect_postgresql", "connect_redis", "provider_map", "provider_map_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import a from"redis";import n from"../../../color_log.js";const r=async(t={},c={})=>{try{const o=t?.hosts&&t?.hosts[0],s={socket:{host:o?.hostname||"127.0.0.1",port:o?.port||6379,connectTimeout:3e3},database:t?.database||0};t?.username&&(s.username=t.username),t?.password&&(s.password=t.password);const e=a.createClient({...s,lazyConnect:!0});return e.on("connect",()=>{}),e.on("ready",()=>{}),await e.connect(),await e.ping(),await e.disconnect(),!0}catch(o){console.warn(o),n(`
|
|
2
|
+
\u2716 Failed to connect to Redis. Please double-check connection settings and try again.`,"yellow"),process.exit(1)}};var l=r;export{l as default};
|
|
3
|
+
//# sourceMappingURL=check_connection.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/lib/development_server/databases/redis/check_connection.js"],
|
|
4
|
+
"sourcesContent": ["import redis from 'redis';\nimport color_log from '../../../color_log.js';\n\nconst check_connection = async (connection = {}, options = {}) => {\n try {\n const host = connection?.hosts && connection?.hosts[0];\n const connection_config = {\n socket: {\n host: host?.hostname || '127.0.0.1',\n port: host?.port || 6379,\n connectTimeout: 3000,\n },\n database: connection?.database || 0,\n };\n\n if (connection?.username) {\n connection_config.username = connection.username;\n }\n\n if (connection?.password) {\n connection_config.password = connection.password;\n }\n\n const client = redis.createClient({\n ...connection_config,\n // Suppress Redis client logging\n lazyConnect: true,\n });\n\n // Suppress any connection success messages\n client.on('connect', () => {\n // Silently handle connection\n });\n\n client.on('ready', () => {\n // Silently handle ready state\n });\n\n await client.connect();\n await client.ping();\n await client.disconnect();\n\n return true;\n } catch (exception) {\n console.warn(exception);\n color_log(\n `\\n\u2716 Failed to connect to Redis. Please double-check connection settings and try again.`,\n 'yellow'\n );\n\n process.exit(1);\n }\n};\n\nexport default check_connection;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAW,QAClB,OAAOC,MAAe,wBAEtB,MAAMC,EAAmB,MAAOC,EAAa,CAAC,EAAGC,EAAU,CAAC,IAAM,CAChE,GAAI,CACF,MAAMC,EAAOF,GAAY,OAASA,GAAY,MAAM,CAAC,EAC/CG,EAAoB,CACxB,OAAQ,CACN,KAAMD,GAAM,UAAY,YACxB,KAAMA,GAAM,MAAQ,KACpB,eAAgB,GAClB,EACA,SAAUF,GAAY,UAAY,CACpC,EAEIA,GAAY,WACdG,EAAkB,SAAWH,EAAW,UAGtCA,GAAY,WACdG,EAAkB,SAAWH,EAAW,UAG1C,MAAMI,EAASP,EAAM,aAAa,CAChC,GAAGM,EAEH,YAAa,EACf,CAAC,EAGD,OAAAC,EAAO,GAAG,UAAW,IAAM,CAE3B,CAAC,EAEDA,EAAO,GAAG,QAAS,IAAM,CAEzB,CAAC,EAED,MAAMA,EAAO,QAAQ,EACrB,MAAMA,EAAO,KAAK,EAClB,MAAMA,EAAO,WAAW,EAEjB,EACT,OAASC,EAAW,CAClB,QAAQ,KAAKA,CAAS,EACtBP,EACE;AAAA,2FACA,QACF,EAEA,QAAQ,KAAK,CAAC,CAChB,CACF,EAEA,IAAOQ,EAAQP",
|
|
6
|
+
"names": ["redis", "color_log", "check_connection", "connection", "options", "host", "connection_config", "client", "exception", "check_connection_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"./check_connection.js";import t from"./index.js";const a=async(n={},c=2610)=>{const o=n.connection&&Object.keys(n.connection).length>0;return o&&await e(n.connection,n.options),{pid:o?null:await t(c),connection:o?n.connection:{hosts:[{hostname:"127.0.0.1",port:c}],database:0,username:"",password:""}}};var m=a;export{m as default};
|
|
2
|
+
//# sourceMappingURL=connect.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/lib/development_server/databases/redis/connect.js"],
|
|
4
|
+
"sourcesContent": ["import check_connection from \"./check_connection.js\";\nimport redis from \"./index.js\";\n\nconst connect = async (settings = {}, port = 2610) => {\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 redis(port) : null,\n connection: has_connection ? settings.connection : {\n hosts: [\n {\n hostname: \"127.0.0.1\",\n port,\n },\n ],\n database: 0,\n username: \"\",\n password: \"\",\n },\n };\n};\n\nexport default connect;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAsB,wBAC7B,OAAOC,MAAW,aAElB,MAAMC,EAAU,MAAOC,EAAW,CAAC,EAAGC,EAAO,OAAS,CACpD,MAAMC,EAAiBF,EAAS,YAAc,OAAO,KAAKA,EAAS,UAAU,EAAE,OAAS,EAExF,OAAIE,GACF,MAAML,EAAiBG,EAAS,WAAYA,EAAS,OAAO,EAGvD,CACL,IAAME,EAAqC,KAApB,MAAMJ,EAAMG,CAAI,EACvC,WAAYC,EAAiBF,EAAS,WAAa,CACjD,MAAO,CACL,CACE,SAAU,YACV,KAAAC,CACF,CACF,EACA,SAAU,EACV,SAAU,GACV,SAAU,EACZ,CACF,CACF,EAEA,IAAOE,EAAQJ",
|
|
6
|
+
"names": ["check_connection", "redis", "connect", "settings", "port", "has_connection", "connect_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import l from"child_process";import w from"fs";import y from"os";import d from"path";import h from"../../../get_platform_safe_path.js";import k from"../../../get_process_id_from_port.js";import g from"../../../kill_port_process.js";import N from"../../../path_exists.js";import x from"../../../get_architecture.js";const{mkdir:R}=w.promises,T=()=>"redis-server",v=(r=2610)=>new Promise((s,i)=>{const m=T(),_=x(),p=d.join(y.homedir(),".joystick","databases","redis",_),u=d.join(p,m),f=["--port",r,"--dir",h(`./.joystick/data/redis_${r}`),"--save","60","1","--loglevel","notice"],o=l.spawn(u,f.filter(t=>!!t)),a=setTimeout(()=>{i(new Error("Redis startup timed out after 30 seconds"))},3e4);let c=!1;const n=async()=>{await new Promise(t=>setTimeout(t,2e3));try{const t=await k(r);if(t)return clearTimeout(a),s(parseInt(t,10))}catch{}};o.stdout.on("data",async t=>{const e=t?.toString();!e.includes("WARNING")&&e.includes("# WARNING"),!c&&e.trim()&&(c=!0,await n())}),o.stderr.on("data",async t=>{const e=t.toString();if(e.includes("FATAL")||e.includes("Can't open")||e.includes("Permission denied")){clearTimeout(a),i(new Error(`Redis startup failed: ${e.trim()}`));return}!e.includes("WARNING")&&e.includes("# WARNING"),!c&&e.trim()&&(c=!0,await n())}),o.on("error",t=>{clearTimeout(a),i(t)}),o.on("exit",t=>{t!==0&&(clearTimeout(a),i(new Error(`Redis process exited with code ${t}`)))})}),A=async(r=2610)=>{const s=await N(`.joystick/data/redis_${r}`);return s||await R(`.joystick/data/redis_${r}`,{recursive:!0}),s},j=async(r=2610)=>{await A(r);try{return await g(r),await v(r)}catch(s){console.warn(s),process.exit(1)}};var F=j;export{F as default};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/lib/development_server/databases/redis/index.js"],
|
|
4
|
+
"sourcesContent": ["import child_process from \"child_process\";\nimport fs from \"fs\";\nimport os from \"os\";\nimport path from \"path\";\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 kill_port_process from \"../../../kill_port_process.js\";\nimport path_exists from \"../../../path_exists.js\";\nimport get_architecture from \"../../../get_architecture.js\";\n\nconst { mkdir } = fs.promises;\n\nconst get_redis_server_command = () => {\n return 'redis-server';\n};\n\nconst start_redis_process = (redis_port = 2610) => {\n return new Promise((resolve, reject) => {\n const redis_server_command = get_redis_server_command();\n const architecture = get_architecture();\n const joystick_redis_base_path = path.join(os.homedir(), '.joystick', 'databases', 'redis', architecture);\n const joystick_redis_path = path.join(joystick_redis_base_path, redis_server_command);\n const database_process_flags = [\n '--port',\n redis_port,\n '--dir',\n get_platform_safe_path(`./.joystick/data/redis_${redis_port}`),\n '--save',\n '60',\n '1',\n '--loglevel',\n 'notice',\n ];\n\n const database_process = child_process.spawn(\n joystick_redis_path,\n database_process_flags.filter((command) => !!command),\n );\n\n // Set a timeout to prevent hanging\n const timeout = setTimeout(() => {\n reject(new Error('Redis startup timed out after 30 seconds'));\n }, 30000);\n\n let startup_detected = false;\n\n const check_if_ready = async () => {\n // Wait a moment for Redis to fully start\n await new Promise(resolve => setTimeout(resolve, 2000));\n \n try {\n const process_id = await get_process_id_from_port(redis_port);\n if (process_id) {\n clearTimeout(timeout);\n return resolve(parseInt(process_id, 10));\n }\n } catch (error) {\n // Port not ready yet, will retry\n }\n };\n\n database_process.stdout.on('data', async (data) => {\n const stdout = data?.toString();\n \n // Don't log warnings, but still use output for startup detection\n if (!stdout.includes('WARNING') && !stdout.includes('# WARNING')) {\n // Only log non-warning messages if needed for debugging\n // console.log('Redis stdout:', stdout);\n }\n \n // If we see any Redis output and haven't started checking yet, start checking\n if (!startup_detected && stdout.trim()) {\n startup_detected = true;\n await check_if_ready();\n }\n });\n\n database_process.stderr.on('data', async (data) => {\n const stderr = data.toString();\n \n // Check for critical Redis errors that users should know about\n if (stderr.includes('FATAL') || stderr.includes('Can\\'t open') || stderr.includes('Permission denied')) {\n clearTimeout(timeout);\n reject(new Error(`Redis startup failed: ${stderr.trim()}`));\n return;\n }\n \n // Don't log warnings, but still use output for startup detection\n if (!stderr.includes('WARNING') && !stderr.includes('# WARNING')) {\n // Only log non-warning messages if needed for debugging\n // console.log('Redis stderr:', stderr);\n }\n \n // If we see any Redis output and haven't started checking yet, start checking\n if (!startup_detected && stderr.trim()) {\n startup_detected = true;\n await check_if_ready();\n }\n });\n\n database_process.on('error', (error) => {\n clearTimeout(timeout);\n reject(error);\n });\n\n database_process.on('exit', (code) => {\n if (code !== 0) {\n clearTimeout(timeout);\n reject(new Error(`Redis process exited with code ${code}`));\n }\n });\n });\n};\n\nconst setup_data_directory = async (redis_port = 2610) => {\n const data_directory_exists = await path_exists(`.joystick/data/redis_${redis_port}`);\n\n if (!data_directory_exists) {\n await mkdir(`.joystick/data/redis_${redis_port}`, { recursive: true });\n }\n\n return data_directory_exists;\n};\n\nconst start_redis = async (redis_port = 2610) => {\n await setup_data_directory(redis_port);\n\n try {\n await kill_port_process(redis_port);\n const redis_process_id = await start_redis_process(redis_port);\n return redis_process_id;\n } catch (exception) {\n console.warn(exception);\n process.exit(1);\n }\n};\n\nexport default start_redis;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAAmB,gBAC1B,OAAOC,MAAQ,KACf,OAAOC,MAAQ,KACf,OAAOC,MAAU,OACjB,OAAOC,MAA4B,qCACnC,OAAOC,MAA8B,uCACrC,OAAOC,MAAuB,gCAC9B,OAAOC,MAAiB,0BACxB,OAAOC,MAAsB,+BAE7B,KAAM,CAAE,MAAAC,CAAM,EAAIR,EAAG,SAEfS,EAA2B,IACxB,eAGHC,EAAsB,CAACC,EAAa,OACjC,IAAI,QAAQ,CAACC,EAASC,IAAW,CACtC,MAAMC,EAAuBL,EAAyB,EAChDM,EAAeR,EAAiB,EAChCS,EAA2Bd,EAAK,KAAKD,EAAG,QAAQ,EAAG,YAAa,YAAa,QAASc,CAAY,EAClGE,EAAsBf,EAAK,KAAKc,EAA0BF,CAAoB,EAC9EI,EAAyB,CAC7B,SACAP,EACA,QACAR,EAAuB,0BAA0BQ,CAAU,EAAE,EAC7D,SACA,KACA,IACA,aACA,QACF,EAEMQ,EAAmBpB,EAAc,MACrCkB,EACAC,EAAuB,OAAQE,GAAY,CAAC,CAACA,CAAO,CACtD,EAGMC,EAAU,WAAW,IAAM,CAC/BR,EAAO,IAAI,MAAM,0CAA0C,CAAC,CAC9D,EAAG,GAAK,EAER,IAAIS,EAAmB,GAEvB,MAAMC,EAAiB,SAAY,CAEjC,MAAM,IAAI,QAAQX,GAAW,WAAWA,EAAS,GAAI,CAAC,EAEtD,GAAI,CACF,MAAMY,EAAa,MAAMpB,EAAyBO,CAAU,EAC5D,GAAIa,EACF,oBAAaH,CAAO,EACbT,EAAQ,SAASY,EAAY,EAAE,CAAC,CAE3C,MAAgB,CAEhB,CACF,EAEAL,EAAiB,OAAO,GAAG,OAAQ,MAAOM,GAAS,CACjD,MAAMC,EAASD,GAAM,SAAS,EAG1B,CAACC,EAAO,SAAS,SAAS,GAAMA,EAAO,SAAS,WAAW,EAM3D,CAACJ,GAAoBI,EAAO,KAAK,IACnCJ,EAAmB,GACnB,MAAMC,EAAe,EAEzB,CAAC,EAEDJ,EAAiB,OAAO,GAAG,OAAQ,MAAOM,GAAS,CACjD,MAAME,EAASF,EAAK,SAAS,EAG7B,GAAIE,EAAO,SAAS,OAAO,GAAKA,EAAO,SAAS,YAAa,GAAKA,EAAO,SAAS,mBAAmB,EAAG,CACtG,aAAaN,CAAO,EACpBR,EAAO,IAAI,MAAM,yBAAyBc,EAAO,KAAK,CAAC,EAAE,CAAC,EAC1D,MACF,CAGI,CAACA,EAAO,SAAS,SAAS,GAAMA,EAAO,SAAS,WAAW,EAM3D,CAACL,GAAoBK,EAAO,KAAK,IACnCL,EAAmB,GACnB,MAAMC,EAAe,EAEzB,CAAC,EAEDJ,EAAiB,GAAG,QAAUS,GAAU,CACtC,aAAaP,CAAO,EACpBR,EAAOe,CAAK,CACd,CAAC,EAEDT,EAAiB,GAAG,OAASU,GAAS,CAChCA,IAAS,IACX,aAAaR,CAAO,EACpBR,EAAO,IAAI,MAAM,kCAAkCgB,CAAI,EAAE,CAAC,EAE9D,CAAC,CACH,CAAC,EAGGC,EAAuB,MAAOnB,EAAa,OAAS,CACxD,MAAMoB,EAAwB,MAAMzB,EAAY,wBAAwBK,CAAU,EAAE,EAEpF,OAAKoB,GACH,MAAMvB,EAAM,wBAAwBG,CAAU,GAAI,CAAE,UAAW,EAAK,CAAC,EAGhEoB,CACT,EAEMC,EAAc,MAAOrB,EAAa,OAAS,CAC/C,MAAMmB,EAAqBnB,CAAU,EAErC,GAAI,CACF,aAAMN,EAAkBM,CAAU,EACT,MAAMD,EAAoBC,CAAU,CAE/D,OAASsB,EAAW,CAClB,QAAQ,KAAKA,CAAS,EACtB,QAAQ,KAAK,CAAC,CAChB,CACF,EAEA,IAAOC,EAAQF",
|
|
6
|
+
"names": ["child_process", "fs", "os", "path", "get_platform_safe_path", "get_process_id_from_port", "kill_port_process", "path_exists", "get_architecture", "mkdir", "get_redis_server_command", "start_redis_process", "redis_port", "resolve", "reject", "redis_server_command", "architecture", "joystick_redis_base_path", "joystick_redis_path", "database_process_flags", "database_process", "command", "timeout", "startup_detected", "check_if_ready", "process_id", "data", "stdout", "stderr", "error", "code", "setup_data_directory", "data_directory_exists", "start_redis", "exception", "index_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 c from"../cli_log.js";import i from"./databases/provider_map.js";import d from"../types.js";const l=async(s="development",e={},a=2610,r=!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]:r?{...process._databases&&process._databases[e.provider]||{},[e?.name||`${e.provider}_${a}`]:await t.connect(e,a,s)}:await t.connect(e,a,s)})},p=async(s=[],e=2610,a="")=>{for(let r=0;r<s?.length;r+=1){const t=s[r],o=s?.filter(n=>n?.provider===n?.provider)?.length>1;await l(a,t,t?.port||e+r,o)}},u=(s=[])=>{const e=s.filter(o=>!d.is_object(o)),a=s.filter(o=>!!o.users),r=s.filter(o=>!!o.queues),t=a.filter(o=>o.provider==="redis");return e&&e.length>0&&(c(`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)),t&&t.length>0&&(c("Redis cannot be used for user accounts. Please use MongoDB or PostgreSQL for users and restart your app.",{level:"danger",docs:"https://cheatcode.co/docs/joystick/cli/databases#users"}),process.exit(1)),a&&a.length>1&&(c("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)),r&&r.length>1&&(c("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},f=async(s={})=>{const e=s?.settings?.config?.databases||[];e?.length>0&&(u(e),await p(e,s?.port+10,s?.environment))};var v=f;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 const redis_user_databases = user_databases.filter((database) => database.provider === 'redis');\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 (redis_user_databases && redis_user_databases.length > 0) {\n cli_log(`Redis cannot be used for user accounts. Please use MongoDB or PostgreSQL for users 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 (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,EAClEY,EAAuBF,EAAe,OAAQV,GAAaA,EAAS,WAAa,OAAO,EAE9F,OAAIS,GAA4BA,EAAyB,OAAS,IAChEd,EAAQ,mFAAmF,QAAQ,IAAI,QAAQ,8DAA+D,CAC5K,MAAO,SACP,KAAM,kDACR,CAAC,EAED,QAAQ,KAAK,CAAC,GAGZiB,GAAwBA,EAAqB,OAAS,IACxDjB,EAAQ,2GAA4G,CAClH,MAAO,SACP,KAAM,wDACR,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,EAEMkB,EAAkB,MAAOC,EAAU,CAAC,IAAM,CAC9C,MAAMT,EAAYS,GAAS,UAAU,QAAQ,WAAa,CAAC,EAEvDT,GAAW,OAAS,IACtBG,EAAiCH,CAAS,EAE1C,MAAMD,EACJC,EACAS,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", "redis_user_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
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import u from"./read_file_dependency_map.js";import l from"../../path_exists.js";import c from"../../get_platform_safe_path.js";const _=(r="",o={})=>Object.entries(o).filter(([a,t])=>{const i=t&&t.imports&&t.imports.some(s=>s.absolute_path.includes(r)||s.absolute_path?.toLowerCase()?.includes(r)),m=t&&t.requires&&t.requires.some(s=>s.absolute_path.includes(r)||s.absolute_path?.toLowerCase()?.includes(r));return i||m}).map(([a])=>a.replace(c(`${process.cwd()}/`),"")),p=async(r="")=>{const o=await u(),e=_(r,o);return Promise.all(e.filter(a=>l(a)))};var g=p;export{g as default};
|
|
2
|
+
//# sourceMappingURL=get_file_codependencies.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/lib/development_server/watch_for_changes/get_file_codependencies.js"],
|
|
4
|
+
"sourcesContent": ["import read_file_dependency_map from \"./read_file_dependency_map.js\";\nimport path_exists from '../../path_exists.js';\nimport get_platform_safe_path from '../../get_platform_safe_path.js';\n\nconst find_codependencies_in_map = (path_to_find = '', map = {}) => {\n const matching_codependents = Object.entries(map)\n .filter(([_codependent_path, codependent_dependencies]) => {\n const has_matching_imports =\n codependent_dependencies &&\n codependent_dependencies.imports &&\n codependent_dependencies.imports.some((codependent_dependency) => {\n // NOTE: If a file is renamed to use lowercase (or vice versa), the dependent file\n // should respect that change, even if the developer forgets to update the import\n // path's casing.\n\n return codependent_dependency.absolute_path.includes(path_to_find) || codependent_dependency.absolute_path?.toLowerCase()?.includes(path_to_find);\n });\n \n const has_matching_requires =\n codependent_dependencies &&\n codependent_dependencies.requires &&\n codependent_dependencies.requires.some((codependent_dependency) => {\n // NOTE: If a file is renamed to use lowercase (or vice versa), the dependent file\n // should respect that change, even if the developer forgets to update the import\n // path's casing.\n\n return codependent_dependency.absolute_path.includes(path_to_find) || codependent_dependency.absolute_path?.toLowerCase()?.includes(path_to_find);\n });\n\n return has_matching_imports || has_matching_requires;\n });\n\n return matching_codependents.map(([matching_codependent_path]) => {\n return matching_codependent_path.replace(\n get_platform_safe_path(`${process.cwd()}/`),\n \"\"\n );\n });\n};\n\nconst get_file_codependencies = async (path_to_find = \"\") => {\n const file_dependency_map = await read_file_dependency_map();\n const codpendencies = find_codependencies_in_map(\n path_to_find,\n file_dependency_map\n );\n\n return Promise.all(codpendencies.filter((codependency) => {\n return path_exists(codependency);\n }));\n};\n\nexport default get_file_codependencies;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAA8B,gCACrC,OAAOC,MAAiB,uBACxB,OAAOC,MAA4B,kCAEnC,MAAMC,EAA6B,CAACC,EAAe,GAAIC,EAAM,CAAC,IAC9B,OAAO,QAAQA,CAAG,EAC7C,OAAO,CAAC,CAACC,EAAmBC,CAAwB,IAAM,CACzD,MAAMC,EACJD,GACAA,EAAyB,SACzBA,EAAyB,QAAQ,KAAME,GAK9BA,EAAuB,cAAc,SAASL,CAAY,GAAKK,EAAuB,eAAe,YAAY,GAAG,SAASL,CAAY,CACjJ,EAEKM,EACNH,GACAA,EAAyB,UACzBA,EAAyB,SAAS,KAAME,GAK/BA,EAAuB,cAAc,SAASL,CAAY,GAAKK,EAAuB,eAAe,YAAY,GAAG,SAASL,CAAY,CACjJ,EAEH,OAAOI,GAAwBE,CACjC,CAAC,EAE0B,IAAI,CAAC,CAACC,CAAyB,IACjDA,EAA0B,QAC/BT,EAAuB,GAAG,QAAQ,IAAI,CAAC,GAAG,EAC1C,EACF,CACD,EAGCU,EAA0B,MAAOR,EAAe,KAAO,CAC3D,MAAMS,EAAsB,MAAMb,EAAyB,EACrDc,EAAgBX,EACpBC,EACAS,CACF,EAEA,OAAO,QAAQ,IAAIC,EAAc,OAAQC,GAChCd,EAAYc,CAAY,CAChC,CAAC,CACJ,EAEA,IAAOC,EAAQJ",
|
|
6
|
+
"names": ["read_file_dependency_map", "path_exists", "get_platform_safe_path", "find_codependencies_in_map", "path_to_find", "map", "_codependent_path", "codependent_dependencies", "has_matching_imports", "codependent_dependency", "has_matching_requires", "matching_codependent_path", "get_file_codependencies", "file_dependency_map", "codpendencies", "codependency", "get_file_codependencies_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/lib/development_server/watch_for_changes/get_platform_safe_path.js"],
|
|
4
|
+
"sourcesContent": ["const get_platform_safe_path = (path = '') => {\n // NOTE: This is why serial killers exist.\n return process.platform === 'win32' ? path.replace('/', '\\\\') : path;\n};\n\nexport default get_platform_safe_path;\n"],
|
|
5
|
+
"mappings": "AAAA,MAAMA,EAAyB,CAACC,EAAO,KAE9B,QAAQ,WAAa,QAAUA,EAAK,QAAQ,IAAK,IAAI,EAAIA,EAGlE,IAAOC,EAAQF",
|
|
6
|
+
"names": ["get_platform_safe_path", "path", "get_platform_safe_path_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import f from"chokidar";import h from"fs";import{dirname as m}from"path";import y from"../../build/build_files.js";import k from"../../debounce.js";import n from"./get_after_run_tasks.js";import v from"./get_file_codependencies.js";import p from"../../build/get_file_operation.js";import g from"../../build/get_path_platform.js";import w from"../../types.js";import R from"./watch_paths.js";const{mkdir:l,copyFile:b,rm:u}=h.promises,o=async(e={},s={})=>{const a=process.initial_build_complete?await v(e?.path):[];if(s?.is_build_file&&await y({files:[{path:e?.path,platform:g(e?.path)}]}).catch((r=[])=>{if(!process.initial_build_complete&&r?.length>0&&process.exit(0),process.initial_build_complete&&r?.length>0)throw process.app_server_process.send(JSON.stringify({type:"BUILD_ERROR",paths:r.filter(({success:t})=>!t)})),process.hmr_server_process.send(JSON.stringify({type:"BUILD_ERROR"})),new Error("BUILD_ERROR")}),a?.length>0)for(let r=0;r<a?.length;r+=1){const t=a[r];await o({path:t},s)}return Promise.resolve()},x=async(e={})=>{switch(e?.operation){case"add_directory":return l(`.joystick/build/${e?.path}`,{recursive:!0});case"build_file":return o(e,{is_build_file:!0});case"copy_file":return await l(m(`.joystick/build/${e?.path}`),{recursive:!0}),await b(e?.path,`.joystick/build/${e?.path}`),o(e,{is_build_file:!1});case"delete_directory":return u(`.joystick/build/${e?.path}`,{recursive:!0});case"delete_file":return await u(`.joystick/build/${e?.path}`,{recursive:!0}),o(e,{is_build_file:!1});default:return!0}},D=(e={})=>({operation:e?.event,path:e?.path,after_run_tasks:process.initial_build_complete?n(e?.path):["start_app_server","start_hmr_server"]}),O=(e={})=>({operation:e?.event,path:e?.path,after_run_tasks:process.initial_build_complete?n(e?.path):["start_app_server","start_hmr_server"]}),$=(e={})=>({operation:e?.event,path:e?.path,after_run_tasks:process.initial_build_complete?n(e?.path):["start_app_server","start_hmr_server"]}),E=(e={})=>({operation:e?.is_custom_copy_path?"copy_file":p(e?.path),path:e?.path,after_run_tasks:process.initial_build_complete?n(e?.path):["start_app_server","start_hmr_server"]}),B=(e={})=>({operation:e?.is_custom_copy_path?"copy_file":p(e?.path),path:e?.path,after_run_tasks:process.initial_build_complete?n(e?.path):["start_app_server","start_hmr_server"]}),I=(e={})=>{switch(e?.event){case"add_file":return B(e);case"change_file":return E(e);case"delete_file":return $(e);case"add_directory":return O(e);case"delete_directory":return D(e)}},L=async(e=[],s={})=>{try{const a=new Set([]);for(let t=0;t<e?.length;t+=1){const i=e[t],c=I(i);if(await x(c),c?.after_run_tasks)for(let _=0;_<c?.after_run_tasks?.length;_+=1){const d=c?.after_run_tasks[_];a.add(d)}}const r=Array.from(a);for(let t=0;t<r?.length;t+=1){const i=r[t];w.is_function(s[i])&&await s[i](e)}}catch{}},S=(e="")=>{switch(e){case"add":return"add_file";case"change":return"change_file";case"unlink":return"delete_file";case"addDir":return"add_directory";case"unlinkDir":return"delete_directory"}},U=(e={},s={})=>{const a=f.watch([...R,...s?.custom_copy_paths||[]].map(({path:t})=>t),{ignored:".joystick"});let r=[];process.initial_build_complete=!1,a.on("error",t=>console.error(t)),a.on("all",(t,i)=>{s?.excluded_paths?.some(_=>i.includes(_))||(r.push({event:S(t),path:i,is_custom_copy_path:s?.custom_copy_paths?.length?s?.custom_copy_paths.some(_=>i.includes(_?.path)):!1}),k(async()=>{await L(r,e),process.initial_build_complete=!0,r=[]},100))})};var M=U;export{M as default};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/lib/development_server/watch_for_changes/index.js"],
|
|
4
|
+
"sourcesContent": ["import chokidar from 'chokidar';\nimport fs from 'fs';\nimport { dirname } from 'path';\nimport build_files from '../../build/build_files.js';\nimport debounce from '../../debounce.js';\nimport get_after_run_tasks from './get_after_run_tasks.js';\nimport get_file_codependencies from './get_file_codependencies.js';\nimport get_file_operation from '../../build/get_file_operation.js';\nimport get_path_platform from '../../build/get_path_platform.js';\nimport types from '../../types.js';\nimport watch_paths from './watch_paths.js';\n \nconst { mkdir, copyFile, rm: remove } = fs.promises;\n\nconst handle_build_files = async (job = {}, options = {}) => {\n\tconst codependencies = process.initial_build_complete ? await get_file_codependencies(job?.path) : [];\n\n\t// NOTE: If we have codependencies, make sure that the file triggering the current job is rebuilt first\n\t// *before* rebuilding its codependencies. This ensures that codependencies get the latest build of the\n\t// file. If we do them all together in parallel, the latest build is missed.\n\tif (options?.is_build_file) {\n\t\tawait build_files({\n\t\t\tfiles: [{ path: job?.path, platform: get_path_platform(job?.path) }],\n\t\t}).catch((errors = []) => {\n\t\t\tif (!process.initial_build_complete && errors?.length > 0) {\n\t\t\t\tprocess.exit(0);\n\t\t\t}\n\n\t\t\tif (process.initial_build_complete && errors?.length > 0) {\n\t\t\t\tprocess.app_server_process.send(\n\t JSON.stringify({\n\t type: \"BUILD_ERROR\",\n\t paths: errors.filter(({ success }) => !success),\n\t })\n\t );\n\t\t\t\t\n\t\t\t\tprocess.hmr_server_process.send(JSON.stringify({\n\t\t\t type: 'BUILD_ERROR',\n\t\t\t }));\n\n\t\t\t\tthrow new Error('BUILD_ERROR');\n\t\t\t}\n\t\t});\n\t}\n\n\t// NOTE: Run handle_build_files() recursively against codependencies as each of *that* files codependencies\n\t// need to be rebuilt, too. This is because we bundle code into a single file, so all files up the \"tree\"\n\t// need to be updated to reflect any changes of their children.\n\tif (codependencies?.length > 0) {\n\t\tfor (let i = 0; i < codependencies?.length; i += 1) {\n\t\t\tconst codependency = codependencies[i];\n\t\t\tawait handle_build_files({ path: codependency }, options);\n\t\t}\n\t}\n\n\treturn Promise.resolve();\n};\n\nconst run_job = async (job = {}) => {\n\tswitch(job?.operation) {\n\t\tcase 'add_directory':\n\t\t\treturn mkdir(`.joystick/build/${job?.path}`, { recursive: true });\n\t\tcase 'build_file':\n\t\t\treturn handle_build_files(job, { is_build_file: true });\n\t\tcase 'copy_file':\n\t\t\tawait mkdir(dirname(`.joystick/build/${job?.path}`), { recursive: true });\n\t\t\tawait copyFile(job?.path, `.joystick/build/${job?.path}`);\n\t\t\treturn handle_build_files(job, { is_build_file: false });\n\t\tcase 'delete_directory':\n\t\t\treturn remove(`.joystick/build/${job?.path}`, { recursive: true });\n\t\tcase 'delete_file':\n\t\t\tawait remove(`.joystick/build/${job?.path}`, { recursive: true });\n\t\t\treturn handle_build_files(job, { is_build_file: false });\n\t\tdefault:\n\t\t\treturn true;\n\t}\n};\n\nconst get_delete_directory_job = (job = {}) => {\n\treturn {\n\t\toperation: job?.event,\n\t\tpath: job?.path,\n\t\tafter_run_tasks: process.initial_build_complete ? get_after_run_tasks(job?.path) : ['start_app_server', 'start_hmr_server'],\n\t};\n};\n\nconst get_add_directory_job = (job = {}) => {\n\treturn {\n\t\toperation: job?.event,\n\t\tpath: job?.path,\n\t\tafter_run_tasks: process.initial_build_complete ? get_after_run_tasks(job?.path) : ['start_app_server', 'start_hmr_server'],\n\t};\n};\n\nconst get_delete_file_job = (job = {}) => {\n\treturn {\n\t\toperation: job?.event,\n\t\tpath: job?.path,\n\t\tafter_run_tasks: process.initial_build_complete ? get_after_run_tasks(job?.path) : ['start_app_server', 'start_hmr_server'],\n\t};\n};\n\nconst get_change_file_job = (job = {}) => {\n\treturn {\n\t\toperation: job?.is_custom_copy_path ? 'copy_file' : get_file_operation(job?.path),\n\t\tpath: job?.path,\n\t\tafter_run_tasks: process.initial_build_complete ? get_after_run_tasks(job?.path) : ['start_app_server', 'start_hmr_server'],\n\t};\n};\n\nconst get_add_file_job = (job = {}) => {\n\treturn {\n\t\toperation: job?.is_custom_copy_path ? 'copy_file' : get_file_operation(job?.path),\n\t\tpath: job?.path,\n\t\tafter_run_tasks: process.initial_build_complete ? get_after_run_tasks(job?.path) : ['start_app_server', 'start_hmr_server'],\n\t};\n};\n\nconst get_job_to_be_done = (job = {}) => {\n\tswitch(job?.event) {\n\t\tcase 'add_file':\n\t\t\treturn get_add_file_job(job);\n\t\tcase 'change_file':\n\t\t\treturn get_change_file_job(job);\n\t\tcase 'delete_file':\n\t\t\treturn get_delete_file_job(job);\n\t\tcase 'add_directory':\n\t\t\treturn get_add_directory_job(job);\n\t\tcase 'delete_directory':\n\t\t\treturn get_delete_directory_job(job);\n\t}\n};\n\nconst process_file_watcher_jobs = async (jobs = [], after_run_functions = {}) => {\n\ttry {\n\t\tconst after_run_tasks = new Set([]);\n\n\t\tfor (let i = 0; i < jobs?.length; i += 1) {\n\t\t\tconst job_to_run = jobs[i];\n\t\t\tconst job = get_job_to_be_done(job_to_run);\n\n\t\t\tawait run_job(job);\n\n\t\t\tif (job?.after_run_tasks) {\n\t\t\t\tfor (let i = 0; i < job?.after_run_tasks?.length; i += 1) {\n\t\t\t\t\tconst after_run_task = job?.after_run_tasks[i];\n\t\t\t\t\tafter_run_tasks.add(after_run_task);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst tasks_to_run = Array.from(after_run_tasks);\n\n\t\tfor (let i = 0; i < tasks_to_run?.length; i += 1) {\n\t\t\tconst after_run_task = tasks_to_run[i];\n\n\t\t\tif (types.is_function(after_run_functions[after_run_task])) {\n\t\t\t\tawait after_run_functions[after_run_task](jobs);\n\t\t\t}\n\t\t}\n\t} catch(error) {\n\t\t// NOTE: Dead catch as we just want to avoid after_run_tasks from running. Actual\n\t\t// errors are handled as part of run_job() (e.g., build errors are handled as a part\n\t\t// of handle_build_files()).\n\t}\n};\n\nconst transform_chokidar_event = (event = '') => {\n\tswitch(event) {\n\t\tcase 'add':\n\t\t\treturn 'add_file';\n\t\tcase 'change':\n\t\t\treturn 'change_file';\n\t\tcase 'unlink':\n\t\t\treturn 'delete_file';\n\t\tcase 'addDir':\n\t\t\treturn 'add_directory';\n\t\tcase 'unlinkDir':\n\t\t\treturn 'delete_directory';\n\t}\n};\n\nconst watch_for_changes = (after_run_functions = {}, watch_for_changes_options = {}) => {\n\tconst file_watcher = chokidar.watch([...watch_paths, ...(watch_for_changes_options?.custom_copy_paths || [])].map(({ path }) => path), {\n\t\tignored: '.joystick',\n\t});\n\n\tlet file_watcher_jobs = [];\n\n\tprocess.initial_build_complete = false;\n\n\tfile_watcher.on('error', (error) => console.error(error));\n\n\tfile_watcher.on('all', (event, path) => {\n\t\tconst is_excluded_path = watch_for_changes_options?.excluded_paths?.some((excluded_path) => {\n\t\t\treturn path.includes(excluded_path);\n\t\t});\n\n\t\tif (!is_excluded_path) {\n\t\t\tfile_watcher_jobs.push({\n\t\t\t\tevent: transform_chokidar_event(event),\n\t\t\t\tpath,\n\t\t\t\tis_custom_copy_path: watch_for_changes_options?.custom_copy_paths?.length ? watch_for_changes_options?.custom_copy_paths.some((custom_copy_path) => {\n\t\t\t\t return path.includes(custom_copy_path?.path);\n\t\t\t\t}) : false,\n\t\t\t});\n\n\t\t\t// NOTE: Depending on the watch event, we expect multiple events to be emitted\n\t\t\t// by chokidar. Debouncing here allows us to \"collect\" the jobs for the current\n\t\t\t// chain of events and *then* process them all together. This is done to avoid\n\t\t\t// triggering multiple HMR calls or server restarts for files related to the\n\t\t\t// same job. This is near-instant, so there's no delay for the developer.\n\t\t\tdebounce(async () => {\n\t\t\t\tawait process_file_watcher_jobs(file_watcher_jobs, after_run_functions);\n\t\t\t\tprocess.initial_build_complete = true;\n\t\t\t\tfile_watcher_jobs = [];\n\t\t\t}, 100);\n\t\t}\n\t});\n};\n\nexport default watch_for_changes;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["chokidar", "fs", "dirname", "build_files", "debounce", "get_after_run_tasks", "get_file_codependencies", "get_file_operation", "get_path_platform", "types", "watch_paths", "mkdir", "copyFile", "remove", "handle_build_files", "job", "options", "codependencies", "errors", "success", "i", "codependency", "run_job", "get_delete_directory_job", "get_add_directory_job", "get_delete_file_job", "get_change_file_job", "get_add_file_job", "get_job_to_be_done", "process_file_watcher_jobs", "jobs", "after_run_functions", "after_run_tasks", "job_to_run", "after_run_task", "tasks_to_run", "transform_chokidar_event", "event", "watch_for_changes", "watch_for_changes_options", "file_watcher", "path", "file_watcher_jobs", "error", "excluded_path", "custom_copy_path", "index_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"./get_platform_safe_path.js";var o=[e("api/"),e("caches/"),e("cronJobs/"),e("cron_jobs/"),e("fixtures/"),e("indexes/"),e("lib/node"),e("queues/"),e("routes/"),e("tests/"),e("uploaders/"),e("websockets/"),e("workers/"),"index.server.js"];export{o as default};
|
|
2
|
+
//# sourceMappingURL=node_paths.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/lib/development_server/watch_for_changes/node_paths.js"],
|
|
4
|
+
"sourcesContent": ["import get_platform_safe_path from \"./get_platform_safe_path.js\";\n\nexport default [\n get_platform_safe_path(\"api/\"),\n get_platform_safe_path(\"caches/\"),\n get_platform_safe_path(\"cronJobs/\"),\n get_platform_safe_path(\"cron_jobs/\"),\n get_platform_safe_path(\"fixtures/\"),\n get_platform_safe_path(\"indexes/\"),\n get_platform_safe_path(\"lib/node\"),\n get_platform_safe_path(\"queues/\"),\n get_platform_safe_path(\"routes/\"),\n get_platform_safe_path(\"tests/\"),\n get_platform_safe_path(\"uploaders/\"),\n get_platform_safe_path(\"websockets/\"),\n get_platform_safe_path(\"workers/\"),\n \"index.server.js\",\n];\n"],
|
|
5
|
+
"mappings": "AAAA,OAAOA,MAA4B,8BAEnC,IAAOC,EAAQ,CACbD,EAAuB,MAAM,EAC7BA,EAAuB,SAAS,EAChCA,EAAuB,WAAW,EAClCA,EAAuB,YAAY,EACnCA,EAAuB,WAAW,EAClCA,EAAuB,UAAU,EACjCA,EAAuB,UAAU,EACjCA,EAAuB,SAAS,EAChCA,EAAuB,SAAS,EAChCA,EAAuB,QAAQ,EAC/BA,EAAuB,YAAY,EACnCA,EAAuB,aAAa,EACpCA,EAAuB,UAAU,EACjC,iBACF",
|
|
6
|
+
"names": ["get_platform_safe_path", "node_paths_default"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import t from"fs";import i from"../../path_exists.js";const{readFile:s}=t.promises,o=async()=>{const e=".joystick/build/file_map.json";if(await i(e)){const a=await s(e,"utf-8");return a?JSON.parse(a):{}}return{}};var n=o;export{n as default};
|
|
2
|
+
//# sourceMappingURL=read_file_dependency_map.js.map
|