diff --git a/VERSION.properties b/VERSION.properties index 8aeaa9d..eaa4f8e 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.2.240 -server.version=1.2.225 +client.version=1.2.241 +server.version=1.2.226 diff --git a/shine-UI/js/deploy-config.js b/shine-UI/js/deploy-config.js new file mode 100644 index 0000000..4fa5068 --- /dev/null +++ b/shine-UI/js/deploy-config.js @@ -0,0 +1,7 @@ +// Конфиг по умолчанию для конкретного деплоя UI. +// Перед выкладкой на другой хост можно поменять этот файл без правки логики приложения. + +export const defaultServerLogin = 'shineupme'; +export const defaultServerAddress = 'shineup.me'; +export const defaultServerHttp = `https://${defaultServerAddress}`; +export const defaultServerWs = `wss://${defaultServerAddress}/ws`; diff --git a/shine-UI/js/pages/developer-settings-view.js b/shine-UI/js/pages/developer-settings-view.js index ab7b7a9..f8f90e6 100644 --- a/shine-UI/js/pages/developer-settings-view.js +++ b/shine-UI/js/pages/developer-settings-view.js @@ -17,6 +17,7 @@ import { uploadArweaveFile, validateAvatarSourceFile, } from '../services/arweave-file-service.js'; +import { defaultServerAddress, defaultServerHttp } from '../deploy-config.js'; export const pageMeta = { id: 'developer-settings-view', title: 'Настройки разработчика' }; @@ -207,9 +208,9 @@ function showClientUpdateHelp() { window.alert( 'Если UI не обновился:\n\n' + '1) Закройте вкладки с SHiNE.\n' - + '2) Откройте chrome://settings/siteData и удалите данные для shineup.me.\n' + + `2) Откройте chrome://settings/siteData и удалите данные для ${defaultServerAddress}.\n` + '3) Если приложение установлено как PWA — удалите его с устройства.\n' - + '4) Откройте https://shineup.me заново и выполните вход.\n' + + `4) Откройте ${defaultServerHttp} заново и выполните вход.\n` + '5) Если всё ещё старая версия — откройте в режиме инкогнито и проверьте версию в Настройки -> Версии.' ); } diff --git a/shine-UI/js/pages/login-password-view.js b/shine-UI/js/pages/login-password-view.js index c870886..136152c 100644 --- a/shine-UI/js/pages/login-password-view.js +++ b/shine-UI/js/pages/login-password-view.js @@ -100,6 +100,7 @@ export function render({ navigate }) { onInput: (index, value) => { passwordWords[index] = value; syncDraftState(); + updateWordsPreview(); }, }); @@ -165,7 +166,10 @@ export function render({ navigate }) { syncDraftState(); loginInput.addEventListener('input', syncDraftState); - passwordInput.addEventListener('input', syncDraftState); + passwordInput.addEventListener('input', () => { + syncDraftState(); + updateWordsPreview(); + }); passwordModeCheckbox.addEventListener('change', () => { const nextMode = passwordModeCheckbox.checked ? 'words' : 'single'; @@ -181,6 +185,7 @@ export function render({ navigate }) { } passwordMode = nextMode; updatePasswordModeVisibility(); + updateWordsPreview(); syncDraftState(); }); diff --git a/shine-UI/js/pages/register-view.js b/shine-UI/js/pages/register-view.js index 61e62c1..6a135cf 100644 --- a/shine-UI/js/pages/register-view.js +++ b/shine-UI/js/pages/register-view.js @@ -14,6 +14,7 @@ import { PASSWORD_WORDS_COUNT, } from '../services/password-words.js'; import { openRegistrationFaq } from './registration-faq-view.js'; +import { defaultServerHttp, defaultServerLogin } from '../deploy-config.js'; export const pageMeta = { id: 'register-view', title: 'Зарегистрироваться', showAppChrome: false }; @@ -100,6 +101,7 @@ export function render({ navigate }) { onInput: (index, value) => { passwordWords[index] = value; syncDraftState(); + updateWordsPreview(); }, }); @@ -123,8 +125,8 @@ export function render({ navigate }) { serverNotice.className = 'card stack'; serverNotice.innerHTML = `

