fix: LocalDataStorage
This commit is contained in:
@@ -1,12 +1,13 @@
|
|||||||
import * as CryptoES from 'crypto-es'
|
// @ts-types="npm:@types/crypto-js"
|
||||||
|
import * as CryptoJS from 'crypto-js'
|
||||||
|
|
||||||
const dataIsEmpty = !localStorage.tws_data || localStorage.tws_data == ''
|
const dataIsEmpty = !localStorage.tws_data || localStorage.tws_data == ''
|
||||||
|
|
||||||
const aes = {
|
const aes = {
|
||||||
enc: (m: string, k: string) => CryptoES.AES.encrypt(m, k).toString(CryptoES.HexFormatter),
|
enc: (data: string, key: string) => CryptoJS.AES.encrypt(data, key).toString(),
|
||||||
dec: (m: string, k: string) => CryptoES.AES.decrypt(m, k).toString(CryptoES.Utf8),
|
dec: (data: string, key: string) => CryptoJS.AES.decrypt(data, key).toString(CryptoJS.enc.Utf8),
|
||||||
}
|
}
|
||||||
|
window.aes = aes
|
||||||
const key = location.host + '_TWS_姐姐'
|
const key = location.host + '_TWS_姐姐'
|
||||||
|
|
||||||
if (dataIsEmpty) localStorage.tws_data = aes.enc('{}', key)
|
if (dataIsEmpty) localStorage.tws_data = aes.enc('{}', key)
|
||||||
@@ -20,25 +21,23 @@ const _data_cached = JSON.parse(_dec)
|
|||||||
declare global {
|
declare global {
|
||||||
interface Window {
|
interface Window {
|
||||||
data: {
|
data: {
|
||||||
apply: () => void
|
|
||||||
access_token?: string
|
access_token?: string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// deno-lint-ignore no-window
|
// deno-lint-ignore no-window
|
||||||
(window.data == null) && (window.data = new Proxy({
|
(window.data == null) && (window.data = new Proxy({}, {
|
||||||
apply() {
|
|
||||||
localStorage.tws_data = aes.enc(JSON.stringify(_data_cached), key)
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
get(_obj, k) {
|
get(_obj, k) {
|
||||||
|
if (k == '_cached') return _data_cached
|
||||||
|
if (k == 'apply') return () => localStorage.tws_data = aes.enc(JSON.stringify(_data_cached), key)
|
||||||
return _data_cached[k]
|
return _data_cached[k]
|
||||||
},
|
},
|
||||||
set(_obj, k, v) {
|
set(_obj, k, v) {
|
||||||
|
if (k == '_cached') return false
|
||||||
_data_cached[k] = v
|
_data_cached[k] = v
|
||||||
return true
|
return true
|
||||||
},
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
// deno-lint-ignore no-window
|
// deno-lint-ignore no-window
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
"mdui": "npm:mdui@2.1.4",
|
"mdui": "npm:mdui@2.1.4",
|
||||||
"split.js": "npm:split.js@1.3.2",
|
"split.js": "npm:split.js@1.3.2",
|
||||||
"crypto-es": "npm:crypto-es@3.1.0",
|
"crypto-js": "npm:crypto-js@4.2.0",
|
||||||
"socket.io-client": "npm:socket.io-client@4.8.1"
|
"socket.io-client": "npm:socket.io-client@4.8.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user