Reset crypto_vault_extension to clean state before SigSocket implementation
This commit is contained in:
parent
6b037537bf
commit
203cde1cba
@ -5,7 +5,6 @@ let keepAliveInterval = null;
|
|||||||
let sessionTimeoutDuration = 15; // Default 15 seconds
|
let sessionTimeoutDuration = 15; // Default 15 seconds
|
||||||
let sessionTimeoutId = null; // Background timer
|
let sessionTimeoutId = null; // Background timer
|
||||||
let popupPort = null; // Track popup connection
|
let popupPort = null; // Track popup connection
|
||||||
let sigSocketService = null; // SigSocket service instance
|
|
||||||
|
|
||||||
// Utility function to convert Uint8Array to hex
|
// Utility function to convert Uint8Array to hex
|
||||||
function toHex(uint8Array) {
|
function toHex(uint8Array) {
|
||||||
@ -139,9 +138,6 @@ async function restoreSession() {
|
|||||||
// Import WASM module functions
|
// Import WASM module functions
|
||||||
import init, * as wasmFunctions from './wasm/wasm_app.js';
|
import init, * as wasmFunctions from './wasm/wasm_app.js';
|
||||||
|
|
||||||
// Import SigSocket service
|
|
||||||
import SigSocketService from './background/sigsocket.js';
|
|
||||||
|
|
||||||
// Initialize WASM module
|
// Initialize WASM module
|
||||||
async function initVault() {
|
async function initVault() {
|
||||||
try {
|
try {
|
||||||
@ -155,9 +151,6 @@ async function initVault() {
|
|||||||
vault = wasmFunctions;
|
vault = wasmFunctions;
|
||||||
isInitialized = true;
|
isInitialized = true;
|
||||||
|
|
||||||
// Initialize SigSocket service
|
|
||||||
await initSigSocketService();
|
|
||||||
|
|
||||||
// Try to restore previous session
|
// Try to restore previous session
|
||||||
await restoreSession();
|
await restoreSession();
|
||||||
|
|
||||||
@ -168,17 +161,6 @@ async function initVault() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize SigSocket service
|
|
||||||
async function initSigSocketService() {
|
|
||||||
try {
|
|
||||||
sigSocketService = new SigSocketService();
|
|
||||||
await sigSocketService.initialize(vault);
|
|
||||||
console.log('SigSocket service initialized');
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Failed to initialize SigSocket service:', error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Consolidated message handlers
|
// Consolidated message handlers
|
||||||
const messageHandlers = {
|
const messageHandlers = {
|
||||||
@ -190,16 +172,6 @@ const messageHandlers = {
|
|||||||
initSession: async (request) => {
|
initSession: async (request) => {
|
||||||
await vault.init_session(request.keyspace, request.password);
|
await vault.init_session(request.keyspace, request.password);
|
||||||
await sessionManager.save(request.keyspace);
|
await sessionManager.save(request.keyspace);
|
||||||
|
|
||||||
// Auto-connect to SigSocket server when session is initialized (only if not already connected)
|
|
||||||
if (sigSocketService && !sigSocketService.isConnected) {
|
|
||||||
console.log(`Attempting to connect to SigSocket for keyspace: ${request.keyspace}`);
|
|
||||||
const connected = await sigSocketService.connectToServer(request.keyspace);
|
|
||||||
console.log(`SigSocket connection result: ${connected}`);
|
|
||||||
} else if (sigSocketService && sigSocketService.isConnected) {
|
|
||||||
console.log('SigSocket already connected, skipping connection attempt');
|
|
||||||
}
|
|
||||||
|
|
||||||
return { success: true };
|
return { success: true };
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -289,52 +261,6 @@ const messageHandlers = {
|
|||||||
await chrome.storage.local.set({ sessionTimeout: request.timeout });
|
await chrome.storage.local.set({ sessionTimeout: request.timeout });
|
||||||
resetSessionTimeout(); // Restart with new duration
|
resetSessionTimeout(); // Restart with new duration
|
||||||
return { success: true };
|
return { success: true };
|
||||||
},
|
|
||||||
|
|
||||||
// SigSocket message handlers
|
|
||||||
connectSigSocket: async (request) => {
|
|
||||||
if (!sigSocketService) {
|
|
||||||
return { success: false, error: 'SigSocket service not available' };
|
|
||||||
}
|
|
||||||
const connected = await sigSocketService.connectToServer(request.workspaceId);
|
|
||||||
return { success: connected };
|
|
||||||
},
|
|
||||||
|
|
||||||
getPendingRequests: () => {
|
|
||||||
if (!sigSocketService) {
|
|
||||||
return { success: false, error: 'SigSocket service not available' };
|
|
||||||
}
|
|
||||||
return { success: true, requests: sigSocketService.getPendingRequests() };
|
|
||||||
},
|
|
||||||
|
|
||||||
keypaceUnlocked: async () => {
|
|
||||||
if (sigSocketService) {
|
|
||||||
await sigSocketService.onKeypaceUnlocked();
|
|
||||||
}
|
|
||||||
return { success: true };
|
|
||||||
},
|
|
||||||
|
|
||||||
approveSignRequest: async (request) => {
|
|
||||||
if (!sigSocketService) {
|
|
||||||
return { success: false, error: 'SigSocket service not available' };
|
|
||||||
}
|
|
||||||
const approved = await sigSocketService.approveSignRequest(request.requestId);
|
|
||||||
return { success: approved };
|
|
||||||
},
|
|
||||||
|
|
||||||
rejectSignRequest: async (request) => {
|
|
||||||
if (!sigSocketService) {
|
|
||||||
return { success: false, error: 'SigSocket service not available' };
|
|
||||||
}
|
|
||||||
const rejected = await sigSocketService.rejectSignRequest(request.requestId, request.reason);
|
|
||||||
return { success: rejected };
|
|
||||||
},
|
|
||||||
|
|
||||||
getSigSocketStatus: () => {
|
|
||||||
if (!sigSocketService) {
|
|
||||||
return { success: false, error: 'SigSocket service not available' };
|
|
||||||
}
|
|
||||||
return { success: true, status: sigSocketService.getStatus() };
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -376,11 +302,6 @@ chrome.runtime.onConnect.addListener((port) => {
|
|||||||
// Track popup connection
|
// Track popup connection
|
||||||
popupPort = port;
|
popupPort = port;
|
||||||
|
|
||||||
// Set popup port in SigSocket service
|
|
||||||
if (sigSocketService) {
|
|
||||||
sigSocketService.setPopupPort(port);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we have an active session, ensure keep-alive is running
|
// If we have an active session, ensure keep-alive is running
|
||||||
if (currentSession) {
|
if (currentSession) {
|
||||||
startKeepAlive();
|
startKeepAlive();
|
||||||
@ -389,9 +310,6 @@ chrome.runtime.onConnect.addListener((port) => {
|
|||||||
port.onDisconnect.addListener(() => {
|
port.onDisconnect.addListener(() => {
|
||||||
// Popup closed, clear reference and stop keep-alive
|
// Popup closed, clear reference and stop keep-alive
|
||||||
popupPort = null;
|
popupPort = null;
|
||||||
if (sigSocketService) {
|
|
||||||
sigSocketService.setPopupPort(null);
|
|
||||||
}
|
|
||||||
stopKeepAlive();
|
stopKeepAlive();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,7 @@
|
|||||||
|
|
||||||
"permissions": [
|
"permissions": [
|
||||||
"storage",
|
"storage",
|
||||||
"activeTab",
|
"activeTab"
|
||||||
"notifications"
|
|
||||||
],
|
],
|
||||||
|
|
||||||
"icons": {
|
"icons": {
|
||||||
|
@ -27,10 +27,6 @@
|
|||||||
<span>seconds</span>
|
<span>seconds</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-item">
|
|
||||||
<label for="sigSocketUrlInput">SigSocket Server</label>
|
|
||||||
<input type="text" id="sigSocketUrlInput" placeholder="ws://localhost:8080/ws" value="ws://localhost:8080/ws">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button id="themeToggle" class="btn-icon-only" title="Switch to dark mode">
|
<button id="themeToggle" class="btn-icon-only" title="Switch to dark mode">
|
||||||
@ -193,11 +189,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Sign Request Manager -->
|
|
||||||
<div id="signRequestContainer">
|
|
||||||
<!-- Sign request manager will be rendered here -->
|
|
||||||
</div>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
@ -207,7 +198,6 @@
|
|||||||
|
|
||||||
<!-- Enhanced JavaScript modules -->
|
<!-- Enhanced JavaScript modules -->
|
||||||
<script src="js/errorHandler.js"></script>
|
<script src="js/errorHandler.js"></script>
|
||||||
<script src="popup/components/SignRequestManager.js"></script>
|
|
||||||
<script src="popup.js"></script>
|
<script src="popup.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
@ -129,7 +129,6 @@ const elements = {
|
|||||||
settingsToggle: document.getElementById('settingsToggle'),
|
settingsToggle: document.getElementById('settingsToggle'),
|
||||||
settingsDropdown: document.getElementById('settingsDropdown'),
|
settingsDropdown: document.getElementById('settingsDropdown'),
|
||||||
timeoutInput: document.getElementById('timeoutInput'),
|
timeoutInput: document.getElementById('timeoutInput'),
|
||||||
sigSocketUrlInput: document.getElementById('sigSocketUrlInput'),
|
|
||||||
|
|
||||||
// Keypair management elements
|
// Keypair management elements
|
||||||
toggleAddKeypairBtn: document.getElementById('toggleAddKeypairBtn'),
|
toggleAddKeypairBtn: document.getElementById('toggleAddKeypairBtn'),
|
||||||
@ -168,7 +167,6 @@ let currentKeyspace = null;
|
|||||||
let selectedKeypairId = null;
|
let selectedKeypairId = null;
|
||||||
let backgroundPort = null;
|
let backgroundPort = null;
|
||||||
let sessionTimeoutDuration = 15; // Default 15 seconds
|
let sessionTimeoutDuration = 15; // Default 15 seconds
|
||||||
let signRequestManager = null; // Sign request manager instance
|
|
||||||
|
|
||||||
// Session timeout management
|
// Session timeout management
|
||||||
function handleError(error, context, shouldShowToast = true) {
|
function handleError(error, context, shouldShowToast = true) {
|
||||||
@ -200,14 +198,11 @@ function validateInput(value, fieldName, options = {}) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
async function loadTimeoutSetting() {
|
async function loadTimeoutSetting() {
|
||||||
const result = await chrome.storage.local.get(['sessionTimeout', 'sigSocketUrl']);
|
const result = await chrome.storage.local.get(['sessionTimeout']);
|
||||||
sessionTimeoutDuration = result.sessionTimeout || 15;
|
sessionTimeoutDuration = result.sessionTimeout || 15;
|
||||||
if (elements.timeoutInput) {
|
if (elements.timeoutInput) {
|
||||||
elements.timeoutInput.value = sessionTimeoutDuration;
|
elements.timeoutInput.value = sessionTimeoutDuration;
|
||||||
}
|
}
|
||||||
if (elements.sigSocketUrlInput) {
|
|
||||||
elements.sigSocketUrlInput.value = result.sigSocketUrl || 'ws://localhost:8080/ws';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function checkSessionTimeout() {
|
async function checkSessionTimeout() {
|
||||||
@ -312,39 +307,6 @@ function connectToBackground() {
|
|||||||
|
|
||||||
// Show timeout notification
|
// Show timeout notification
|
||||||
showToast(message.message, 'info');
|
showToast(message.message, 'info');
|
||||||
|
|
||||||
// Update sign request manager
|
|
||||||
if (signRequestManager) {
|
|
||||||
signRequestManager.updateState({ isKeypaceUnlocked: false });
|
|
||||||
}
|
|
||||||
} else if (message.type === 'KEYSPACE_UNLOCKED') {
|
|
||||||
// Handle keyspace unlock from SigSocket service
|
|
||||||
console.log('Popup received KEYSPACE_UNLOCKED message:', message);
|
|
||||||
if (signRequestManager) {
|
|
||||||
console.log('Updating SignRequestManager state with keypaceMatches:', message.keypaceMatches);
|
|
||||||
signRequestManager.updateState({
|
|
||||||
isKeypaceUnlocked: true,
|
|
||||||
keypaceMatches: message.keypaceMatches,
|
|
||||||
pendingRequests: message.pendingRequests
|
|
||||||
});
|
|
||||||
console.log('SignRequestManager state updated');
|
|
||||||
} else {
|
|
||||||
console.log('No SignRequestManager available to update');
|
|
||||||
}
|
|
||||||
} else if (message.type === 'NEW_SIGN_REQUEST') {
|
|
||||||
// Handle new sign request when keyspace is already unlocked
|
|
||||||
console.log('Popup received NEW_SIGN_REQUEST message:', message);
|
|
||||||
if (signRequestManager) {
|
|
||||||
console.log('Updating SignRequestManager with new request, keypaceMatches:', message.keypaceMatches);
|
|
||||||
// Only update if we have a valid keyspace match, otherwise requests array will be empty for security
|
|
||||||
signRequestManager.updateState({
|
|
||||||
keypaceMatches: message.keypaceMatches,
|
|
||||||
pendingRequests: message.pendingRequests
|
|
||||||
});
|
|
||||||
console.log(`SignRequestManager updated with new request: ${message.pendingRequests.length} requests visible`);
|
|
||||||
} else {
|
|
||||||
console.log('No SignRequestManager available to update with new request');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -353,22 +315,6 @@ function connectToBackground() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize Sign Request Manager
|
|
||||||
async function initializeSignRequestManager() {
|
|
||||||
try {
|
|
||||||
const container = document.getElementById('signRequestContainer');
|
|
||||||
if (container && window.SignRequestManager) {
|
|
||||||
signRequestManager = new window.SignRequestManager();
|
|
||||||
await signRequestManager.initialize(container);
|
|
||||||
console.log('Sign Request Manager initialized');
|
|
||||||
} else {
|
|
||||||
console.warn('SignRequestManager not available or container not found');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Failed to initialize Sign Request Manager:', error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Initialize
|
// Initialize
|
||||||
document.addEventListener('DOMContentLoaded', async function() {
|
document.addEventListener('DOMContentLoaded', async function() {
|
||||||
// Initialize theme first
|
// Initialize theme first
|
||||||
@ -386,9 +332,6 @@ document.addEventListener('DOMContentLoaded', async function() {
|
|||||||
// Connect to background script for keep-alive
|
// Connect to background script for keep-alive
|
||||||
connectToBackground();
|
connectToBackground();
|
||||||
|
|
||||||
// Initialize Sign Request Manager
|
|
||||||
await initializeSignRequestManager();
|
|
||||||
|
|
||||||
// Consolidated event listeners
|
// Consolidated event listeners
|
||||||
const eventMap = {
|
const eventMap = {
|
||||||
createKeyspaceBtn: createKeyspace,
|
createKeyspaceBtn: createKeyspace,
|
||||||
@ -433,18 +376,6 @@ document.addEventListener('DOMContentLoaded', async function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// SigSocket URL setting event listener
|
|
||||||
elements.sigSocketUrlInput?.addEventListener('change', async (e) => {
|
|
||||||
const url = e.target.value.trim();
|
|
||||||
if (url) {
|
|
||||||
await chrome.storage.local.set({ sigSocketUrl: url });
|
|
||||||
// Update the SigSocket service with new URL if it exists
|
|
||||||
if (signRequestManager && signRequestManager.sigSocketService) {
|
|
||||||
signRequestManager.sigSocketService.defaultServerUrl = url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Activity detection - reset timeout on any interaction
|
// Activity detection - reset timeout on any interaction
|
||||||
document.addEventListener('click', (e) => {
|
document.addEventListener('click', (e) => {
|
||||||
resetSessionTimeout();
|
resetSessionTimeout();
|
||||||
@ -713,12 +644,6 @@ async function login() {
|
|||||||
clearVaultState();
|
clearVaultState();
|
||||||
await loadKeypairs();
|
await loadKeypairs();
|
||||||
|
|
||||||
// Notify sign request manager about keyspace unlock
|
|
||||||
if (signRequestManager) {
|
|
||||||
signRequestManager.updateState({ isKeypaceUnlocked: true });
|
|
||||||
await signRequestManager.refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
} else {
|
} else {
|
||||||
throw new Error(getResponseError(response, 'login'));
|
throw new Error(getResponseError(response, 'login'));
|
||||||
@ -748,11 +673,6 @@ async function lockSession() {
|
|||||||
elements.passwordInput.value = '';
|
elements.passwordInput.value = '';
|
||||||
clearVaultState();
|
clearVaultState();
|
||||||
|
|
||||||
// Update sign request manager
|
|
||||||
if (signRequestManager) {
|
|
||||||
signRequestManager.updateState({ isKeypaceUnlocked: false });
|
|
||||||
}
|
|
||||||
|
|
||||||
showToast('Session locked', 'info');
|
showToast('Session locked', 'info');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
showToast('Error: ' + error.message, 'error');
|
showToast('Error: ' + error.message, 'error');
|
||||||
|
@ -1070,194 +1070,3 @@ input::placeholder, textarea::placeholder {
|
|||||||
width: 20px;
|
width: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sign Request Manager Styles */
|
|
||||||
.sign-request-manager {
|
|
||||||
margin-top: 16px;
|
|
||||||
padding: 16px;
|
|
||||||
background: var(--bg-secondary);
|
|
||||||
border-radius: 8px;
|
|
||||||
border: 1px solid var(--border-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.connection-status {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 8px;
|
|
||||||
margin-bottom: 12px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-indicator {
|
|
||||||
width: 8px;
|
|
||||||
height: 8px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background: #ef4444;
|
|
||||||
}
|
|
||||||
|
|
||||||
.connection-status.connected .status-indicator {
|
|
||||||
background: #10b981;
|
|
||||||
}
|
|
||||||
|
|
||||||
.no-requests {
|
|
||||||
text-align: center;
|
|
||||||
padding: 20px;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.unlock-prompt, .keyspace-mismatch {
|
|
||||||
text-align: center;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.unlock-prompt h3, .keyspace-mismatch h3 {
|
|
||||||
margin: 0 0 12px 0;
|
|
||||||
font-size: 16px;
|
|
||||||
color: var(--text-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.unlock-prompt p, .keyspace-mismatch p {
|
|
||||||
margin: 8px 0;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hint {
|
|
||||||
font-style: italic;
|
|
||||||
font-size: 12px !important;
|
|
||||||
color: var(--text-tertiary) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.requests-header {
|
|
||||||
margin-bottom: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.requests-header h3 {
|
|
||||||
margin: 0;
|
|
||||||
font-size: 16px;
|
|
||||||
color: var(--text-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.requests-list {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sign-request-card {
|
|
||||||
background: var(--bg-primary);
|
|
||||||
border: 1px solid var(--border-color);
|
|
||||||
border-radius: 6px;
|
|
||||||
padding: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.request-header {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
margin-bottom: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.request-id {
|
|
||||||
font-family: monospace;
|
|
||||||
font-size: 12px;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.request-time {
|
|
||||||
font-size: 11px;
|
|
||||||
color: var(--text-tertiary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.request-message {
|
|
||||||
margin-bottom: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.request-message label {
|
|
||||||
display: block;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: var(--text-secondary);
|
|
||||||
margin-bottom: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.message-content {
|
|
||||||
background: var(--bg-secondary);
|
|
||||||
border: 1px solid var(--border-color);
|
|
||||||
border-radius: 4px;
|
|
||||||
padding: 8px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.message-preview {
|
|
||||||
font-family: monospace;
|
|
||||||
font-size: 11px;
|
|
||||||
color: var(--text-primary);
|
|
||||||
word-break: break-all;
|
|
||||||
line-height: 1.4;
|
|
||||||
max-height: 60px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.message-content.expanded .message-preview {
|
|
||||||
max-height: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.expand-message {
|
|
||||||
position: absolute;
|
|
||||||
top: 4px;
|
|
||||||
right: 4px;
|
|
||||||
background: var(--accent-color);
|
|
||||||
color: white;
|
|
||||||
border: none;
|
|
||||||
border-radius: 3px;
|
|
||||||
padding: 2px 6px;
|
|
||||||
font-size: 10px;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: background-color 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.expand-message:hover {
|
|
||||||
background: var(--accent-hover);
|
|
||||||
}
|
|
||||||
|
|
||||||
.request-actions {
|
|
||||||
display: flex;
|
|
||||||
gap: 8px;
|
|
||||||
justify-content: flex-end;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-approve, .btn-reject {
|
|
||||||
padding: 6px 12px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 4px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: all 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-approve {
|
|
||||||
background: #10b981;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-approve:hover:not(:disabled) {
|
|
||||||
background: #059669;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-reject {
|
|
||||||
background: #ef4444;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-reject:hover:not(:disabled) {
|
|
||||||
background: #dc2626;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-approve:disabled, .btn-reject:disabled {
|
|
||||||
opacity: 0.6;
|
|
||||||
cursor: not-allowed;
|
|
||||||
}
|
|
@ -202,33 +202,6 @@ function debugString(val) {
|
|||||||
// TODO we could test for more things here, like `Set`s and `Map`s.
|
// TODO we could test for more things here, like `Set`s and `Map`s.
|
||||||
return className;
|
return className;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* Initialize the scripting environment (must be called before run_rhai)
|
|
||||||
*/
|
|
||||||
export function init_rhai_env() {
|
|
||||||
wasm.init_rhai_env();
|
|
||||||
}
|
|
||||||
|
|
||||||
function takeFromExternrefTable0(idx) {
|
|
||||||
const value = wasm.__wbindgen_export_2.get(idx);
|
|
||||||
wasm.__externref_table_dealloc(idx);
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Securely run a Rhai script in the extension context (must be called only after user approval)
|
|
||||||
* @param {string} script
|
|
||||||
* @returns {any}
|
|
||||||
*/
|
|
||||||
export function run_rhai(script) {
|
|
||||||
const ptr0 = passStringToWasm0(script, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
const len0 = WASM_VECTOR_LEN;
|
|
||||||
const ret = wasm.run_rhai(ptr0, len0);
|
|
||||||
if (ret[2]) {
|
|
||||||
throw takeFromExternrefTable0(ret[1]);
|
|
||||||
}
|
|
||||||
return takeFromExternrefTable0(ret[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create and unlock a new keyspace with the given name and password
|
* Create and unlock a new keyspace with the given name and password
|
||||||
* @param {string} keyspace
|
* @param {string} keyspace
|
||||||
@ -266,6 +239,11 @@ export function lock_session() {
|
|||||||
wasm.lock_session();
|
wasm.lock_session();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function takeFromExternrefTable0(idx) {
|
||||||
|
const value = wasm.__wbindgen_export_2.get(idx);
|
||||||
|
wasm.__externref_table_dealloc(idx);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Get metadata of the currently selected keypair
|
* Get metadata of the currently selected keypair
|
||||||
* @returns {any}
|
* @returns {any}
|
||||||
@ -299,42 +277,6 @@ export function is_unlocked() {
|
|||||||
return ret !== 0;
|
return ret !== 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the default public key for a workspace (keyspace)
|
|
||||||
* This returns the public key of the first keypair in the keyspace
|
|
||||||
* @param {string} workspace_id
|
|
||||||
* @returns {Promise<any>}
|
|
||||||
*/
|
|
||||||
export function get_workspace_default_public_key(workspace_id) {
|
|
||||||
const ptr0 = passStringToWasm0(workspace_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
const len0 = WASM_VECTOR_LEN;
|
|
||||||
const ret = wasm.get_workspace_default_public_key(ptr0, len0);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current unlocked public key as hex string
|
|
||||||
* @returns {string}
|
|
||||||
*/
|
|
||||||
export function get_current_unlocked_public_key() {
|
|
||||||
let deferred2_0;
|
|
||||||
let deferred2_1;
|
|
||||||
try {
|
|
||||||
const ret = wasm.get_current_unlocked_public_key();
|
|
||||||
var ptr1 = ret[0];
|
|
||||||
var len1 = ret[1];
|
|
||||||
if (ret[3]) {
|
|
||||||
ptr1 = 0; len1 = 0;
|
|
||||||
throw takeFromExternrefTable0(ret[2]);
|
|
||||||
}
|
|
||||||
deferred2_0 = ptr1;
|
|
||||||
deferred2_1 = len1;
|
|
||||||
return getStringFromWasm0(ptr1, len1);
|
|
||||||
} finally {
|
|
||||||
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all keypairs from the current session
|
* Get all keypairs from the current session
|
||||||
* Returns an array of keypair objects with id, type, and metadata
|
* Returns an array of keypair objects with id, type, and metadata
|
||||||
@ -381,7 +323,7 @@ function passArray8ToWasm0(arg, malloc) {
|
|||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Sign message with current session (requires selected keypair)
|
* Sign message with current session
|
||||||
* @param {Uint8Array} message
|
* @param {Uint8Array} message
|
||||||
* @returns {Promise<any>}
|
* @returns {Promise<any>}
|
||||||
*/
|
*/
|
||||||
@ -392,41 +334,6 @@ export function sign(message) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the current keyspace name
|
|
||||||
* @returns {string}
|
|
||||||
*/
|
|
||||||
export function get_current_keyspace_name() {
|
|
||||||
let deferred2_0;
|
|
||||||
let deferred2_1;
|
|
||||||
try {
|
|
||||||
const ret = wasm.get_current_keyspace_name();
|
|
||||||
var ptr1 = ret[0];
|
|
||||||
var len1 = ret[1];
|
|
||||||
if (ret[3]) {
|
|
||||||
ptr1 = 0; len1 = 0;
|
|
||||||
throw takeFromExternrefTable0(ret[2]);
|
|
||||||
}
|
|
||||||
deferred2_0 = ptr1;
|
|
||||||
deferred2_1 = len1;
|
|
||||||
return getStringFromWasm0(ptr1, len1);
|
|
||||||
} finally {
|
|
||||||
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sign message with default keypair (first keypair in keyspace) without changing session state
|
|
||||||
* @param {Uint8Array} message
|
|
||||||
* @returns {Promise<any>}
|
|
||||||
*/
|
|
||||||
export function sign_with_default_keypair(message) {
|
|
||||||
const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc);
|
|
||||||
const len0 = WASM_VECTOR_LEN;
|
|
||||||
const ret = wasm.sign_with_default_keypair(ptr0, len0);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verify a signature with the current session's selected keypair
|
* Verify a signature with the current session's selected keypair
|
||||||
* @param {Uint8Array} message
|
* @param {Uint8Array} message
|
||||||
@ -466,162 +373,46 @@ export function decrypt_data(encrypted) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_34(arg0, arg1, arg2) {
|
/**
|
||||||
wasm.closure135_externref_shim(arg0, arg1, arg2);
|
* Initialize the scripting environment (must be called before run_rhai)
|
||||||
|
*/
|
||||||
|
export function init_rhai_env() {
|
||||||
|
wasm.init_rhai_env();
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_39(arg0, arg1) {
|
/**
|
||||||
wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__ha4436a3f79fb1a0f(arg0, arg1);
|
* Securely run a Rhai script in the extension context (must be called only after user approval)
|
||||||
|
* @param {string} script
|
||||||
|
* @returns {any}
|
||||||
|
*/
|
||||||
|
export function run_rhai(script) {
|
||||||
|
const ptr0 = passStringToWasm0(script, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
||||||
|
const len0 = WASM_VECTOR_LEN;
|
||||||
|
const ret = wasm.run_rhai(ptr0, len0);
|
||||||
|
if (ret[2]) {
|
||||||
|
throw takeFromExternrefTable0(ret[1]);
|
||||||
|
}
|
||||||
|
return takeFromExternrefTable0(ret[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_44(arg0, arg1, arg2) {
|
function __wbg_adapter_32(arg0, arg1, arg2) {
|
||||||
wasm.closure199_externref_shim(arg0, arg1, arg2);
|
wasm.closure121_externref_shim(arg0, arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_49(arg0, arg1) {
|
function __wbg_adapter_35(arg0, arg1, arg2) {
|
||||||
wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hf148c54a4a246cea(arg0, arg1);
|
wasm.closure150_externref_shim(arg0, arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_52(arg0, arg1, arg2) {
|
function __wbg_adapter_38(arg0, arg1, arg2) {
|
||||||
wasm.closure264_externref_shim(arg0, arg1, arg2);
|
wasm.closure227_externref_shim(arg0, arg1, arg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_55(arg0, arg1, arg2) {
|
function __wbg_adapter_138(arg0, arg1, arg2, arg3) {
|
||||||
wasm.closure349_externref_shim(arg0, arg1, arg2);
|
wasm.closure1879_externref_shim(arg0, arg1, arg2, arg3);
|
||||||
}
|
}
|
||||||
|
|
||||||
function __wbg_adapter_195(arg0, arg1, arg2, arg3) {
|
|
||||||
wasm.closure2004_externref_shim(arg0, arg1, arg2, arg3);
|
|
||||||
}
|
|
||||||
|
|
||||||
const __wbindgen_enum_BinaryType = ["blob", "arraybuffer"];
|
|
||||||
|
|
||||||
const __wbindgen_enum_IdbTransactionMode = ["readonly", "readwrite", "versionchange", "readwriteflush", "cleanup"];
|
const __wbindgen_enum_IdbTransactionMode = ["readonly", "readwrite", "versionchange", "readwriteflush", "cleanup"];
|
||||||
|
|
||||||
const SigSocketConnectionFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
||||||
? { register: () => {}, unregister: () => {} }
|
|
||||||
: new FinalizationRegistry(ptr => wasm.__wbg_sigsocketconnection_free(ptr >>> 0, 1));
|
|
||||||
/**
|
|
||||||
* WASM-bindgen wrapper for SigSocket client
|
|
||||||
*
|
|
||||||
* This provides a clean JavaScript API for the browser extension to:
|
|
||||||
* - Connect to SigSocket servers
|
|
||||||
* - Send responses to sign requests
|
|
||||||
* - Manage connection state
|
|
||||||
*/
|
|
||||||
export class SigSocketConnection {
|
|
||||||
|
|
||||||
__destroy_into_raw() {
|
|
||||||
const ptr = this.__wbg_ptr;
|
|
||||||
this.__wbg_ptr = 0;
|
|
||||||
SigSocketConnectionFinalization.unregister(this);
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
free() {
|
|
||||||
const ptr = this.__destroy_into_raw();
|
|
||||||
wasm.__wbg_sigsocketconnection_free(ptr, 0);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Create a new SigSocket connection
|
|
||||||
*/
|
|
||||||
constructor() {
|
|
||||||
const ret = wasm.sigsocketconnection_new();
|
|
||||||
this.__wbg_ptr = ret >>> 0;
|
|
||||||
SigSocketConnectionFinalization.register(this, this.__wbg_ptr, this);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Connect to a SigSocket server
|
|
||||||
*
|
|
||||||
* # Arguments
|
|
||||||
* * `server_url` - WebSocket server URL (e.g., "ws://localhost:8080/ws")
|
|
||||||
* * `public_key_hex` - Client's public key as hex string
|
|
||||||
*
|
|
||||||
* # Returns
|
|
||||||
* * `Ok(())` - Successfully connected
|
|
||||||
* * `Err(error)` - Connection failed
|
|
||||||
* @param {string} server_url
|
|
||||||
* @param {string} public_key_hex
|
|
||||||
* @returns {Promise<void>}
|
|
||||||
*/
|
|
||||||
connect(server_url, public_key_hex) {
|
|
||||||
const ptr0 = passStringToWasm0(server_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
const len0 = WASM_VECTOR_LEN;
|
|
||||||
const ptr1 = passStringToWasm0(public_key_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
const len1 = WASM_VECTOR_LEN;
|
|
||||||
const ret = wasm.sigsocketconnection_connect(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Send a response to a sign request
|
|
||||||
*
|
|
||||||
* This should be called by the extension after the user has approved
|
|
||||||
* a sign request and the message has been signed.
|
|
||||||
*
|
|
||||||
* # Arguments
|
|
||||||
* * `request_id` - ID of the original request
|
|
||||||
* * `message_base64` - Original message (base64-encoded)
|
|
||||||
* * `signature_hex` - Signature as hex string
|
|
||||||
*
|
|
||||||
* # Returns
|
|
||||||
* * `Ok(())` - Response sent successfully
|
|
||||||
* * `Err(error)` - Failed to send response
|
|
||||||
* @param {string} request_id
|
|
||||||
* @param {string} message_base64
|
|
||||||
* @param {string} signature_hex
|
|
||||||
* @returns {Promise<void>}
|
|
||||||
*/
|
|
||||||
send_response(request_id, message_base64, signature_hex) {
|
|
||||||
const ptr0 = passStringToWasm0(request_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
const len0 = WASM_VECTOR_LEN;
|
|
||||||
const ptr1 = passStringToWasm0(message_base64, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
const len1 = WASM_VECTOR_LEN;
|
|
||||||
const ptr2 = passStringToWasm0(signature_hex, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
const len2 = WASM_VECTOR_LEN;
|
|
||||||
const ret = wasm.sigsocketconnection_send_response(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Send a rejection for a sign request
|
|
||||||
*
|
|
||||||
* This should be called when the user rejects a sign request.
|
|
||||||
*
|
|
||||||
* # Arguments
|
|
||||||
* * `request_id` - ID of the request to reject
|
|
||||||
* * `reason` - Reason for rejection (optional)
|
|
||||||
*
|
|
||||||
* # Returns
|
|
||||||
* * `Ok(())` - Rejection sent successfully
|
|
||||||
* * `Err(error)` - Failed to send rejection
|
|
||||||
* @param {string} request_id
|
|
||||||
* @param {string} reason
|
|
||||||
* @returns {Promise<void>}
|
|
||||||
*/
|
|
||||||
send_rejection(request_id, reason) {
|
|
||||||
const ptr0 = passStringToWasm0(request_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
const len0 = WASM_VECTOR_LEN;
|
|
||||||
const ptr1 = passStringToWasm0(reason, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
const len1 = WASM_VECTOR_LEN;
|
|
||||||
const ret = wasm.sigsocketconnection_send_rejection(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Disconnect from the SigSocket server
|
|
||||||
*/
|
|
||||||
disconnect() {
|
|
||||||
wasm.sigsocketconnection_disconnect(this.__wbg_ptr);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Check if connected to the server
|
|
||||||
* @returns {boolean}
|
|
||||||
*/
|
|
||||||
is_connected() {
|
|
||||||
const ret = wasm.sigsocketconnection_is_connected(this.__wbg_ptr);
|
|
||||||
return ret !== 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function __wbg_load(module, imports) {
|
async function __wbg_load(module, imports) {
|
||||||
if (typeof Response === 'function' && module instanceof Response) {
|
if (typeof Response === 'function' && module instanceof Response) {
|
||||||
if (typeof WebAssembly.instantiateStreaming === 'function') {
|
if (typeof WebAssembly.instantiateStreaming === 'function') {
|
||||||
@ -676,10 +467,6 @@ function __wbg_get_imports() {
|
|||||||
const ret = arg0.crypto;
|
const ret = arg0.crypto;
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbg_data_432d9c3df2630942 = function(arg0) {
|
|
||||||
const ret = arg0.data;
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_error_524f506f44df1645 = function(arg0) {
|
imports.wbg.__wbg_error_524f506f44df1645 = function(arg0) {
|
||||||
console.error(arg0);
|
console.error(arg0);
|
||||||
};
|
};
|
||||||
@ -752,23 +539,10 @@ function __wbg_get_imports() {
|
|||||||
const ret = result;
|
const ret = result;
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbg_instanceof_Window_def73ea0955fc569 = function(arg0) {
|
|
||||||
let result;
|
|
||||||
try {
|
|
||||||
result = arg0 instanceof Window;
|
|
||||||
} catch (_) {
|
|
||||||
result = false;
|
|
||||||
}
|
|
||||||
const ret = result;
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_length_52b6c4580c5ec934 = function(arg0) {
|
imports.wbg.__wbg_length_52b6c4580c5ec934 = function(arg0) {
|
||||||
const ret = arg0.length;
|
const ret = arg0.length;
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbg_log_c222819a41e063d3 = function(arg0) {
|
|
||||||
console.log(arg0);
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_msCrypto_a61aeb35a24c1329 = function(arg0) {
|
imports.wbg.__wbg_msCrypto_a61aeb35a24c1329 = function(arg0) {
|
||||||
const ret = arg0.msCrypto;
|
const ret = arg0.msCrypto;
|
||||||
return ret;
|
return ret;
|
||||||
@ -784,7 +558,7 @@ function __wbg_get_imports() {
|
|||||||
const a = state0.a;
|
const a = state0.a;
|
||||||
state0.a = 0;
|
state0.a = 0;
|
||||||
try {
|
try {
|
||||||
return __wbg_adapter_195(a, state0.b, arg0, arg1);
|
return __wbg_adapter_138(a, state0.b, arg0, arg1);
|
||||||
} finally {
|
} finally {
|
||||||
state0.a = a;
|
state0.a = a;
|
||||||
}
|
}
|
||||||
@ -803,10 +577,6 @@ function __wbg_get_imports() {
|
|||||||
const ret = new Array();
|
const ret = new Array();
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbg_new_92c54fc74574ef55 = function() { return handleError(function (arg0, arg1) {
|
|
||||||
const ret = new WebSocket(getStringFromWasm0(arg0, arg1));
|
|
||||||
return ret;
|
|
||||||
}, arguments) };
|
|
||||||
imports.wbg.__wbg_new_a12002a7f91c75be = function(arg0) {
|
imports.wbg.__wbg_new_a12002a7f91c75be = function(arg0) {
|
||||||
const ret = new Uint8Array(arg0);
|
const ret = new Uint8Array(arg0);
|
||||||
return ret;
|
return ret;
|
||||||
@ -839,12 +609,6 @@ function __wbg_get_imports() {
|
|||||||
const ret = arg0.objectStore(getStringFromWasm0(arg1, arg2));
|
const ret = arg0.objectStore(getStringFromWasm0(arg1, arg2));
|
||||||
return ret;
|
return ret;
|
||||||
}, arguments) };
|
}, arguments) };
|
||||||
imports.wbg.__wbg_onConnectionStateChanged_b0dc098522afadba = function(arg0) {
|
|
||||||
onConnectionStateChanged(arg0 !== 0);
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_onSignRequestReceived_93232ba7a0919705 = function(arg0, arg1, arg2, arg3) {
|
|
||||||
onSignRequestReceived(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_open_88b1390d99a7c691 = function() { return handleError(function (arg0, arg1, arg2) {
|
imports.wbg.__wbg_open_88b1390d99a7c691 = function() { return handleError(function (arg0, arg1, arg2) {
|
||||||
const ret = arg0.open(getStringFromWasm0(arg1, arg2));
|
const ret = arg0.open(getStringFromWasm0(arg1, arg2));
|
||||||
return ret;
|
return ret;
|
||||||
@ -879,10 +643,6 @@ function __wbg_get_imports() {
|
|||||||
imports.wbg.__wbg_randomFillSync_ac0988aba3254290 = function() { return handleError(function (arg0, arg1) {
|
imports.wbg.__wbg_randomFillSync_ac0988aba3254290 = function() { return handleError(function (arg0, arg1) {
|
||||||
arg0.randomFillSync(arg1);
|
arg0.randomFillSync(arg1);
|
||||||
}, arguments) };
|
}, arguments) };
|
||||||
imports.wbg.__wbg_readyState_7ef6e63c349899ed = function(arg0) {
|
|
||||||
const ret = arg0.readyState;
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_require_60cc747a6bc5215a = function() { return handleError(function () {
|
imports.wbg.__wbg_require_60cc747a6bc5215a = function() { return handleError(function () {
|
||||||
const ret = module.require;
|
const ret = module.require;
|
||||||
return ret;
|
return ret;
|
||||||
@ -895,34 +655,12 @@ function __wbg_get_imports() {
|
|||||||
const ret = arg0.result;
|
const ret = arg0.result;
|
||||||
return ret;
|
return ret;
|
||||||
}, arguments) };
|
}, arguments) };
|
||||||
imports.wbg.__wbg_send_0293179ba074ffb4 = function() { return handleError(function (arg0, arg1, arg2) {
|
|
||||||
arg0.send(getStringFromWasm0(arg1, arg2));
|
|
||||||
}, arguments) };
|
|
||||||
imports.wbg.__wbg_setTimeout_f2fe5af8e3debeb3 = function() { return handleError(function (arg0, arg1, arg2) {
|
|
||||||
const ret = arg0.setTimeout(arg1, arg2);
|
|
||||||
return ret;
|
|
||||||
}, arguments) };
|
|
||||||
imports.wbg.__wbg_set_65595bdd868b3009 = function(arg0, arg1, arg2) {
|
imports.wbg.__wbg_set_65595bdd868b3009 = function(arg0, arg1, arg2) {
|
||||||
arg0.set(arg1, arg2 >>> 0);
|
arg0.set(arg1, arg2 >>> 0);
|
||||||
};
|
};
|
||||||
imports.wbg.__wbg_setbinaryType_92fa1ffd873b327c = function(arg0, arg1) {
|
|
||||||
arg0.binaryType = __wbindgen_enum_BinaryType[arg1];
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_setonclose_14fc475a49d488fc = function(arg0, arg1) {
|
|
||||||
arg0.onclose = arg1;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_setonerror_8639efe354b947cd = function(arg0, arg1) {
|
|
||||||
arg0.onerror = arg1;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_setonerror_d7e3056cc6e56085 = function(arg0, arg1) {
|
imports.wbg.__wbg_setonerror_d7e3056cc6e56085 = function(arg0, arg1) {
|
||||||
arg0.onerror = arg1;
|
arg0.onerror = arg1;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbg_setonmessage_6eccab530a8fb4c7 = function(arg0, arg1) {
|
|
||||||
arg0.onmessage = arg1;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_setonopen_2da654e1f39745d5 = function(arg0, arg1) {
|
|
||||||
arg0.onopen = arg1;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_setonsuccess_afa464ee777a396d = function(arg0, arg1) {
|
imports.wbg.__wbg_setonsuccess_afa464ee777a396d = function(arg0, arg1) {
|
||||||
arg0.onsuccess = arg1;
|
arg0.onsuccess = arg1;
|
||||||
};
|
};
|
||||||
@ -957,10 +695,6 @@ function __wbg_get_imports() {
|
|||||||
const ret = arg0.then(arg1);
|
const ret = arg0.then(arg1);
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbg_then_48b406749878a531 = function(arg0, arg1, arg2) {
|
|
||||||
const ret = arg0.then(arg1, arg2);
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbg_transaction_d6d07c3c9963c49e = function() { return handleError(function (arg0, arg1, arg2) {
|
imports.wbg.__wbg_transaction_d6d07c3c9963c49e = function() { return handleError(function (arg0, arg1, arg2) {
|
||||||
const ret = arg0.transaction(arg1, __wbindgen_enum_IdbTransactionMode[arg2]);
|
const ret = arg0.transaction(arg1, __wbindgen_enum_IdbTransactionMode[arg2]);
|
||||||
return ret;
|
return ret;
|
||||||
@ -969,9 +703,6 @@ function __wbg_get_imports() {
|
|||||||
const ret = arg0.versions;
|
const ret = arg0.versions;
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbg_warn_4ca3906c248c47c4 = function(arg0) {
|
|
||||||
console.warn(arg0);
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_cb_drop = function(arg0) {
|
imports.wbg.__wbindgen_cb_drop = function(arg0) {
|
||||||
const obj = arg0.original;
|
const obj = arg0.original;
|
||||||
if (obj.cnt-- == 1) {
|
if (obj.cnt-- == 1) {
|
||||||
@ -981,40 +712,16 @@ function __wbg_get_imports() {
|
|||||||
const ret = false;
|
const ret = false;
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_closure_wrapper1181 = function(arg0, arg1, arg2) {
|
imports.wbg.__wbindgen_closure_wrapper378 = function(arg0, arg1, arg2) {
|
||||||
const ret = makeMutClosure(arg0, arg1, 350, __wbg_adapter_55);
|
const ret = makeMutClosure(arg0, arg1, 122, __wbg_adapter_32);
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_closure_wrapper335 = function(arg0, arg1, arg2) {
|
imports.wbg.__wbindgen_closure_wrapper549 = function(arg0, arg1, arg2) {
|
||||||
const ret = makeMutClosure(arg0, arg1, 133, __wbg_adapter_34);
|
const ret = makeMutClosure(arg0, arg1, 151, __wbg_adapter_35);
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_closure_wrapper336 = function(arg0, arg1, arg2) {
|
imports.wbg.__wbindgen_closure_wrapper857 = function(arg0, arg1, arg2) {
|
||||||
const ret = makeMutClosure(arg0, arg1, 133, __wbg_adapter_34);
|
const ret = makeMutClosure(arg0, arg1, 228, __wbg_adapter_38);
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_closure_wrapper337 = function(arg0, arg1, arg2) {
|
|
||||||
const ret = makeMutClosure(arg0, arg1, 133, __wbg_adapter_39);
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_closure_wrapper340 = function(arg0, arg1, arg2) {
|
|
||||||
const ret = makeMutClosure(arg0, arg1, 133, __wbg_adapter_34);
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_closure_wrapper657 = function(arg0, arg1, arg2) {
|
|
||||||
const ret = makeMutClosure(arg0, arg1, 200, __wbg_adapter_44);
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_closure_wrapper658 = function(arg0, arg1, arg2) {
|
|
||||||
const ret = makeMutClosure(arg0, arg1, 200, __wbg_adapter_44);
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_closure_wrapper661 = function(arg0, arg1, arg2) {
|
|
||||||
const ret = makeMutClosure(arg0, arg1, 200, __wbg_adapter_49);
|
|
||||||
return ret;
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_closure_wrapper876 = function(arg0, arg1, arg2) {
|
|
||||||
const ret = makeMutClosure(arg0, arg1, 265, __wbg_adapter_52);
|
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
|
imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
|
||||||
@ -1071,14 +778,6 @@ function __wbg_get_imports() {
|
|||||||
const ret = wasm.memory;
|
const ret = wasm.memory;
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
imports.wbg.__wbindgen_string_get = function(arg0, arg1) {
|
|
||||||
const obj = arg1;
|
|
||||||
const ret = typeof(obj) === 'string' ? obj : undefined;
|
|
||||||
var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
||||||
var len1 = WASM_VECTOR_LEN;
|
|
||||||
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
||||||
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
||||||
};
|
|
||||||
imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
|
imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
|
||||||
const ret = getStringFromWasm0(arg0, arg1);
|
const ret = getStringFromWasm0(arg0, arg1);
|
||||||
return ret;
|
return ret;
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user