Первый сервер SHiNE

-

Сейчас вашим первым и основным сервером будет серверный аккаунт ${state.entrySettings.shineServerLogin || 'shineupme'}.

-

Текущий адрес этого сервера: ${state.entrySettings.shineServerHttp || 'https://shineup.me'}.

+

Сейчас вашим первым и основным сервером будет серверный аккаунт ${state.entrySettings.shineServerLogin || defaultServerLogin}.

+

Текущий адрес этого сервера: ${state.entrySettings.shineServerHttp || defaultServerHttp}.

Это первый сервер, на который вам будут писать и звонить после регистрации. Позже его можно будет сменить, а в будущем использовать и несколько серверов сразу.

`; @@ -299,6 +301,7 @@ export function render({ navigate }) { passwordInput.addEventListener('input', () => { syncDraftState(); + updateWordsPreview(); }); passwordModeCheckbox.addEventListener('change', () => { @@ -315,6 +318,7 @@ export function render({ navigate }) { } passwordMode = nextMode; updatePasswordModeVisibility(); + updateWordsPreview(); syncDraftState(); }); diff --git a/shine-UI/js/pages/registration-payment-view.js b/shine-UI/js/pages/registration-payment-view.js index cd4afc5..0437074 100644 --- a/shine-UI/js/pages/registration-payment-view.js +++ b/shine-UI/js/pages/registration-payment-view.js @@ -16,6 +16,7 @@ import { isUserAlreadyExistsSolanaError, registerUserOnSolana, } from '../services/solana-register-service.js'; +import { defaultServerLogin } from '../deploy-config.js'; export const pageMeta = { id: 'registration-payment-view', title: 'Оплата регистрации', showAppChrome: false }; const MIN_REQUIRED_SOL = 0.01; @@ -194,7 +195,7 @@ export function render({ navigate }) { login: state.registrationDraft.login, keyBundle, solanaEndpoint: state.entrySettings.solanaServer, - accessServers: [state.entrySettings.shineServerLogin || 'shineupme'], + accessServers: [state.entrySettings.shineServerLogin || defaultServerLogin], }); } catch (solanaError) { const solanaMsg = formatSolanaErrorDetails(solanaError); diff --git a/shine-UI/js/services/auth-service.js b/shine-UI/js/services/auth-service.js index c314e2a..d02254f 100644 --- a/shine-UI/js/services/auth-service.js +++ b/shine-UI/js/services/auth-service.js @@ -27,6 +27,7 @@ import { saveEncryptedUserSecrets, saveSessionMaterial, } from './key-vault.js'; +import { defaultServerWs } from '../deploy-config.js'; const BCH_SUFFIX = '001'; const ZERO64 = '0'.repeat(64); @@ -73,7 +74,7 @@ const CONNECTION_SUBTYPES = Object.freeze({ function normalizeServerUrl(url) { const value = (url || '').trim(); - if (!value) return 'wss://shineup.me/ws'; + if (!value) return defaultServerWs; if (value.startsWith('ws://') || value.startsWith('wss://')) { try { const parsed = new URL(value); diff --git a/shine-UI/js/services/shine-server-resolver.js b/shine-UI/js/services/shine-server-resolver.js index db23935..e42cc81 100644 --- a/shine-UI/js/services/shine-server-resolver.js +++ b/shine-UI/js/services/shine-server-resolver.js @@ -1,9 +1,15 @@ import { readShineUserPda } from './shine-user-pda-service.js'; +import { + defaultServerAddress, + defaultServerHttp, + defaultServerLogin, + defaultServerWs, +} from '../deploy-config.js'; -export const DEFAULT_SHINE_SERVER_LOGIN = 'shineupme'; -export const DEFAULT_SHINE_SERVER_ADDRESS = 'shineup.me'; -export const DEFAULT_SHINE_SERVER_HTTP = `https://${DEFAULT_SHINE_SERVER_ADDRESS}`; -export const DEFAULT_SHINE_SERVER_WS = `wss://${DEFAULT_SHINE_SERVER_ADDRESS}/ws`; +export const DEFAULT_SHINE_SERVER_LOGIN = defaultServerLogin; +export const DEFAULT_SHINE_SERVER_ADDRESS = defaultServerAddress; +export const DEFAULT_SHINE_SERVER_HTTP = defaultServerHttp; +export const DEFAULT_SHINE_SERVER_WS = defaultServerWs; function normalizeHostLike(value) { const raw = String(value || '').trim(); diff --git a/shine-UI/js/services/ws-client.js b/shine-UI/js/services/ws-client.js index e8de9ed..324cdf6 100644 --- a/shine-UI/js/services/ws-client.js +++ b/shine-UI/js/services/ws-client.js @@ -1,10 +1,11 @@ import { captureClientError } from './client-error-reporter.js'; +import { defaultServerWs } from '../deploy-config.js'; const DEFAULT_TIMEOUT_MS = 12000; function buildWsUrl(raw) { const value = (raw || '').trim(); - if (!value) return 'wss://shineup.me/ws'; + if (!value) return defaultServerWs; if (value.startsWith('/')) { const secure = window.location.protocol === 'https:'; const scheme = secure ? 'wss' : 'ws'; diff --git a/shine-UI/server-ui/create-server-pda.html b/shine-UI/server-ui/create-server-pda.html index 2911b2e..40cc3c3 100644 --- a/shine-UI/server-ui/create-server-pda.html +++ b/shine-UI/server-ui/create-server-pda.html @@ -56,12 +56,12 @@

