feat(runtime): add document tools, MiSans and patched chat manager
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
// Scoped to this plugin; host authentication and global fetch are unchanged.
|
||||
async function dshChatFetch(path, init) {
|
||||
const parts = window.location.pathname.split('/');
|
||||
const prefix = parts[1] === 'dsh' && parts[2] ? '/dsh/' + parts[2] : '';
|
||||
return fetch(prefix + path, init);
|
||||
}
|
||||
async function dshChatJson(response) {
|
||||
const text = await response.text();
|
||||
try { return JSON.parse(text); } catch {
|
||||
throw new Error('Chat Manager: HTTP ' + response.status + ' returned a non-JSON response; check the instance proxy path and authentication.');
|
||||
}
|
||||
}
|
||||
export const clientHelpers = dshChatFetch.toString() + String.fromCharCode(10) + dshChatJson.toString() + String.fromCharCode(10);
|
||||
|
||||
export function patchClient(source, version) {
|
||||
if (version !== '1.5.12') throw new Error('unsupported chat-manager version');
|
||||
if (source.includes('dshChatFetch') || source.split('await fetch(').length !== 4
|
||||
|| source.split('await response.json()').length !== 4
|
||||
|| source.split('/plugins/dsh-session-delete/').length !== 4) {
|
||||
throw new Error('unexpected chat-manager client; review upstream changes');
|
||||
}
|
||||
return clientHelpers + source.replaceAll('await fetch(', 'await dshChatFetch(')
|
||||
.replaceAll('await response.json()', 'await dshChatJson(response)');
|
||||
}
|
||||
Reference in New Issue
Block a user