Files
vue3js-app-proposal-for-sdk…/static/api.js
c0dev0id 67c75781d8 Drop custom auth dialog; rely on browser Basic Auth handling
Remove ImportDialog and all manual credential management. The browser
handles 401 challenges natively for same-origin fetch requests — it
shows its own credential prompt, retries, and caches the result for
the session. No JS-level auth code is needed.

- api.js: remove authHeader() and all credentials parameters
- store.js: remove credentials field
- ImportDialog.js: deleted
- AppShell.js: remove showImport/openImport/onMounted dialog machinery;
  pass importOnLoad through to PaneCP
- PaneCP.js: inline doImport() (was in ImportDialog); auto-triggers on
  mount when importOnLoad is true; shows inline import error on failure
- StatusPoller.js: remove credentials arg from fetchStatus()
- style.css: remove .se-import-dialog and .se-overlay blocks
2026-06-30 09:32:44 +02:00

41 lines
1.2 KiB
JavaScript

const U = window.NEUSICIAN_URLS;
export const URLS = U;
export async function fetchAstLog() {
const res = await fetch(U.astlog);
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
return res.text();
}
export async function fetchScoreText() {
const res = await fetch(U.score);
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
return res.text();
}
export async function putScoreText(text) {
const res = await fetch(U.score, {
method: 'PUT',
headers: { 'Content-Type': 'text/yaml' },
body: text,
});
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
return res;
}
export async function fetchStatus() {
const res = await fetch(U.status);
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
return res.json();
}
export async function fetchAudioWidget(resultUrl, errors) {
const params = new URLSearchParams();
if (resultUrl) params.set('result_url', resultUrl);
if (errors) params.set('errors', errors);
const res = await fetch(`${U.audiowidget}?${params}`);
if (!res.ok || res.status === 204) return '';
return res.text();
}