Changes: Propose the pinned XMPP library decision and add an isolated browser-built selection spike combining reviewed public SASL, SHA-512 and parser seams. Exercise TLS/xmpp handshake, strongest compatible non-PLUS authentication, rejected unsafe paths and extension mappings; document duplicate-body export projection and remaining limits. Preserve dependency notices, evidence and QA handoff. Validation: Clean-cache pinned npm ci succeeded; npm test passed 112 checks; check-dependencies.py verified 51 locked entries, 26 installed packages and 340 unchanged vendor files; make check passed 72 tooling tests. No actual browser runtime, independent full XMPP server/client or production encryption/release readiness claim. Task: S00-003 Agent: auto-protocol-f474114f0168 Role: protocol Action: claim Status: review Task title: Проверить XMPP WSS/auth библиотеку
24 lines
1.0 KiB
JavaScript
24 lines
1.0 KiB
JavaScript
import {defineConfig} from 'vite';
|
|
import {fileURLToPath} from 'node:url';
|
|
export default defineConfig({
|
|
resolve: {alias: {events: fileURLToPath(new URL('./node_modules/events/events.js', import.meta.url))}},
|
|
build: {
|
|
target: ['chrome111', 'edge111', 'firefox114', 'safari16.4'],
|
|
minify: false,
|
|
lib: {entry: 'browser-entry.mjs', formats: ['es'], fileName: () => 'browser.mjs'},
|
|
rollupOptions: {plugins: [{
|
|
name: 'backend-evidence',
|
|
generateBundle() {
|
|
const modules = [...this.getModuleIds()].map(id => id.replace(process.cwd(), '.')).sort();
|
|
if (!modules.some(id => id.endsWith('/stanza/platform/browser/crypto/Hmac.js'))) {
|
|
throw new Error('Browser HMAC missing');
|
|
}
|
|
if (modules.some(id => /stanza\/platform\/node\/|^node:|browser-external/.test(id))) {
|
|
throw new Error('Unexpected Node runtime backend');
|
|
}
|
|
this.emitFile({type: 'asset', fileName: 'modules.json', source: JSON.stringify(modules, null, 2) + '\n'});
|
|
}
|
|
}]}
|
|
}
|
|
});
|