Данные сервера

- +
Только a-z, 0-9, _ · без точки · макс. 20 символов
- +
diff --git a/shine-UI/server-ui/js/create-server-pda-page.js b/shine-UI/server-ui/js/create-server-pda-page.js index 6e05cce..beaaab0 100644 --- a/shine-UI/server-ui/js/create-server-pda-page.js +++ b/shine-UI/server-ui/js/create-server-pda-page.js @@ -16,6 +16,7 @@ import { validateLoginOrThrow, wireDeviceAddressPreview, } from './server-ui-shared.js'; +import { defaultServerAddress, defaultServerLogin } from '../../js/deploy-config.js'; const fieldMap = { masterSecret: 'masterSecret', @@ -34,6 +35,8 @@ const fieldMap = { setupPasswordEye($('btnEye'), $('password')); wireDeviceAddressPreview(fieldMap); $('password').value = ''; +$('login').placeholder = defaultServerLogin; +$('serverAddress').placeholder = defaultServerAddress; $('btnTopupDevnet').addEventListener('click', () => { try { diff --git a/shine-UI/server-ui/js/update-server-pda-page.js b/shine-UI/server-ui/js/update-server-pda-page.js index bf46ab7..4207e30 100644 --- a/shine-UI/server-ui/js/update-server-pda-page.js +++ b/shine-UI/server-ui/js/update-server-pda-page.js @@ -22,6 +22,7 @@ import { validateLoginOrThrow, wireDeviceAddressPreview, } from './server-ui-shared.js'; +import { defaultServerAddress, defaultServerLogin } from '../../js/deploy-config.js'; const fieldMap = { masterSecret: 'masterSecret', @@ -97,6 +98,8 @@ function renderComparisonStatus() { setupPasswordEye($('btnEye'), $('password')); wireDeviceAddressPreview(fieldMap); $('password').value = ''; +$('login').placeholder = defaultServerLogin; +$('serverAddress').placeholder = defaultServerAddress; resetExpectedKeysUi(); $('btnTopupDevnet').addEventListener('click', () => { diff --git a/shine-UI/server-ui/update-server-pda.html b/shine-UI/server-ui/update-server-pda.html index 15b3c0b..b4e9e5f 100644 --- a/shine-UI/server-ui/update-server-pda.html +++ b/shine-UI/server-ui/update-server-pda.html @@ -63,7 +63,7 @@

Загрузить существующую PDA

- +
@@ -86,7 +86,7 @@

Новые параметры сервера

- +