frontend page fix

This commit is contained in:
arcbtc 2025-12-30 14:46:31 +00:00
commit 75c6d388a5

View file

@ -1,5 +1,43 @@
var NostrTools = window.NostrTools var NostrTools = window.NostrTools
;(function ensureRandomUUID() {
if (!globalThis.crypto) {
globalThis.crypto = {}
}
if (!globalThis.crypto.randomUUID) {
globalThis.crypto.randomUUID = function () {
const getRandomValues = globalThis.crypto.getRandomValues
if (getRandomValues) {
const bytes = new Uint8Array(16)
getRandomValues.call(globalThis.crypto, bytes)
bytes[6] = (bytes[6] & 0x0f) | 0x40
bytes[8] = (bytes[8] & 0x3f) | 0x80
const hex = Array.from(bytes, b =>
b.toString(16).padStart(2, '0')
).join('')
return (
hex.slice(0, 8) +
'-' +
hex.slice(8, 12) +
'-' +
hex.slice(12, 16) +
'-' +
hex.slice(16, 20) +
'-' +
hex.slice(20)
)
}
let d = Date.now()
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
const r = (d + Math.random() * 16) % 16 | 0
d = Math.floor(d / 16)
return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)
})
}
}
})()
var defaultRelays = [ var defaultRelays = [
'wss://relay.damus.io', 'wss://relay.damus.io',
'wss://relay.snort.social', 'wss://relay.snort.social',
@ -44,13 +82,24 @@ function confirm(message) {
async function hash(string) { async function hash(string) {
const utf8 = new TextEncoder().encode(string) const subtle = globalThis.crypto && globalThis.crypto.subtle
const hashBuffer = await crypto.subtle.digest('SHA-256', utf8) if (subtle && subtle.digest) {
const hashArray = Array.from(new Uint8Array(hashBuffer)) const utf8 = new TextEncoder().encode(string)
const hashHex = hashArray const hashBuffer = await subtle.digest('SHA-256', utf8)
.map(bytes => bytes.toString(16).padStart(2, '0')) const hashArray = Array.from(new Uint8Array(hashBuffer))
.join('') return hashArray.map(bytes => bytes.toString(16).padStart(2, '0')).join('')
return hashHex }
// Fallback for non-secure contexts where crypto.subtle is unavailable.
return fallbackHash(string)
}
function fallbackHash(string) {
let hash = 5381
for (let i = 0; i < string.length; i++) {
hash = ((hash << 5) + hash) + string.charCodeAt(i)
}
return (hash >>> 0).toString(16).padStart(8, '0')
} }
function isJson(str) { function isJson(str) {